Вопрос : обнаружьте ce окон изменения регистратуры

Hi, мне нужно обнаружить когда значения регистратуры изменяют на CE Windows using vb.net. class=

Ответ : обнаружьте ce окон изменения регистратуры

Я имел некоторое время сыграть с функциями.  Я использовал эмулятор и он работает отлично на том;)… Пример также расположенный на MSDN @ CeFindFirstRegChange ()

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
Система ввозов
Ввозы System.Threading
Ввозы System.Runtime.InteropServices
Ввозы Microsoft.Win32

Общественный тип RegistryNotification
    'egl1044

    'Конструктор
    Общественные Sub новые ()

    Подводная лодка конца

     _
    Общественное Enum RegNotifyFilter
        REG_NOTIFY_CHANGE_NAME = 1 'сообщают звонящий по телефону если добавлено или уничтожено subkey.
        REG_NOTIFY_CHANGE_LAST_SET = 4 'сообщают звонящий по телефону изменений к значению ключа. Это может включить добавлять или уничтожать значение или изменять существующий значение.
    Конец Enum

    Общественное Enum RegType
        HKEY_LOCAL_MACHINE = &H80000002
        HKEY_CLASSES_ROOT = &H80000000
        HKEY_CURRENT_USER = &H80000001
        HKEY_USERS = &H80000003
    Конец Enum

    'Снабжено в этом примере.
    ' _
    'Приватная структура REG_NOTIFY_INFORMATION
    '    Тусклое NextEntryOffset как интежер
    '    Тусклое действие как интежер
    '    Тусклое RegNameLength как интежер
    '    Тусклое RegName как IntPtr
    'Структура конца

     _
    Приватная, котор делят функция CeFindCloseRegChange (hChangeHandle ByVal как IntPtr) как интежер
    Функция конца

     _
    Приватная, котор делят функция CeFindFirstRegChange (hKey ByVal как bWatchSubtree IntPtr, ByVal как dwNotifyFilter интежера, ByVal как RegNotifyFilter) как IntPtr
    Функция конца

     _
    Приватная, котор делят функция CeFindNextRegChange (hChangeHandle ByVal как IntPtr) как интежер
    Функция конца

     _
    Приватная, котор делят функция RegOpenKeyEx (hKey ByVal как lpSubKey RegType, ByVal по мере того как шнур, ulOptions как интежер, ByVal ByVal samDesired как интежер, phkResult ByRef как IntPtr) как интежер
    Функция конца

     _
    Приватная, котор делят функция RegCloseKey (hKey ByVal как IntPtr) как интежер
    Функция конца

     _
    Приватная, котор делят функция WaitForSingleObject (ручка ByVal как госпожа IntPtr, ByVal как интежер) как интежер
    Функция конца

    Приватное hKey по мере того как IntPtr = IntPtr.Zero '/ручка регистратуры
    Приватное hChangeHandle по мере того как IntPtr = IntPtr.Zero '/ручка извещения регистратуры
    Приватное NotifyThread как резьба = ничего
    Приватное bCancel как булевско = ложно

    Общественное Sub StartRegistryWatcher ()
        'Вахта для извещений на отдельно резьбе.
        bCancel = ложно
        NotifyThread = новая резьба (AddressOf RegistryNotificationThread)
        NotifyThread.IsBackground = True
        NotifyThread.Start ()
    Подводная лодка конца

    Общественное Sub StopRegistryWatcher ()
        'Отмените извещения на отдельно резьбе.
        bCancel = True
        CeFindCloseRegChange (hChangeHandle)
    Подводная лодка конца

    '  <>
    Приватное Sub RegistryNotificationThread ()
        'Побегите извещения изменения на новой резьбе.
        RegisterRegistryChange (RegType.HKEY_LOCAL_MACHINE, «средство программирования \ fabrikan», 0)
    Подводная лодка конца

    Приватное Sub RegisterRegistryChange (rootKey ByVal как keyName RegType, ByVal как watchSubTree шнура, ByVal как интежер)
        'Обнаруживает извещения регистратуры.
        Если RegOpenKeyEx (rootKey, keyName, 0, 0, hKey) <> 0 после этого
            MsgBox («RegOpenKeyEx failed.")
            Возвращение
        Закончитесь если
        'TODO: /установки фильтра изменения здесь
        hChangeHandle = CeFindFirstRegChange (hKey, watchSubTree, RegNotifyFilter.REG_NOTIFY_CHANGE_LAST_SET)
        Если hChangeHandle.ToInt32 = -1 после этого
            MsgBox («CeFindFirstRegChange потерпело неудачу»)
            RegCloseKey (hKey)
            Возвращение
        Закончитесь если
        Сделайте пока bCancel <> поистине
            WaitForSingleObject (hChangeHandle, Timeout.Infinite)
            MsgBox («изменение обнаружило! ")
            CeFindNextRegChange (hChangeHandle)
            Thread.Sleep (0)
        Петля
        'TODO: /
        CeFindCloseRegChange (hChangeHandle)
        RegCloseKey (hKey)
    Подводная лодка конца

    Общественное Sub DebugCreateRegistryEntry ()
        'Создает определенный ключа в регистратуре для доводка.
        Тусклое rk как RegistryKey = Registry.LocalMachine.OpenSubKey («средство программирования», поистине)
        rk.CreateSubKey («fabrikan»)
        rk. Закройте ()
    Закончите подводную лодку

    Общественное Sub DebugChangeRegistryValue ()
        'Сымитируйте изменение в регистратуре для доводка.
        Затемните rk как RegistryKey = Registry.LocalMachine.OpenSubKey («средство программирования \ fabrikan», поистине)
        rk.SetValue («fabrikans», TimeOfDay.Second.ToString, RegistryValueKind.String)
        rk. Закройте ()
    Закончите подводную лодку

Закончите тип
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us