commandline parameter
-
Hallo,
ich möchte wenn ich doppelclicke auf eine Datei in meinem Programm ansehen. dies mache ich so:
in denvoid __fastcall TMainForm::FormShow(TObject *Sender) { if (ParamCount()>0) MeineComponent->Öffne(ParamStr(1)); }und das läuft sehr gut, sogar mit eine for Schleife.
Mein Problem ist folgendes:
Ich möchte das Programm über Commandline (ohne öffnen) steueurn, example:
"c:\meinprogramm.exe" /p "C:\datei.xyz" mit dieser Zeile soll die Datei über das Programm gedruckt werden.
Das Problem ist bei mir welche Parameter ist nun gültig für mich, der erste (nur beim doppelclick) oder wenn der erste /p heißt dann gilt ein Druckrotine mit dem parameter 2.
Wie kann ich so was kontrollieren?
danke
C++_Hoby
-
Hallo
Indem du zuerst manuell die ParamStr-Einträge auf deine festgelegten Parameter überprüfst.
bis bald
akari
-
ja das habe ich auch gemacht, das problem ist wenn jemand doppelklickt auf die Datei, dann soll ich paramstr(1) öffnen, aber wenn jemand den commandline benutzt wie "c:\meinprogramm.exe" /p "C:\datei.xyz" dann überprüfe ich paramstr(1) auf /p und drucke paramstr(2), wie soll ich wissen dass manchmal die dateiname als paramstr(1) (im fall des doppelclicks), oder als paramstr(2) im commandline Fall ?
-
Hallo
indem du beide Parameter, wenn vorhanden, auf "/p" überprüfst.
bis bald
akari
-
hi,
ich habe eine bessere Idee, natürlich mit deine Hilfe.
if (ParamCount()==2)
{
//hier handelt es sich um eine doppelclick, also Datei öffnen mit ParamStr(1)
}
else
{
//hier handelt es sich um commandline und ich soll die parameter überprüfen
if (ParamStr(1)=="/p")
//dann drucke mir die Datei ParamStr(2)
}
habe ich recht?
-
Hallo
kannst du so machen, je nachdem wieviel Flexibilität du für weitere Parameter du brauchst.
bis bald
akari
-
danke..
-
hm,
gibt es eine bessere ressource für ein shell extension example als die faq?
um ehrlich zu sein, jemand der das net kann kriegt nen Drehwurm im Gehirn bei der beschreibung.
...
Hast du dort "MyFileExt" eingegeben, so musst du noch einen neuen Schlüssel wieder erzeugen - wieder dort wo du den anderen erzeugt hast und dieser muss dann in diesem Fall auch "MyFileExt" heissen .
...
häääh? also zweimal? an der selben Stelle?Das sind doch nur ne Handvoll lines of code wenn ich das richtig verstehe, wäre jemand vielleicht so nett mir einmal klarheit zu verschaffen?
z.B. ein Beispiel für eine Extension mit 1 paramter (dem dateinamen ansich) wäre GENIAL.und was is wenns schon nen eintrag gibt für die extension?