KeyUsb Detector

Programmation d'applications complexes
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

KeyUsb Detector

Message 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
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

très bonne idée, il manque juste une icone dans le Systray
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ca existe pas déjà, sur windows, ce systeme?
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Bah je sais pas. C'est possible (ca devrait exister car c'est limite indispensable...), mais je sais pas comment faire ...
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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)




Image
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

J'ai posté le code de mon autorun sur clef usb si ça peut vous aider
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

@dobro

Je ne comprend pas pourquoi :?:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

pourtant , je t'assure que chez moi ça plante !
quelqu'un d'autre pour essayer ? :)
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

@Oliv : j'ai pas trouvé où tu a posté le code source
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message 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.
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

le code du Soldat inconu marche niquel lui !! :D
(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
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Oui c'est ce de code que je me suis inspirer...
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message 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
Répondre