python3.x - 如何用python使GoAgent窗口打开后自动最小化以及关闭之前的py.exe窗口
天蓬老师
天蓬老师 2017-04-17 17:09:41
[Python讨论组]

python:3.4
goagent:3.1.22-33

写了一个想在ipv4/6之间切换的小脚本

path=r'D:\Documents\Downloads\Downloads\goagent-goagent-v3.1.22-33-g1281719\goagent-goagent-1281719\local\proxy.ini'
change(path,mode)
os.system('taskkill /im goagent.exe /f')
os.system('taskkill /im python27.exe /f')
goagentPath=r'D:\Documents\Downloads\Downloads\goagent-goagent-v3.1.22-33-g1281719\goagent-goagent-1281719\local\goagent.exe'
os.system(goagentPath)
exit()

然而运行之后活动窗口变成了goagent窗口,原来运行py脚本的窗口还是开着的。求问如何关掉它
另:GoAgent有一个点右下角任务栏图标就最小化,只剩一个图标任务栏,没有中间的那个程序窗口。求问如何用python做到自动化?

ps:我就是懒。。。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
PHP中文网

原来运行py脚本的窗口还是开着的,如何关掉它?

问题在于os.system()是要等待运行的程序(goagent)退出后才返回,你可以这样:

goagentPath=r'D:\Documents\Downloads\Downloads\goagent-goagent-v3.1.22-33-g1281719\goagent-goagent-1281719\local\goagent.exe'
cmdline = 'start "%s"' % goagentPath
os.system(cmdline)

或者

os.startfile(goagentPath)

GoAgent有一个点右下角任务栏图标就最小化,只剩一个图标任务栏,没有中间的那个程序窗口。求问如何用python做到自动化?

解决的思路是根据 GoAgent 的窗口标题找到它的窗口句柄,然后将它最小化或隐藏。
因为我这边没有这个软件,只能给你大致的参考代码:

import win32gui
import win32con

wndtitle = 'GoAgent'
wndclass = None
wnd = win32gui.FindWindow(wndclass, wndtitle)
win32gui.ShowWindow(wnd, win32con.SW_MINIMIZE)    # SW_HIDE for hide

什么,你说你连 pywin32 这个 Windows 下最常用的扩展库都没有安装? pip install pywin32

天蓬老师

用下面的代码给你说明吧:

if os.name == 'nt':
    import ctypes
    ctypes.windll.kernel32.SetConsoleTitleW(u'GoAgent v%s' % __version__)
    if not common.LISTEN_VISIBLE:
        ctypes.windll.user32.ShowWindow(ctypes.windll.kernel32.GetConsoleWindow(), 0)
    else:
        ctypes.windll.user32.ShowWindow(ctypes.windll.kernel32.GetConsoleWindow(), 1)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号