将空窗口句柄传递给ShellExecute是否可以?

Dan*_*lly 11 delphi console shellexecute delphi-2010

我有一个Delphi控制台应用程序,最终需要启动两个应用程序之一.

我遇到一些问题让ShellExecute无错误地工作,我认为问题与没有控制台应用程序的句柄有关.

引起我悲伤的一句话是:

ShellExecute(0, 'open', 'someapplication.exe', nil, nil, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

我认为句柄中的0是问题,因为它编译好并在调试器中运行OK,但如果我尝试运行可执行文件,我会得到一个未处理的错误(控制台应用程序认为它已经结束了).

Dav*_*nan 12

hwnd参数传递0 很好.该文档描述了这样的参数:

父窗口的句柄,用于显示UI或错误消息.如果操作未与窗口关联,则此值可以为NULL.

您的错误是由于其他原因造成的.