ShellExecute 返回成功但未创建文件
ShellExecute returning success but file is not created
我正在使用 ShellExecute WIN API 到 运行 DOS 命令,因为当我 运行 应用程序时可以看到 DOS 命令闪烁。下面是 ShellExecute API 调用。
ret = ShellExecute(0, "open", "cmd.exe", "/C ver > version.txt", 0, SW_HIDE);
在此之后,我尝试使用 fopen 函数打开 version.txt,但它返回 NULL。
感谢任何帮助。
ShellExecute()
异步运行指定进程。 fopen()
失败的原因几乎可以肯定是 cmd
进程没有足够的时间来实际创建文件。
有几种方法可以解决这个问题。对于您的情况,最好的方法可能是使用 ShellExecuteEx()
来检索 hProcess
中的进程句柄,这将允许您在恢复代码之前等待其终止。参见 How to wait for ShellExecute to run?。
我正在使用 ShellExecute WIN API 到 运行 DOS 命令,因为当我 运行 应用程序时可以看到 DOS 命令闪烁。下面是 ShellExecute API 调用。
ret = ShellExecute(0, "open", "cmd.exe", "/C ver > version.txt", 0, SW_HIDE);
在此之后,我尝试使用 fopen 函数打开 version.txt,但它返回 NULL。
感谢任何帮助。
ShellExecute()
异步运行指定进程。 fopen()
失败的原因几乎可以肯定是 cmd
进程没有足够的时间来实际创建文件。
有几种方法可以解决这个问题。对于您的情况,最好的方法可能是使用 ShellExecuteEx()
来检索 hProcess
中的进程句柄,这将允许您在恢复代码之前等待其终止。参见 How to wait for ShellExecute to run?。