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
 
snt1965

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

Starten einer Batch mit Shellexecute

  Alt 2. Mär 2016, 08:19
Hallo zusammen!

Ich habe ein Problem beim Starten einer Batch mit Shellexecute.
So sieht der Code aus:

Delphi-Quellcode:
procedure Open_Devcon;
var PioEA,Pio_ein,Pio_aus,Devcon_path:string;
begin
  PioEA:='c:\Users\TF\Delphi\Devcon\WDK7.1.0\DisEnPIO.bat';

  showmessage(IntToStr(shellExecute(0,
         'open',
         'cmd',
         'PChar(PioEA)',
         nil,
         SW_SHOW)));

  {  showmessage(IntToStr(shellExecute(0,
        'runas',
        'PWideChar(PioEA)',
        nil,
        nil,
        SW_SHOW)));
}
Wie man sieht, habe ich es mit zwei Varianten getestet (eine ist gerade auskommentiert).
Die gerade aktive Variante mit 'CMD' öffnet das CMD-Fenster, führt aber die Batch nicht aus. Shellexecute gibt hier eine 42 zurück.

Interessanter Nebeneffekt:
Gebe ich im noch offenen CMD-Fenster, das aus Delphi gestartet wurde, die Befehle der Batch bzw. die Batch selbst von Hand ein, wird das Programm aus der Batch bzw. die Batch nicht gefunden!
Öffne ich ein neues CMD-Fenster und mache das gleiche, funktioniert es!
Starte ich die Batch direkt oder über einen Link - funktioniert es.

Die auskommentierte Variante startet die Batch garnicht und Shellexecute gibt eine 2 zurück. Die Pfade stimmen aber - mehrfach geprüft.
Ich habe auch schon versucht, die Batch über einen Link zu starten. Hat aber auch nicht funktioniert.

Hier noch der Inhalt der Batch-Datei:
start /wait c:\Windows\System32\devcon disable USB\VID_09CA*
start /wait c:\Windows\System32\devcon enable USB\VID_09CA*

Die Batch startet über DEVCON ein USB-Device neu (was manchmal abstürzt, da es durch das Schalten großer Relais gestört wird).

Hat da jemand eine Idee dazu bzw. wie ich mein USB-Device per Software wieder aktivieren kann, ohne dass der Bediener etwas machen muss (soll im Hintergrund laufen)?

Danke!
Frank
  Mit Zitat antworten Zitat
 

 

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 04:51 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