现在写了一个程序 A.EXE
有两个 Form
FormA 程序主界面
FormB 系统隐藏界面,用于捕捉快捷键后显示 FormA现在运行 A.EXE
系统显示 FormA
之后点关闭
仅仅 Unload FormA
FormB 依旧运行当按下指定快捷键时 显示 FormA当再次运行 A.EXE 时
系统检测 A.EXE 已经运行
自动退出
并且打开已经运行的 A.EXE 中的 FormA 此问题需要解决求助如何显示已经运行的 A.EXE 中的 FormA
有两个 Form
FormA 程序主界面
FormB 系统隐藏界面,用于捕捉快捷键后显示 FormA现在运行 A.EXE
系统显示 FormA
之后点关闭
仅仅 Unload FormA
FormB 依旧运行当按下指定快捷键时 显示 FormA当再次运行 A.EXE 时
系统检测 A.EXE 已经运行
自动退出
并且打开已经运行的 A.EXE 中的 FormA 此问题需要解决求助如何显示已经运行的 A.EXE 中的 FormA
建议你第一次将formA隐藏,然后下次检测到a已经有一个实例的时候,用api FindWindow然后ShowWindow把A显示出来。
至于怎么检测一个程序的实例是否已经运行,App里面有个属性的,你查查
true为实例已经运行
返回一个值,该值指示是否已经有前一个应用程序实例在运行。语法object.PrevInstanceobject 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
第一个问题,令formA.visible=false即可
2.复制下面代码到代码窗口后 启动看效果
================================================
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer
Private Function MyHotKey(vKeyCode) As Boolean '热键部分 声明的自定义函数
MyHotKey = GetAsyncKeyState(vKeyCode) < 0
End FunctionPrivate Sub Form_Load()
Timer1.Interval = 10
End SubPrivate Sub Timer1_Timer()
If MyHotKey(vbKeyF9) Then '按下F9
Me.Hide
End If
If MyHotKey(vbKeyF10) Then '按下F10
Me.Show
End If
End Sub
=======================================
效果是启动程序后 按F9后 隐藏程序 按F10显示程序 cike技术交流群 16874787 支持论坛:http://www.hexi5.com/bbs