Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ShellExecute startet das Programm nicht... (https://www.delphipraxis.net/16740-shellexecute-startet-das-programm-nicht.html)

Wheelie 22. Feb 2004 19:55

Re: Nach opendialog kein ShellExecute mehr... wieso?
 
Zitat:

Zitat von DRPEnc
lol und wie binde ichs ein... bekomme nur fehlermeldungen...

Delphi-Quellcode:
//Open supported files
procedure TForm6.Button3Click(Sender: TObject);
begin
If Not OpenDialog1.Execute Then Exit;

Close;
//Debug
form1.edit1.text:='  ' + '"' + OpenDialog1.FileName + '"'
//OpenDialog1.Options.ofNoChangeDir:= True;

end;
hmm oder ich kopier die exe nach C:\ im install programm. Somit kann ich den Pfad angeben.

ich weiß nicht warum ihr euch das so unheimlich schwer macht :roll: du musst hier auch nix "einbinden" sondern einfach nur die o.g. eigenschaft des opendialogs im objektionspektor verändern!

stoxx 22. Feb 2004 19:57

Re: Nach opendialog kein ShellExecute mehr... wieso?
 
Zitat:

Zitat von DRPEnc
Hmm k, ich hab einen festen Ordner nun, in dem sich die Exe befindet.
Nun will ich auch DVD2AVI durch mein app öffnen. Auch ne exe, nur öffnet sich die nicht obwohl ich den Pfad angegeben hatte...

Delphi-Quellcode:
ShellExecute(0, Nil, PChar('C:\DRPEncFiles\DVD2AVIDRPEnc.exe'), Nil, Nil, SW_NORMAL);

ich kenn jetzt das programm nicht, deswegen kann ich es auch nicht testen,
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.

DRPEnc 22. Feb 2004 19:59

Re: ShellExecute startet das Programm nicht...
 
Ich kann es vom Ordner starten... Ich mach mal ne Verknüpfung...
Aus führen in
Code:
C:\DRP\decodefix100
steht bei der Verknüpfung. Soll ich den Pfad statt Nil angeben?

Delphi-Quellcode:
begin
ShellExecute(0, 'C:\DRPEncFiles\', PChar('C:\DRPEncFiles\DVD2AVIDRPEnc.exe'), 'C:\DRPEncFiles\', 'C:\DRPEncFiles\', SW_NORMAL);
end;
Bringt auch nichts ...

stoxx 22. Feb 2004 20:04

Re: ShellExecute startet das Programm nicht...
 
Code:
ShellExecute(0, Nil, PChar('makeAVIS.exe'), Nil, Nil, SW_NORMAL);
ich weiss zwar jetzt nicht, was Du genau startest.
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.

DRPEnc 22. Feb 2004 20:05

Re: ShellExecute startet das Programm nicht...
 
Delphi-Quellcode:
ShellExecute(0, Nil, PChar('C:\DRPEncFiles\DVD2AVIDRPEnc.exe'), Nil, Nil, SW_NORMAL);
... darum gehts jetzt. makeAVIS läuft nun. DVD2AVIDRPEnc.exe aber nicht...

stoxx 22. Feb 2004 20:06

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 ..

DRPEnc 22. Feb 2004 20:12

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;

stoxx 22. Feb 2004 20:19

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;

DRPEnc 22. Feb 2004 20:24

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.
Seite 2 von 2     12   

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