Surveiller la clé opensavemru du registre

Soyez le premier à donner votre avis sur cette source.

Vue 10 569 fois - Téléchargée 604 fois

Description

A chaque fois que l'on manipule un fichier quelconque et quelque soit son extension,
Windows mémorise dans: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\
le nom et la localisation du fichier manipulé.
Je n'en connais pas l'utilité mais je considère celà comme un espionnage.

Mon programme permet de visualiser ces indiscrétions et de les effacer.

Conclusion :


Quand on efface toutes les extensions, j'élimine aussi la clé:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU
qui je crois, est le reflet en Binaire de la clé OpenSaveMRU
Elle se recrée d'elle-même dès que l'on remanipule des fichiers.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Sechaud
Messages postés
288
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
3 janvier 2017

13 mai 2006 à 08:31
J'ai trouvé un code qui permet de faire ce que je cherchais en utilisant:
Public Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" ( _
ByVal hKey As Long, _
ByVal lpClass As String, _
lpcbClass As Long, _
ByVal lpReserved As Long, _
lpcSubKeys As Long, _
lpcbMaxSubKeyLen As Long, _
lpcbMaxClassLen As Long, _
lpcValues As Long, _
lpcbMaxValueNameLen As Long, _
lpcbMaxValueLen As Long, _
lpcbSecurityDescriptor As Long, _
lpftLastWriteTime As FILETIME) As Long

Et pour tester
Private Sub Command6_Click()
Dim lResult As Long
Dim hKey As Long
Dim lNumKeys As Long ' Number of subkeys of open key
Dim lSubkeyNameLen As Long ' Length of the longest subkey name
Dim ft As FILETIME

Dim sRegPath As String


If RegOpenKeyEx(Hkey_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU", 0, KEY_READ, hKey) = ERROR_SUCCESS Then
' Get subkey information
lResult = RegQueryInfoKey(hKey, vbNullString, 0, 0, lNumKeys, lSubkeyNameLen, _
0, 0, 0, 0, 0, ft)
If lResult = ERROR_SUCCESS Then
Dim sMsg As String
sMsg = "Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU" & vbCrLf & vbCrLf
sMsg = sMsg & "Subkeys: " & lNumKeys & vbCrLf
sMsg = sMsg & "Longest subkey name: " & lSubkeyNameLen & vbCrLf
MsgBox sMsg
End If
' Use subkey information to enumerate subkeys
Dim lCtr As Long
Dim sBuffer As String
Dim lBuffer As Long
Dim hSubkey As Long
' Loop as many times as there are subkeys
For lCtr = 0 To lNumKeys - 1
' Initialize buffer to hold name to be 1 greater than maximum length
sBuffer = Space(lSubkeyNameLen) & Chr(0)
lBuffer = Len(sBuffer)
RegEnumKeyEx hKey, lCtr, sBuffer, lBuffer, 0, vbNullString, 0, ft
' Trim returned buffer to extract key name
sBuffer = Left(sBuffer, lBuffer)

sMsg = "Key " & lCtr & ": " & sBuffer & vbCrLf

' Open subkey
RegOpenKeyEx hKey, sBuffer, 0, KEY_READ, hSubkey
sMsg = sMsg & " Returned handle " & Hex(hSubkey) & vbCrLf
MsgBox sMsg

RegCloseKey hSubkey
Next
RegCloseKey hKey
Else
MsgBox "Unable to open key: " & lResult
End If

End Sub
Sechaud
Messages postés
288
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
3 janvier 2017

13 mai 2006 à 07:39
Merci Draluorg pour ton idée de lire HKey_Class_Root pour en extraire les extensions.
J'ai trouvé un source qui les lit mais comme j'en trouve 763, je ne veux pas remplir ma Combo avec tout ça.
Ce que je voudrais faire, c'est les lire dans OpenSaveMRU, mais pour le moment je sèche.
draluorg
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

12 mai 2006 à 18:36
re,

Eh bin si tu surveille la cle Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\
lorsque tu es notifie tu sais que c'est cette cle la qui a ete modifiee, apres tu scanne juste les valeurs pour savoir quelle est la modif...

Sinon pour enumerer les extentions dans classe root, je dirais plutot

Extension = Combo1.List(B)

If left(Extension, 1) <> "." Then 'Sortie

en oubliant pas que la premiere cle est "*"

++
Sechaud
Messages postés
288
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
3 janvier 2017

12 mai 2006 à 17:56
NHenry ton idée est bonne.J'ai essayé, c'est OK si on met
Combo1.ListCount
Tu as dû voir que j'avais utilisé un anti-dépassement peu glorieux:
If Combo1.List(B) = "zip" Then 'Sortie si fin atteinte
Exit Sub
End If
Tu me dis d'énumérer les clé du registre mais justement je n'y arrive pas.

******************************************
Draluorg
Merci.J'avais trouvé et essayé le source de:
http://www.allapi.net/apilist/5B7128D345F8EBCE2557C095EED673D5.html
mais il ne dit pas où s'est fait la modif ni ce qui a été modifié.

*******************************************
Eldim
Je ne suis pas parano, car je restaure quand j'ai un pépin, mais je trouve anormal que l'on nous stocke nos actions.
De plus il existe plein d'autres clés qui sauvent des MRU.
cs_eldim
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
12 mai 2006 à 16:09
bonjour,

vive la parano...
ça sauvegarde pas énormément... vu le nombre de pc dans le monde t'inquiète tu sera pas espioné lol
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.