我要在别的程序中调用VB的EXE文件(有窗口),首先我需要判断这个进程是否启动,如启动我要将他显示到前面,如没有启动我再启动它,应该怎样做??是要在初始化的时候做判断吧
解决方案 »
- VB读取CSV文件并插入Access数据库
- nothing干什么用的?
- 用什么工具可以看到一个商业软件是用什么软件编译的
- 100分求解菜单名称。(在线等待)
- 哪有VB6英文版和繁体版下载????
- 哪位大侠知道在VB中如何使用XP风格的图标做窗体图标??????
- vb控制如何触发系统窗体事件?
- 怎样才能找到可用的代理服务器?
- access的压缩问题
- 我用sql语句查询出一些记录把它们放到msflexgrid中然后我想把选中的记录打印到打印机上,该怎么写代码?
- 用vb操作excel对象“range"的方法”-Global'失败,怎么解决?
- 哪位知道easymail编程的资料啊,我要具体属性和方法!
Private Const SW_SHOW = 5
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Sub Command1_Click()
Dim lngHWnd As Long
lngHWnd = FindWindow("ThunderRT6MDIForm", "国际金融组织贷款管理系统")
If lngHWnd = 0 Then
ShellExecute Me.hwnd, "open", "D:\Program Files\LONGREATWAY\国际金融组织贷款管理系统\LoanManager.exe", vbNullString, App.Path, SW_SHOW
End If
End Sub
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
说明
寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题)
返回值
Long,找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
参数表
参数 类型及说明
lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题
注解
很少要求同时按类与窗口名搜索。为向自己不准备参数传递一个零,最简便的办法是传递vbNullString常数
示例
Dim hw&, cnt&
Dim rttitle As String * 256
hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4
cnt = GetWindowText(hw&, rttitle, 255)
MsgBox Left$(rttitle, cnt), 0, "RTMain title"