I am trying to detect brightness changes on my laptop using a set of tools called Windows Management Instrumentation (WMI), particularly an event class called WmiMonitorBrightnessEvent
and a watch_for
listener. The use of the latter is described here, and documentation for the WMI event is found here.
c = wmi.WMI ()
watcher = c.watch_for (
notification_type="Creation",
wmi_class="Win32_Process",
delay_secs=2,
Name='calc.exe'
)
calc_created = watcher ()
However, only the second example on the timgolden website works, which is for detecting if the calculator gets opened and closed.
Here is one reference that might be useful.
Please guide me on adapting the code to detect brightness changes on my laptop! BTW I am on Python 3 and Windows 10 and this is the code I run:
import wmi
c = wmi.WMI()
power_watcher = c.Win32_WmiMonitorBrightnessEvent.watch_for()
print(power_watcher)
The error I get is:
Traceback (most recent call last):
File "C:\Users\Arno\AppData\Local\Programs\Python\Python38\lib\site-packages\wmi.py", line 1145, in __getattr__
return self._cached_classes (attribute)
File "C:\Users\Arno\AppData\Local\Programs\Python\Python38\lib\site-packages\wmi.py", line 1156, in _cached_classes
self._classes_map[class_name] = _wmi_class (self, self._namespace.Get (class_name))
File "<COMObject winmgmts:>", line 2, in Get
File "C:\Users\Arno\AppData\Local\Programs\Python\Python38\lib\site-packages\win32com\client\dynamic.py", line 287, in _ApplyTypes_
result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'SWbemServicesEx', 'Not found ', None, 0, -2147217406), None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "watcher4.py", line 3, in <module>
power_watcher = c.Win32_WmiMonitorBrightnessEvent.watch_for()
File "C:\Users\Arno\AppData\Local\Programs\Python\Python38\lib\site-packages\wmi.py", line 1147, in __getattr__
return getattr (self._namespace, attribute)
File "C:\Users\Arno\AppData\Local\Programs\Python\Python38\lib\site-packages\win32com\client\dynamic.py", line 527, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: winmgmts:.Win32_WmiMonitorBrightnessEvent