![]() |
Re: Nach opendialog kein ShellExecute mehr... wieso?
Zitat:
|
Re: Nach opendialog kein ShellExecute mehr... wieso?
Zitat:
Aber eventuell braucht das programm das Ausführungsverzeichnis in den parametern von Shellexecute (wo bei Dir überall noch nil drin steht) schau mal auf die verknüpfung auf dem Desktop, wie es gestartet wird, oder ob eventuell sogar parameter nötig sind. |
Re: ShellExecute startet das Programm nicht...
Ich kann es vom Ordner starten... Ich mach mal ne Verknüpfung...
Aus führen in
Code:
steht bei der Verknüpfung. Soll ich den Pfad statt Nil angeben?
C:\DRP\decodefix100
Delphi-Quellcode:
Bringt auch nichts ...
begin
ShellExecute(0, 'C:\DRPEncFiles\', PChar('C:\DRPEncFiles\DVD2AVIDRPEnc.exe'), 'C:\DRPEncFiles\', 'C:\DRPEncFiles\', SW_NORMAL); end; |
Re: ShellExecute startet das Programm nicht...
Code:
ich weiss zwar jetzt nicht, was Du genau startest.
ShellExecute(0, Nil, PChar('makeAVIS.exe'), Nil, Nil, SW_NORMAL);
Aber Du solltest wissen, dass Dein Aufruf makeAVIS.exe immer in dem Pfad die EXE Datei sucht, welchen Du in einer Windows Verknüpfung eingetragen hast. Wenn dort also ausführen in: s C:\ steht, dann wird c:\makeAVIS.exe gesucht. Wenn Du die Exe direkt im Ordner doppel klickst, dann liefert 'makeAVIS.exe' zufällig den richtigen Pfad. Auch unter Delphi. Du solltest also immer paramstr(0) verwenden. bzw ExtractFilepath(paramstr(0)); aufpassen auch bei der Funktion GetCurrentDir, die liefert auch das Verzeichnis, was in der Verknüpfung eingetragen ist. |
Re: ShellExecute startet das Programm nicht...
Delphi-Quellcode:
... darum gehts jetzt. makeAVIS läuft nun. DVD2AVIDRPEnc.exe aber nicht...
ShellExecute(0, Nil, PChar('C:\DRPEncFiles\DVD2AVIDRPEnc.exe'), Nil, Nil, SW_NORMAL);
|
Re: ShellExecute startet das Programm nicht...
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
begin
ShellExecute(0, 'C:\DRPEncFiles\', PChar('C:\DRPEncFiles\DVD2AVIDRPEnc.exe'), 'C:\DRPEncFiles\', 'C:\DRPEncFiles\', SW_NORMAL); end; ich würde Dich bitten, die Aufrufkonvention von Shellexecute nochmal genauer zu studieren, und nicht einfach wild was eintragen, in der Hoffnung, dass es funktioniert siehe Bild .. |
Re: ShellExecute startet das Programm nicht...
Sorry, bin Anfänger ...
Damit gehts auch nicht:
Delphi-Quellcode:
function WinExec32AndWait(const Cmd: string; const CmdShow: Integer): Cardinal;
var sui : TStartupInfo; pi : TProcessInformation; begin Result := Cardinal($FFFFFFFF); ZeroMemory(@sui,sizeof(TStartupInfo)); sui.cb := SizeOf(TStartupInfo); sui.dwFlags := STARTF_USESHOWWINDOW; sui.wShowWindow := CmdShow; if(CreateProcess(nil,pchar(Cmd),nil,nil,False,NORMAL_PRIORITY_CLASS,nil,nil,sui,pi)) then begin WaitForInputIdle(pi.hProcess, INFINITE); if(WaitForSingleObject(pi.hProcess, INFINITE) = WAIT_OBJECT_0) then begin {$IFDEF DELPHI3} if not GetExitCodeProcess(pi.hProcess, Integer(Result)) then {$ELSE} if not GetExitCodeProcess(pi.hProcess, Result) then {$ENDIF DELPHI3} Result := Cardinal($FFFFFFFF); end; CloseHandle(pi.hThread); CloseHandle(pi.hProcess); end; end; procedure TForm6.GroupBox3Click(Sender: TObject); var ChildExitCode: Cardinal; begin ChildExitCode := WinExec32AndWait('"C:\DRPEncFiles\DVD2AVIDRPEnc.exe"', SW_NORMAL); if ChildExitCode = $FFFFFFFF then ShowMessage('Delphi 6 konnte nicht gestartet werden.'); end; |
Re: ShellExecute startet das Programm nicht...
Es muss gehen ! :-)
Guck Dir bitte nochmal die Parameter an, mit der die Exe gestartet werden muss eventuell ! funktioniert denn ein einfacher doppelklick auf diese Exe Datei ? probier mal das hier:
Code:
procedure starten;
var pfad : string; cmd, par, fil, dir: PChar; begin pfad := 'C:\DRPEncFiles\DVD2AVIDRPEnc.exe'; if fileexists (pfad) then begin cmd := PChar('open'); fil := PChar(pfad); par := nil; Dir := PCHAR( ExtractfilePath(pfad) ); Shellexecute(0, cmd, fil, par, dir, SW_SHOWNORMAL); end else showmessage('Datei nicht vorhanden !'); end; |
Re: ShellExecute startet das Programm nicht...
Nun läuft alles... hatte den Button mit dem Befehl nicht verknüpft. Mir ist irgendwie Groupbox.Click untergekommen :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 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