使用命令行运行pyw文件的正确方式

博客讲述了在MFC应用程序中调用Python pyw文件遇到的问题。在Win10环境下使用WinExec函数可以正常运行pyw文件,但在Win7环境下却无法执行。作者发现通过修改WinExec命令为cmd.exe/c pyw.exe.bbb.pyw后,程序能在Win7下成功运行,但会出现命令行黑框无法消失的小问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前有个功能,需要在mfc中调用python编写的pyw文件,每次MFC程序运行时,自动启动pyw文件。从网上搜索到如下的两个运行命令:

ShellExecute(0,"open","aaa.exe","",".\\",SW_SHOWMINIMIZED);

WinExec("cmd.exe /c  pythonw.exe .\\bbb.pyw",SW_SHOWMINIMIZED);

ShellExecute函数只能执行exe文件的自动运行,而pyw文件只能使用命令行的方式运行,所以只能使用WinExec函数。

在win10测试环境下以上WinExec语句运行正常,但是放到生产环境win7下,语句死活执行不成功,包括idle.pyw的方式都试了就不行。但是奇怪的地方是如果双击pyw文件,是可以自动运行的,一定是命令行的哪个地方存在问题。

一度进入死胡同后,在任务管理器中看到有两个进程pythonw和pyw,将执行语句改成

WinExec("cmd.exe /c  pyw.exe .\\bbbb.pyw",SW_SHOWMINIMIZED);

再次测试,居然运行成功了!

目前存在一个小问题是pyw程序起来后一直有个命令黑框消失不了,但是不影响使用,先不管了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值