我正在写一个像脚本一样的速记技术,这样,当您按键盘上的特定组合键(例如“ ASDF”)时,它将转换为一个单词并键入该单词,而不是按键盘。但是,我找不到替代按键的方法,以至于记事本之类的程序将忽略我键入“ ASDF”的内容。
我目前唯一的解决方案是让脚本退格所键入的字符,然后粘贴要键入的单词。
到目前为止,这是我的脚本:
import ctypes
def main():
GetAsyncKeyState = ctypes.windll.user32.GetAsyncKeyState
key_states = [0] * 26
pressed_keys = [0] * 26
chord = ''
while True:
for k in range(65,91):
key_states[k-65] = GetAsyncKeyState(k)
if GetAsyncKeyState(k): pressed_keys[k-65] = 1
if sum(key_states) == 0:
for k in range(26):
if pressed_keys[k] == 1:
chord += chr(k+65)
if chord != '': write(chord)
chord = ''
pressed_keys = [0] * 26
dictionary = open('dictionary.txt','r').read()
entries = dictionary.split('\n')
chords = [[0,0]]*len(entries)
for e in range(len(entries)):
s = entries[e].split('-')
chords[e] = [s[0],s[1]]
def write(chord):
found = 0
for c in chords:
if chord==c[0]:
found = 1
_type(c[1])
if not found:
_type(chord)
def _type(word):
'''
This is where the code would go...
'''
main()
预期的结果是,直到脚本粘贴最后一个单词之前,我输入的所有字符都不会出现。但是,相反,我所按下的构成单词的字符会首先显示。
我的计划是重写键,而不执行任何操作。 即当我按“ e”时,什么也不会发生。