AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit ShellExecute und Windows 8

Ein Thema von Codewalker · begonnen am 18. Jan 2013 · letzter Beitrag vom 19. Jan 2013
 
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit ShellExecute und Windows 8

  Alt 18. Jan 2013, 14:51
Hallo zusammen.

Ich nutze bisher folgenden Code, um einen Prozess mit Parametern zu starten und auf die Beendigung zu warten (ich nutze vorgabebeding einige Returncodes):
Delphi-Quellcode:
function ExecuteAndWait(Filename, Params: Widestring;
                     WindowState: Word = SW_SHOWNORMAL): Integer;
var
  ShExecInfoW: SHELLEXECUTEINFOW;
  r : Cardinal;
  ExitCode: Cardinal;
  res: Boolean;
begin
  Result := -50;
  if Filename = 'then Exit;
  if not FileExists(FileName) then
  begin
    Exit(-100);
  end;

  ShExecInfoW.Wnd := GetForegroundWindow;
  ShExecInfoW.cbSize := sizeof(SHELLEXECUTEINFOW);
  ShExecInfoW.fMask := SEE_MASK_NOCLOSEPROCESS;
  ShExecInfoW.lpVerb := 'open';
  ShExecInfoW.lpFile := PWideChar(Filename);
  ShExecInfoW.lpParameters := PWideChar(Params);
  ShExecInfoW.lpDirectory := PWideChar(ExtractFileDir(Filename));
  ShExecInfoW.nShow := WindowState;
  res := ShellExecuteExW(@ShExecInfoW);

  try
    if res then
    begin
      r := WaitForSingleObject(ShExecInfoW.hProcess, INFINITE);
      if not GetExitCodeProcess(ShExecInfoW.hProcess, ExitCode)
        then Result := -1;
    end;
  finally
    CloseHandle(ShExecInfoW.hProcess);
    Result := ExitCode;
  end;
end;
Das klappte bisher sehr gut, aber unter Windows 8 friert mein Programm ein und der andere Prozess wird nicht gestartet. Wenn ich dann mein Programm über den Debugger kille, dann wird endlich (aber zu spät natürlich) der andere Prozess gestartet. Was habe ich nicht bedacht?
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz