![]() |
ShellExecute: Batch wird nicht ausgeführt
Guten Morgen,
ich habe ein Problem mit dem Befehl ShellExecute. Und zwar möchte ich mit einer Konsolenanwendung eine Batch-Datei ausführen. Mein Programm sieht wie folgt aus:
Delphi-Quellcode:
Meine Problem ist, dass die Batch-Datei nicht ausgeführt wird.
program Batch;
{$APPTYPE CONSOLE} uses Windows, SysUtils, ShellAPI; begin ShellExecute(0, Nil, PChar('C:\Dokumente und Einstellungen\Admin\Desktop\new\Datei.bat'), Nil, Nil, SW_NORMAL); end. Die Batch-Datei funktioniert aber an sich (wenn ich die manuell ausführe). Könnte mir bitte Jemand sagen, wie ich das anstellen kann - so das es funktioniert? Ich habe auch schon im Forum gesucht und über google, leider ohne Erfolg. Falls das eine Rolle spielen sollte: Ich sitze an einen PC auf dem Win XP Pro SP3 und Delphi 2009 installiert ist. Ich danke euch bereits im voraus. |
Re: ShellExecute: Batch wird nicht ausgeführtProblem
Was besagt ger Rückgabewert der Funktion?
|
Re: ShellExecute: Batch wird nicht ausgeführtProblem
Öhm...Rückgabewert? :oops:
Ich möchte doch nur eine Batch-Datei ausführen. //EDIT: Entschuldigt bitte meinen Beitrag, ich hatte das Programm davor nicht gespeichert und einfach so ausgeführt. Nun funktioniert alles, nachdem ich das Programm gespeichert habe. Entschuldigt bitte... :oops: PS: man sollte nicht mehr so spät programmieren... :x |
Re: ShellExecute: Batch wird nicht ausgeführtProblem
Das Problem ist, dass eine Batchdatei nunmal über die Kommandozeile ausgeführt wird, und nicht über den Explorer.
Es sollte so klappen:
Delphi-Quellcode:
Nacht,
ShellExecute(0,'open','cmd','C:\Dokumente und Einstellungen\Admin\Desktop\new\Datei.bat',nil,SW_HIDE);
Daniel //Edit: Ach, geht doch? Wieder was gelernt... |
Re: ShellExecute: Batch wird nicht ausgeführt
ShellExecute liefert ein Result und dieses könnte/sollte man prüfen,
denn daran kann man erkennen ob die Funktion erfolgreich ausgeführt werden konnte und wenn nich, dann sieht man WARUM es nicht erfolgreich war. |
Re: ShellExecute: Batch wird nicht ausgeführtProblem
Zitat:
|
Re: ShellExecute: Batch wird nicht ausgeführt
Danke für alle Antworten.
Die Batch-Datei wird auch ausgeführt, wenn ich "mein" Code verwende. Schön Abend noch :) |
Re: ShellExecute: Batch wird nicht ausgeführt
die " sind aber nur bei den Parametern nötig.
denn dort werden die ' ' (Leerzeichen) als Trennzeichen verwendet
Delphi-Quellcode:
hier führt cmd praktisch 3 Dateien aus
ShellExecute(0, 'open', 'cmd', '"C:\Dokumente und Einstellungen\Admin\Desktop\new\Datei.bat"', nil, SW_HIDE);
ShellExecute(0, 'open', 'C:\Dokumente und Einstellungen\Admin\Desktop\new\Datei.bat', nil, nil, SW_HIDE); [delphi]ShellExecute(0, 'open', 'cmd', 'C:\Dokumente und Einstellungen\Admin\Desktop\new\Datei.bat', nil, SW_HIDE); also "C:\Dokumente", "und" und "Einstellungen\Admin\Desktop\new\Datei.bat" und davon gibt es wohl garnichts, also passiert auch nix |
Re: ShellExecute: Batch wird nicht ausgeführt
Danke für die Erläuterung,
dann werde ich das in Zukunft wohl so machen wie Du mir das jetzt hier geschrieben hast. //Edit: für was steht eigentlich das "nil" ? Danke nochmal. |
Re: ShellExecute: Batch wird nicht ausgeführt
Zitat:
Nullpointer sozusagen, oder einfach ein undefinierter Pointer (mit nil sagst du der function/procedure, dass es für den entsprechenden Parameter keinen Pointer gibt). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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