Avertit l'appelant sur les modifications apport�es aux attributs ou au contenu d'une cl� de registre sp�cifi�e
#include <WinAPIReg.au3>
_WinAPI_RegNotifyChangeKeyValue ( $hKey, $iFilter [, $bSubtree = False [, $bAsync = False [, $hEvent = 0]]] )
$hKey |
Handle de la cl� de registre ouverte. La cl� doit avoir �t� ouverte avec le droit d'acc�s KEY_NOTIFY. Ce handle est retourn� par la fonction _WinAPI_RegCreateKey() ou _WinAPI_RegOpenKey(). Il peut �galement �tre l'une des cl�s pr�d�finies suivantes: $HKEY_CLASSES_ROOT $HKEY_CURRENT_CONFIG $HKEY_CURRENT_USER $HKEY_LOCAL_MACHINE $HKEY_USERS |
$iFilter | Indique les changements qui doivent �tre signal�s. Ce param�tre peut prendre une ou plusieurs des valeurs suivantes: $REG_NOTIFY_CHANGE_NAME $REG_NOTIFY_CHANGE_ATTRIBUTES $REG_NOTIFY_CHANGE_LAST_SET $REG_NOTIFY_CHANGE_SECURITY |
$bSubtree | [optionnel] Indique si le rapport change dans les sous-cl�s de la cl� sp�cifi�e, les valeurs possibles sont: True - La fonction signale les changements dans la cl� sp�cifi�e et toutes ses sous-cl�s. False - La fonction ne signale les changements que dans la cl� sp�cifi�e (par d�faut). |
$bAsync | [optionnel] Indique si la fonction retourne imm�diatement, les valeurs possibles sont: True - La fonction retourne imm�diatement et signale les modifications en signalant l'�v�nement sp�cifi�. False - La fonction ne retourne pas jusqu'� ce qu'une modification ait eu lieu (par d�faut). |
$hEvent | [optionnel] Handle de l'�v�nement. Si le param�tre $fAsync est True, la fonction retourne imm�diatement et les modifications sont signal�es en signalant cet �v�nement, sinon ce param�tre est ignor� (par d�faut). |
Succ�s: | Retourne 1. |
�chec: | Retourne 0 et d�finit @error <> 0, @extended peut contenir le code d'erreur du syst�me. |
Si la cl� sp�cifi�e est ferm�e, l'�v�nement est signal�. Cela signifie que l'application ne doit pas d�pendre du fait que la cl� est ouverte en retournant d'une op�ration d'attente sur l'�v�nement.
_WinAPI_RegCreateKey, _WinAPI_RegOpenKey
Consultez RegNotifyChangeKeyValue dans la librairie MSDN.
#include <APIRegConstants.au3> #include <MsgBoxConstants.au3> #include <WinAPIError.au3> #include <WinAPIHObj.au3> #include <WinAPIProc.au3> #include <WinAPIReg.au3> Opt('TrayAutoPause', 0) Local $hKey = _WinAPI_RegOpenKey($HKEY_CURRENT_USER, 'Software\Microsoft\Windows\CurrentVersion\Run', $KEY_NOTIFY) If @error Then MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), @extended, _WinAPI_GetErrorMessage(@extended)) Exit EndIf Local $hEvent = _WinAPI_CreateEvent() If Not _WinAPI_RegNotifyChangeKeyValue($hKey, $REG_NOTIFY_CHANGE_LAST_SET, 0, 1, $hEvent) Then Exit EndIf Local $bStopLoop = False Do If Not _WinAPI_WaitForSingleObject($hEvent, 0) Then Run(@AutoItExe & '/AutoIt3ExecuteLine "MsgBox(4096, ''Registry'', ''La base de registre a �t� modifi�e.'' & @CRLF & @CRLF & ''HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'', 5)"') $bStopLoop = Not _WinAPI_RegNotifyChangeKeyValue($hKey, $REG_NOTIFY_CHANGE_LAST_SET, 0, 1, $hEvent) EndIf Sleep(100) Until $bStopLoop _WinAPI_CloseHandle($hEvent) _WinAPI_RegCloseKey($hKey)