2024-05-29 03:31:53 发布
网友
有没有什么方法可以在不出现命令shell的情况下运行Python脚本? 用“.pyw”扩展名命名我的文件不起作用。
编辑:ShellExecute()解决了问题
在自2.5(可能更早)以来的所有python安装中,如果安装已正确完成,.py文件与python.exe关联,.pyw文件与pythonw.exe关联
.py
python.exe
.pyw
pythonw.exe
如果关联已被篡改,或已被特定用户重写,则可能会有所不同。
在命令中运行以下命令:
ftype | find "pythonw" assoc | find ".pyw"
我得到:
Python.NoConFile="D:\Program Files\Python27\pythonw.exe" "%1" %* .pyw=Python.NoConFile
如果你没有,你可以做几件事来解决:
如果您不是计算机的管理员,则可以将.pyw文件与pythonw.exe关联。小问题是,您必须在之后更改注册表项以添加额外的参数,或者在.pyw文件中删除一个参数将不考虑它(它很少使用,但仍然使用)
[HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command] @="\"L:\\Portable_Python_2.7.3.1\\App\\pythonw.exe\" \"%1\" %*"
尝试使用Python的pythonw.exe可执行文件启动脚本。
在Windows操作系统中,控制台应用程序(python.exe不带w是控制台应用程序)的可执行文件运行时显示控制台窗口;另一方面,常规Windows应用程序不会生成黑色控制台窗口。
w
在这个老问题中,您可以找到关于这两个可执行文件的详细信息:pythonw.exe or python.exe?
关于Windows,这里有不同类型的应用程序:Difference between Windows and Console application
使用ShellExecuteEx函数。
BOOL ShellExecuteEx( _Inout_ SHELLEXECUTEINFO *pExecInfo );
这是pExecInfo: ***nShow-指定打开应用程序时如何显示该应用程序的标志
typedef struct _SHELLEXECUTEINFO { DWORD cbSize; ULONG fMask; HWND hwnd; LPCTSTR lpVerb; LPCTSTR lpFile; LPCTSTR lpParameters; LPCTSTR lpDirectory; int nShow;/*=0 if you don't want the console window to appear*/ HINSTANCE hInstApp; LPVOID lpIDList; LPCTSTR lpClass; HKEY hkeyClass; DWORD dwHotKey; union { HANDLE hIcon; HANDLE hMonitor; } DUMMYUNIONNAME; HANDLE hProcess; } SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;
在自2.5(可能更早)以来的所有python安装中,如果安装已正确完成,
.py
文件与python.exe
关联,.pyw
文件与pythonw.exe
关联如果关联已被篡改,或已被特定用户重写,则可能会有所不同。
在命令中运行以下命令:
我得到:
如果你没有,你可以做几件事来解决:
如果您不是计算机的管理员,则可以将
.pyw
文件与pythonw.exe
关联。小问题是,您必须在之后更改注册表项以添加额外的参数,或者在.pyw文件中删除一个参数将不考虑它(它很少使用,但仍然使用)[HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command] @="\"L:\\Portable_Python_2.7.3.1\\App\\pythonw.exe\" \"%1\" %*"
尝试使用Python的
pythonw.exe
可执行文件启动脚本。在Windows操作系统中,控制台应用程序(
python.exe
不带w
是控制台应用程序)的可执行文件运行时显示控制台窗口;另一方面,常规Windows应用程序不会生成黑色控制台窗口。在这个老问题中,您可以找到关于这两个可执行文件的详细信息:pythonw.exe or python.exe?
关于Windows,这里有不同类型的应用程序:Difference between Windows and Console application
使用ShellExecuteEx函数。
这是pExecInfo: ***nShow-指定打开应用程序时如何显示该应用程序的标志
相关问题 更多 >
编程相关推荐