AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi ShellExecute: Batch wird nicht ausgeführt
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecute: Batch wird nicht ausgeführt

Ein Thema von coly546 · begonnen am 21. Apr 2009 · letzter Beitrag vom 21. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2      
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#1

ShellExecute: Batch wird nicht ausgeführt

  Alt 21. Apr 2009, 02:47
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:
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.
Meine Problem ist, dass die Batch-Datei nicht ausgeführt wird.
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: ShellExecute: Batch wird nicht ausgeführtProblem

  Alt 21. Apr 2009, 03:03
Was besagt ger Rückgabewert der Funktion?
$2B or not $2B
  Mit Zitat antworten Zitat
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#3

Re: ShellExecute: Batch wird nicht ausgeführtProblem

  Alt 21. Apr 2009, 03:05
Öhm...Rückgabewert?
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...

PS: man sollte nicht mehr so spät programmieren...
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#4

Re: ShellExecute: Batch wird nicht ausgeführtProblem

  Alt 21. Apr 2009, 03:15
Das Problem ist, dass eine Batchdatei nunmal über die Kommandozeile ausgeführt wird, und nicht über den Explorer.

Es sollte so klappen:

ShellExecute(0,'open','cmd','C:\Dokumente und Einstellungen\Admin\Desktop\new\Datei.bat',nil,SW_HIDE); Nacht,
Daniel

//Edit: Ach, geht doch? Wieder was gelernt...
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: ShellExecute: Batch wird nicht ausgeführt

  Alt 21. Apr 2009, 04:46
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: ShellExecute: Batch wird nicht ausgeführtProblem

  Alt 21. Apr 2009, 05:02
Zitat von Daniel G:
//Edit: Ach, geht doch? Wieder was gelernt...
Du kannst ja auch im Windows Explorer darauf doppelklicken. Wenn du aber sie so ausführen möchtest wie du es geschrieben hast, dann fehlen die Anführungszeichen und der Parameter /c oder /k.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#7

Re: ShellExecute: Batch wird nicht ausgeführt

  Alt 21. Apr 2009, 20:31
Danke für alle Antworten.
Die Batch-Datei wird auch ausgeführt, wenn ich "mein" Code verwende.

Schön Abend noch
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: ShellExecute: Batch wird nicht ausgeführt

  Alt 21. Apr 2009, 21:56
die " sind aber nur bei den Parametern nötig.
denn dort werden die ' ' (Leerzeichen) als Trennzeichen verwendet
Delphi-Quellcode:
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);
hier führt cmd praktisch 3 Dateien aus
[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
$2B or not $2B
  Mit Zitat antworten Zitat
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#9

Re: ShellExecute: Batch wird nicht ausgeführt

  Alt 21. Apr 2009, 22:59
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.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#10

Re: ShellExecute: Batch wird nicht ausgeführt

  Alt 21. Apr 2009, 23:09
Zitat von coly546:
für was steht eigentlich das "nil" ?
nil = "nüscht"

Nullpointer sozusagen, oder einfach ein undefinierter Pointer (mit nil sagst du der function/procedure, dass es für den entsprechenden Parameter keinen Pointer gibt).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz