请问WINDOWS的屏幕键盘OSK,有API吗?比如屏蔽掉一些键,放大键盘区域等?

Amuclan 2004-07-13 09:46:54
另外求delphi 实现的屏幕键盘的源码...ccfstt@126.com

50分不够再加 视回应...
...全文
373 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amuclan 2004-07-31
  • 打赏
  • 举报
回复
sendkeys帖:

http://community.csdn.net/Expert/topic/3192/3192795.xml?temp=.6544611
Amuclan 2004-07-31
  • 打赏
  • 举报
回复
本人无能啊 其实并没有实现一个屏幕键盘 因为后来发现自己要做的东西并不要求屏幕键盘那么强大的功能 简单的说我作的是一个触摸屏程序,所以我作的键盘只能向触摸屏程序里的对象输入 不像真正的屏幕键盘可以系统里的所有程序输入.....

其实最关键的是用了VB的一个函数SendKeys 这个函数被封装的及其强大(也可以说是及其傻瓜) 看下面的程序
Form1的代码:
Private Sub Command1_Click()
Call Form2.Show(0, Me)
End Sub

Form2的代码:
Private Sub Command1_Click()
Form1.SetFocus '注意我没有用Form1.Text1.SetFocus
Call SendKeys("sss", True)
End Sub

上面的程序就可以完成:用Form2向Form1的Text1中输入"sss"了(当然要点击Form2的Command1之前你要先点一下Form1的Text1,这很自然,别忘了,你用任何屏幕键盘乃至真实键盘都要先这样做的)

从上面的程序可以看出sendKeys这个函数为我们做了很多事(否则要用若干个API)....至少你应该注意到:我没有用Form1.Text1.SetFocus,就可以给Text1输入"sss"了,你可以在Form1上再加一个Text2,代码不用改,看看效果....再进一步,你可以再添加一个WebBrowser1(Form1上),试试效果,这里你可能会遇到一点麻烦,因为这里有个小秘笈,我就不说了,因为这个不是我发现的...你遇到的小麻烦也很容易解决的...虽然是个小秘笈(说不出为什么就可以解决)....


Delphi上我也找到了SendKeys这个函数,不过并不是Borland为我们封装的,是第三方的,在Delphi4,5光盘上有,网上也可以找到源码,我还发过一个帖子....但是这个看似功能相同的SendKeys却不能完成像上面所举的VB程序一样的功能...只能说还没有VB的SendKeys作的傻瓜...

小弟功力实在太差...其实很希望加强Delphi的那个SendKeys,可惜暂时没那个能力,希望楼上的大侠们能尽快实现!
手指风 2004-07-29
  • 打赏
  • 举报
回复
我是用registryhotkey注册热键来屏蔽一些键的,但Ctrl+alt+del是先判断是否为nt的系统,要是98的话就直接用SystemParametersInfo来屏蔽,nt的就查找任务管理器窗口,一有打开就发送wm_close消息。win键是用别人给我发的一个dll实现的,本人比较笨,看不怎么懂它的代码。也只能想笨的办法。★_★
zfang 2004-07-29
  • 打赏
  • 举报
回复
路过
想知道
tonylk 2004-07-29
  • 打赏
  • 举报
回复
怎么搞定的?说来听听。。。
Amuclan 2004-07-29
  • 打赏
  • 举报
回复
问题已经解决
用VB搞定

大家快进来 散分结帖算了

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧