Найти - Пользователи
Полная версия: dll через windll
Начало » Python для новичков » dll через windll
1
Sergey912
Хочу достать функцию SystemParametersInfo, например,

line 11:dl = windll.rundll32
В резульате:

Traceback (most recent call last):
File "D:\pr\index.pyw", line 12, in <module>
dl = windll.rundll32
File "D:\Python26\lib\ctypes\__init__.py", line 423, in __getattr__
dll = self._dlltype(name)
File "D:\Python26\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126]
Хотя,
dll1 = windll.kernel32
print dll1.GetModuleHandleW(None)
>>> 486539264

что не так с этой dll?
PooH
Sergey912
что не так с этой dll?
Дык это вроде не DLL, а запускаемый файл, который позволяет запускать функции из других dll

А SystemParametersInfo лежит в user32
>>> import ctypes
>>> dll1 = ctypes.windll.user32
>>> dll1.SystemParametersInfoW
<_FuncPtr object at 0x00C2E990>
Sergey912
А как с константами?
Например, перерисовать обои на рабочем столе?

Делаю для питона:
SPI_SETDESKWALLPAPER = int(20)
SPIF_UPDATEINIFILE = int(0x01)
SPIF_SENDWININICHANGE = int(0x02)
windll.user32.SystemParametersInfoW(SPI_SETDESKWALLPAPER,0,“D:\\1.bmp”,SPIF_UPDATEINIFILE)


Константы брал отсюда http://blogs.msdn.com/coding4fun/archive/2006/10/31/912569.aspx,
const int SPI_SETDESKWALLPAPER = 20;
const int SPIF_UPDATEINIFILE = 0x01;
const int SPIF_SENDWININICHANGE = 0x02;

Откуда все эти константы брать?
Такую константу Const SPIF_UPDATEINIFILE = &H1
питон в int не преобразовывает…
Sergey912
Упс, разобрался windll.user32.SystemParametersInfoA
Еще бы разобраться, как устанавливать параметр “Растянуть”, “замостить” и подобные
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB