Arreter le service 'configuration auto sans-fil' pour eviter les lags sous counter strike

Contenu du snippet

Voilà j'ai fait un tout pitit programme qui permet d'arreter le service "Configuration automatique sans-fil" ou le redemarrer s'il est arrêter. Pour ceux qui jouent à CS en WiFi, on est obligé tout le temps d'aller désactiver ce service dans Services donc c'est un peu la galère ! Pour ceux qui ne jouent pas à cs ça vous montre comment arrêter ou démarrer un service windows.

Source / Exemple :


/*

  • cs_wifi.cpp
*
  • Created by Alexandre TM on 02/06/07.
  • Copyright 2007 . All rights reserved.
*
  • Permet la desactivation/activation du service 'Configuration automatique sans-fil'
  • Utile pour eviter les lags toutes les 30 secondes sous CS en connection wifi
*
  • /
#include <windows.h> // SC_HANDLE #include <winuser.h> // MessageBox() // User32.lib #include <winsvc.h> // OpenSCManager() OpenService() ControlService() // Advapi32.lib // permet de suspendre le service s'il est en execution ou le relancer s'il est en pause bool SwitchWifiServiceState(); // main() int main(int argc, char* argv[]) { if ( SwitchWifiServiceState() == false ) // si echec { // affiche l'erreur rencontree MessageBoxA(NULL, (LPCSTR)strerror(GetLastError()), (LPCSTR)"Erreur rencontree !", MB_ICONERROR); } return 0; } // permet de suspendre le service s'il est en execution ou le relancer s'il est en pause bool SwitchWifiServiceState() { bool flag = false; // etablit une communication avec le gestionnaire de services SC_HANDLE hServiceManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if ( hServiceManager != NULL ) // handle valide { // obtient un handle sur un service existant : ici 'WZCSVC' represente 'Configuration automatique sans-fil' SC_HANDLE hService = OpenServiceA( hServiceManager, (LPCSTR)"WZCSVC", SERVICE_ALL_ACCESS); if ( hService != NULL ) // handle valide { // structure permettant de stocker les infos d'etat d'un service SERVICE_STATUS_PROCESS svcStatusProc; DWORD octetsNeeded; // on interroger un service sur son etat if ( QueryServiceStatusEx( hService, SC_STATUS_PROCESS_INFO, (LPBYTE)&svcStatusProc, sizeof(svcStatusProc), &octetsNeeded ) != 0 ) { if ( svcStatusProc.dwCurrentState == SERVICE_STOPPED ) // si le service est suspendu { if ( StartServiceA( hService, NULL, NULL ) != 0 ) flag = true; } else if ( svcStatusProc.dwCurrentState == SERVICE_RUNNING ) // si le service tourne { SERVICE_STATUS svcStatus; if ( ControlService( hService, SERVICE_CONTROL_STOP, &svcStatus ) != 0 ) // on le suspend flag = true; } } CloseServiceHandle(hService); } CloseServiceHandle(hServiceManager); } // true si ok : false si ko return flag; }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.