在PyObjC中监听onclick事件

像素点

我尝试显示系统上每次单击的当前窗口。

我这样做代码:

from AppKit import NSWorkspace

def getwindows():
    activeAppName = NSWorkspace.sharedWorkspace().activeApplication()['NSApplicationName']
    print activeAppName
    return

def main():
    getwindows()

main()

但是,当我设置脚本时,仅显示当前窗口。

如何在带有click事件的循环中绑定此脚本?

我已经尝试使用,Turtle但附加了一些错误。

富德雷克

请注意,不推荐使用activeApplication方法NSWorkSpace以下内容可用于主动探测正在运行的应用程序的活动状态:

import AppKit
import time
rl = AppKit.NSRunLoop.currentRunLoop()
ws = AppKit.NSWorkspace.sharedWorkspace()
for i in xrange(10):
  for app in ws.runningApplications():
    if app.isActive():
      print "active app:", app.localizedName()
  date = AppKit.NSDate.date()
  time.sleep(1)
  rl.acceptInputForMode_beforeDate_( AppKit.NSDefaultRunLoopMode, date )

Active表示接收键盘输入。单击一个应用程序将使其变为活动状态。请注意,acceptInputForMode必须调用方法,以使属性更改反映在当前应用程序中。运行该程序,然后单击其他各种应用程序-您应该会看到活动的应用程序更改。

可以通过观察者完成一种绑定:

import AppKit

ws = AppKit.NSWorkspace.sharedWorkspace()
appL = ws.runningApplications()

class MyClass( AppKit.NSObject ):
  def observeValueForKeyPath_ofObject_change_context_(self,
          kpath, objid, change, context ):
    print "path change", kpath, change['new'], appL[context].localizedName()

obj = MyClass.new()
for i in xrange(len(appL)):
  appL[i].addObserver_forKeyPath_options_context_( obj,
            "isActive", AppKit.NSKeyValueObservingOptionNew, i )

date = AppKit.NSDate.date().dateByAddingTimeInterval_( 10 )
rl = AppKit.NSRunLoop.currentRunLoop()
rl.acceptInputForMode_beforeDate_( AppKit.NSDefaultRunLoopMode, date )

for app in appL:
  app.removeObserver_forKeyPath_( obj, "isActive" )

运行与上一个相同的程序。

NSRunningApplication您还可以探测/观察其他一些属性(例如hidden),但是列表很短。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PyObjC中监听onclick事件

来自分类Dev

在onclick中附加click事件监听器会立即调用该事件监听器

来自分类Dev

PyObjC中的箭头键事件处理

来自分类Dev

MapView onCLick事件监听器

来自分类Dev

停止事件冒泡 - onclick 监听器

来自分类Dev

在python中监听线程事件

来自分类Dev

在 Vue 中监听 API 事件

来自分类Dev

停止从事件监听器中监听事件

来自分类Dev

在PreTranslateMessage()中监听MFC中的键盘事件

来自分类Dev

使用事件监听器代替onclick

来自分类Dev

html,javascript onclick事件监听器Dom

来自分类Dev

在Spring Boot中监听存储库事件

来自分类Dev

Python中的事件监听和处理

来自分类Dev

监听指令中的表单提交事件

来自分类Dev

在后台线程中监听事件

来自分类Dev

在Angularjs服务中监听窗口事件

来自分类Dev

Rails布局中的事件监听器?

来自分类Dev

在React Native iOS中监听事件

来自分类Dev

在EventBus中监听事件的活动

来自分类Dev

事件监听器中的JavaScript关闭

来自分类Dev

Spring Boot中的事件监听器

来自分类Dev

在 Angular 2 中监听事件

来自分类Dev

挂毯组件中的监听春季事件

来自分类Dev

在 Angular 中监听来自 PhotoEditorSDK 的事件

来自分类Dev

在 JavaScript 中监听事件的缺失

来自分类Dev

React中的OnClick事件

来自分类Dev

onclick事件中的引号

来自分类Dev

jQuery绑定事件监听器中的事件

来自分类Dev

在JS事件监听器中传递参数并访问事件