Bonjour, je suis en train de m'amuser à faire un programme pour sécuriser un PC via USB, je m’explique :
Le programme se lance à chaque démarrage, et regarde en boucle si un fichier est présent dans une clé USB, dont le chemin aura été écrit au paravent par l'utilisateur. Donc je bloque les inputs clavier et souris avec InputBlock (1), et je le met dans la boucle pour ne laisser à l'utilisateur que les fonctions de Ctrl Alt Suppr. Bref, tout marche bien, quand on branche la clé USB tout réagis assez vite. Le problème est que comme vous le savez, le Inputblock () demande sous seven d'être exécute en mode administrateur. lL serait donc malvenu qu'a chaque démarrage, l'utilisateur doive cliquer sur le bouton pour que son PC se protège. ^^ Du coup, je me demandait s'il existait une manière de faire autrement qu'avec InputBlock. (La façon "j'enlève les restrictions pour le lancement en mode admin' ne me conviennent pas, il faudrait baisser la sécurité pour en rajouter, pas très pratique...)
Merci!!
Ps : Voici le code :
► Afficher le texte
Code : Tout sélectionner
#include <String.au3>
#RequireAdmin
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","Sécurité USB","REG_SZ",@ScriptFullPath)
If FileExists (@ScriptDir & "/clélocale") Then
SplashTextOn ("Mot de passe", "En attente d'une clé USB - code. ")
While 1
BlockInput (1)
$clelocale = FileReadLine (@ScriptDir & "/clélocale", 1)
$repertoire = FileReadLine (@ScriptDir & "/clélocale", 2)
$cleUSB = FileReadLine ($repertoire & "/clécrypté", 1)
If $clelocale = $cleUSB Then
SplashTextOn ("Mot de passe", "Mot de passe USB correct!")
BlockInput (0)
Sleep (3000)
SplashOff ()
ExitLoop
EndIf
WEnd
Else
$repertoire = InputBox ("Mot de passe", "Ceci est le premier lancement, merci de choisir le répertoire de la clé USB ou celle ci doit être sauvegardée (du type C:/Test/répertoire/etc...) :","")
$cle = InputBox ("Mot de passe", "Entrez la clé pour qu'elle soit cryptée : ", "", "*")
$pass = InputBox ("Mot de passe", "Entrez le mot de passe pour crypter la clé : ", "", "*")
$pass2 = InputBox ("Mot de passe", "Confirmez le mot de passe pour crypter la clé : ", "", "*")
If $pass = $pass2 Then
$cleobtenue = _StringEncrypt (1, $cle, $pass2, 10)
FileWriteLine ($repertoire & "/clécrypté", $cleobtenue)
FileWriteLine (@ScriptDir & "/clélocale", $cleobtenue)
FileWriteLine (@ScriptDir & "/clélocale", $repertoire)
Else
MsgBox (0, "Mot de passe", "Les mots de passes ne correspondent pas! ")
EndIf
EndIf