![]() |
Parameter für eigenes Programm programmieren ...
Ich programmiere zur Zeit ein kleines Tool, um ein Programm fernzusteuern.
Nun wollte ich meinem Programm schalter über den cmd-befehl spendieren, nur hab ich überhaupt keine Ahnung wie man das anstellt. Zur Zeit benutze ich folgenden Befehl um eine Datei mit meinem Programm zu öffnen: Programm.exe ZuoeffendeTXTDatei.txt Mit if paramcount > 0 then edit2.text:=(paramstr(1)); trage ich den Pfad der TXTDatei in eine Edit. Nun wollte ich dem Programm folgende Schalter spendieren: Programm.exe -TXT "ZuoeffendeTXTDatei.txt" -Shutdown -Shutdown soll im Programm einen Hacken setzen, damit das Programm nach Beendigung den PC herrunterfährt. ... nur komm ich nicht drauf, wie ich solche Schalter für CMD programmieren kann. Bisher hab ich nur GUIs programmiert. |
Re: Parameter für eigenes Programm programmieren ...
Schau in der Delphi Hilfe unter FindCmdLineSwitch.
|
Re: Parameter für eigenes Programm programmieren ...
AFAIR gibts ParamCount und ParamStr doch auch bei Konsolenanwendungen, oder taeusche ich mich da (wieder mal)? :gruebel:
Greetz alcaeus |
Re: Parameter für eigenes Programm programmieren ...
Nein, kann man normal nutzen. :)
|
Re: Parameter für eigenes Programm programmieren ...
Wenn die Eingabe z.B. wie folgt lautet:
Code:
dann kann man doch über Paramstr(3) den 3. Parameter (hier: -Shutdown) erhalten. Dann muss man nur noch prüfen, ob der Parameter auch "-Shutdown" ist, und kann dementsprechend darauf reagieren.
Programm.exe -TXT "ZuoeffendeTXTDatei.txt" -Shutdown
MfG Binärbaum |
Re: Parameter für eigenes Programm programmieren ...
Ich hab nun diese Funktion gefunden:
Delphi-Quellcode:
Sie stammt aus dieser Unit:
function GetCmdLineSwitchValue(out AValue: string; const ASwitch: string; const IgnoreCase: Boolean = True): Boolean;
const CompareFunction: array[Boolean] of function(const s1,s2: string): Integer = ( CompareStr, CompareText ); var iCmdLine,iSplit: Integer; s,sName,sValue: String; begin Result := False; for iCmdLine := 1 to ParamCount do begin s := ParamStr(iCmdLine); if not (s[1] in ['-','/']) then Continue; Delete(s,1,1); iSplit := Pos(':',s); if iSplit = 0 then iSplit := Pos('=',s); if iSplit = 0 then Continue; sName := Copy(s,1,iSplit-1); sValue := Copy(s,iSplit+1,666); if CompareFunction[IgnoreCase](ASwitch,sName) = 0 then begin AValue := sValue; Result := True; Break; end; end; end; ![]() Mit Programm.exe -TXT:"C:\zuoeffendestxtfile" -shutdown kann ich dann bei create mit Hilfe folgendem Codes:
Delphi-Quellcode:
Nur wie kann ich die Funktion umschreiben, damit Programm.exe -TXT "C:\zuoeffendestxtfile" -shutdown funktioniert. Sprich ohne dem : hinter -TXT
GetCmdLineSwitchValue(Value1,'ecl',False);
Edit2.Text:=value1; if FindCmdLineSwitch('shutdown', ['-','/'], True) then checkbox2.checked:=true; |
Re: Parameter für eigenes Programm programmieren ...
Oder mal ins Delphi-forum kucken:
![]() Die unit dürfte dafür wie geschaffen sein :) |
Re: Parameter für eigenes Programm programmieren ...
Mit
Delphi-Quellcode:
kannst du prüfen, ob -shutdown oder /shutdown als Parameter angegeben wurde.
if (FindCmdLineSwitch('shutdown')) then
Das kann auch z.B. so aussehen: name.exe -txt "c:\das ist mein pfad\name.txt" -shutdown -txt und -shutdown werden so als Parameter erkannt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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