![]() |
Shellexecute Problem
hallo
Ich verwnde folgende Procedure um eine App zu starten und zu warten bis sie zu ende ist.
Delphi-Quellcode:
Es funktioniert eigentlich prima, jedoch haben mir einige Leute die mit WinXp arbeiten gesagt dass bie ihnen keine APP gestartet wird. Sondern nur der FileExploerer geöffnet wird. ich hab das dann auch nochmal mit winXp probiert bei mir gings dann wieder. An was kann das liegen ? Was ist an der XP version falsch damit es bei einigen geht und bei anderen wiederum nicht ? weiss jemand an was das liegen könnte ?
uses
ShellApi; procedure ShellExecute_AndWait(FileName: string; Params: string); var exInfo: TShellExecuteInfo; Ph: DWORD; begin FillChar(exInfo, SizeOf(exInfo), 0); with exInfo do begin cbSize := SizeOf(exInfo); fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT; Wnd := GetActiveWindow(); ExInfo.lpVerb := 'open'; ExInfo.lpParameters := PChar(Params); lpFile := PChar(FileName); nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@exInfo) then Ph := exInfo.HProcess else begin ShowMessage(SysErrorMessage(GetLastError)); Exit; end; while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do Application.ProcessMessages; CloseHandle(Ph); end; procedure TForm1.Button1Click(Sender: TObject); begin ShellExecute_AndWait('FileName', 'Parameter'); end; greetz Cyrus |
Re: Shellexecute Problem
Das wirtklich wichtige teilst du uns leider nicht mit, mit welchen Parametern du die Funktion aufrufst, 'Filename' und 'Paramter' wird es ja wohl nicht sein. :roll:
|
Re: Shellexecute Problem
hi CTV
hatte auch mal das problem und zwar war immer dann, wenn die zu startende app nicht gefunden wurde. wenn ich mit meinem progi c:\test.exe ausführen wollte und die exe aber nicht an diesem ort lag, dann passierte genau das gleiche. es öffnete sich nur der file explorer... gruss, dave |
Re: Shellexecute Problem
Delphi-Quellcode:
Das ist ein Setup welches mit wise8 erstellt worden ist. und damit man das nicht von hand starten kann hats in dem wise setup noch eine paramstr. überprüfung quasi ein passwort. Das Setup wird nur dann gestartet wenn der param stimmt. und diesen param also das pw geb ich über die obige angabe mit. klappt auch leider aber nicht auf allen rechnern.
var filename,param:string;
begin filename:=extractfilepath(application.exenmae)+'disk11\setup.exe); param:='einpasswort'; ShellExecute_AndWait(filename, param); end; greetz Cyrus |
Re: Shellexecute Problem
@ims
währe eine erklährung dass es ned geht wenn die exe nicht gefunden wird. jedoch gehts ja auf anderen rechnern. ich hab das auf ne cd gebrannt. und dann auf verschiedenen rechnern getestet bei manchen gehts bei manchen nicht. kann ja ned sein dass er s einmal findet und einmal ned ? oder geht das application.exename ned auf allen systemen ? greetz Cyrus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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