shellexecute mit parametern....
-
hi
ich wollte shellexecute mit parametern aus nem TEdit starten funzt aber nichtShellExecute(NULL, "open", "C:\\Programme\\Valve\\hl.exe", "-game cstrike +connect" + Edit1->Text, "",NULL);
plz can some1 help me
-
Hallo
ShellExecute erwartet reine Null-terminierte Strings (char *), also mußt du Edit1->text erst konvertieren : Edit1->text.c_str()
bis bald
akari
-
"Funktioniert nicht" ist keine ausreichende Problembeschreibung.
-
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
-
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 Valuesbis 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ürdeAlso 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 soShellExecute(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