[PYTHON] Win32 API를 파이썬과 함께 사용하는 방법?
PYTHONWin32 API를 파이썬과 함께 사용하는 방법?
파이썬에서 win32 API를 사용하려면 어떻게해야합니까? 가장 쉽고 쉬운 방법은 무엇입니까? 몇 가지 예를 제공해 주실 수 있습니까?
해결법
-
==============================
1.PyWin32는 갈 길이지만 사용법은 무엇입니까? 한 가지 방법은 구체적인 문제로 시작하여 문제를 해결하는 것입니다. PyWin32는 많은 Win32 API 함수에 대한 바인딩을 제공하며, 실제로 특정 목표를 먼저 선택해야합니다.
PyWin32는 갈 길이지만 사용법은 무엇입니까? 한 가지 방법은 구체적인 문제로 시작하여 문제를 해결하는 것입니다. PyWin32는 많은 Win32 API 함수에 대한 바인딩을 제공하며, 실제로 특정 목표를 먼저 선택해야합니다.
내 Python 2.5 설치 (Windows의 ActiveState)에서는 win32 패키지에 라이브러리의 다양한 부분에 대한 샘플 코드가 들어있는 Demos 폴더가 있습니다.
예를 들어 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)
CopyFileEx 함수를 GetTempPath 및 GetTempFileName과 같은 몇 가지 다른 함수와 함께 사용하는 방법을 보여줍니다. 이 예제에서이 라이브러리로 작업하는 방법에 대한 "일반적인 느낌"을 얻을 수 있습니다.
-
==============================
2.@chaos에 언급 된 PyWin32는 아마도 가장 인기있는 선택 일 것이다. 대안은 파이썬의 표준 라이브러리의 일부인 ctypes입니다. 예를 들어 print ctypes.windll.kernel32.GetModuleHandleA (None)은 현재 모듈 (EXE 또는 DLL)의 모듈 핸들을 표시합니다. Win32 API를 사용하기 위해 ctypes를 사용하는보다 광범위한 예제가 있습니다.
@chaos에 언급 된 PyWin32는 아마도 가장 인기있는 선택 일 것이다. 대안은 파이썬의 표준 라이브러리의 일부인 ctypes입니다. 예를 들어 print ctypes.windll.kernel32.GetModuleHandleA (None)은 현재 모듈 (EXE 또는 DLL)의 모듈 핸들을 표시합니다. Win32 API를 사용하기 위해 ctypes를 사용하는보다 광범위한 예제가 있습니다.
-
==============================
3.Win32 Python에서 사용할 수있는 중요한 기능은 메시지 상자입니다. 이것은 OK 또는 Cancel의 전형적인 예입니다.
Win32 Python에서 사용할 수있는 중요한 기능은 메시지 상자입니다. 이것은 OK 또는 Cancel의 전형적인 예입니다.
result = win32api.MessageBox(None,"Do you want to open a file?", "title",1) if result == 1: print 'Ok' elif result == 2: print 'cancel'
컬렉션 :
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)
from https://stackoverflow.com/questions/1025029/how-to-use-win32-apis-with-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬과 numpy로 큰 데이터로 작업하는 것, 램이 충분하지 않은 것, 부분 결과를 디스크에 저장하는 방법? (0) | 2018.10.11 |
---|---|
[PYTHON] 일정 시간 후에 스레드를 중지하는 중 (0) | 2018.10.11 |
[PYTHON] 항목의 길이가 다른 사전에서 데이터 프레임 만들기 (0) | 2018.10.11 |
[PYTHON] 날짜 문자열을 다른 형식으로 변환하는 방법 [중복] (0) | 2018.10.11 |
[PYTHON] 두 마커 사이에서 부분 문자열을 추출하는 방법은 무엇입니까? (0) | 2018.10.11 |