AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Mit ShellExecute VMWare bei Windows-Start starten
Thema durchsuchen
Ansicht
Themen-Optionen

Mit ShellExecute VMWare bei Windows-Start starten

Ein Thema von Puhbaehr · begonnen am 3. Mär 2006 · letzter Beitrag vom 10. Sep 2006
Antwort Antwort
Puhbaehr
(Gast)

n/a Beiträge
 
#1

Mit ShellExecute VMWare bei Windows-Start starten

  Alt 3. Mär 2006, 16:28
Servus!

Ich sitze wiedermal vor einem leidigem Thema.
Ich habe auf einer VMWare eine Routersoftware (IPCop ) installiert und wollte folgendes:
Der Windows (2000) PC auf dem die VMWare installiert ist sollte beim Starten noch vor der Windows-Anmeldung anhalten und die VMWare vollständig zuende laden. Sobald das geschehen ist darf Windows sein Zeug weiterladen.

Soweit sogut oder auch nicht.

Fangen wir Rückwärts an.

Wie bekomme ich Windows dazu anzuhalten? Gibt es zwei Wege.
Weg 1: Programm als Run Once-Service registrieren. Windows hält den Start solange auf bis sich das Programm selbständig wieder schließt. Etwas umständlich aber notdürftig tut es seinen Job.
Weg 2: Programm als Startskript über den Gruppenrichtlinieneditor eingebunden. Mit ein paar Änderungen der Sicherheitsrichtlinien lässt sich das ganze so konfigurieren, dass Windows sich ähnlich verhält wie beim Run Once-Service. Es wartet also bis sich das Programm beendet hat und lädt dann seinen kram.

Wie stelle ich fest ob die VMWare mit der Routersoftware vollständig geladen ist? Ich sende wärend des Starts in einem bestimmten Zeitraum Ping-Pakete an die Router-IP. Funktioniert.

Wie starte ich die VMWare?
Jedesmal im Programm über ShellExecute. Ich hab mehrere Varianten durchprobiert.
Einmal rufe ich die VMWare mit ShellExecute direkt auf:

Etwas kompliziert - hier nur das wichtigste:
Delphi-Quellcode:
    ...
  Ergebnis := ShellExecute (hInstance, 'open', PChar (Programm), PChar (Parameter), nil, ShowCmd);
...
Die Variablen:
Programm - "C:\...\VMWare.exe"
Parameter - "C:\Router\...\....vmx" -x
ShowCmd - swHide - eigentlich soll das Flag bewirken, dass die VMWare nicht zu sehen ist. Aber scheinbar schaukelt sich die VMWare so, dass sie doch sichtbar ist - ist aber nicht so tragisch da alles gesamt später von Windows versteckt wird.

Eine andere Variante die ich ausprobierte ist der Start über die nette cmd.exe

Die Variablen hier:
Programm - "...\cmd.exe"
Parameter - "/C ""C:\...\VMWare.exe" "C:\Router\...\....vmx" -x"

Und noch eine Variante die ich durch hab: Ich fertigte eine BAT-Datei an die ich hier an dieser Stelle nur noch aufzurufen brauchte.

Alle drei Varianten funktionieren soweit ganz gut und zeigen gleiches Ergebnis.

Wie läuft das ganze insgesamt ab?
Windows startet, bleibt noch vor der Anmeldung stehen.
Das Programm startet, prüft über Ping ob bereits die VMWare mit Routersoftware läuft.
Wenn nicht startet es über ShellExecute die VMWare. Die VMWare öffnet sich und lädt die Routersoftware.
Der ganze Ablauf wird durch einen Statusbalken überwacht und sobald alles fertig ist schließt sich das Programm, die VMWare bleibt offen (!) und Windows startet weiter.

Das ganze funktioniert so eigentlich wunderbar. Aber, und das ist mein Problem, sobald Windows weiter startet und sich mein Programm geschlossen hat schließt es ebenso auch die VMWare mit! Und hier weiß ich nicht weiter und bitte um Rat und Tat

So, noch etwas dazu: Konfiguriere ich Windows so, dass es nicht auf das Programm wartet dann lässt es dies und die VMWare beim Laden im Hintergrund verschwinden. Im Taskmanager ist noch zu sehen wie die VMWare geladen wird und sich das/mein Programm selbständig beendet. Es ist also im Windows nichts mehr von Routersoftware oder Fenstern zu sehen. Und genau das ist auch mein Ziel.
Der Ladevorgang der Routersoftware sollte so schnell und zeitig wie möglich passieren, deswegen lasse ich Windows warten, und das Fenster soll im Anschluss daran nicht mehr zu sehen sein.
Das sind die Gründe für mein tun.

So, ich hoffe das reicht soweit und erstmal Danke und Gruß!
Robert
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Mit ShellExecute VMWare bei Windows-Start starten

  Alt 10. Sep 2006, 13:18
Benutze VMWare Server. Das Format für die VMs ist kompatibel und VMWare Server ermöglicht es, VMs im Hintergrund unter einem "VMWare-Dienst" laufen zu lassen.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Mit ShellExecute VMWare bei Windows-Start starten

  Alt 10. Sep 2006, 13:24
...und bei windowsstart automatisch die vm's zu starten bzw. beim runterfahren wieder zu beenden (setzt vmware-tools voraus).

der server ist seit kurzem kostenlos verfügbar.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Puhbaehr
(Gast)

n/a Beiträge
 
#4

Re: Mit ShellExecute VMWare bei Windows-Start starten

  Alt 10. Sep 2006, 14:13
Hom interessant. Werde ich mich gleich mal ran machen.
Das Thema ist zwar inzwischen 6 Monate her Aber die VMWare läuft mit dem Router noch nach wie vor auf meiner Kiste und der Start dauert bisher über 6 Minuten, da muss man etwas machen.

Vielen Dank erstmal so weit und ich melde mich sobald ich es ausprobiert hab

Robert
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz