【发布时间】:2017-02-03 19:46:52
【问题描述】:
我目前遇到了 psr.exe 的问题。实际上,它与以下命令完美配合:
- C:\windows\system32\psr.exe
- C:\windows\syswow64\psr.exe
- psr.exe(带有 system32\cmd.exe 和 syswow64\cmd.exe)。
但是,当我的程序(在 64 位 Windows 7 上运行的 32 位程序)使用此 bat 启动应用程序时,它不起作用。什么都没发生。 我的程序可以从 bat 文件中打开记事本,或者执行任何你想要的,但它不适用于 psr.exe。
你能给我一些建议吗?也许这不是 32/64 位兼容性问题,但我不知道为什么这不起作用...
编辑:
批处理文件内容为:
C:\windows\system32\psr.exe
运行这个bat的程序是用C编写的,它使用这个函数来启动它:
CreateProcessAsUser(
hTokenDup,
NULL,
"C:\\toto\\mybat.bat",
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE,
lpEnvironment,
NULL,
&sInfo,
&ProcessInfo)
如果 .bat 文件包含 C:\windows\system32\notepad.exe 而不是 C:\windows\system32\psr.exe,它会完美运行。
如果我从桌面双击包含C:\windows\system32\psr.exe 的 bat 文件,它可以正常工作,但在我的 C 程序中,它就不能工作。
(注意:我的 c 程序适用于其他 .exe 文件,例如记事本)
非常感谢。
约翰
【问题讨论】:
-
能否添加批处理文件的代码。
-
对你来说够了吗:)?
-
信息已经足够了,但我无法弄清楚为什么它不能像我在 java 中那样工作
-
我公司的某个人在我的公司工作 C,他说 C 可能会在 64 位和 32 位问题上失败
-
哦,谢谢。告诉他 Windows 事件报告了这个:Un périphérique ou program a requis l'attention。 Périphérique 或应用程序:C:\windows\SysWOW64\cmd.exe。消息名称:C:\windows\system32\cmd.exe。对不起法语....
标签: c batch-file cmd 32bit-64bit