Page 1 sur 2
KeyUsb Detector
Publié : lun. 28/nov./2005 13:00
par lionel_om
Bonjour à tous.
Voici un ptt programme bien pratique.
Il permet d'afficher un message d'alerte lors de la fermeture d'une session Windows si une clé USB est branchée.
Ca évite ainsi d'oublier sa clé USB sur un ordi public (à la FAC, l'IUT, chez un pote ou autre...)
Voici le lien :
KeyUSB Detector
Si vous rencontrez des problèmes / bugs n'hésitez pas à m'en faire part.
Je mettrai bientôt la source on-lone (je l'ai oublié chez moi

)
Merci d'avance
Lionel
Publié : lun. 28/nov./2005 14:56
par Droopy
très bonne idée, il manque juste une icone dans le Systray
Publié : lun. 28/nov./2005 16:07
par Chris
Ca existe pas déjà, sur windows, ce systeme?
Publié : lun. 28/nov./2005 16:16
par lionel_om
Bah je sais pas. C'est possible (ca devrait exister car c'est limite indispensable...), mais je sais pas comment faire ...
Publié : lun. 28/nov./2005 17:01
par Chris
Ben en fait, ça ne m'est jamais venu à l'idée de regarder si ça existait, étant donné que je suis le seul à me servir de mon PC, je ne ferme jamais la session.
Publié : lun. 28/nov./2005 22:19
par Droopy
Pour la détection de la clé tu as utilisé un code comme ça ? :
Code : Tout sélectionner
Procedure DetectUSBKey()
For n=2 To 26
If Realdrivetype_(n,0)= #DRIVE_REMOVABLE
ProcedureReturn 1
EndIf
Next
EndProcedure
;/ Test
If DetectUSBKey()
MessageRequester("Disque Amovible","Présent",#MB_ICONINFORMATION)
Else
MessageRequester("Disque Amovible","Absent",#MB_ICONERROR )
EndIf
Publié : lun. 28/nov./2005 22:37
par Backup
Droopy a écrit :Pour la détection de la clé tu as utilisé un code comme ça ? :
Code : Tout sélectionner
Procedure DetectUSBKey()
For n=2 To 26
If Realdrivetype_(n,0)= #DRIVE_REMOVABLE
ProcedureReturn 1
EndIf
Next
EndProcedure
;/ Test
If DetectUSBKey()
MessageRequester("Disque Amovible","Présent",#MB_ICONINFORMATION)
Else
MessageRequester("Disque Amovible","Absent",#MB_ICONERROR )
EndIf
ce code genere une erreur sous XP pro (pourtant avec 2 clef USB)

Publié : lun. 28/nov./2005 22:43
par Oliv
J'ai posté le code de mon autorun sur clef usb si ça peut vous aider
Publié : lun. 28/nov./2005 23:20
par Droopy
@dobro
Je ne comprend pas pourquoi

Publié : lun. 28/nov./2005 23:28
par Backup
pourtant , je t'assure que chez moi ça plante !
quelqu'un d'autre pour essayer ?

Publié : mar. 29/nov./2005 9:05
par Droopy
@Oliv : j'ai pas trouvé où tu a posté le code source
Publié : mar. 29/nov./2005 10:06
par lionel_om
Droopy a écrit :Pour la détection de la clé tu as utilisé un code comme ça ? :
Code : Tout sélectionner
Procedure DetectUSBKey()
For n=2 To 26
If Realdrivetype_(n,0)= #DRIVE_REMOVABLE
ProcedureReturn 1
EndIf
Next
EndProcedure
;/ Test
If DetectUSBKey()
MessageRequester("Disque Amovible","Présent",#MB_ICONINFORMATION)
Else
MessageRequester("Disque Amovible","Absent",#MB_ICONERROR )
EndIf
Non j'ai utilisé un code qui ressemble à celui de ce
topic
Il était légèrement différent. Mais j'ai virai tout ce qui n'était pas utile te je commence à la lettre C.
Publié : mar. 29/nov./2005 12:22
par Backup
le code du Soldat inconu marche niquel lui !!
(a lancer sous debug !! )
Structure DriveInfos
DriveLetter.s
DriveType.l
DriveTypeString.s
NameOfVolume.s
EndStructure
NewList DriveList.DriveInfos()
Procedure GetDrive(ListDriveType.l)
Protected Drive.s, DriveLetter.s, DriveType.l, Start.l, LengthDrive.l, DriveTypeString.s
#REMOVABLE_DRIVE = 1
#FIXED_DRIVE = 2
#REMOTE_DRIVE = 4
#CDROM_DRIVE = 8
#RAMDISK_DRIVE = 16
#UNKNOWN_DRIVE = 32
#ALL_DRIVE = 63
; On vide la liste
ClearList (DriveList())
; On récupère la lettre des différents lecteurs présent sur l'ordinateur
Drive = Space (255)
LengthDrive = GetLogicalDriveStrings_ (255, @Drive)
For Start = 0 To LengthDrive - 4 Step 4
DriveLetter.s = PeekS (@Drive + Start, 3) ; on récupère une lettre
DriveType.l = GetDriveType_ (@DriveLetter) ; on récupère le type du lecteur
Select DriveType ; On donne un nom au type de lecteur
Case #DRIVE_REMOVABLE : DriveType = #REMOVABLE_DRIVE : DriveTypeString.s = "Disquette"
Case #DRIVE_FIXED : DriveType = #FIXED_DRIVE : DriveTypeString.s = "Disque dur"
Case #DRIVE_REMOTE : DriveType = #REMOTE_DRIVE : DriveTypeString.s = "Lecteur réseau"
Case #DRIVE_CDROM : DriveType = #CDROM_DRIVE : DriveTypeString.s = "CD-ROM"
Case #DRIVE_RAMDISK : DriveType = #RAMDISK_DRIVE : DriveTypeString.s = "RamDisk"
Case #DRIVE_UNKNOWN : DriveType = #UNKNOWN_DRIVE : DriveTypeString.s = ""
EndSelect
If DriveType & ListDriveType ; on regarde si le type du lecteur correspond à ceux demandés
AddElement (DriveList())
DriveList()\DriveLetter = RemoveString (DriveLetter, "\" )
DriveList()\DriveType = DriveType
DriveList()\DriveTypeString = DriveTypeString
If DriveLetter <> "A:\" And DriveLetter <> "B:\"
DriveList()\NameOfVolume = Space (255)
GetVolumeInformation_ (@DriveLetter, @DriveList()\NameOfVolume, 255, 0, 0, 0, 0, 0)
DriveList()\NameOfVolume = Trim (DriveList()\NameOfVolume)
Else
DriveList()\NameOfVolume = ""
EndIf
EndIf
Next
EndProcedure
;- Debut du test
GetDrive( #REMOVABLE_DRIVE | #CDROM_DRIVE | #FIXED_DRIVE )
ResetList (DriveList())
While NextElement (DriveList())
Debug DriveList()\DriveLetter + " " + DriveList()\DriveTypeString + " " + DriveList()\NameOfVolume
Wend
Publié : mar. 29/nov./2005 12:52
par lionel_om
Oui c'est ce de code que je me suis inspirer...
Publié : mar. 29/nov./2005 18:10
par Oliv
Moi aussi, donc ne cherche pas mon code §Droopy c'est pas la peine, bien que je me souvienne avoir modifié 2-3 choses pour WIN98, dès que j'ai le temps je regarde