2 Parameter an Programm mit ParamStr() übergeben
-
Hallo Leute,
hab das Forum schon nach ParamStr() durchsucht. Bräuchte jetzt aber mal ein Beispiel.
Ich möchte ein GUI Programm schreiebn. Über PHP öffne ich das Programm mit exec und übergebe ihm 2 Pfad angaben. Diese Pfadangaben brauche ich dann im Programm. Wo fange ich die Parameter auf? Füge ich im WinMain meine ParamStr(1) und ParamStr(2) ein? Wie bekomme ich diese Variablen dann in meine eigentliche Funktion?
Ich bin was Borland angeht noch ein absoluter Newbie.
Würde mich über ein kleines Beispiel sehr freuen.
Danke im Voraus,
Gruß Sergio
-
ParamStr() ist nur zu verwenden wenn du mit einer Form arbeitest, da beginnt man dann bei 1... 0 ist der eigene Pfad. Was du brauchst ist einer der Parameter, die in der WINMAIN schon drinstehen, irgendwas mit CmdLine oder so... hab jetzt grad keinen Builder da.
-
Hallo,
Das hier ist Deklaration von WinMain
WINAPI WinMain(HINSTANCE cinst, HINSTANCE pinst, LPSTR lpCmdLine, int)in lpCmdLine ist deine Commandline. Die musst du dann nur noch auswerten.
Ciao
-
Danke erstmal für die Antworten.
Ich schreibs jetzt noch mal detailierter auf.
Ich möchte in Borland ein GUI Programm schreiben.
Nun bin ich in meinem PHP Script und rufe über den exec Befehl meine Programm auf, dem ich 2 Parameter in Form von zwei Pfadangaben übergebe.
Pfad 1 könnte D:\verzeichnis\ sein
Pfad 2 könnte \\IP des Host\freigabe seinNun soll mir das Programm den Inhalt von Pfad 1 nach Pfad 2 kopieren. Nun brauche ich in meiner Funktion, welche kopiert, diese zwei Pfadangaben.
Wäre um Beispiele sehr dankbar, dass ich es auch nachvollziehen kann. Bin wie gesagt noch nicht so fitt. Lerne erst durch die Sachen die ich mache.
WIE und WO muss ich jetzt was eintragen, dass ich in meiner Funktion diese beiden Pfade zur Verfügung habe?
P.S. Ich erstelle ja eine Anwendung. Daher habe ich ja dann auch ein Formular. Möchte ja dann später auch noch ein Statusbalken ausgeben lassen, der mir den Fortschritt der Kopieraktion anzeigt.
-
Beim BCB (zumindest 4.0) kannste die Parameter JEDERZIT im Programm abrufen mit ParamStr(Nummer)! Das liefert Dir nen AnsiString!
Ich hol die mir i.a. im OnCreate der HauptForm und speichere die in eigene Variablen.
ParamStr(0) ist der Pfad+Name der EXE
ParamStr(1) .. ParamStr(x) sind die Parameter!PS: pruefe mit ParamCount(), wieviele Parameter da sind!
-
Bei Pfaden muss man hier aber aufpassen. Wenn da Leerzeichen drin sind und der Pfad nicht in Anführungsstrichen steht wird er in Paramstr zerstückelt auftauchen.
-
Das ist Windoof- typisch!
In CmdLine sollten die auch drin sein! Sonst weis der Geier, wieviele Ramapeter da sind.

-
Wenn du lpCmdLine nimmst bist du halt selber dafür verantwortlich deine Parameter zu zählen. Mir ist das so lieber, da ich so etwas mehr Kontrolle über die Auswertung habe. Wenn es z.Bsp. wichtig wäre wieviele Leerzeichen in deinem Parameterstring sind (kann mir aber nicht vorstellen wozu), kommst du an lpCmdLine kaum vorbei.
-
DerAltenburger schrieb:
Das ist Windoof- typisch!
Höre ich da eine Anspielung heraus? Bitte nicht persönlich werden jetzt, ja!
In CmdLine sollten die auch drin sein! Sonst weis der Geier, wieviele Ramapeter da sind.

Ich wusste jatzt nicht aus dem Kopf die der Parameter heißt, zumal es keinen festen NAmen gibt, man kann ihn auch umbenennen, den Parameter aber ich denke mal dass JEDER weiß, was ich damit gemeint habe. Nun komm mal wieder runter.
-
Nicht streiten ;o)
Danke für die Aussagen! Ja das mit den Anführuungszeichen weiß ich, aber trotzdem danke fürs erwähnen. Werde es heute Abend mal probieren.So wie es geschrieben wurde, kann ich ja eindfach in meiner Hauptfunktion die Parameter dann über den Aufruf benutzen. Dachte ich muss das alles direkt in der WinMain machen.
Wenns nicht geht, melde ioch mich heute Abend noch mal ;o)
-
Windoof schrieb:
DerAltenburger schrieb:
Das ist Windoof- typisch!
Höre ich da eine Anspielung heraus? Bitte nicht persönlich werden jetzt, ja!
Jaaa. Das war ne Anspielung!

Aber nicht fuer Dich, Windoof, persoenlich.

Damit meine ich "Microsaft Windoof"
PS: Solltest Du Dich beleidigt fuehlen, nehme ich hiermit alles zurueck und behaupte das Gegenteil. Und das erklaere ich hiermit auch fuer gelogen!
