【问题标题】:Pressing keys with python win32api用 python win32api 按键
【发布时间】:2013-10-06 23:17:20
【问题描述】:

我正在尝试在 PYTHON 2.4 脚本中实现以下行为,以下是步骤,然后是问题:

  1. Python 脚本启动
  2. 脚本延迟 3 秒以更改为“Z”程序的窗口
  3. 脚本在“Z”程序的窗口上进行了一些点击。
  4. 脚本停止点击
  5. /* ¿ */
  6. 要求继续执行程序
  7. /* ¿ */
  8. 转到第 2 步

所以,在第 5 步和第 7 步中,我想要模拟按下 Alt+Tab 键以返回脚本窗口(在第 5 步中),然后再次返回“Z”程序窗口(在步骤 7 中)。 问题是我不知道如何实现这一点(模拟按键 alt+tab),也没有找到答案。 我正在使用python win32api模块将鼠标定位在某个点并进行点击,但我没有找到模拟按键的方法。

【问题讨论】:

    标签: python winapi


    【解决方案1】:

    试试这个:

    1) 使用:https://gist.github.com/chriskiehl/2906125

    2)

    import win32api
    import win32com.client
    
    shell = win32com.client.Dispatch("WScript.Shell")
    shell.Run("app")
    win32api.Sleep(100)
    shell.AppActivate("myApp")
    win32api.Sleep(100)
    shell.SendKeys("name")
    win32api.Sleep(500)
    shell.SendKeys("{ENTER}")
    win32api.Sleep(2500)
    shell.SendKeys("^a") # CTRL+A may "select all" depending on which window's focused
    shell.SendKeys("{DELETE}") # Delete selected text?  Depends on context. :P
    shell.SendKeys("{TAB}") #Press tab... to change focus or whatever
    

    【讨论】:

      【解决方案2】:

      您需要 WinApi 函数 SendInput。

      见 MSDN 中的描述: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspx

      【讨论】:

        【解决方案3】:

        更简单的方法

        使用这个库W32S

        我的图书馆。 如果你愿意,只需复制源代码

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-13
          • 1970-01-01
          • 2017-07-11
          • 2013-09-15
          • 2011-02-10
          相关资源
          最近更新 更多