Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Windows Befehl über Delphi Programm ausführen (https://www.delphipraxis.net/104415-windows-befehl-ueber-delphi-programm-ausfuehren.html)

Andidreas 3. Dez 2007 15:27


Windows Befehl über Delphi Programm ausführen
 
aloha,

unter windows kann ich über "Start --> Ausführen..." oder über die tasten kombo "windows + r" einen befehl eingeben der dann unter windows ausgeführt wird...

kann ich das gleiche auch über ein delphi programm machen, ohne das ich hierfür eine .bat oder .cmd datei benötige die ich über shellexecute aufrufe???

Luckie 3. Dez 2007 15:29

Re: Windows Befehl über Delphi Programm ausführen
 
Was willst du denn für einen "Windows"-Befehl* ausführen?

*) Mal davon abgesehen, dass es keine "Windows"-Befehle in diesem Sinne gibt.

Andidreas 3. Dez 2007 15:31

Re: Windows Befehl über Delphi Programm ausführen
 
z.b. folgenden befehl

Zitat:

print U:\Programmierung\LOG\Test_ShipLbl\bin\Temp_ShipLb L\DE_GIS_SHIP_UPS_03_999999.txt/d:lpt2
über diesen kann ich ein txt file an einen drucker senden denn ich mir auf denn lpt2 gemappt hab...

Bbommel 3. Dez 2007 15:37

Re: Windows Befehl über Delphi Programm ausführen
 
Du könntest über ShellExecute oder sonstwie "cmd.exe" mit dem Parameter "/c" aufrufen. Mehr Infos gibts, wenn du eine Kommandozeile startest und dort "cmd /?" eingibst.

Bis denn
Bommel

mkinzler 3. Dez 2007 15:37

Re: Windows Befehl über Delphi Programm ausführen
 
Einfach per ShellExecute aufrufen. Scheint aber ein DOS-Commando(Programm) zu sein und kein windows-Befehl

Andidreas 3. Dez 2007 15:41

Re: Windows Befehl über Delphi Programm ausführen
 
Zitat:

Zitat von mkinzler
Einfach per ShellExecute aufrufen. Scheint aber ein DOS-Commando(Programm) zu sein und kein windows-Befehl

was scheint ein dos-commando programm zu sein???
wenn du mein obigen befehl meinst, dann muss ich dich enttäuschen! mit diesem befehl sende ich lediglich ein text file an einen cab drucker, und das text fiele beinhaltet nur druckerbefehle!


@Bbommel...
du hast nicht zufällig ein beispiel?

Luckie 3. Dez 2007 15:43

Re: Windows Befehl über Delphi Programm ausführen
 
Zitat:

Zitat von Andidreas
du hast nicht zufällig ein beispiel?

Bommel vieleicht nicht, aber das Forum bestimmt; Suchbegriffe sollten klar sein. ;)

Bbommel 3. Dez 2007 15:45

Re: Windows Befehl über Delphi Programm ausführen
 
Zitat:

Zitat von mkinzler
Einfach per ShellExecute aufrufen. Scheint aber ein DOS-Commando(Programm) zu sein und kein windows-Befehl

Stimmt, jetzt wo du es sagst... habs auch in system32 gefunden. Naja, dann kann andidreas mit obiger Lösung wenigstens dir und so aufrufen. ;)

Zitat:

Zitat von andidreas
was scheint ein dos-commando programm zu sein???
wenn du mein obigen befehl meinst, dann muss ich dich enttäuschen! mit diesem befehl sende ich lediglich ein text file an einen cab drucker, und das text fiele beinhaltet nur druckerbefehle!

Doch, "print" ist ein Programm, dass du ganz normal über ShellExecute aufrufen kannst, Hatte ich in meiner ersten Antwort übersehen. Schau mal in c:\windows\system32. Dort findest du dann die Datei "print.exe" - nichts anderes rufst du auf.

Bis denn
Bommel

Andidreas 3. Dez 2007 15:47

Re: Windows Befehl über Delphi Programm ausführen
 
ah ok :-) dann werd ich mir jetzt mal die beschreibung von shellexecute und der print.exe zur brust nehmen...

thx for help ;-)

Andidreas 3. Dez 2007 16:44

Re: Windows Befehl über Delphi Programm ausführen
 
sodele...

habs jetzt hinbekommen das ich mit shellexecute die print.exe aufrufe und zwar so das sie auch das macht was ich will :lol:

mein shellexecute befehl sieht jetzt wie folgt aus:
Delphi-Quellcode:
iRC := ShellExecute(0, 'Open', pBAT, 'C:\LOG\000233.txt/d:LPT2', pDirectory, SW_HIDE);
leider musste ich denn parameter "hart" kodieren...
und hier liegt jetzt auch mein problem...

die parameter sind ja vom typ "pansichar", wie kann ich diesen jetzt einen string wert zuweisen???
wenn ich z.b. folgendes probier
Delphi-Quellcode:
  pParm := ExtractFilePath(Application.ExeName);
erhalte ich die fehlermeldung beim compelieren
Zitat:

Inkompatible Typen 'string' und 'PAnsiChar'
kann mir da vielleicht jemand weiterhelfen?

Apollonius 3. Dez 2007 16:48

Re: Windows Befehl über Delphi Programm ausführen
 
Wie wärs mit einem Cast? PChar(StringVariable)

Andidreas 3. Dez 2007 16:48

Re: Windows Befehl über Delphi Programm ausführen
 
was ist ein "cast" ???

DeddyH 3. Dez 2007 16:49

Re: Windows Befehl über Delphi Programm ausführen
 
Delphi-Quellcode:
sParams := 'C:\LOG\000233.txt/d:LPT2';
iRC := ShellExecute(0, 'Open', pBAT, PChar(sParams), pDirectory, SW_HIDE);

mkinzler 3. Dez 2007 16:49

Re: Windows Befehl über Delphi Programm ausführen
 
Zitat:

die parameter sind ja vom typ "pansichar", wie kann ich diesen jetzt einen string wert zuweisen???
Delphi-Quellcode:
pa = PChar( str);

Andidreas 3. Dez 2007 16:57

Re: Windows Befehl über Delphi Programm ausführen
 
danke für die vielen antworten :-) es funktioniert :-)

wusste gar nicht das es eine funktion zum umwandeln von string in char gibt :oops:

Luckie 3. Dez 2007 16:58

Re: Windows Befehl über Delphi Programm ausführen
 
Zitat:

Zitat von Andidreas
wusste gar nicht das es eine funktion zum umwandeln von string in char gibt :oops:

Gibt es auch nicht. Denn, wie schon geschrieben wurde, handelt es sich um einen Cast. Per Compilermagic wird da ein Datentyp auf einen anderen, kompatibelen, "umgebogen".

Und ein char ist wieder was anderes. Ein char repräsentiert nur ein Zeichen. Ein PChar hingegen ist ein Zeiger auf ein char-Array.

mkinzler 3. Dez 2007 16:59

Re: Windows Befehl über Delphi Programm ausführen
 
Außerdem ist ein PChar kein Char sondern ein Zeiger auf einen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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