導航:首頁 > 編程語言 > pythonwin32api教程

pythonwin32api教程

發布時間:2024-08-03 05:46:23

python win32 使用方式

handle = win32gui.FindWindow('Galaxy2DEngine',None)

left, top, right, bottom = win32gui.GetWindowRect(handle)

win32gui.MoveWindow(handle, int x, int y, int w,int h,BOOL bRepaint )

pos = win32gui.GetCursorPos()

win32api.SetCursorPos([x, y])

title = win32gui.GetWindowText(handle)
clsname = win32gui.GetClassName(handle)

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)

def click_it(self,x,y):
#設置滑鼠位置
win32api.SetCursorPos([x, y])
#獲取滑鼠位置
pos = win32api.GetCursorPos()
#通過滑鼠位置獲取窗體句柄
handle= win32gui.WindowFromPoint(pos)
#通過窗體名稱獲取窗體句柄(可通過spy++獲取)
#handle = win32gui.FindWindow('Galaxy2DEngine',None)
#獲取Title & ClassName
title = win32gui.GetWindowText(handle)
clsname = win32gui.GetClassName(handle)
#把在屏幕上滑鼠的位置轉換為打開的程序的客戶區的坐標
client_pos =win32gui.ScreenToClient(handle,pos)
tmp=win32api.MAKELONG(client_pos[0],client_pos[1])
#發送激活窗口消息 並發送滑鼠按下-抬起消息,依賴具體的窗體(handle),窗體內位置(tmp)
win32gui.SendMessage(handle, win32con.WM_ACTIVATE,win32con.WA_ACTIVE,0)
win32gui.SendMessage(handle, win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON,tmp)
win32gui.SendMessage(handle, win32con.WM_LBUTTONUP,win32con.MK_LBUTTON,tmp)
#win32gui.SendMessage(handle, win32con.WM_RBUTTONDOWN,win32con.MK_LBUTTON,tmp)
#win32gui.SendMessage(handle, win32con.WM_RBUTTONUP,win32con.MK_LBUTTON,tmp)

⑵ python可以直接調用win32的api嗎

不可以的,因為沒有api庫。

  1. Python沒有自帶訪問windows系統API的庫的,需要下載第三方庫。庫的名稱叫pywin32,可以從網上直接下載,下載鏈接:http://sourceforge.net/projects/pywin32/files%2Fpywin32/ (下載適合的Python版本)

  2. 使用中如果出現ImportError: No mole named win32api 或者出現 ImportError: No mole named win32con,說明你的庫沒有安裝好。

  3. 介紹這個庫裡面最重要的兩個模塊:win32api和win32con。win32api顧名思義,就是用python對win32的本地api進行了封裝;win32con個人理解為win32constant,即win32的常量定義。

⑶ python引用win32com顯示沒有win32api怎麼

python引用win32com顯示沒有win32api是缺少了windows系統API的庫這個模塊,安裝這個模塊即可。
1、要去下載一個win32com。
2、到sourceforge下載一個pywin32擴展進行安裝即可。

⑷ python怎麼調用api介面

調用windows API的方式其實有兩種,第一種是通過第三方模塊pywin32。
如果小夥伴安裝了pip,可以通過pip安裝pywin32
命令行中運行pip pst查看是否安裝了pywin32
如圖
我們這里調用一個windows最基本的API,MessageBox,該介面可以顯示一個對話框。
這里小編就不過多介紹了,只簡單的描述MessageBox介面,MessageBox是windows的一個API介面,作用是顯示一個對話框。
原型為:
int WINAPI MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);
第一個參數hWnd,指明了該對話框屬於哪個窗口,lpText為窗口提示信息,lpCaption則為窗口標題,uType則是定義對話框的按鈕和圖標。
這里我們需要導入win32api這個模塊(隸屬於pywin32),如果需要宏定義的,API的宏被定義在win32con(同隸屬於pywin32)模塊內。
這里我們只導入一個win32api模塊,然後簡單的調用MessageBox顯示一個對話框即可。
如果我們不會安裝pywin32模塊,或者說不想安裝這個三方模塊。這時我們還有一個辦法。
調用python內置模塊ctypes,如果小夥伴有windows編程基礎的話,或者看過一點MSDN的話,都該知道,Windows的API其實是以dll文件(動態鏈接庫)方式存在的。
+和|效果是相同的
更多Python相關技術文章,請訪問Python教程欄目進行學習!以上就是小編分享的關於python怎麼調用api介面的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

⑸ python可以直接調用win32的api嗎

python是可以直接調用win32的api的


在SourceForge網站上,可以找打python win32api這個第三方擴展(Python for Windows Extensions),下載之後安裝到電腦上,然後你的python安裝目錄就會多一個PythonWin這個快捷方式,打開然後寫如下代碼:

importwin32api

win32api.MessageBox(0,'hello','title')

結果如下圖:

⑹ Python下Pywin32的使用教程

你可以直接到lib的site-packages下面的win32目錄下,有一個demos。另外幾個win32開頭的目錄里也有demos子目錄。進去看他們寫好的例子。

⑺ 怎樣用python調用vc++編出來的win32 DLL

python調用vc中的API
准備工作: 安裝pywin32-210.5.win32-py2.5.exe

例1:最簡單的MessageBox函數
import win32api, win32gui
import win32con, winerror,win32event,pywintypes
import sys, os,time
win32api.MessageBox(0,'hello', 'WYM',win32con.MB_OK)

例2:進程監控
#Mutex.py
mutex=None
mutex=win32event.CreateMutex(None,pywintypes.FALSE,"MutexWym")
if(win32api.GetLastError() == winerror.ERROR_ALREADY_EXISTS):
print"Opened existing mutex object", mutex
else:
print "Created new mutex"
time.sleep(10)
win32api.CloseHandle(mutex)
print "close Mutex"
time.sleep(10)

#MonitorProcess.py

import win32api, win32gui
import win32con, winerror,win32event ,pywintypes
import sys, os,time
STANDARD_RIGHTS_REQUIRED = 0x000F0000L
SYNCHRONIZE = 0x00100000L
MUTANT_QUERY_STATE = 0x0001
MUTEX_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE
try:
while 1:
time.sleep(2)
hMutex=win32event.OpenMutex(MUTEX_ALL_ACCESS,pywintypes.FALSE,"MutexWym")
print win32api.GetLastError()
if hMutex is not None:
print "Mutex open"
win32api.CloseHandle(hMutex)
else:
print "Mutex not open"
break
except pywintypes.error, (errno, object, strerror):
print "Error in", object, ":", strerror

如何使用kernel32的API呢
例3:
import pywintypes
import winerror, win32con
import win32api, win32event, win32file, win32pipe, win32process, win32security
import win32service, win32serviceutil, servicemanager,ntsecuritycon
from ctypes import * #本例包括這個頭文件

hMutex = windll.kernel32.CreateMutexA(None, 0, "szMutex")
#其它API同理,比如像windll.kernel32.InitializeCriticalSection() 等等

a、python中涉及的windows下的類型?
通過pywintypes 可以獲得這個數據類型
b、獲得窗口句柄
通過FindWindow這API來查找相應的窗口的句柄,然後發消息給這個窗口,就可以實現這個功能
ct = win32api.GetConsoleTitle()
hd = win32gui.FindWindow(0,ct)
win32gui.ShowWindow(hd,0)


閱讀全文

與pythonwin32api教程相關的資料

熱點內容
php用什麼linux系統 瀏覽:137
cgi模塊python 瀏覽:222
安卓手機如何悄無聲息整壞手機 瀏覽:804
php獲取資料庫名稱 瀏覽:553
app伺服器怎麼防止交互埠 瀏覽:833
對一個演算法的評價不包括 瀏覽:535
3D臉pdf 瀏覽:886
在編譯之前更改指定時間 瀏覽:356
機房伺服器電源線如何扎線 瀏覽:732
什麼演算法治宣傳 瀏覽:18
哪個app可以測溫槍 瀏覽:17
macmongodbphp 瀏覽:332
php寫游戲伺服器 瀏覽:875
對立陣營插旗命令 瀏覽:373
java實現帕斯卡三角形演算法 瀏覽:316
linux文件名限制 瀏覽:710
金稅三期代理伺服器地址是什麼意思 瀏覽:429
多自變數擬合Python 瀏覽:456
文件夾加密總是失敗 瀏覽:510
androiddexpathlist 瀏覽:626