精华内容
参与话题
问答
  • import win32api 安装pip install pypiwin32

    万次阅读 2019-04-15 14:19:02
    https://blog.csdn.net/dasunwarman/article/details/78493357
    展开全文
  • 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进行安装,成功解决。

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

    展开全文
  • import win32api ImportError: DLL load failed: 找不到指定的程序

    报错信息

    (venv) D:\pyvenv_xlwings64\venv>pip list
    Package    Version
    ---------- -------
    comtypes   1.1.7
    pip        19.2.3
    PyQt5      5.13.1
    PyQt5-sip  4.19.19
    pywin32    225
    setuptools 41.2.0
    wheel      0.33.6
    xlwings    0.15.3
    
    (venv) D:\pyvenv_xlwings64\venv>python
    Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import xlwings
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "D:\pyvenv_xlwings64\venv\lib\site-packages\xlwings\__init__.py", line 42, in <module>
        from . import _xlwindows as xlplatform
      File "D:\pyvenv_xlwings64\venv\lib\site-packages\xlwings\_xlwindows.py", line 10, in <module>
        import win32api
    ImportError: DLL load failed: 找不到指定的程序。
    >>>
    

    问题原因

    224、225新版本发布的有问题,回退到223版本即可

    (venv) D:\pyvenv_xlwings64\venv>pip install pywin32==223
    Collecting pywin32==223
      Downloading https://files.pythonhosted.org/packages/9f/9d/f4b2170e8ff5d825cd4398856fee88f6c70c60bce0aa8411ed17c1e1b21f/pywin32-223-cp36-cp36m-win_amd64.whl (9.0MB)
         |████████████████████████████████| 9.0MB 218kB/s
    Installing collected packages: pywin32
    Successfully installed pywin32-223
    
    (venv) D:\pyvenv_xlwings64\venv>
    (venv) D:\pyvenv_xlwings64\venv>
    (venv) D:\pyvenv_xlwings64\venv>
    (venv) D:\pyvenv_xlwings64\venv>pip list
    Package    Version
    ---------- -------
    comtypes   1.1.7
    pip        19.2.3
    PyQt5      5.13.1
    PyQt5-sip  4.19.19
    pywin32    223
    setuptools 41.2.0
    wheel      0.33.6
    xlwings    0.15.3
    
    (venv) D:\pyvenv_xlwings64\venv>python
    Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import xlwings
    >>> 
    
    展开全文
  • 按照正常操作安装了pypiwi32,win32com可以导入但是其中的win32api无法导入 报错: >>> import win32com.client as win32 Traceback (most recent call last): File "<pyshell#9>", line 1, in ...
  • “ConsoleApplication2.exe”(Win32): 已加载“D:\vs_project\ConsoleApplication2\Debug\ConsoleApplication2.exe”。已加载符号。 “ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”...
  • 使用win32截屏也是用户界面打开的时候能成功,把远程界面退出或者最小化的时候截屏失败,代码如下: ``` GrabUtil.py def grab(dpath,args): ''''' 参数为指定保存的目录 返回图片文件名,文件名格式:日期.jpg ...
  • 最近在学windows编程和Win32多线程程序设计,装了一个vs2015社区版,可是我以前没用过vs,只用过vc6.0……所以好像不太会创建Win32项目。窗口程序是复制的Microsoft网站上教怎么编写Windows程序的第一个例程,可是...
  • 推荐微软的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还可用于监听鼠标和键盘事件的输入
    展开全文
  • VC++ Win32俄罗斯方块游戏源码(新)

    千次下载 热门讨论 2014-08-06 12:08:14
    为了挑战一个新的高度,作者原创了他从事WEB编程以来的第一个Win32 API应用,之所以编写一个游戏,是因为游戏考察的知识面很综合,之所以选择俄罗斯方块,一是自己曾被瘾过,二是发现这款游戏几乎包含了Widows入门的...
  • win32开发(最简单的win32代码)

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

    千次阅读 2013-03-11 21:02:28
    概述  现在市场上出现了很多应用程序框架,比如窗体程序,如MFC,.net framwork , VB , delphi,举不胜数。...Win32的窗口应用程序,其实,win32窗口程序的核心就是窗口,一个win32窗口应
  • \C:\Users\Administrator\Desktop\electron-9caibox\presenterTool\9caibox-win32-ia32\resources\app\node_modules\ref\build\Release\binding.node is not a valid Win32 application\\?\C:\Users\Administrator\...
  • 但是你同样也听说过win32 api !!当在你的控制台应用程序中写下某个api函数的时候,你也许会窃喜api函数带来的方便。但是当你编译代码的时候,编译器会无情的通知你“不能识别XX标识符”。 所以,从现在开始我的blog...
  • windows 安装 win32 win32com模块

    千次阅读 2019-05-23 21:37:13
    其它方式并不奏效,可以使用如下方式: python -m pip install pypiwin32
  • python3安装win32api

    万次阅读 2019-04-11 15:58:47
    python3安装win32api
  • 想用python连接打印机,打印表格,网上查要import win32print,然后下载了pypiwin32,和pywin32,import win32print还是失败,pypiwin32和pywin32各只有两个dll文件,是我下载有错误吗,为什么无法import win32print...
  • 原配的Visual Studio 2005专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?先看如下图所示: 解决: 1、添加的办法是点击上图所示的新建项目界面的...
  • ---> System.ComponentModel.Win32Exception: 存储空间不足,无法处理此命令。 at System.Drawing.Icon.Initialize(Int32 width, Int32 height) at System.Drawing.Icon..ctor(SerializationInfo info, ...
  • 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
  • 最近安装了vs2017专业版,想创建一个c++项目,但是没有看到win32控制台程序的选项,安装的时候,应该全都安装了的,不知道问题出在哪里,请老师指教[img=...[/img]
  • 1、错误描述 [编译scss/sass] 15:48:25.231 internal/modules/cjs/loader.js:717 [编译scss/sass] 15:48:25.231 return process.dlopen(module, path.toNamespacedPath(filename)); [编译scss/sass] 15:48:25.231 ...
  • 1.Win32 Application和Win32 Console Application都是工作在32位Windows环境的程序。其中Win32 Application就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、不规则形状的……它们都是所谓的...
  • Win32 PInvoke.net: PInvoke.net is primarily a wiki, allowing developers to find, edit and add PInvoke* signatures, user-defined types, and any other information related to calling Win32 and o...
  • self.xlApp = win32com.client.Dispatch('Excel.Application') if filename: self.filename = filename self.xlBook = self.xlApp.Workbooks.Open(filename) else: self.xlBook = self.xlApp.Workbooks.Add() ...
  • 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 最新版
  • WIN32控件使用大全

    千次阅读 2010-03-18 18:17:00
    WIN32控件
  • 1、我先写了个win32控制台程序,实现了在控制台每秒打印abc功能,a.exe 2、我想再写一个MFC程序,在其中调用这个a.exe; 我用WinExec("E:\\a.exe",SW_SHOWMAXIMIZED); 控制台闪一下就没了 测试cmd WinExec("C:\\...

空空如也

1 2 3 4 5 ... 20
收藏数 128,730
精华内容 51,492
关键字:

win32