Python中文
首页
教程
问答
标签
搜索
登录
注册
Python/win32com/try and except/检查应用程序是否正在运行
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在Windows7上使用Python3.6.2。在</p> <p>我有一个小函数,它应该检查msexcel是否已经在运行。功能有点奇怪,在这里您的帮助将非常感谢。在</p> <p>如果Excel正在运行,则函数应进行检查。如果是,则打印文本并退出应用程序。如果没有,一切正常,继续。在</p> <p>我现在的问题是,当Excel<strong>运行时,执行try块,包括打印,但不包括系统出口()<strong>和</strong>同时执行except块!? 如果Excel<strong>没有</strong>运行,则一切正常,try块中止,只执行except块。在</p> <p>为什么它在运行Excel时同时执行print语句?在</p> <p>请帮忙!在</p> <p>我的代码是:</p> <pre><code>def check_if_Excel_runs(): import win32com.client import sys try: win32com.client.GetActiveObject("Excel.Application") # If there is NO error at this stage, Excel is already running print('Excel is running, please close first') sys.exit() except: print('Excel is NOT running, this is good!') return check_if_Excel_runs() </code></pre> <p>我的输出(当Excel运行时):</p> ^{pr2}$ <p>提前谢谢!在</p> <p><strong>更新:</strong></p> <p>好吧,我明白了,我一般不应该在没有指定要处理的异常的情况下执行“except”。但是我如何确定我想要捕捉的异常类型呢。如果我看一下错误信息,我就不清楚了。在</p> <pre><code>com_error Traceback (most recent call last) <ipython-input-39-70980aa1c5df> in <module>() 11 return 12 ---> 13 check_if_Excel_runs() <ipython-input-39-70980aa1c5df> in check_if_Excel_runs() 3 import sys 4 try: ----> 5 win32com.client.GetActiveObject("Excel.Application") 6 # If there is NO error at this stage, Excel is already running 7 print('Excel is running, please close first') c:\users\chnn\appdata\local\programs\python\python36-32\lib\site-packages\win32com\client\__init__.py in GetActiveObject(Class, clsctx) 77 """ 78 resultCLSID = pywintypes.IID(Class) ---> 79 dispatch = pythoncom.GetActiveObject(resultCLSID) 80 dispatch = dispatch.QueryInterface(pythoncom.IID_IDispatch) 81 return __WrapDispatch(dispatch, Class, resultCLSID = resultCLSID, clsctx = clsctx) com_error: (-2147221021, 'Operation unavailable', None, None) </code></pre> <p>再次感谢你们的帮助,各位!在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我相信你的问题是系统出口()正在引发异常。在</p> <p>在系统出口()通过引发系统出口异常退出。你不能把它放在那里,只使用一个笼统的语句。在</p> <p>希望这有帮助!在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
在python3中使用Scipy pearsonr函数
5 回答
在Python3中使用scipy对多个lorentzian进行数据拟合
1 回答
在Python3中使用Script=argv
7 回答
在python3中使用selenium webdriver进行未解析的回溯
2 回答
在python3中使用selenium和phantomjs的网页截图之前如何等待?
4 回答
在Python3中使用Selenium和Requests模块从网页获取文件
9 回答
在python3中使用SIGINT终止函数
10 回答
在Python3中使用SIGTERM时,允许进程完成而不是中断
3 回答
在python3中使用smtplib发送XML内容
8 回答
在python3中使用socket库(RFCOMM模式)重新连接蓝牙设备?
1 回答
在python3中使用sounddevice和numpy编写wav文件
10 回答
在python3中使用Sqlalchemy插入MySQL查找类型错误的原因
2 回答
在python3中使用sqlite、pandas和sqlalchemy很难让rollback工作
9 回答
在python3中使用SQLite的FTS3/4
6 回答
在Python3中使用struct.calcsize()和len()有区别吗?
6 回答
在python3中使用substring函数时发生TypeError
8 回答
在Python3中使用Tkinter entry小部件写入串行设备
6 回答
在python3中使用tkinter时,如何在每次按下函数时获得运行该函数的按钮?
10 回答
在python3中使用tkinter的子帧
9 回答
在Python3中使用tryexcept块时,如何避免使用未初始化的变量?
10 回答