AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ShellExecuteEx öffnet, beendet aber auch
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecuteEx öffnet, beendet aber auch

Ein Thema von kallculator · begonnen am 14. Mär 2005 · letzter Beitrag vom 29. Sep 2006
Antwort Antwort
kallculator

Registriert seit: 11. Mär 2005
13 Beiträge
 
#1

ShellExecuteEx öffnet, beendet aber auch

  Alt 14. Mär 2005, 20:12
Hallo!

Leider habe ich ein kleines Problem. Mit folgendem Code soll Apache versteckt geöffnet werden und sobald er fertig geladen ist, der IE starten (der wiederum eine Seite vom Webserver aufruft). Beide Programme starten auch, nur schließt sich der Apache wieder bevor der IE anspringt. Was könnte da falsch laufen? Der Apache sollte im Hintergrund weiterlaufen.

Delphi-Quellcode:
var
  ShExecInfo : SHELLEXECUTEINFO;
begin
  ShExecInfo.cbSize := sizeof(SHELLEXECUTEINFO);
  ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
  ShExecInfo.lpVerb := nil;
  ShExecInfo.lpFile := PChar('...\apache\bin\Apache.exe');
  ShExecInfo.lpDirectory := nil;
  ShExecInfo.nShow := SW_HIDE;

  ShellExecuteEx(@ShExecInfo);

  WaitForSingleObject(ShExecInfo.hProcess,INFINITE);

  ShellExecute(0,'open',PCHar('...\Internet Explorer\iexplore.exe'),nil,nil,SW_MAXIMIZE);
end;
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: ShellExecuteEx öffnet, beendet aber auch

  Alt 14. Mär 2005, 20:15
Mit WaitForSingleObject(...) wartest du, soweit ich weiß, bis der Apache wieder beendet wird. Vielleicht solltest du einen anderen Timeout einstellen und prüfen, obs dann funktioniert.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: ShellExecuteEx öffnet, beendet aber auch

  Alt 14. Mär 2005, 20:38
Moin kallculator,

nimm doch statt MSDN-Library durchsuchenWaitForSingleObject lieber MSDN-Library durchsuchenWaitForInputIdle.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
kallculator

Registriert seit: 11. Mär 2005
13 Beiträge
 
#4

Re: ShellExecuteEx öffnet, beendet aber auch

  Alt 14. Mär 2005, 21:06
Zitat von Christian Seehase:
nimm doch statt MSDN-Library durchsuchenWaitForSingleObject lieber MSDN-Library durchsuchenWaitForInputIdle.
Danke euch beiden für die schnellen Antworten.
WaitForInputIdle ist die richtige Wahl, habe es auch ausprobiert, nur irgendwie passiert dasselbe
Was nun?
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#5

Re: ShellExecuteEx öffnet, beendet aber auch

  Alt 14. Mär 2005, 21:42
Würde sagen, dass du auch ein Directory (lpDirectory) angeben solltest. Denke mal, dass beim Starten von Apache irgendein Fehler auftritt und dadurch beendet wird. Musst mal in den Logfiles schauen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
kallculator

Registriert seit: 11. Mär 2005
13 Beiträge
 
#6

Re: ShellExecuteEx öffnet, beendet aber auch

  Alt 14. Mär 2005, 23:34
Hilft leider auch nichts und Apache logt keine Error

Edit:
Du hast mich doch auf die richtige Spur gebracht. Apache brauchte (auch noch) lpParameters
Jetzt gehts!

Hier der ausgebesserte Code:
Delphi-Quellcode:
var
  ShExecInfo : SHELLEXECUTEINFO;
begin
  ShExecInfo.cbSize := sizeof(SHELLEXECUTEINFO);
  ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
  ShExecInfo.lpVerb := nil;
  ShExecInfo.lpFile := PChar('...\bin\Apache.exe');
  ShExecInfo.lpParameters := '';
  ShExecInfo.lpDirectory := PChar('...\bin');
  ShExecInfo.nShow := SW_HIDE;
  ShellExecuteEx(@ShExecInfo);
  WaitForInputIdle(ShExecInfo.hProcess,INFINITE);
  ShellExecute(0,'open',PCHar('...\Internet Explorer\iexplore.exe'),nil,nil,SW_MAXIMIZE);
end;
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.664 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: ShellExecuteEx öffnet, beendet aber auch

  Alt 29. Sep 2006, 09:51
Vielleicht noch als abschliessende Ergänzung:

CloseHandle(ShExecInfo.hProcess);
Sven Harazim
--
  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 09:45 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