Entwickler-Ecke

Sonstiges (Delphi) - Exe Starten!!


deagle - Sa 24.08.02 15:45
Titel: Exe Starten!!
Hi!
Was ich wollte ist ich habe ein edit1 Feld gemacht und wolte fraen wie ich eine
Exe Starten kann wenn ich auf ein Buton klicke und das der den Text
hinter der exe schreibt z.b C:\Sierra\Counter-Strike\cstrike.exe
+console +Ip(aus dem edit1feld


DeCodeGuru - Sa 24.08.02 15:48

such mal im Forum nach ShellExecute. Da müssteste so zwischen 20 und 30 Treffer haben. Ich denke, dass du dich alleine zurechtfinden wirst. :wink:


deagle - Sa 24.08.02 16:03

ShellExecute(Application.Handle,'open',PChar(Edit1.Text),0,0,0); Ich habe den Code gefunde nur wo muss ich den jetzt eintragen?? Also den Pfad ???


DeCodeGuru - Sa 24.08.02 17:41

Hier haste die Definition aus der PSDK. Damit wird dir sicher alles klar. :mrgreen:

Zitat:
HINSTANCE ShellExecute( HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);


deagle - Sa 24.08.02 18:13

ne irendwie versth ich das nicht kannst mir ne Kleine Beschreibung geben ??


SMI - Sa 24.08.02 19:07

Wenn dir shellexecute zu kompliziert ist, nehm einfache WinExec.
WinExec(PCHAR(Pfad als String), SW_SHOW)

Also:
WinExec(Pchar('d:\c33setup.exe'),SW_SHOW)

SMI


deagle - Sa 24.08.02 19:21

WinExec(Pchar('C:\Sierra\Counter-Strike\cstrike.exe -console -connect (Edit.Text)'),SW_SHOW)

jo thx nur wie mach ich jetzt das der das aus den edit1 textfeld rausnimmt??

WinExec(Pchar('C:\Sierra\Counter-Strike\cstrike.exe -console -connect (Edit.Text)'),SW_SHOW)

mit (Edit1.Text) geht das nicht ist das den so richtig ??[/code]


deagle - Sa 24.08.02 19:22

jo thx nur wie mach ich jetzt das der das aus den edit1 textfeld rausnimmt??


Quelltext
1:
WinExec(Pchar('C:\Sierra\Counter-Strike\cstrike.exe -console -connect (Edit.Text)'),SW_SHOW)                    


mit (Edit1.Text) geht das nicht ist das den so richtig[/code]


SMI - Sa 24.08.02 19:31

Zitat:
'C:\Sierra\Counter-Strike\cstrike.exe -console -connect (Edit.Text)'


Du meinst PCHAR('C:\Sierra\Counter-Strike\cstrike.exe -console -connect '+edit1.text)

Alles innerhalb der Apostropen gehört zu einem String, wenn du an einen String einen weiteren anhängen willst musst du den plus Operator verwenden!

SMI


deagle - Sa 24.08.02 19:56

jo ich meinte der soll nach dem +connect die ip aus dem edi1 text feld nehemen!! Daswas du mir gesagt hast geht nicht!!


SMI - Sa 24.08.02 20:08

Ich habe gerade extra nochmal eine Anwendung geschieben um das zeug zu testen und bei mir klap es wunderbar, mit der folgenden Zeile übergebe ich an mein testprogramm Project1 den ParameterString /Test und auch den inhalt von label1.caption.
winexec(pchar('D:\project1.exe /test'+label1.caption),SW_NORMAL);

Deine Zeile müsste folgender maße aussehen

WinExec(PCHAR('C:\Sierra\Counter-Strike\cstrike.exe -console -connect '+edit1.text) ,SW_SHOW);

Also welche Fehlermeldung bekommst du den eigentlich, wenn es bei dir nicht klappt?


SMI


deagle - Sa 24.08.02 22:20

jo klappt :) Thx nochne frage wie ist es kann man das so machen wen man ein hackechen macht das man dan password eingeben kann ?? +passowrd muss dahinter wenn eins ist ich will das der das dahinterschreibt wenn man son abhackhäkchen macht geht das ??


Ex0rzist - Sa 24.08.02 22:32


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Var passwd :String;
Begin
If Password.Checked then  //deine CheckBox (das Ding zum Abhaken)  ;)
 passwd := PasswortEdit.Text  
else
 passwd := '';
WinExec(PCHAR('C:\Sierra\Counter-Strike\cstrike.exe -console -connect '+edit1.text+' -password '+Passwd) ,SW_SHOW);
end;


Gegebenfalls musst du den Parameter "-password" ändern, da ich nicht weiss, wie es sein muss. Aber das Prinzip müsste eigentlich klar sein.

__________

Ex0rzist


deagle - Sa 24.08.02 22:43

jo erswtmal Thx für schnelle antword das zeigt der mir rot an If Password.Checked then muss ich erst eine Password check box machen ?? Wen ja wie ??


Ex0rzist - Sa 24.08.02 22:59

Ich hatte doch geschrieben: deine Checkbox (das Ding zum Abhaken).
Dazu suchst du dir die Komponente mit dem Häkchen aus (=Checkbox).
Das nennst du dann Password (im Objektinspektor ändern).

Dann vergiß auch nicht, ein EditFeld für das Passwort zu nehmen.
(umbenennen in PasswortEdit)

Dann fällt mir noch ein, dass wenn der Parameter Passwort übergeben wird, muss ja bestimmt auch was drinstehen. Deshalb mach es so:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Var passwd :String; 
Begin 
If Password.Checked then  //deine CheckBox (das Ding zum Abhaken)  ;) 
passwd := ' -password '+PasswortEdit.Text  
else 
passwd := ''; 
WinExec(PCHAR('C:\Sierra\Counter-Strike\cstrike.exe -console -connect'+edit1.text+Passwd) ,SW_SHOW); 
end;


Jetzt müsste alles klappen.

___________

Ex0rzist


deagle - Sa 24.08.02 23:34


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Var passwd :String; 
Begin
If PasswordEdit.Checked then  CheckBox1
passwd := ' -password '+PasswordEdit.Text
else
passwd := '';
WinExec(PCHAR('C:\Sierra\Counter-Strike\cstrike.exe -console -connect'+edit1.text+Passwd) ,SW_SHOW);
end;


Ich glaube ich bin zu Blöd dafür! :) CheckBox heisst CheckBox1 und das editfeld Edit1 wie muss ich das den fertig machen ???


SMI - So 25.08.02 02:30

So am Besten nennst du deine Checkbox cbPasswort, dein Eingabefeld für das Passwort edtPasswort, das Eigabfeld für die IP nennst du dann bitte auch passenderweise edtIP, dadurch wird für dich der Code besser lesbarer. Den Standartnamen von Komponenten(z.B. Edit1) kann man im Objektinspektor unter dem Eintrag "Name" ändern. Der dazu passende Quellcode, formschön dargestellt, extra für dich mit Kommentaren versehen, folgt:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
// Variablen Deklarieren
VAR
  sPasswd : String; 
BEGIN
 // cbPasswort angekreuzt ?
 IF cbPasswort.Checked THEN
   //... ja -> Passwort aus edtPasswort in sPasswd übernehmen
   sPasswd := ' -password '+edtPasswort.Text 
 ELSE 
  //... nein -> sPasswd bleibt leer
   sPasswd := '';
 
 // Counterstrike Starten
 WinExec(PChar('C:\Sierra\Counter-Strike\cstrike.exe -console'
                         + ' - connect'+edtIP.Text
                         + sPasswd) ,SW_SHOW); 
END;



SMI

P.S.: Du solltest dir mal in einem Anfängertutorial die Grundzüge von Delphi antun.


Ex0rzist - So 25.08.02 02:35

Hallo deagle,

wenn ich dich richtig verstanden habe, brauchst du 2 Edit-Felder (Game und Passwort). Angenommen dein Passwort-Edit heisst Edit2 und deine CheckBox Checkbox1 dann sieht das so aus:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Var passwd :String; 
Begin 
If CheckBox1.Checked then
passwd := ' -password '+Edit2.Text 
else 
passwd := ''; 
WinExec(PCHAR('C:\Sierra\Counter-Strike\cstrike.exe -console -connect'+edit1.text+Passwd) ,SW_SHOW); 
end;


Es wäre aber sehr viel besser für dich, wenn du dir ein Anfängerbuch zulegen würdest oder zumindest die Tutorials durchführen würdest.
Ich denke nämlich nicht, dass es dir hilft, wenn wir hier den Code für dich schreiben.


__________

Ex0rzist


Ex0rzist - So 25.08.02 02:37

Mist, da war jemand schneller als ich. :mrgreen:

____________

Ex0rzist


SMI - So 25.08.02 02:56

:twisted: HA HA - :lol: wer zu spät kommt, den bestraft das leben!

SMI


deagle - So 25.08.02 04:12

Hi

Kennste denn Gute Seiten wo ich ein bisschen Delphi lernen kann ??


Delete - So 25.08.02 08:50

Die in Delphi eingebaute Hilfe (F1) enthält viele Seiten, auf denen man was lernen kann.


DeCodeGuru - So 25.08.02 09:59

ansonsten guck mal auf AUQ.de :mrgreen: :wink:


MathiasH - So 25.08.02 10:16

derer gibts viele :mrgreen: :
1.schau mal hier unter links nach
2. andere Seiten:
Delphipages.com //Kompos ohne ende
http://codecentral.borland.com
http://www.inner-smile.com
und viele andere.......

Was genau suchst du denn? E-Books?

MathiasH


SMI - So 25.08.02 13:54

Ansonsten gibt es auch viele gute Bücher die haben den Vorteil, das man die auch ohne PC durcharbeiten kann. Einfach mal in eine große Buchhandlung gehen, alles was mit Delphi zu tun hat durchblättern und anlesen. Das für dich verständlichste Buch mitnemen. Es gibt viele hervoragende Taschenbücher, und auch viel unsagbar schlechte Übersetzungen englischer Bücher.


SMI