如何让程序在运行期间,禁用输入法
如题,有一个特殊需求,需要在程序运行期间,禁止输入任何字符,有懂的大佬吗在线等 你不去读取stdin不就可以了?
人造人 发表于 2022-8-25 15:10
你不去读取stdin不就可以了?
不太明白什么意思,大佬可以说的简单一些吗,我刚解除这个 慕岚 发表于 2022-8-25 15:15
不太明白什么意思,大佬可以说的简单一些吗,我刚解除这个
在啥地方输入呢是控制台程序还是窗口程序
人造人大侠的意思是禁用input一类的api wp231957 发表于 2022-8-25 15:43
在啥地方输入呢是控制台程序还是窗口程序
人造人大侠的意思是禁用input一类的api
是在窗口程序,类似QQ,微信,这种 慕岚 发表于 2022-8-25 16:17
是在窗口程序,类似QQ,微信,这种
代码是谁写的?是你写的吗?
你有源代码吗?你可以修改源代码吗?
人造人 发表于 2022-8-25 16:34
代码是谁写的?是你写的吗?
你有源代码吗?你可以修改源代码吗?
是我写的,我现在只把功能实现了,但是不是我想要的效果
import keyboard
from pynput.keyboard import Key, Controller
fast_write = {'Q':'这是一条测试信息'}
rekeyboard = Controller()
def callback(x):
if x.event_type == 'down':
if x.name in fast_write:
rekeyboard.type(fast_write)
keyboard.hook(callback)
keyboard.wait()
我想要最终实现,按下Q之后,只输出内容,不输出我按下的按键,现在按下大写的Q键是这个效果
Q这是一条测试信息 慕岚 发表于 2022-8-25 16:37
是我写的,我现在只把功能实现了,但是不是我想要的效果
在打印文本之前让程序按下退格键 人造人 发表于 2022-8-25 16:34
代码是谁写的?是你写的吗?
你有源代码吗?你可以修改源代码吗?
我正在找PYQT5的方法解决这个问题,但是目前还是没有查到我想要的答案
https://i.postimg.cc/9Qk0qjkw/1661416875972.png 乙方al 发表于 2022-8-25 16:41
在打印文本之前让程序按下退格键
这并不是解决问题的好方法。。。。。 自己顶一下 慕岚 发表于 2022-8-25 17:12
自己顶一下
这样可以吗
import keyboard
from pynput.keyboard import Key, Controller
fast_write = {'Q':'这是一条测试信息'}
rekeyboard = Controller()
def callback(x):
if x.event_type == 'down':
if x.name in fast_write:
rekeyboard.type("\b"+fast_write)
keyboard.hook(callback)
keyboard.wait() 本帖最后由 慕岚 于 2022-8-25 17:28 编辑
临时号 发表于 2022-8-25 17:23
这样可以吗
可以这样实现,这是按退格键来实现吗,因为有些时候,我的运行环境下不允许使用字母,一旦检测到字母,就不会有后面的操作了,不太明白这种方式
这个是通过快速退格来实现吗? 慕岚 发表于 2022-8-25 17:27
可以这样实现,这是按退格键来实现吗,因为有些时候,我的运行环境下不允许使用字母,一旦检测到字母, ...
用了退格键的转义字符\b 临时号 发表于 2022-8-25 17:30
用了退格键的转义字符\b
好的,大佬除了用退格键这种方式,还有其他方式吗,我想输出的时候直接一句话,因为应用到部分环境下时会有检测,不允许出现数字以外的字符,一旦检测到其他字符就会停止输入 慕岚 发表于 2022-8-25 17:33
好的,大佬除了用退格键这种方式,还有其他方式吗,我想输出的时候直接一句话,因为应用到部分环境下时会 ...
这样呢
import keyboard
from pynput.keyboard import Key, Controller
fast_write = {'Q':'这是一条测试信息'}
rekeyboard = Controller()
def callback(x):
if x.event_type == 'down':
if x.name in fast_write:
try:
import msvcrt
while msvcrt.kbhit():
msvcrt.getch()
except ImportError:
import sys, termios #for linux/unix
termios.tcflush(sys.stdin, termios.TCIOFLUSH)
rekeyboard.type(fast_write)
keyboard.hook(callback)
keyboard.wait() 临时号 发表于 2022-8-25 17:46
这样呢
这样依然会显示【Q这是一条测试信息】
大佬我想到了一个新的解决方法,就是我创建一个pyqt5的程序,然后绑定一个热键,这样执行任务的时候,是不是就不会再显示Q键了,我还没有实验,正在找解决办法,pyqt5的绑定热键方法也在查
页:
[1]