VERROUILLER RAPIDEMENT SON POSTE

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 27 juin 2003 à 21:22
cs_VERTY Messages postés 40 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 avril 2008 - 1 juil. 2003 à 16:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12636-verrouiller-rapidement-son-poste

cs_VERTY Messages postés 40 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 avril 2008
1 juil. 2003 à 16:22
Pour Clefaye.
Lorsque mon programme se charge pour la première fois tant que je n'ai pas sollicité LOCKWORKSTATION je peux fermer normalement ma session mais dès que j'y ai recours une fois c'est plus possible
CleyFaye Messages postés 23 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 21 août 2003
1 juil. 2003 à 15:37
dr pour la fonction :)
par contre, j'ai fait un mini prog avec juste cette fonction, une fenètre et un bouton pour appeler la fonction, et j'ai pas eu de problème, ni pour fermer la session, ni pour changer d'utilisateur... je pense que le problème vient d'une autre partie de ton prog :/
cs_VERTY Messages postés 40 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 avril 2008
1 juil. 2003 à 15:19
Merci à Cleyfaye pour la correction dans ma fonction.
As tu idée du pourquoi je ne peux pas fermer Ma session lorsque mon programme est chargé.
Je le met juste après sur le site il s'agit d'un programme qui se met dans la barre des taches et qui me permet de sauvegarder la position des icones de mon bureau.Et de les restaurer si besoin.
CleyFaye Messages postés 23 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 21 août 2003
1 juil. 2003 à 13:55
Pourquoi un exe?
Pour utiliser juste la commande, c'est nul c'est vrai, mais pour inclure cette commande dans un prog. plus complexe, c'est pas pratique un raccourci...
mayeul79 Messages postés 1 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 1 juillet 2003
1 juil. 2003 à 13:48
pourquoi compiler un exe ???
il suffit de créer un raccourci avec la commande suivante :
%windir%System32
undll32.exe user32.dll ,LockWorkStation

Pierre -newbie en Delphi
dev vb, Asp, php,...
;-)
CleyFaye Messages postés 23 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 21 août 2003
30 juin 2003 à 19:40
Hum... plus sécurisé, mais quelques petites erreurs:

LockWorkStation;
Result := True
devrait ètre remplacé par Result := FermerRapideStation;
cs_VERTY Messages postés 40 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 avril 2008
30 juin 2003 à 19:06
Moi j'ai écris cette fonction dans un programme que je mettrais bientot sur le site.
J'ai remarqué que lorqu'un programme etait chargé avec LOCKWORKSTATION on 'arrivais plus à fermer unse session.
Je suis obligé de décharger mon programme pour fermer ma session

Function FermerStation: Boolean;
Type
TFermerRapideStation = Function: Boolean;
Var
hUser32 : HModule;
FermerRapideStation : TFermerRapideStation;
Begin
Result := False;
hUser32 := GetModuleHandle('USER32.DLL');
If hUser32 <> 0 Then
Begin
@FermerRapideStation := GetProcAddress(hUser32, 'LockWorkStation');
If @FermerRapideStation <> Nil Then
Begin
LockWorkStation;
Result := True;
End;
End;
End;
CleyFaye Messages postés 23 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 21 août 2003
30 juin 2003 à 11:53
pour ceux qui aurait besoin d'aide, déclarez une fonction comme celle là dans une de vos unitées:

function LockWorkStation:boolean;stdcall;external 'user32.dll';

où alors faire un appel indirect pour ètre sur que cette fonction est disponible sur le système:

type
boolfunc:FUNCTION:boolean;

procedure LockWorkStation;
var
libh:THandle;
proc:boolfunc;
begin
libh:=LoadLibrary('user32.dll')
proc:=GetProcAddress(libh,'LockWorkStation');
if assigned(proc) then proc else showmessage('Fonction indisponible sur le système');
FreeLibrary(libh);
end;

Voila, je pense pas qu'il y ait trop d'erreurs la dessus
cs_VERTY Messages postés 40 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 avril 2008
28 juin 2003 à 08:38
Ne se trouve pas dans une untité mais dans la librairie USER32.DLL
du moins pour les versions XP
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
27 juin 2003 à 21:22
Et dans quelle unité est déclarée cette procédure magique ?
Rejoignez-nous