【发布时间】:2016-10-09 22:58:59
【问题描述】:
我对 Delphi 10.1 中的以下代码有问题:
ShellExecute(handle,'open',PChar(filename), '','',SW_SHOWNORMAL);
当我尝试运行代码时,它给了我这个错误:
不兼容的类型:“HWND”和“TWindowHandle”
【问题讨论】:
-
尝试将
handle参数改为0。 -
问问自己为什么要通过
handle。我想那是您应用程序中表单的 FMXhandle。你知道ShellExecute会如何处理这个论点吗?你有什么理由不直接通过0?是什么驱使你传递不同的价值观?如果有的话,您是否理解该论点将如何使用?如果你不理解它,你为什么还要调用这个函数? -
不要使用
ShellExecute,因为它不会以有用的方式报告错误。使用ShellExecuteEx可以。你甚至检查错误吗?您想明确使用open动词,还是真的要执行默认动词?filename是可执行文件吗?如果是这样,那么您应该使用CreateProcess创建一个新进程,而不是让 shell 来完成这项工作。
标签: delphi shellexecute