美文网首页CgTd
获取键盘和鼠标输入

获取键盘和鼠标输入

作者: N景波 | 来源:发表于2018-02-11 21:20 被阅读0次

C4D API中有两种方法获取键盘和鼠标输入, GetInputStatus, GetInputEvent。 两者都是全局的(C++ c4d_gui, python c4d.gui),在GeDialog和GeUserArea类中,这些方法COFFEE中木有。

GetInputState拉取输入设备的当前状态(查看当前鼠标键是否按下,或者某个键当前被按下)

GetInputEvent 获取时间队列中的下一个事件。

在两种情况下,结果都是基于常量存在BaseContainer中,这些常量存在c++和python api中的event页面

例子

Python: 某个脚本执行时检测某个按键是否按下

import c4d
 
def main():
    # Check any one key
    bc =c4d.BaseContainer()
    if c4d.gui.GetInputState(c4d.BFM_INPUT_KEYBOARD, c4d.KEY_F10,bc):
        if bc[c4d.BFM_INPUT_VALUE] ==1:
            print "F10 PRESSED"
        else:
            print "F10 NOT PRESSED"

Python: 脚本执行时检测哪个修改器被按下

import c4d
 
def main():
    # Check all keys
    bc =c4d.BaseContainer()
    if c4d.gui.GetInputState(c4d.BFM_INPUT_KEYBOARD,c4d.BFM_INPUT_CHANNEL,bc):
        print "Qualifier Bitwise:",bc[c4d.BFM_INPUT_QUALIFIER]
        if bc[c4d.BFM_INPUT_QUALIFIER] & c4d.QSHIFT:
            print "SHIFT PRESSED"
        if bc[c4d.BFM_INPUT_QUALIFIER] & c4d.QCTRL:
            print "CONTROL PRESSED"
        if bc[c4d.BFM_INPUT_QUALIFIER] & c4d.QALT:
            print "ALT PRESSED"

注意此例中,BFM_INPUT_QUALIFIER 是一个bit掩码。掩码允许一个int中体现多个二进制状态,掩码中,每个二进制槽可以是开或者关,第一个槽中的值需要诚意1(2的0次方),第二个乘以2
2(2的1次方)以此类推。

检测某个槽是否为真,使用bit的AND操作符,python和c++中都是&操作符。针对int检测那个槽,这里使用QSHIFT, QCTRL, QALT表示。

相关文章

  • 获取键盘和鼠标输入

    C4D API中有两种方法获取键盘和鼠标输入, GetInputStatus, GetInputEvent。 两者...

  • 获取鼠标和键盘的输入

    usingUnityEngine; usingSystem.Collections; publicclassCar...

  • Unity基础-Input模块

    鼠标输入 触摸输入 键盘输入

  • 2015版macPro13'键盘触摸板失灵故障处理

    症状 开机后,键盘除电源按键外、全部无法输入、触摸板失灵无法使用; 外接usb键盘鼠标后,外接键盘鼠标可以正常输入...

  • python 鼠标输入

    鼠标输入 部分游戏会封闭鼠标输入,不能直接使用pyautogui等键盘输入,这时可以使用如下代码: 鼠标左键 鼠标...

  • Linux --- 图形化登录(一)

    1、基本概念: X Server 的作用: 负责从 client 获取数据,来绘制与显示画面。接受鼠标、键盘的输入...

  • 049-python包pyautogui

    一、鼠标键盘 pyautogui官方文档 1、鼠标移动到屏幕正中间示例 2、常用操作 获取屏幕宽高 获取当前鼠标位...

  • VBScript 常用脚本

    运行 模拟键盘输入 解压文件 键盘与鼠标按键的键值对照表

  • macOS 监听键盘输入的正确方式

    macOS开发因为硬件上有鼠标和键盘的支持,所以我们也有监听硬件输入的需求。 如何监听 监听键盘输入需要使用NSE...

  • 第七课 js事件

    event事件对象 1、什么是event事件对象? 用来获取事件的详细信息:鼠标位置、键盘按键 ——例子:获取鼠标...

网友评论

    本文标题:获取键盘和鼠标输入

    本文链接:https://www.haomeiwen.com/subject/evjenttx.html