Форум сайта python.su
Никак не могу понять, как пользоваться ctypes :(
Может поможет кто, на примере:
http://msdn.microsoft.com/en-us/library/aa909766.aspx
или
http://www.discussweb.com/windows-mobile/1950-how-soft-reset-windows-mobile-5-0-a.html
Начитался гору манов, но всё равно не въеду…
Офлайн
:)
а документацию читать пробовал?
http://docs.python.org/library/ctypes.html
Офлайн
Пробовал. И ничего не понял. Там в примерах работа с непонятными мне библиотеками и dll… Я не пойму откуда они там что берут в примерах. Поэтому и прошу показать на конкретном примере :(
Офлайн
Офлайн
:)
Ужос…
Прочитай что такое dll и чем они отличаются от статических библиотек…
Если уж речь зашла до конкретной функции PlaySound то читать про неё нужно здесь:
http://msdn.microsoft.com/en-us/library/ms712879.aspx
Стоит так же знать о разнице между юникодными вызовами и ансишными…
Где почитать - не подскажу, но тебе нужно будет использовать не PlaySound, а PlaySoundW или PlaySoundA
Дальше по доке…
Example Code
The following example plays a sound file:
PlaySound(TEXT(“recycle.wav”), NULL, SND_FILENAME);
Нужно узнать значение SND_FILENAME.
Опять же по доке:
Header: Declared in Mmsystem.h; include Windows.h.
Т.е. ищем значение в Mmsystem.h
А дальше читаем доку по ctypes
>>> from ctypes import *
>>> print(windll.kernel32) # doctest: +WINDOWS
почти то что нам нужно, но вместо kernel32.dll нам нужна winmm.dll
И если теперь попытаться всё это сложить, можно родить следующее:
>>> from ctypes import windll
>>> print(windll.winmm.PlaySoundW) # <_FuncPtr object at 0x00BED918>
Есть, говорит, такая функция…
И последний, героический шаг
>>> from ctypes import windll
>>> windll.winmm.PlaySoundW('recycle.wav', None, 0x00020000)
Теоретически должно чего-то проиграть…
Что такое 0x00020000 - думаю догадаешься…
Офлайн
Я привёл те ссылки, потому что мне нужно понимать как пользоваться в WindowsMobile, там нет kernel32 и т.д.
Офлайн