AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Starten einer Batch mit Shellexecute
Thema durchsuchen
Ansicht
Themen-Optionen

Starten einer Batch mit Shellexecute

Ein Thema von snt1965 · begonnen am 2. Mär 2016 · letzter Beitrag vom 2. Mär 2016
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 10:05
Handelt es sich dabei um einen Windows 2008-Server? Bei dem funktioniert in der Aufgabenplanung das direkte Starten einer Batch nicht, dort muss man die cmd.exe mit der Batch als Parameter starten. Dürfte bei Windows 7 auch auftreten.
Genau das tut er doch...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 10:38
Warum kommt keiner auf die Idee das arme CMD mal zu fragen, warum es nicht will?

Ausführen > CMD > CMD /?


PS: Mit sowas wie ShellExecuteAndWait (ShellExecuteEx) kann man devcon.exe auch direkt ausführen.
(wegen dem Warten, sonst auch direkt per ShellExecute ohne CMD oder Batch drumrum)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 10:39
Da fehlt aber dann beim Parameter ein /c vor der Batch. Ansonsten geht nur eine cmd auf und tut nix. Kann man einfach auch so testen.

also:
PioEA:='/c c:\Users\TF\Delphi\Devcon\WDK7.1.0\DisEnPIO.bat';
Siehe auch hier: http://stackoverflow.com/questions/3...rameter-to-cmd

Geändert von bra ( 2. Mär 2016 um 11:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 10:41
Dürfte bei Windows 7 auch auftreten.
Ich lass hier auf einem Win7-Rechner per Aufgabenplanung problemlos eine Batch ausführen, welche 'nen SVN aktulisiert.

Aber wenn es mit .bat Probleme gibt, dann nehmt einfach das (neuere) .cmd, mit selben Inhalt,
bzw. auf Windows Server auch gern mal mit PowerShell rumspielen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 10:44
Ich lass hier auf einem Win7-Rechner per Aufgabenplanung problemlos eine Batch ausführen, welche 'nen SVN aktulisiert.
Ich weiss nur, dass dieses Problem bei Windows 2008 existiert. Per Aufruf über die CMD funktioniert es dort auch, muss man halt nur wissen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 11:42
Bei meinem Schlepptop ist irgendwann mal die Verknüpfung für .bat kaputt gegangen.
.bat werden im Notepad geöffnet, aber nicht ausgeführt ... k.A. was da paputt ist.

Doppelklick im Explorer und ShellExecute auf .bat, ohne CMD davor, gehen da auch nicht.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
666 Beiträge
 
Delphi 12 Athens
 
#7

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 11:45
Wenn du schreibst, dass du aus der durch Delphi geöffneten cmd heraus auch nicht auf die Batch zugreifen kannst, dann sieht das doch vielleicht nach einem Berechtigungsproblem aus. Läuft das Delphi-Programm vielleicht als anderer User, sodass das Problem mit der Tatsache, dass es eine Batch-Datei ist, eigentlich gar nichts zu tun hat?

Kannst du in dem cmd-Fenster, das durch dein Delphi-Programm geöffnet wurde, mit "cd" in das Verzeichnis wechseln?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 11:57
Wenn du schreibst, dass du aus der durch Delphi geöffneten cmd heraus auch nicht auf die Batch zugreifen kannst, dann sieht das doch vielleicht nach einem Berechtigungsproblem aus.
Vielleicht nerve ich etwas aber woher nehmt ihr diese alle diese Vermutungen?
Der erste offensichtliche Fehler, der 90% aller Theorien hier zumindest vorerst zunichte macht ist, dass er PChar(PioEA) beim Aufruf von Shellexecute in Anführungszeichen gesetzt hat:
Delphi-Quellcode:
shellExecute(0,
         'open',
         'cmd',
         'PChar(PioEA)', // <---------- !!
         nil,
         SW_SHOW)
Die einzige weitere sinnvolle Bemerkung war, dass er (wenn er die Datei indirekt über cmd ausführt, statt direkt die Batchdatei auszuführen) ein "/C" vor den Dateinamen der .bat setzen muss.
Alles andere ist (unbegründete) Spekulation oder Offtopic
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
666 Beiträge
 
Delphi 12 Athens
 
#9

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 12:04
Meine Vermutung (die aber erst mal nur eine Frage war) nehme ich aus seiner Fehlerbeschreibung. Und ich nehme weiter an, dabei wird er seine Batchdatei nicht auch noch mit den Anführungszeichen aufgerufen haben.
  Mit Zitat antworten Zitat
snt1965

Registriert seit: 20. Jun 2015
13 Beiträge
 
Delphi XE3 Professional
 
#10

AW: Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 12:46
Hallo zusammen,

danke für die Hinweise.
Das System ist Win7 prof. 64bit.

Ich habe bei PCHar die Anführungszeichen weggelassen. Hat aber auch nicht geholfen bzw. bei der Version mit 'runas' kommt nun:
"c:\windows\system32\devcon" konnte nicht gefunden werden. Stellen Sie sicher ... wiederholen Sie den Vorgang.
Devcon liegt aber im angegeben Pfad!!
Es ist wohl doch eher ein Rechteproblem von Win7 - aber wie kann man das lösen bzw. herausbekommen, ob es das ist?
Eigentlich sollte es gehen, da ich auf dem PC als Admin angemeldet bin.

Das mit /C vor CMD hatte ich auch schon versucht, hat aber nicht geholfen.

Ich werde als nächstes testen, DEVCON direkt über ShellexecuteEx zu starten.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 06: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 by Thomas Breitkreuz