shellexecute mit parametern....



  • mach vielleicht hinter +connect nen leerzeichen. könnte daran liegen



  • Hallo,

    Versuch's mal so :

    [b]AnsiString Parameter = "-game cstrike +connect" + Edit1->Text;[/b]
    ShellExecute(NULL,
                 "open",
                 "C:\\Programme\\Valve\\hl.exe",
                 [b]Parameter.c_str()[/b],
                 "",
                 NULL);
    

    Bis dann denn,
    🙂
    Nash



  • ne geht leider nicht passiert das glieche wie das was ich ausprobiert habe


  • Mod

    Hallo

    was spricht der Debugger :p
    was geht nicht
    welcher Fehler tritt auf
    wie wird das Programm normalerweise gestartet
    (C:\\Programme\\Valve\\hl.exe-game cstrike +connect)
    (C:\\Programme\\Valve\\hl.exe -game cstrike +connect)

    hast du versucht damit dein Programm aufzurufen
    geht es so ?

    MfG
    Klaus



  • Hallo

    außerdem hat ShellExecute einen Rückgabewert. In der SDK-Hilfe zu ShellExecute steht, was der bedeudet.

    bis bald
    akari



  • hä? welchen rückgabewert denn????
    sry aber irgendwie klappt das alles nicht



  • Hallo

    hast du dir schon mal die MSDN angeschaut?
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp
    siehe Abschnitt Return Values

    bis bald
    akari



  • #include<windows.h>
    
    int main()
    {
    ShellExecute(0, "open","C:\\Meine Datei.exe","-s -t20",C:\\,0)
    return 0;
    }
    

    So klappt es bei mir wunderbar!
    Nehmen wir den Code einmal auseinander:

    ShellExecute(0,

    Der aufzurufenden ShellExecute Funktion wird der Handle 0 übergeben.

    ShellExecute(0,"open",

    "open" öffnet alle Dokumente, damit sind executable inbegriffen.

    ShellExecute(0,"open","C:\\Meine Datei.exe"

    Der Pointer auf einen konstanten String wird übergeben.

    ShellExecute(0,"open","C:\\Meine Datei.exe","-s -t20"

    Die Parameter werden hinzugefügt, beim ersten Pararmeter sehe der aufruf dann so aus:
    Meine Datei.exe -s
    Man könnte denken er macht:
    Meine Datei.exe-s aber dem ist nicht so weil das den Shell aufruf stören würde 😉

    Also wird die Datei wie folgt geöffnet: Meine Datei.exe -s -t20.

    ShellExecute(0,"open","C:\\Meine Datei.exe","-s -t20",C:\\

    C:\\ ist der Pfad zur Datei sollte man mit Angeben!

    ShellExecute(0,"open","C:\\Meine Datei.exe","-s -t20",C:\,0)

    So als letztes noch die 0 sie steht für die Parameter zum öffnen der Datei!
    Zb. SW_MAXIMIZE Maximiert das geöffnete Programm einfach die 0 ersetzen ;=)

    Das war es schon jetzt viel Spaß beim Knobeln, ich hoffe du verschonst uns in Zukunft mit solchen fragen 😉



  • Hallo,

    C:\\ ist der Pfad zur Datei sollte man mit Angeben!

    Ja, aber so :

    #include<windows.h>
    
    int main()
    {
    ShellExecute(0, "open","C:\\Meine Datei.exe","-s -t20",[b]"C:\\"[/b],0)[b];[/b]
    return 0;
    }
    

    Ich versteh' jetzt auch nicht, was es hier für Probleme geben kann. Bei mir funktionieren die Aufrufe, auch mit Paramateren, einwandfrei.

    Bis dann denn,
    🙂
    Nash



  • Ja da ist mir ein Fehler unterlaufen den Pfad natürlich mit "" angeben !



  • ihr deppen vlei guggt ihr mal in die FAQ!



  • Hallo,

    Sunday schrieb:

    ihr deppen vlei guggt ihr mal in die FAQ!

    Darf man mal fragen, wen Du damit meinst...?

    P.S.:
    Vielleicht schreibst Du das nächste mal Deutsch... ick versteh' dir ey, andere valeicht nich... 🙄

    Bis dann denn,
    🙂
    Nash



  • hi nash
    sweit war ich auch schon aber

    #include<windows.h>
    
    int main()
    {
    ShellExecute(0, "open","C:\\Meine Datei.exe","-s -t20","C:\\",0);
    return 0;
    }
    

    aber ich wollte aus Edit1->Text den parameter nehmen
    ungefähr so

    ShellExecute(NULL, 
                          "open", 
                          "C:\\Programme\\Valve\\hl.exe", 
                          "-game cstrike +connect" + Edit1->Text, 
                          "",NULL);
    

    nur das funzt nit



  • hi,
    ich hatte weiter oben glaube ich schon einmal geschrieben, dass du mal hinter +connect ein leerzeichen machen solltest.
    sonst kommt, wenn du in edit1->text = "test" setzt,

    ShellExecute(NULL, 
                          "open", 
                          "C:\\Programme\\Valve\\hl.exe", 
                          "-game cstrike +connect[b]test[/b], 
                          "",NULL);
    

    raus



  • Hallo,

    Stimmt, die Leerstelle fehlte wohl noch...

    AnsiString Parameter = "-game cstrike +connect " + Edit1->Text; 
    ShellExecute(NULL, 
                 "open", 
                 "C:\\Programme\\Valve\\hl.exe", 
                 Parameter.c_str(), 
                 "", 
                 NULL);
    

    Falls das auch nicht gehen sollte, wäre es nett, wenn Du mal "geht nicht" genauer definieren würdest... 🙂

    Bis dann denn,
    🙂
    Nash



  • !THX!
    es funzt 🙂


Anmelden zum Antworten