导航:首页 > 编程语言 > 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教程相关的资料

热点内容
c语言能写出汇编的编译器吗 浏览:473
gcc不能编译的问题 浏览:147
字节跳动app什么时候可以用 浏览:775
车载obd防盗定位器连接什么app 浏览:154
pdf版电子书 浏览:785
视频数据加密协议 浏览:518
单片机转正弦波怎么用 浏览:981
compressor图片压缩 浏览:992
delphi程序员 浏览:379
服务器dc灯不亮是什么 浏览:196
androidsuc 浏览:72
编程原则自上而下单元 浏览:557
云计算服务器贵州云空间 浏览:38
登录服务器login输入什么 浏览:880
三点指标公式源码 浏览:544
黑马程序员fetch教程 浏览:442
不用编程的游戏引擎 浏览:533
点菜pdf 浏览:82
圣经pdf下载 浏览:291
如何打印到pdf文件 浏览:558