如何使用hinstance确定win32api.ShellExecute是否成功?

如何使用hinstance确定win32api.ShellExecute是否成功?,第1张

如何使用hinstance确定win32api.ShellExecute是否成功?

使用

ShellExecute
,您将永远不会知道何时完成打印,这取决于文件的大小以及打印机驱动程序是否缓冲内容(例如,打印机可能正在等待您填充纸盒)。

根据此SO答案,这似乎

subprocess.call()
是一个更好的解决方案,因为它等待命令完成,只有在这种情况下,您才需要读取注册表以获得与文件关联的exe。

ShellExecuteEx
可从pywin32获得,您可以执行以下 *** 作:

import win32com.shell.shell as shellparam = '/d:"%s"' % printershell.ShellExecuteEx(fmask = win32com.shell.shellcon.SEE_MASK_NOASYNC, lpVerb='print', lpFile=pfile, lpParameters=param)

编辑:用于等待ShellExecuteEx()处理的代码

import win32com.shell.shell as shellimport win32event#fMask = SEE_MASK_NOASYNC(0x00000100) = 256 + SEE_MASK_NOCLOSEPROCESS(0x00000040) = 64dict = shell.ShellExecuteEx(fMask = 256 + 64, lpFile='Notepad.exe', lpParameters='Notes.txt')hh = dict['hProcess']print hhret = win32event.WaitForSingleObject(hh, -1)print ret


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5057704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存