![]() |
ShellExecute: Programm startet und schmiert ab
Hi,
ich möchte mit folgendem Code ein anderes Programm starten. Dieses schmiert jedoch sofort ab. Habt ihr eine Idee warum ? In manchen Projekten funktioniert der Code, in diesem und dem Standardprojekt von Delphi7 allerdings nicht.
Delphi-Quellcode:
ShellExecute(0, 'open', PChar(s), '', nil, SW_SHOWNORMAL);
|
Re: ShellExecute: Programm startet und schmiert ab
Hi,
das gestartete Programm schmiert ab? Welchen Rückgabewert hat ShellExecute? Bringt das andere Programm eine Fehlermeldung? |
Re: ShellExecute: Programm startet und schmiert ab
Es gibt keine Fehlermeldung von ShellExecute (Rückgabewert 42). Bei bestimmten Programmen gibt es eine Fehlermeldung, bei anderen wiederum nicht.
Edit: Bei meinen eigenen Programmen tritt der Fehler teilweise auf. Ich sehe allerdings keinen Grund dafür. Es werden zumindest Meldungen ausgegeben, die zeigen, dass es am ShellExecute liegen muss. |
Re: ShellExecute: Programm startet und schmiert ab
Mal den Rechner neu gestartet? Ich kann an der einen Zeile Source nichts Fehlerträchtiges entdecken.
|
Re: ShellExecute: Programm startet und schmiert ab
Vielleicht hat das Programm ein Problem damit, dass du den aktuellen Ordner für die Instanz nicht setzt (nil-Parameter). Wenn ich ShellExecute aufrufe, mach ich es eigentlich immer gleich:
Delphi-Quellcode:
function ExecuteFile(aFileName, aParameters: string; aDirectory: string = ''; aExecMode: string = 'open'): integer;
var Folder: string; begin Folder := aDirectory; if Folder = '' then Folder := ExtractFileDir(aFileName); result := ShellExecute(0, PChar(aExecMode), PChar(aFileName), PChar(aParameters), PChar(Folder), SW_SHOW); end; procedure TForm1.Button1Click(Sender: TObject) var ExecResult : integer; begin ExecResult := ExecuteFile(Edit1.Text, ''); if ExecResult < 32 then // Fehlerbehandlung end; |
Re: ShellExecute: Programm startet und schmiert ab
ob nil oder ein Leerstring spielt keine Rolle. Vielmehr könnte es daran liege das einige Programmierer mit relativen Pfadangaben arbeiten und somit bei falschem Arbeitsverzeichnis (also Arbeitsverzeichnis <> Exe-Programmverzeichnis) bestimmte Dateien nicht gefunden werden.
Warum schenierst du dich eigentlich uns die genaue Fehlermeldung mitzuteilen? Willst du nicht das wir dir bei der Problemlösung helfen? :gruebel: |
Re: ShellExecute: Programm startet und schmiert ab
Danke littleDave, der Code ist nicht nur schön, sondern funktioniert auch. Dass es irgendetwas mit den Parametern zu tun hat, dachte ich mir bereits, aber daran nicht.
SirThornberry, ich habe oben gesagt, es gäbe keine direkte Fehlermeldung, es unterscheide sich von Programm zu Programm. Der Code war 42, was umgewandelt mit SysErrorMessage einen Leerstring ergibt. Dann danke an den Rest für die Hilfsversuche! |
Re: ShellExecute: Programm startet und schmiert ab
Zitat:
|
Re: ShellExecute: Programm startet und schmiert ab
Wen juckt bitteschön eine Fehlermeldung aus einem meiner eigenen Programme, wenn ich nicht mal selbst weiß, was diese zu bedeuten haben ? :wall: geht zurück dafür, dass du dieses Thema ausgegraben hast und dadurch ein ungelöstes weiter abgerutscht ist.
|
Re: ShellExecute: Programm startet und schmiert ab
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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