Het volgende doet zich voor: ik ben een kleine servermanager aan 't bouwen voor Counter-Strike. Hij leest de master-server keurig uit. Als ik dubbelklik op een server voert hij onderstaande ShellExecute uit:
FServerlist.GetHostPort(Index) geeft de server in formaat "ipadres:poort" terug.
Het connecten lijkt prima te gaan: de motd etc komt voorbij, het duurt even, de console schuift dan omhoog, je ziet onderaan al een klein stukje van 't level en *PLOEP*, dan schiet hij terug naar Windows, zonder foutmelding oid. Ook zie ik geen rare meldingen in de console, ook niet vlak voordat hij exit. Ik heb met "+log on" een log laten aanmaken maar dat wordt een leeg tekstbestand.
De server is niet vol of iets dergelijks. Gewoon 'connect <hier het IP-adres>' in de console intypen gaat wel goed, net als het veranderen van de shortcut in Windows (+connect host:port erachter). Ik vraag me dus af wat er anders is aan mijn ShellExecute. De handle heb ik al eens veranderd in Application.Handle, SW_SHOWNORMAL heb ik al eens veranderd in SW_SHOW, maar niets helpt.
Ik snap er geen hout van. Rara wat doe ik fout?
[edit]
Als ik de executable in C:\SIERRA\Half-Life zet werkt het wel goed!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| procedure TMainform.Join(const Index: integer);
var
MyFile, MyParameters, MyDefaultDir: string;
begin
RichEdit1.Lines.Add('Connecting to ' + FServerlist.GetHostPort(Index));
MyFile := 'C:\SIERRA\Half-Life\hl.exe';
MyParameters := '-console -game cstrike +connect '
+ FServerlist.GetHostPort(Index);
MyDefaultDir := 'C:\SIERRA\Half-Life';
ShellExecute(
Handle,
'open',
PChar(MyFile),
PChar(MyParameters),
PChar(MyDefaultDir),
SW_SHOWNORMAL);
end; |
FServerlist.GetHostPort(Index) geeft de server in formaat "ipadres:poort" terug.
Het connecten lijkt prima te gaan: de motd etc komt voorbij, het duurt even, de console schuift dan omhoog, je ziet onderaan al een klein stukje van 't level en *PLOEP*, dan schiet hij terug naar Windows, zonder foutmelding oid. Ook zie ik geen rare meldingen in de console, ook niet vlak voordat hij exit. Ik heb met "+log on" een log laten aanmaken maar dat wordt een leeg tekstbestand.
De server is niet vol of iets dergelijks. Gewoon 'connect <hier het IP-adres>' in de console intypen gaat wel goed, net als het veranderen van de shortcut in Windows (+connect host:port erachter). Ik vraag me dus af wat er anders is aan mijn ShellExecute. De handle heb ik al eens veranderd in Application.Handle, SW_SHOWNORMAL heb ik al eens veranderd in SW_SHOW, maar niets helpt.
Ik snap er geen hout van. Rara wat doe ik fout?
[edit]
Als ik de executable in C:\SIERRA\Half-Life zet werkt het wel goed!
[ Voor 13% gewijzigd door Bergen op 04-09-2003 07:48 ]