回 帖 发 新 帖 刷新版面

主题:这里怎么弄呀?

我的目的是判断是否有和本程序同样的程序在运行了如果有就关掉它!不过不能关掉本身。后面不知道怎么弄了?哪位帮下了。
Option Explicit:
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
代码窗口:
If hwndCalc = FindWindow(0&, "工程1") Then
。。。。。。。。。

回复列表 (共8个回复)

沙发

App.PrevInstance '程序运行多个 y or n

板凳

[quote]If hwndCalc = FindWindow(0&, "工程1") Then[/quote]
hwndCalc=Findwindow(vbnullstring,"工程1)
if hwndcalc >0 and hwndCalc <> me.hwnd then   '有工程1这个窗口,且不是我自己
   '尝试关掉它
   sendmessage hwndCalc,wm_close,0& ,0&
end if 

其中的sendmessage是API函数,wm_close是标准API常数.

3 楼

楼主.建议你不要问这个问题,因为这个问题太简单,不必要在这里讨论.资料很多
回复完毕

4 楼

[quote]楼主.建议你不要问这个问题,因为这个问题太简单,不必要在这里讨论.资料很多
回复完毕[/quote]
牛皮什么啊,简单了就闭上你的嘴

5 楼

[quote][quote]楼主.建议你不要问这个问题,因为这个问题太简单,不必要在这里讨论.资料很多
回复完毕[/quote]
牛皮什么啊,简单了就闭上你的嘴[/quote]
他强调的是资料很多.

6 楼

如果我是高手我就不会发这样的贴子了!如果我会我也知道它简单。

7 楼

能找到资料就不发贴了,再说找也不知道是什么问题怎么找,网络有那么发达吗,"判断是否有和本程序同样的程序在运行了如果有就关掉它"说资料多的请说下这是什么问题,怎么找

8 楼

Dim hwndFind As Long
hwndFind  = FindWindow(vbNullString, "你程序的标题")
If hwndFind <> 0 Then
    SendMessage(hwndFind, WM_SYSCOMMAND, SC_CLOSE, ByVal 0)
End If

当然,你要保证标题不重复,这个方法不大好。明天我再帮你弄个完美点的方法。
睡觉去了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册