Office中国论坛/Access中国论坛

标题: 求助调用和关闭外部屏幕软键盘程序的方法。 [打印本页]

作者: lymin    时间: 2012-12-17 12:37
标题: 求助调用和关闭外部屏幕软键盘程序的方法。
求助:
1、当Text2获得焦点时,自动打开软键盘,并可在Text2框内输入内容。
2、当Text2失去焦点时,自动关闭软件盘。
3、当窗体1关闭时,如果软键盘仍然为打开状态,则随着窗体1的关闭而同时关闭和退出。

见示例[attach]50952[/attach]

作者: huangli0356    时间: 2012-12-17 15:47
沙发..正需要这方面的..希望高手可以帮忙解决.
作者: huangli0356    时间: 2012-12-17 16:14
获得焦点即可输入是可以解决的,
Call Shell(CurrentProject.Path & "\SoftBoard.exe", 1)
Me.Text2.SetFocus



关闭到目前为止我也还是在找的..
作者: huangli0356    时间: 2012-12-18 09:58
[attach]50960[/attach]
修改后的.不过目前所学只能通过调用外部命令运行..希望对你有所帮助.也借此感谢tanghong 江羽.以及那些一直在默默帮助他人的人们.感谢你们.

作者: 轻风    时间: 2012-12-18 10:30
这个感觉用API肯定可以搞定,可惜我不太懂。
要不就自己在ACCESS里搞个键盘得了,别用外部程序。
作者: t小宝    时间: 2012-12-18 11:02
用API的方法如下:
  1. Private Declare Function SetFocusAPI& Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)
  2. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  3. Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

  4. Dim mpID As Long

  5. Private Sub Text2_GotFocus()
  6. On Error Resume Next
  7.     mpID = Shell(CurrentProject.Path & "\SoftBoard.exe", 1)
  8.     DoEvents
  9.     SetFocusAPI Me.hwnd
  10. End Sub

  11. Private Sub Text2_LostFocus()
  12.     Dim hP As Long
  13.     If mpID <> 0 Then
  14.         hP = OpenProcess(1&, -1&, mpID)
  15.         If TerminateProcess(hP, 1) <> 0 Then mpID = 0 '强制关闭程序
  16.     End If
  17. End Sub
复制代码

作者: 轻风    时间: 2012-12-18 13:33
果然。学到了。
作者: LeeTien    时间: 2012-12-18 14:34
牛叉的功能
作者: lymin    时间: 2012-12-19 00:03
t小宝 发表于 2012-12-18 11:02
用API的方法如下:

太感谢了,完全是我所需要的效果。
作者: huangli0356    时间: 2012-12-19 09:30
学习了..不过最简单,最土的办法还是调用外部程序..呵呵.谢谢分享..




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3