急!如何判断某个程序是否在运行!!! 如题,如何判断某个应用程序是否在运行,无法从文件名去判断,因为可以改名字,也没法取标题,因为标题是实时变化的。。求任何可用的方法!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if app.previnstance=true then 我觉得啊,这个判断特定程序是否在运行的标准,还是得你自己先确定好,再来论坛来问实现判断的代码.这是提供一些思路:1,程序主窗口的windows的classname2,该程序运行时是否创建了啥原子或mutex啥的(带是否可运行多个实例选项的程序一般会这样),或锁定了某个文件3,程序是否搞了啥隐藏的特殊窗口用来做运行时标识的 试这个,但是只能对于同一目录的程序做判断,如果把程序放到别的目录,就检测不出来了 Dim title As String If App.PrevInstance Then title = App.title Call MsgBox("这程式已执行", vbCritical) App.title = "" '如此才不会Avtivate到自己 fm.Caption = "" AppActivate title 'activate先前就已行的程式 End End IfEnd Sub 这个运行的软件是否是你的程式,如果是,很简单,直接运行的时候往注册表或者某个特定的位置写个标记用来记录目前程序正在运行.如果不是,你之前说了,不能判断标题,不能判断exe文件名,但是可以搜索内存.找到具有代表性的关键字.然后读取内存.思路就是这样,具体做法:1.用Ollydbg附加该进程,查看其是否含有静态的文本字串,如果有.搜索出来即可2.用程式枚举当前任务管理器中的所有进程,挨个去OpenProcess,然后ReadMemory 读取指定位置的内存值对比之前的 静态的文本字串 是否相同,是,就表示已经执行(重复可能性几率基本接近0) if app.previnstance=true thenend if 简单点就定下你的key不就行了 vb 数据库SHAPE语句 乱码怎么办?怎么解决? vss 能check in 别的扩展名文件的问题 VB中调用sql的奇怪问题.大家帮帮忙/ vb里怎么调用用Microsoft Scripts Host脚本写的“Hello.vbs”程序? 请教 谁搞过SMS开发,那里有工业GSM模块卖? 关于文件的类型 大家来讨论一下如何实现二级、三级动态菜单,以及模块的动态调用。 怎么呼出开始菜单?真给分! 调用dll 发生溢出? word.aapplication 如何显示 tooltip?
这是提供一些思路:
1,程序主窗口的windows的classname
2,该程序运行时是否创建了啥原子或mutex啥的(带是否可运行多个实例选项的程序一般会这样),或锁定了某个文件
3,程序是否搞了啥隐藏的特殊窗口用来做运行时标识的
If App.PrevInstance Then
title = App.title
Call MsgBox("这程式已执行", vbCritical)
App.title = "" '如此才不会Avtivate到自己
fm.Caption = ""
AppActivate title 'activate先前就已行的程式
End
End IfEnd Sub
如果是,很简单,直接运行的时候往注册表或者某个特定的位置写个标记用来记录目前程序正在运行.
如果不是,你之前说了,不能判断标题,不能判断exe文件名,但是可以搜索内存.找到具有代表性的关键字.
然后读取内存.
思路就是这样,具体做法:
1.用Ollydbg附加该进程,查看其是否含有静态的文本字串,如果有.搜索出来即可
2.用程式枚举当前任务管理器中的所有进程,挨个去OpenProcess,然后ReadMemory 读取指定位置的内存值对比之前的 静态的文本字串 是否相同,是,就表示已经执行(重复可能性几率基本接近0)