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

时间:2012-02-24 11:07:15

标签: delphi console delphi-2010 shellexecute

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

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

引起我悲伤的一句话是:

ShellExecute(0, 'open', 'someapplication.exe', nil, nil, SW_SHOWNORMAL);

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

1 个答案:

答案 0 :(得分:12)

hwnd参数传递0很好。 documentation描述了参数:

  

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

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