AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ShellExecute();

Ein Thema von passsy · begonnen am 10. Jul 2007 · letzter Beitrag vom 11. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2   
passsy

Registriert seit: 1. Jan 2007
124 Beiträge
 
#1

ShellExecute();

  Alt 10. Jul 2007, 21:49
ich will eine *.bat ausführen das problem ist aber das ich keinen pfad eingeben kann da das programm auf meinem usb stick laufen soll und somit sich der laufwerksbuchstabe je nach dem ändert. die *.bat befindet sich allerdings in einem unterordner.

wie kann ich das den machen?
Pascal
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#2

Re: ShellExecute();

  Alt 10. Jul 2007, 21:58
ShellExecute(self.Handle,'open',PChar(ExtractFilePath(ParamStr(0))+'unterordner\xxx.bat'),nil,nil,0); ExtractFilePath(ParamStr(0)) -> extrahiert den Pfad der Exe

//Edit: Siehe Slash-Einwand
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.026 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: ShellExecute();

  Alt 10. Jul 2007, 22:36
Zitat von fLaSh11:
ShellExecute(self.Handle,'open',PChar(ExtractFilePath(ParamStr(0))+'unterordner/xxx.bat'),nil,nil,0); ExtractFilePath(ParamStr(0)) -> extrahiert den Pfad der Exe
Dazu 2 Fragen / Anregungen:

1. Müsste statt einem "/" nicht ein "\" stehen? Weiß nicht, ob es unter Win auch geht....

2. IMHO wird kein abschließendes "\" nach ExtractFilePath eingefügt. Das müsste man dann entweder manuell machen (falls Programm in einem Unterorder ist) oder das ganze mittels IncludeTrailingPathDelimiter "automatisch" erledigen. Tip: Vor dem ausführen einfach mal die ganze Befehlszeile mittels ShowMessage anzeigen und ggf. noch etwas herumhantieren

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#4

Re: ShellExecute();

  Alt 10. Jul 2007, 22:39
"..." gibt das Arbeitsverzeichnis von Windows an, wenn mich nicht alles täuscht, d.h. es kann zu Fehlern führen, wenn man auch andere Applikationen ausführt?!

//Edit: Der Querbalken... haste recht^^
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: ShellExecute();

  Alt 10. Jul 2007, 22:41
die 3 punkte waren ein Platzhalter und es ging um den Backslash. Ob man Slash oder BackSlash verwendet ist in den mir bisher untergekommenen Fällen egal.
@scrat1979: Doch, ExtractFilePath lässt den abschließenden Backslash
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.830 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: ShellExecute();

  Alt 10. Jul 2007, 22:41
Für das Arbeitsverzeichnis brauchst du gar nichts angeben. aber ich glaube er gat ... als Platzhalter verwendet.
Markus Kinzler
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#7

Re: ShellExecute();

  Alt 10. Jul 2007, 22:45
Recht haste... kann es aber sein, dass "...\" bei C++ ein bestimmtes Verzeichnis angibt? (Irgendwie ist da was in meinem Hinterstübchen )
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.475 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: ShellExecute();

  Alt 10. Jul 2007, 22:47
\ ist das Wurzelverzeichnis des Arbeitsverzeichnisses. In C/C++ wird dieses außerdem als Escape-Zeichen für Steuersequenzen benutzt. Das hat aber mit Pfadangaben nix zu tun.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
passsy

Registriert seit: 1. Jan 2007
124 Beiträge
 
#9

Re: ShellExecute();

  Alt 11. Jul 2007, 09:56
echt super den pfad zeigts mir mit ner showmessage richtig an leider passiert mit der *.bat gar nix

ideen worans liegen könnte?


ok ma was anderes ich bin auch doof kann ich mir shellexecute nich auch gleich parameter rein machen?

die *.bat
Delphi-Quellcode:
TrueCrypt.exe /lz /q /a /c n /m rm /v pwgeschuetzerstick
action=Mount TrueCrypt Volume
daraus kann man doch n prog schreiben, oder?
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.475 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: ShellExecute();

  Alt 11. Jul 2007, 10:11
Batch-Dateien kannst Du nicht direkt per ShellExecute ausführen, sondern nur über den Kommandointerpreter mit der Batch als Parameter.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf