Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
70 / 62 / 19
Регистрация: 03.05.2013
Сообщений: 397

Системные события windows

18.01.2024, 15:49. Показов 2536. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно и можно ли из VBA триггерить системные события, конкретно - смену разрешения и подключения отключения мониторов?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.01.2024, 15:49
Ответы с готовыми решениями:

Системные события/сервис
В общем такая задача. Нужно запускать свою программу при изменении даты последнего изменения определенной папки. Сначала думал запустить...

Реакция на системные события в системе
есть ли возможность запускать какие-либо программы по определенному событию, например, подключение модема? заранее благодарен

Минимальные системные требования Windows 8 не возрастут по сравнению с Windows 7
Microsoft официально подтвердил информацию о том, что системные требования для ОС Windows 8 будут такими же, как и для Windows 7. В ...

22
1412 / 873 / 93
Регистрация: 08.02.2017
Сообщений: 3,724
Записей в блоге: 2
21.01.2024, 17:31
Студворк — интернет-сервис помощи студентам
Здесь описано, как отслеживть изменения в реестре с помощью wmi. Если найти в реестре универсальный путь/раздел куда пишутся все разрешения, можно забодать проблемму. )

Добавлено через 56 минут
В общем примерно так (у меня) это работает. В каком-то общем универсальном случае, наверное нужно было бы прочитать все гуиды в разделе "HKLM\SYSTEM\CurrentControlSet\Hardw are Profiles\UnitedVideo\CONTROL\VIDEO" и все их добавить в запрос соответствующим образом перечислив все пути (KeyPath), через оператор "OR". Хотя не исключаю, что в других версиях Windows (отличных от моей) эти настройки будут писаться по какому-то другому пути. У меня срабатывает по 2 раза на каждую смену разршения.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub StartSink()
    Const regKey$ = "SYSTEM\\CurrentControlSet\\Hardware Profiles\\UnitedVideo\\CONTROL\\VIDEO\\{43C46605-9BA7-47C0-9481-00CD128642D1}\\0000"
    Dim oWMIService As SWbemServicesEx
    
    Set oWMIService = GetObject("WinMgmts:\\.\root\default")
    Set oSink = New SWbemSink
    
    oWMIService.ExecNotificationQueryAsync oSink, _
        "SELECT * FROM RegistryKeyChangeEvent " & _
        "WITHIN 1 WHERE " & _
        "Hive = 'HKEY_LOCAL_MACHINE' AND " & _
        "KeyPath = '" & regKey & "'"
        
End Sub
 
Private Sub oSink_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)
    Debug.Print objWbemObject.GetObjectText_
    Stop    
End Sub
1
70 / 62 / 19
Регистрация: 03.05.2013
Сообщений: 397
21.01.2024, 19:54  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
У меня срабатывает по 2 раза на каждую смену разршения.
Это потому что на каждый монитор два ключа, у меня также. Вообще спасибо за участие и наброшенные варианты, огромное человеческое спасибо . WMI раскрылся с неожиданной стороны. К сожалению, в живом коде это всё использовать не выйдет, слишком ненадёжно. Решил идти немного другим путём - сабкласить окно и отлавливать сообщение WM_DISPLAYCHANGE, оно срабатывает при каждом изменении разрешения и при перетыкании мониторов, а дальше дело техники.
0
1412 / 873 / 93
Регистрация: 08.02.2017
Сообщений: 3,724
Записей в блоге: 2
22.01.2024, 02:35
Есть еще RegistryTreeChangeEvent, которым можно отслеживать ветку реестра, но в событие, опять же, не попадают подробности в каком конкретно ключе произошло изменение. Ну, может, сабклассинг и надежнее но там же наверное бесконечный цикл..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2024, 02:35

Можно ли как-то подписаться на системные события "Source Control"?
Добрый день. Есть AddIn модуль, можно в нем как то подписаться на события, возникающие в IDE, когда мы забираем класс на...

Пропали системные звуки, в настройках звука пропали все звуковые схемы и программные события
Пропали системные звуки в windows 8.1. В настройках звука пропали все звуковые схемы и программные события. Подскажите, как решить эту...

Системные требования Windows XP
Лирическое вступление. Сегодня ставил систему на старую машину elitegroup p4m800-m7 Celeron 2,66 ГГц DDR400 256Мб. Конфигурация...

Системные файлы в Windows 8, 8.1
Добрый день, подскажите пожалуйста, как найти все системные файлы в Windows 8, 8.1. Их нужно указать для проверки на целостность. ...

Системные требования к Windows 7
Ребята скажите пожалуйста для оптимальной работы windows 7 1 гига оперативы маловато будет ? Мой Пк вот с такой конфигурацией проц ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru