回 帖 发 新 帖 刷新版面

主题:关闭软件的问题

用一下代码可关闭"画图"软件
Private Sub Command1_Click()
Dim winHwnd As Long
Dim RetVal As Long
winHwnd = FindWindow(vbNullString, "未命名 - 画图")
If winHwnd <> 0 Then
RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
End If
End Sub
可如果"画图"软件的caption是可变的,如由"未命名 - 画图"变为"DSCN0936.JPG - 画图",怎样让画图软件无论何时启动都马上被关闭呢?

回复列表 (共4个回复)

沙发

以上你是跟据窗口标题来屏蔽画图软件,你还可以跟据进程名来屏蔽画图软件啊!~画图软件的进程名是mspaint.exe。
具体是做法是遍历进程,发现有进程名mspaint.exe的就用TerminateProcess结束它!~
其中用到的API可能有:
CreateToolhelp32Snapshot
Process32First
Process32Next
OpenProcess
TerminateProcess
CloseHandle
呵呵,我已快半年没用到与进程有关的API函数了,都差不多忘记了,你自己再动手研究研究吧,这样才能加深记忆!~

板凳

你可以用 C++ 工具里的 SPY++ 来进行捕获 mapaint.exe 程序启动后主窗口的类名。

下次用 findwindow( ClassName, vbnullstring) 就行了。

3 楼

改变了caption 属性并没有改变他的name属性,对对象的操作是和他的name属性相关的,与caption属性无关。而且其实要关闭软件只要一个语句end就可以了,不需要name属性。

4 楼

改变了他的caption属性并没有改变他的name属性,对对象的操作是与name属性相关的,与caption属性没有关系,况且,关闭程序只要一个语句end就可以了,不需要name属性。

我来回复

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