鱼C论坛

 找回密码
 立即注册
查看: 2642|回复: 5

怎么判断指定软件是否为开启状态?

[复制链接]
发表于 2020-12-19 16:22:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 lengyue869 于 2020-12-23 22:04 编辑

我的想法是先通过Get_WDname() 函数获取到该软件的窗口名称wd_name,
然后通过函数IsOpen(wd_name)来判断软件是否开启.
现在有个疑问,比如我想判断SAP是否开启,我获取到的SAP窗口名称是"SAP 740 balabala",
但是如果我想通过 IsOpen("SAP")来判断SAP是否开启该怎么写?就是只要包含"SAP"关键字就 IsOpen() 函数就返回 Open
def Get_WDname():
    time.sleep(5)
    hwnd = win32gui.GetForegroundWindow()  # 获取最前窗口句柄
    wd_name = win32gui.GetWindowText(hwnd)  # 获取窗口标题
    print(wd_name)
    return wd_name

def IsOpen(wd_name):
    try:
        hwnd = win32gui.FindWindow(None, wd_name)
        return "Open"
    except:
        return "Close"


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-19 16:24:17 | 显示全部楼层
获取当前进程列表看看里面有没有你要的软件就好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-21 11:49:20 | 显示全部楼层
v.ki 发表于 2020-12-19 16:24
获取当前进程列表看看里面有没有你要的软件就好

找到一种办法了,先获取到所有窗口的名称列表,再判断指定字符(sap)是否在窗口名称列表里面,
但是我想知道的是只怎么模糊匹配: 比如SAP窗口名称是"SAP 740", 我指定的字符是"SAP".
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-21 14:38:41 | 显示全部楼层
lengyue869 发表于 2020-12-21 11:49
找到一种办法了,先获取到所有窗口的名称列表,再判断指定字符(sap)是否在窗口名称列表里面,
但是我想知道 ...

如果只是这个例子if一个字符串in 一长串的时候,就匹配到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-21 15:40:51 | 显示全部楼层
import psutil
pids = psutil.pids()
for pid in pids:
    p = psutil.Process(pid)
    process_name = p.name()
    print("name: %s, pid: %s" %(process_name, pid))
 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-21 17:24:33 | 显示全部楼层
def is_open(process_name):
    import win32com.client
    WMI = win32com.client.GetObject('winmgmts:')
    processCodeCov = WMI.ExecQuery('select * from Win32_Process where Name="%s"' % process_name)
    if len(processCodeCov) > 0:
        return True
    else:
        return False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 00:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表