如果让一个程序,当然点这个界面的一个控件,比如说Label或就PictureBox或Form本身,不会让原本在前台的程序变为后台,该如何解决
如果让一个程序,当然点这个界面的一个控件,比如说Label或就PictureBox或Form本身,不会让原本在前台的程序变为后台
因为我要实现这样一个功能,我要做一个软键盘,摸拟键盘本身的按键输入这部分功能是可以做好的,可是我这个数据接收对方不是软件本身的一个输入框,而是外部的当前的程序,比如说记事本或word,或网页上的地址栏之类的(情况等同于输入法上的软键盘),所以当我一点这个软键盘的时候,就会激活这个软件键盘,原来的记事本(就当原本是要把输入的内容显示在当前这个记事本上的)就退到后台,这样就输不进去了
我本来的解决方法是在软键盘上的按钮上写代码,想法就是当鼠标进入到这个键盘时,用MouseEnter事件先把当前的记事本进程记录下来,然后在Click事件里先把之前记录下来的记事本进程切回前台,然后再摸拟键盘输入用keybd_event把内容输进去,
可是后来就发现二个问题,一个是进程的来回切换会让在输入的时候记事本的标栏题闪一下(这个还是小问题),
大问题就是如果我输入的是网页的地址栏,那在当地址栏会在后台切回前台后选中地址栏里的所有内容,所以情况就变成输入一个字母,在切到后台再切回前台就选中地址栏里的内容,再输入一个字母,原来那个就没了,这样永远只能输入一个。之前的存不下来
所以我想最好的解决办法就是如同输入法上的软键盘,在点击的时候,原本在前台的进程不会切到后台,
有没有办法解决这个问题,这个问题对我很重要,谢谢大家了
------解决方案--------------------
软键盘原理
------解决方案--------------------
用API
SetWindowLong(键盘.Handle, GWL_EXSTYLE, GetWindowLong(键盘.Handle, GWL_EXSTYLE) | WS_DISABLED)
因为我要实现这样一个功能,我要做一个软键盘,摸拟键盘本身的按键输入这部分功能是可以做好的,可是我这个数据接收对方不是软件本身的一个输入框,而是外部的当前的程序,比如说记事本或word,或网页上的地址栏之类的(情况等同于输入法上的软键盘),所以当我一点这个软键盘的时候,就会激活这个软件键盘,原来的记事本(就当原本是要把输入的内容显示在当前这个记事本上的)就退到后台,这样就输不进去了
我本来的解决方法是在软键盘上的按钮上写代码,想法就是当鼠标进入到这个键盘时,用MouseEnter事件先把当前的记事本进程记录下来,然后在Click事件里先把之前记录下来的记事本进程切回前台,然后再摸拟键盘输入用keybd_event把内容输进去,
可是后来就发现二个问题,一个是进程的来回切换会让在输入的时候记事本的标栏题闪一下(这个还是小问题),
大问题就是如果我输入的是网页的地址栏,那在当地址栏会在后台切回前台后选中地址栏里的所有内容,所以情况就变成输入一个字母,在切到后台再切回前台就选中地址栏里的内容,再输入一个字母,原来那个就没了,这样永远只能输入一个。之前的存不下来
所以我想最好的解决办法就是如同输入法上的软键盘,在点击的时候,原本在前台的进程不会切到后台,
有没有办法解决这个问题,这个问题对我很重要,谢谢大家了
------解决方案--------------------
软键盘原理
------解决方案--------------------
用API
SetWindowLong(键盘.Handle, GWL_EXSTYLE, GetWindowLong(键盘.Handle, GWL_EXSTYLE) | WS_DISABLED)