Message de rapport:
 

Re: [tse] cloture sessions

Sujet: Re: [tse] cloture sessions
par Totof sur 27/4/2004 10:46:53

C'est cadeau :) :

A adapter suivant besoin :) je pense que le code est assé clair (Cette procédure me sert à soit Arrêter le PC, soit le redémarrer mais on peut aussi faire un LOGOFF)...

EWX_FORCE  est un entier   = 4 // Force any applications to quit instead of prompting the user to close them. 
EWX_LOGOFF est un entier   = 0 // Arrête les services du réseaux (logout) 
EWX_POWEROFF est un entier   = 8 //Eteindre le système et si possible l'ordinateur. 
EWX_REBOOT est un entier   = 2 // Redémarrage du système. 
EWX_SHUTDOWN est un entier   = 1 //Arrêter le système

Token_Adjust_Privilege est un entier   = 0x20
Token_Query est un entier   = 0x8
Se_Privilege_enabled est un entier   = 0x2

LUID est une structure
	UsedPart est un entier  
	IgnoredFor est un entier   
FIN

TOKEN_PIVILEGE est une structure
	PrivilegeCount est un entier  
	Luid est une chaîne fixe sur 8
	Attributes est un entier  
FIN

hdlProcessHandle est un entier  
hdlTokenHandle est un entier  
tmpLuid est un LUID
tkp est un TOKEN_PIVILEGE
tkpNewButIgnored est un TOKEN_PIVILEGE
cbNeeded est un entier  
Res est un entier  
dTypeShutdown est un entier  

SI TYPE = "REBOOT" ALORS 
	dTypeShutdown =  EWX_REBOOT
SINON
	dTypeShutdown = EWX_POWEROFF
FIN

// détermination de la version du system
:GetVersionEx()


SI Gauche(:szSystem,1) = "W" ALORS // version win 9x
	Res = AppelDLL32("user32","ExitWindowsEx",dTypeShutdown ,0)
	SI Res = 0 ALORS 
		RENVOYER(Faux)
	SINON
		FinProgramme()
	FIN
FIN

SI Gauche(:szSystem,2) = "NT" ALORS	// version NT et supérieur

	hdlProcessHandle = AppelDLL32("kernel32","GetCurrentProcess" )
	AppelDLL32("advapi32.dll","OpenProcessToken",hdlProcessHandle, ...
		OUBinaire(Token_Adjust_Privilege,Token_Query),&hdlTokenHandle)
	AppelDLL32("advapi32.dll","LookupPrivilegeValueA" ,"","SeShutdownPrivilege",&tmpLuid)
	tkp:PrivilegeCount = 1
	Transfert(&tkp:Luid,&tmpLuid,Dimension(tmpLuid))
	tkp:Attributes = Se_Privilege_enabled
	AppelDLL32("advapi32.dll","AdjustTokenPrivileges" ,hdlTokenHandle,...
			 Faux,...
			 &tkp,...
			 Dimension(tkpNewButIgnored),...
			 &tkpNewButIgnored,...
			 &cbNeeded)
	AppelDLL32("user32","ExitWindowsEx" ,OUBinaire(dTypeShutdown,EWX_FORCE), 0xFFFF) 

	FinProgramme()

FIN

Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2