AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Parameter für eigenes Programm programmieren ...
Thema durchsuchen
Ansicht
Themen-Optionen

Parameter für eigenes Programm programmieren ...

Ein Thema von Amnon82 · begonnen am 18. Feb 2005 · letzter Beitrag vom 18. Feb 2005
Antwort Antwort
Benutzerbild von Amnon82
Amnon82

Registriert seit: 5. Jan 2005
186 Beiträge
 
FreePascal / Lazarus
 
#1

Parameter für eigenes Programm programmieren ...

  Alt 18. Feb 2005, 13:52
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#2

Re: Parameter für eigenes Programm programmieren ...

  Alt 18. Feb 2005, 14:02
Schau in der Delphi Hilfe unter FindCmdLineSwitch.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: Parameter für eigenes Programm programmieren ...

  Alt 18. Feb 2005, 14:09
AFAIR gibts ParamCount und ParamStr doch auch bei Konsolenanwendungen, oder taeusche ich mich da (wieder mal)?

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#4

Re: Parameter für eigenes Programm programmieren ...

  Alt 18. Feb 2005, 14:10
Nein, kann man normal nutzen.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Parameter für eigenes Programm programmieren ...

  Alt 18. Feb 2005, 14:11
Wenn die Eingabe z.B. wie folgt lautet:
Code:
Programm.exe -TXT "ZuoeffendeTXTDatei.txt" -Shutdown
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.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Amnon82
Amnon82

Registriert seit: 5. Jan 2005
186 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Parameter für eigenes Programm programmieren ...

  Alt 18. Feb 2005, 14:48
Ich hab nun diese Funktion gefunden:

Delphi-Quellcode:
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;
Sie stammt aus dieser Unit: UCommandLine

Mit Programm.exe -TXT:"C:\zuoeffendestxtfile" -shutdown kann ich dann bei create mit Hilfe folgendem Codes:

Delphi-Quellcode:
GetCmdLineSwitchValue(Value1,'ecl',False);
Edit2.Text:=value1;
if FindCmdLineSwitch('shutdown', ['-','/'], True) then checkbox2.checked:=true;
Nur wie kann ich die Funktion umschreiben, damit Programm.exe -TXT "C:\zuoeffendestxtfile" -shutdown funktioniert. Sprich ohne dem : hinter -TXT
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Parameter für eigenes Programm programmieren ...

  Alt 18. Feb 2005, 14:50
Oder mal ins Delphi-forum kucken:

sdParams.pas Leichteres Arbeiten mit übergebenden Parameter

Die unit dürfte dafür wie geschaffen sein
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#8

Re: Parameter für eigenes Programm programmieren ...

  Alt 18. Feb 2005, 15:23
Mit if (FindCmdLineSwitch('shutdown')) then kannst du prüfen, ob -shutdown oder /shutdown als Parameter angegeben wurde.

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.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  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 08:57 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