Jak mogę używać API win32 w Pythonie?
Jaki jest najlepszy i najprostszy sposób to zrobić?
Czy możesz podać kilka przykładów?Jak korzystać z API Win32 z pythonem?
Odpowiedz
PyWin32 jest drogą do zrobienia - ale jak z niego korzystać? Jednym podejściem jest rozpoczęcie konkretnego problemu i próba jego rozwiązania. PyWin32 udostępnia powiązania dla funkcji Win32 API, dla których istnieje wiele, i naprawdę musisz najpierw wybrać konkretny cel.
W mojej instalacji Pythona 2.5 (ActiveState na Windows) pakiet win32 zawiera folder Demos zapakowany w przykładowy kod różnych części biblioteki.
Na przykład, oto CopyFileEx.py:
import win32file, win32api
import os
def ProgressRoutine(TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred,
StreamNumber, CallbackReason, SourceFile, DestinationFile, Data):
print Data
print TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred, StreamNumber, CallbackReason, SourceFile, DestinationFile
##if TotalBytesTransferred > 100000:
## return win32file.PROGRESS_STOP
return win32file.PROGRESS_CONTINUE
temp_dir=win32api.GetTempPath()
fsrc=win32api.GetTempFileName(temp_dir,'cfe')[0]
fdst=win32api.GetTempFileName(temp_dir,'cfe')[0]
print fsrc, fdst
f=open(fsrc,'w')
f.write('xxxxxxxxxxxxxxxx\n'*32768)
f.close()
## add a couple of extra data streams
f=open(fsrc+':stream_y','w')
f.write('yyyyyyyyyyyyyyyy\n'*32768)
f.close()
f=open(fsrc+':stream_z','w')
f.write('zzzzzzzzzzzzzzzz\n'*32768)
f.close()
operation_desc='Copying '+fsrc+' to '+fdst
win32file.CopyFileEx(fsrc, fdst, ProgressRoutine, operation_desc, False, win32file.COPY_FILE_RESTARTABLE)
To pokazuje, jak korzystać z funkcji CopyFileEx z kilku innych (takich jak GetTempPath i GetTempFileName). Z tego przykładu można uzyskać "ogólne odczucie" jak pracować z tą biblioteką.
Uwaga dotycząca stylu: 3 'otwarte (fn, 'w'). Write ('dane')' linie w CPythonie przekazują ten sam komunikat co 9 'otwórz, napisz, zamknij' linie. – jfs
PyWin32, jak wspomina @chaos, jest prawdopodobnie najpopularniejszym wyborem; alternatywą jest ctypes, która jest częścią standardowej biblioteki Pythona. Na przykład print ctypes.windll.kernel32.GetModuleHandleA(None)
wyświetli uchwyt modułu bieżącego modułu (EXE lub DLL). Bardziej obszernym przykładem użycia ctypów do uzyskania API win32 jest here.
Link do przykładu nie działa dla mnie. –
@RadimCernej: Wypróbuj wyszukiwarkę google dla 'import ctypes github'. Otrzymasz wiele trafień. Lub spróbuj tego przykładu na GitHub, który używa 'from ctypes import *': https://github.com/erochest/snippets/blob/master/win32named.py – kevinarpe
Nie dostali pyWin32 do pracy z wersją Pythona MSYS2. Ma to miejsce w przypadku CTypes. –
Ważnymi funkcjami, które można stosować w Pythonie win32, są pola wiadomości, czyli klasyczny przykład OK lub Anuluj.
result = win32api.MessageBox(None,"Do you want to open a file?", "title",1)
if result == 1:
print 'Ok'
elif result == 2:
print 'cancel'
Kolekcja:
win32api.MessageBox(0,"msgbox", "title")
win32api.MessageBox(0,"ok cancel?", "title",1)
win32api.MessageBox(0,"abort retry ignore?", "title",2)
win32api.MessageBox(0,"yes no cancel?", "title",3)
- 1. Jak korzystać z zasobów Dialog w Win32?
- 2. Interfejs API win32 win32 api
- 3. jak używać Google Shortener API z Pythonem
- 4. Jak korzystać z API Fandango?
- 5. Globalny klawisz skrótu z interfejsem WIN32 API?
- 6. Stos API Win32 chodzić z MinGW/MSYS?
- 7. Quick Rest API z Pythonem do kpienia z odpowiedzi
- 8. Korzystanie z Google Calendar API v 3 z Pythonem
- 9. Jak korzystać z QueryPerformanceCounter?
- 10. Jak korzystać z Google API wykres
- 11. Jak korzystać z API w wordpress
- 12. Jak korzystać z Pythona Elasticsearch mget() API
- 13. Jak korzystać z Twitter API w java?
- 14. Jak właściwie korzystać z Google Maps API?
- 15. iOS Jak korzystać z prywatnego interfejsu API?
- 16. jak używać związków z pythonem?
- 17. Jak rozszyfrować JSON z Pythonem
- 18. Przechowywanie haseł z pythonem
- 19. Crunching xml z pythonem
- 20. Jak korzystać z programu Ninject z interfejsem ASP.NET Web API?
- 21. Jak korzystać z Google Drive API z Google App Engine?
- 22. Jak korzystać z interfejsu API wykresów z react-native-fbsdk?
- 23. Problem nakładki ikon z Pythonem
- 24. JIRA z Pythonem
- 25. Problem z konsolą Win32:
- 26. Jak korzystać z ffmpeg z Pythonem, przekazując Obiekty plików (zamiast lokalizacji do plików na dysku)
- 27. WinRT jako zamiennik Win32 API
- 28. Z jakich interfejsów API Documentum należy korzystać?
- 29. Wywoływanie skryptu PowerShell z Pythonem
- 30. Znajdź poniedziałkową randkę z pythonem
prostu zastanawiasz się, czy szukaj w ogóle? http://www.google.com/search?q=python+win32+api –
tak, faktycznie zrobiłem to przed zadaniem pytania i znalazłem kilka wyników. moim celem jest rozpoczęcie nauki najbardziej zalecanego rozwiązania mojego problemu. poza tym, nie zadawano już takiego pytania w stosie przepełnienia stosu, więc pomyślałem, że dobre odpowiedzi od bardziej doświadczonych programistów mogą pokazać właściwą ścieżkę dla początkujących, takich jak ja =) – kolistivra
Przeszukałem go i śledziłem linki, a nadal nie wiem jak . – Nosredna