Einzelnen Beitrag anzeigen

R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#9

AW: Problem mit shellexecute und Pfad

  Alt 31. Okt 2010, 09:01
Hi,

das funktioniert mit shellexecute nicht!
Habe eine andere Lösung:

Delphi-Quellcode:
procedure ShellExecAndWait(dateiname: string; dir: string; Parameter: string); // benötigt ShellAPI in Uses
var executeInfo: TShellExecuteInfo;
dw: DWORD;
begin
   FillChar(executeInfo, SizeOf(executeInfo), 0);
   with executeInfo do
      begin
         cbSize := SizeOf(executeInfo);
         fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
         Wnd := GetActiveWindow();
         executeInfo.lpVerb := 'open';
         executeInfo.lpParameters := PChar(Parameter);
         executeInfo.lpDirectory:= PChar(dir);
         lpFile := PChar(dateiname);
         nShow := SW_SHOWNORMAL;
      end;
      if ShellExecuteEx(@executeInfo) then dw := executeInfo.HProcess
         else
            begin
               ShowMessage('Fehler: ' + SysErrorMessage(GetLastError));
               exit;
            end;
      while WaitForSingleObject(executeInfo.hProcess, 50) <> WAIT_OBJECT_0 do
      Application.ProcessMessages;
      CloseHandle(dw);
end;

Aufgerufen mit:
  dbpath:=extractfilepath(application.ExeName)+'LCRset2\';
  ShellExecAndWait(dbpath + '\LCRset2.exe',dbpath,'');

so funktionierts nicht.
  i:=ShellExecute(Application.Handle, 'open', Pchar(dbpath + 'LCRset2.exe'),nil,pchar(dbpath), SW_SHOW);
Grüsse
Rainer

PS: würde mich aber schon interessieren warum das so ist!
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat