Bien je vais essayer de faire simple, sans bases de données, ni authentification. Juste pour que tu pige la procédure.
tu installes PHP sur le serveur sur-lequel est installé ton module., tu crée une page avec deux boutons :
- Arrêter le serveur
- Démarrer le serveur
<html>
<head>
<title>nwn rebooteur</title>
</head>
<body>
<form action="stop.php" method="post" name="stop" target="_blank">
<input name="Arrêter" type="submit" value="stop">
</form>
<form action="start.php" method="post" name="start" target="_blank">
<input name="Démarrer" type="submit" value="start">
</form>
</body>
</html>
Si tu clic sur stop, stop.php est lancé :
<?php
$bat = "./stop.vbs";
$reponse = system("cmd /C $bat");
echo "Action exécutée avec succés";
?>
Si tu clic sur start, start.php est lancé :
<?php
$bat = "./start.vbs";
$reponse = system("cmd /C $bat");
echo "Action exécutée avec succés";
?>
stop.php execute le fichier stop.vbs qui contient le code WMI pour arrêter le serveur :
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'nwnserv.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
start.php execute le fichier start.vbs qui contient le code WMI pour lancer le serveur :
Const HIDDEN_WINDOW = 12
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
Set objProcess = GetObject( _
"winmgmts:root\cimv2:Win32_Process")
errReturn = objProcess.Create( _
"C:\ONLINE\nwnserv.exe -module tonmod", "C:\ONLINE\", objConfig, intProcessID)
Voilà c'est pas plus compliqué que ça si ce n'est qu'ici il n'y a pas de notion d'utilisateurs, de restrictions quelconques, la sécurité est inexistante.
L''utilisation d'une base de données est donc vivement recommandée pour y inscrire quelques variables pour éviter entre autre les doublons.
Enjoy