[tse] cloture sessions
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour,

on passe de Win2000 à 2003 pour nos serveurs TSE.
L'ouverture des sessions lance le projet.
la fermeture du projet doit donc lancer la fermeture des session. Mais ce point à évolué en 2003.

Le code suivant provoque un message (normal, le programme qui lance la demande est ecode actif et cela semble permtuber). Quelqu'un a-t il trouvé une parade pour une fermeture demandée par programmation propre ?

AppelDLL32("user32","ExitWindowsEx",0,0)

Contribution le : 27/04/2004 09:30
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: [tse] cloture sessions
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
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

Contribution le : 27/04/2004 10:46
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


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