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.
13 mai 2006 à 08:31
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
13 mai 2006 à 07:39
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.
12 mai 2006 à 18:36
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 "*"
++
12 mai 2006 à 17:56
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.
12 mai 2006 à 16:09
vive la parano...
ça sauvegarde pas énormément... vu le nombre de pc dans le monde t'inquiète tu sera pas espioné lol
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.