精华内容
下载资源
问答
  • python 3.6 安装 win32 win32com模块

    万次阅读 多人点赞 2018-05-24 13:17:25
    本人使用python3.6,最近要使用到pywin32中的为win32com模块,于是尝试安装,主要方法有以下几种:  1.在http://sourceforge.net/projects/pywin32/files/pywin32/ 上下载对应的版本进行安装,对build221,220,...

    本人使用python3.6,最近要使用到pywin32中的为win32com模块,于是尝试安装,主要方法有以下几种: 


    1.在http://sourceforge.net/projects/pywin32/files/pywin32/ 上下载对应的版本进行安装,对build221,220,219均进行了尝试(分别对应了python3.5.3,3.5.1+,3.5.0a版本,在进行安装时,不能正确寻找到python的安装目录,并将所搜索到的方法均进行尝试后仍然不能解决,遂放弃,可能是跟我使用的python版本有问题吧(未验证)。 


    2.在http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook下载了.whl文件,使用pip 安装后发现其中有文件缺失,不能正常使用。 


    3.这是我成功的方法,经过搜索和向人请教后,在https://stackoverflow.com/questions/4863056/how-to-install-pywin32-module-in-windows-7找到这样一段话: 
    这里写图片描述 
    于是在cmd中使用python -m pip install pypiwin32进行安装,成功解决。

     
    因为我寻找到这个解决办法耗费了一定时间,在中文资料中暂时没找到第三种解决方案的描述,因此分享出来,希望对大家有用。

    展开全文
  • 1.WIN32宏 在 Win32 配置下,WIN32 在“项目属性-C/C++-预处理器-预处理器定义”里声明了,而在 x64 配置下,这个常量并不在项目预定义列表中。这是否说明可以根据 WIN32 来判断是否在 x64 平台呢?不。在 Windows ...

    1.WIN32宏

    在 Win32 配置下,WIN32 在“项目属性-C/C++-预处理器-预处理器定义”里声明了,而在 x64 配置下,这个常量并不在项目预定义列表中。这是否说明可以根据 WIN32 来判断是否在 x64 平台呢?不。在 Windows SDK 的 minwindef.h 下第 37 行有如下定义:

    #ifndef WIN32
    
    #define WIN32
    
    #endif

    即是说,只要包含了 Windows.h,那么 WIN32 常量是肯定定义了的,所以不能用于判断平台环境。但是如果在预处理定义里删掉 WIN32,又不包含 Windows.h,那么 WIN32 未定义

     

    2._WIN32,_WIN64

    _WIN32 和 _WIN64,这两个比较特别,没有任何显式定义。在 Windows.h 里没有,在“项目属性-C/C++-预处理器-预处理器定义”下也没有。根据 MSDN,这是由编译器(ml.exe/ml64.exe)内部定义的。具体描述是

     

      _WIN32:Defined for applications for Win32 and Win64. Always defined.

     

      _WIN64:Defined for applications for Win64.

     

    3总结

    WIN32宏   --只要包含了 Windows.h,那么 WIN32 常量是肯定定义了的,所以不能用于判断平台环境

    _WIN32     --32位和64位程序都有,且总是定义的.

    _WIN64    --只有64位程序才有

     

    4使用

    WIN32/_WIN32 可以用来判断是否 Windows 系统(对于跨平台程序),

    而 _WIN64 用来判断编译环境是 x86 还是 x64

    常用代码:

    (1)判断是不是windows平台

    #if _WIN32 || WIN32  //windows平台
    ...
    #else 
    ...
    #endif

    (2)判断是不是64位环境还是32位

    #ifdef _WIN64
    
    #ifdef _DEBUG
    #pragma comment(lib, "*x64d.lib")
    
    #else
    #pragma comment(lib, "*x64r.lib")
    #endif
    
    #else
    
    #ifdef _DEBUG
    #pragma comment(lib, "*x86d.lib")
    #else
    #pragma comment(lib, "*x86r.lib")
    #endif
    
    #endif

    易犯错误案例(容易使用WIN32进行判断,但是是错误的):

    #ifdef WIN32
    
    #ifdef _DEBUG
    #pragma comment(lib, "*x86d.lib")
    #else
    #pragma comment(lib, "*x86r.lib")
    #endif
    
    #else
    
    #ifdef _DEBUG
    #pragma comment(lib, "*x64d.lib")
    
    #else
    #pragma comment(lib, "*x64r.lib")
    #endif
    
    #endif

     

     

     

    展开全文
  • 推荐微软的Spy++来查看窗口类名等信息。 import win32gui import win32con import win32api # 从顶层窗口向下搜索主窗口,无法搜索子窗口 # FindWindow(lpClassName=...handle = win32gui.FindWindow("Notepad", N

    推荐微软的Spy++来查看窗口类名等信息。

    import win32gui
    import win32con
    import win32api
    
    # 从顶层窗口向下搜索主窗口,无法搜索子窗口
    # FindWindow(lpClassName=None, lpWindowName=None)  窗口类名 窗口标题名
    handle = win32gui.FindWindow("Notepad", None) 
    
    
    # 获取窗口位置
    left, top, right, bottom = win32gui.GetWindowRect(handle)
    #获取某个句柄的类名和标题
    title = win32gui.GetWindowText(handle)     
    clsname = win32gui.GetClassName(handle)
    
    # 打印句柄
    # 十进制
    print(handle)
    # 十六进制
    print("%x" %(handle) )
    
    
    # 搜索子窗口
    # 枚举子窗口
    hwndChildList = []     
    win32gui.EnumChildWindows(handle, lambda hwnd, param: param.append(hwnd),  hwndChildList)
    
    # FindWindowEx(hwndParent=0, hwndChildAfter=0, lpszClass=None, lpszWindow=None) 父窗口句柄 若不为0,则按照z-index的顺序从hwndChildAfter向后开始搜索子窗体,否则从第一个子窗体开始搜索。 子窗口类名 子窗口标题
    subHandle = win32gui.FindWindowEx(handle, 0, "EDIT", None)
    
    # 获得窗口的菜单句柄
    menuHandle = win32gui.GetMenu(subHandle)
    # 获得子菜单或下拉菜单句柄   
    # 参数:菜单句柄 子菜单索引号
    subMenuHandle = win32gui.GetSubMenu(menuHandle, 0)
    # 获得菜单项中的的标志符,注意,分隔符是被编入索引的  
    # 参数:子菜单句柄 项目索引号 
    menuItemHandle = win32gui.GetMenuItemID(subMenuHandle, 0)
    # 发送消息,加入消息队列,无返回 
    # 参数:句柄 消息类型 WParam IParam
    win32gui.postMessage(subHandle, win32con.WM_COMMAND, menuItemHandle, 0)
    
    
    # wParam的定义是32位整型,high word就是他的31至16位,low word是它的15至0位。
    # 当参数超过两个,wParam和lParam不够用时,可以将wParam就给拆成两个int16来使用。
    # 这种时候在python里记得用把HIWORD的常数向左移16位,再加LOWORD,即wParam = HIWORD<<16+LOWORD。
    
    # 下选框内容更改
    # 参数:下选框句柄; 消息内容; 参数下选框的哪一个item,以0起始的待选选项的索引;如果该值为-1,将从组合框列表中删除当前选项,并使当前选项为空; 参数
    # CB_Handle为下选框句柄,PCB_handle下选框父窗口句柄
    if win32api.SendMessage(CB_handle, win32con.CB_SETCURSEL, 1, 0) == 1:
    # 下选框的父窗口命令
    # 参数:父窗口句柄; 命令; 参数:WParam:高位表示类型,低位表示内容;参数IParam,下选框句柄
    # CBN_SELENDOK当用户选择了有效的列表项时发送,提示父窗体处理用户的选择。 LOWORD为组合框的ID. HIWORD为CBN_SELENDOK的值。
                win32api.SendMessage(PCB_handle, win32con.WM_COMMAND, 0x90000, CB_handle) 
    # CBN_SELCHANGE当用户更改了列表项的选择时发送,不论用户是通过鼠标选择或是通过方向键选择都会发送此通知。LOWORD为组合框的ID. HIWORD为CBN_SELCHANGE的值。
                win32api.SendMessage(PCB_handle, win32con.WM_COMMAND, 0x10000, CB_handle) 
    
    
    # 设置文本框内容,等窗口处理完毕后返回true。中文需编码成gbk 
    # 参数:句柄;消息类型;参数WParam,无需使用; 参数IParam,要设置的内容,字符串
    win32api.SendMessage(handle, win32con.WM_SETTEXT, 0, os.path.abspath(fgFilePath).encode('gbk'))
    
    
    # 控件点击确定,处理消息后返回0
    # 参数:窗口句柄; 消息类型; 参数WParam HIWORD为0(未使用),LOWORD为控件的ID; 参数IParam  0(未使用),确定控件的句柄
    win32api.SendMessage(Mhandle, win32con.WM_COMMAND, 1, confirmBTN_handle)
    
    
    # 获取窗口文本不含截尾空字符的长度
    # 参数:窗口句柄; 消息类型; 参数WParam; 参数IParam
    bufSize = win32api.SendMessage(subHandle, win32con.WM_GETTEXTLENGTH, 0, 0) +1
    # 利用api生成Buffer
    strBuf = win32gui.PyMakeBuffer(bufSize)
    print(strBuf)
    # 发送消息获取文本内容
    # 参数:窗口句柄; 消息类型;文本大小; 存储位置
    length = win32gui.SendMessage(subHandle, win32con.WM_GETTEXT, bufSize, strBuf)
    # 反向内容,转为字符串
    # text = str(strBuf[:-1])
    
    address, length = win32gui.PyGetBufferAddressAndLen(strBuf) 
    text = win32gui.PyGetString(address, length) 
    # print('text: ', text)
    
    # 鼠标单击事件
    #鼠标定位到(30,50)
    win32api.SetCursorPos([30,150])
    #执行左单键击,若需要双击则延时几毫秒再点击一次即可
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    #右键单击
    win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
    
    def click1(x,y):                #第一种
        win32api.SetCursorPos((x,y))
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
    
    def click2(x,y):               #第二种
        ctypes.windll.user32.SetCursorPos(x,y)
        ctypes.windll.user32.mouse_event(2,0,0,0,0)
        ctypes.windll.user32.mouse_event(4,0,0,0,0)
    
    def click_it(pos):          #第三种
        handle= win32gui.WindowFromPoint(pos)
        client_pos =win32gui.ScreenToClient(handle,pos)
        tmp=win32api.MAKELONG(client_pos[0],client_pos[1])
        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)
    
    # 发送回车
    win32api.keybd_event(13,0,0,0)
    win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0)
    
    
    # 关闭窗口
    win32gui.PostMessage(win32lib.findWindow(classname, titlename), win32con.WM_CLOSE, 0, 0)
    
    
    # 检查窗口是否最小化,如果是最大化
    if(win32gui.IsIconic(hwnd)):
    #     win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)
        win32gui.ShowWindow(hwnd, 8)
        sleep(0.5)
    
    # SW_HIDE:隐藏窗口并激活其他窗口。nCmdShow=0。
    # SW_MAXIMIZE:最大化指定的窗口。nCmdShow=3。
    # SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。nCmdShow=6。
    # SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。nCmdShow=9。
    # SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。nCmdShow=5。
    # SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO 结构是由启动应用程序的程序传递给CreateProcess函数的。nCmdShow=10。
    # SW_SHOWMAXIMIZED:激活窗口并将其最大化。nCmdShow=3。
    # SW_SHOWMINIMIZED:激活窗口并将其最小化。nCmdShow=2。
    # SW_SHOWMINNOACTIVE:窗口最小化,激活窗口仍然维持激活状态。nCmdShow=7。
    # SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。nCmdShow=8。
    # SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。nCmdShow=4。
    # SW_SHOWNORMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。nCmdShow=1。
    
    # win32虽然也可控制键盘,但不如使用PyUserInput的方便。需要注意在windows和mac下接口参数可能有所不同。
    from pymouse import PyMouse
    from pykeyboard import PyKeyboard
    m = PyMouse()
    k = PyKeyboard()
    
    x_dim, y_dim = m.screen_size()
    # 鼠标点击
    m.click(x_dim/2, y_dim/2, 1)
    # 键盘输入
    k.type_string('Hello, World!')
    
    # 按住一个键
    k.press_key('H')
    # 松开一个键
    k.release_key('H')
    # 按住并松开,tap一个键
    k.tap_key('e')
    # tap支持重复的间歇点击键
    k.tap_key('l',n=2,interval=5) 
    # 发送判断文字
    k.type_string('123456')
    
    #创建组合键
    k.press_key(k.alt_key)
    k.tap_key(k.tab_key)
    k.release_key(k.alt_key)
    # 特殊功能键
    k.tap_key(k.function_keys[5]) # Tap F5
    k.tap_key(k.numpad_keys['Home']) # Tap 'Home' on the numpad
    k.tap_key(k.numpad_keys[5], n=3) # Tap 5 on the numpad, thrice
    
    # Mac系统
    k.press_keys(['Command','shift','3'])
    # Windows系统
    k.press_keys([k.windows_l_key,'d'])
    
    其中的PyMouseEvent和PyKeyboardEvent还可用于监听鼠标和键盘事件的输入
    展开全文
  • python win32 窗口和鼠标操作

    万次阅读 2018-07-23 23:23:00
    import win32gui, win32api, win32con # 获取鼠标当前位置的坐标 win32api.GetCursorPos() # 将鼠标移动到坐标处 win32api.SetCursorPos((200, 200)) # 左点击 win32api.mouse_event(win32con.MO...

    用win32api, win32gui 获取窗口句柄,获取鼠标坐标,点击动作

    import win32gui, win32api, win32con
    # 获取鼠标当前位置的坐标
    win32api.GetCursorPos()
    # 将鼠标移动到坐标处
    win32api.SetCursorPos((200, 200))
    # 左点击
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 200, 200, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 200, 200, 0, 0)
    # 获取所有窗口
    titles = set()
    def foo(hwnd, mouse):
        #去掉下面这句就所有都输出了,但是我不需要那么多
        if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):
            titles.add(win32gui.GetWindowText(hwnd))
    win32gui.EnumWindows(foo, 0)
    result = [t for t in titles if t]
    # 找到某个窗口
    win32gui.FindWindow(None, 'qq')
    win32gui.FindWindow('TXGuiFoundation', None)
    # 通过坐标获取窗口句柄
    hw = win32gui.WindowFromPoint(win32api.GetCursorPos())
    # 获取窗口classname
    win32gui.GetClassName(hw)
    # 获取窗口标题
    win32gui.GetWindowText(hw)
    #获取句柄窗口的大小信息
    left, top, right, bot = win32gui.GetWindowRect(hW)
    width = right - left
    height = bot - top
    
    展开全文
  • import win32gui import win32con import win32api # 从顶层窗口向下搜索主窗口,无法搜索子窗口 # FindWindow(lpClassName=None, lpWindowName=None) 窗口类名 窗口标题名 handle = win32gui.FindWindow("...
  • python3安装win32api

    万次阅读 2019-04-11 15:58:47
    python3安装win32api
  • win32dasmV10

    热门讨论 2012-04-07 19:21:24
    win32dasmV10。Win32dasm是个反编译工具,它可以将应用程序静态反编译为WIN 32汇编代码,利用Win32dasm我们可以对程序进行静态分析,帮助快速找到程序的破解突破口,有时甚至可以直接用它来破解软件。不过Win32dasm...
  • win32.hlp WIN32的API帮助文档

    千次下载 热门讨论 2009-04-13 15:17:05
    win32.hlp WIN32的API帮助文档,很多汇编IDE里用的帮助就是这个,这是一个比较全的版本。其实还是MSDN好,但这个更专只专对API
  • Matlab 2015b Win32 Crack

    千次下载 热门讨论 2016-01-26 20:30:58
    matlab 2015b x86 win32 crack 完美破解文件,亲测,可以完美破解
  • 1.Win32 Application和Win32 Console Application都是工作在32位Windows环境的程序。其中Win32 Application就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、不规则形状的……它们都是所谓的...
  • php100 课程2012版所用到的httpd-2.2.21-win32-x86+php-5.4.0RC4-Win32-VC9-x86+mysql-5.5.18-win32 三大工具合集,已测试可用。
  • import win32api import win32con import win32gui import time import win32clipboard as w 安装包可以通过pip进行安装 : pip install win32api ,我使用的是Anaconda,直接import。 二、找到微信聊天窗口: ...
  • 预定义常量WIN32、_WIN32、_WIN64的作用

    千次阅读 2019-02-23 19:10:51
    本文参考 Kevin_土豆博文: ... 先说结论: 1、 WIN32/_WIN32 可以用来判断是否 Windows 系统(对于跨平台程序) 2、 _WIN64 用来判断编译环境是 x86(32位) 还是 x64(64位)  在 Win32 配置下,_WIN32 ...
  • 按照正常操作安装了pypiwi32,win32com可以导入但是其中的win32api无法导入 报错: >>> import win32com.client as win32 Traceback (most recent call last): File "<pyshell#9>", line 1, in ...
  • win32开发(最简单的win32代码)

    千次阅读 2017-12-12 08:48:45
    【 声明:版权所有,欢迎转载,请勿用于...所以,利用这一段时间,将win32和mfc的代码重新学习了一下,收获还是很多的。 实际开发中,使用mfc的概率比win32多很多。但是,这不妨碍大家学习win32来开发应用。建议大家
  • chromedriver_win32

    千次下载 热门讨论 2014-09-21 18:18:54
    chromedriver_win32
  • Win32 Application和Win32 Console Application都是工作在32位Windows环境的程序。Win32 Application(Win32 窗口应用程序)
  • Pycharm下导入win32api、win32con报错

    千次阅读 2019-11-25 10:39:14
    在PyCharm中,发现import win32api 失败。 是因为PyCharm中要做一些设定,点击Pycharm的File-->settings...-->Project:untitled-->Project Interpreter 在Project Interpreter页面点击+号,在弹出的...
  • Virus.Win32.Ramnit.X,Virus.Win32.Ramnit.a,Virus.Win32.Ramnit.b病毒专杀工具。
  • 空项目   控制台 win 32 mfc 问2个问题即可。...1.控制台 VS win32 mfc?...有脸,选win32或mfc。...控制台与win32 mfc:交互方式的不同,前者是CML(命令模式),后者是GUI(用户界面)。 ...
  • No module named 'win32gui’解决办法 在终端运行以下命令: pip install win32gui 还是出现: No module named 'win32gui' 然后,终端运行了 pip install pypiwin32 居然没有报错了,我也是无语了。谁能解释下 ...
  • 对VS中win32应用程序和win32总结篇
  • win32汇编实现贪吃蛇

    热门讨论 2011-12-01 23:34:46
    win32汇编实现贪吃蛇 win32汇编多文件程序设计 汇编语言实现动态链表 以对话框做窗口模板并做为主界面 开发工具 ollydbg + MASM32 + gVim + NMAKE + ResEd
  • pecl-5.2.5-Win32+php-5.2.13-Win32.zip

    热门讨论 2012-10-18 17:19:24
    PHP+Tomcat环境搭建 pecl-5.2.5-Win32 php-5.2.13-Win32.zip
  • mysql-5.5.22-win32 32位系统mysql5.5安装包

    千次下载 热门讨论 2012-04-05 22:01:27
    mysql-5.5.22-win32 32位系统mysql5.5安装包
  • WIN32和_WIN32的区别

    千次阅读 2014-09-07 21:20:59
    WIN32 is defined by the SDK or the build environment, so it does not use the implementation reserved namespace_WIN32 is defined by the compiler so it uses the underscore to place it in the implementat
  • 1、使用环境: ... 1、打开Vs2013,在里面创建一个简单的Win32 程序:(打开Vs2013->"文件(F)"->"新建(N)"->"项目(P)"->"Visual C++"->"Win32”->"Win32 项目"->名称填写"Demo",点击确定->"下一步"- “完成”)
  • sokit-1.3 win32

    热门讨论 2015-07-28 16:57:32
    sokit 1.3 win32 chs.
  • eclipse-jee-mars-R-win32-x86_64位官方绿色版.zip

    万次下载 热门讨论 2015-06-30 15:42:46
    eclipse-jee-mars-R-win32-x86_64.zip 截至2015.06.30 eclipse-j2ee 最新版

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 687,299
精华内容 274,919
关键字:

win32