Avatar billede d34c0n Praktikant
09. juni 2002 - 18:42 Der er 9 kommentarer og
2 løsninger

Åbne HL/CS med kommandoer i Console...?

Jeg er ved at lave noget Half-Life-stof, og så skal der laves en funktion der åbner hl.exe og udfører nogle kommandoer i Console, som f.eks.: "connect *.*.*.*:*"

Hvordan?
Avatar billede olddirty Nybegynder
09. juni 2002 - 19:26 #1
Dav .. jeg er vel en slags ekspert på det område... :D
sig til mig hvad du vil lave så laver jeg et "script" til dig !!
Avatar billede d34c0n Praktikant
09. juni 2002 - 20:01 #2
Jeg har ikke brug for noget script!
Avatar billede hermandsen Juniormester
09. juni 2002 - 20:24 #3
Du kunne måske sende et key-event til programmet...

1. Lav USES på shellapi
2. Lav evt. en variabel: lpKeyState: TKeyboardState; (til status på shift m.v.)
3. Brug følgende kode for at nedtrykke en tast:

keybd_event(ord('A'),0,0,0); // nedtrykker et 'A'
keybd_event(ord('A'),0,KEYEVENTF_KEYUP,0); // løfter tasten igen

For specielle taster såsom cursor op kan du bruge følgende:

keybd_event(vk_up,0,0,0);
keybd_event(vk_up,0,KEYEVENTF_KEYUP,0);

Afhængig af hvor og hvordan din kode fungerer kan det være praktisk med application.processmessages ind imellem.....

Hvis du skal sende tastetryk til andre programmer skal du lige huske at sætte fokus først (jeg har kun anvendt denne metode med Delphi-programmer).

Alt oven stående er hugget fra en nyhedsgruppe en gang! ;)

//hermandsen
Avatar billede d34c0n Praktikant
09. juni 2002 - 20:28 #4
har det noget at gøre med at åbne half-life med en kommando i console?
Avatar billede hermandsen Juniormester
09. juni 2002 - 20:43 #5
Sagde du ikke bare at du ville skrive i konsollen?

Lav en ShellExecute der starter HL og gå derefter ind i konsollen (send et keyboard event "c", mener jeg det er)...

Så laver du en Sleep(10000) for at være sikker på at konsollen er åben, og så sender du bare keyevents som gal! :)
Avatar billede dkn Nybegynder
09. juni 2002 - 20:44 #6
jeg ved ikke rigtig, det kan være hl har paramenter til at gå direkte på en server, det kunne være du skulle kigge efter det...
Avatar billede razersedge Nybegynder
09. juni 2002 - 21:38 #7
marker shellexecute funktionen i delphi og tryk f1, så får du en smule dukumentation over den, bla. med hvilke parametre shellexecute skal have.. derefter sætter du den bare til at åbne "hl.exe" med parametrene "-console +connect 123.123.123.123:27015" (eller hva de nu skal være)...

ikke så svært... har lavet det men har ikke lige koden her og kan ikke huske hele shellexecute funktionen i hovedet, men hvis du har problemer så skriv, så kan jeg lige finde ud af det..
Avatar billede hermandsen Juniormester
09. juni 2002 - 21:41 #8
>>d34c0n
ShellExecute er faktisk ikke så svær... En af mine venner plejer at sige at man bare skal fylde de parametre ud man kende med det man vil, og så skrive 0 i resten! :)
Avatar billede d34c0n Praktikant
09. juni 2002 - 23:09 #9
razersedge>

kan du poste den præciste kode der viser hvor man skriver de paramenter med "connect.." osv..?
Avatar billede d34c0n Praktikant
09. juni 2002 - 23:24 #10
jeg fandt selv ud af det, men i skal have tak :D
Avatar billede razersedge Nybegynder
10. juni 2002 - 00:22 #11
heh.. skulle lige til at finde det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester