我有一个 Delphi 应用程序,它使用 ShellExecute 在按下按钮时调用第二个 Delphi 应用程序。
应用程序存储在同一服务器上的同一网络共享上。它们的路径格式如下:
const
JobManager = 'Z:\Apps\Application 1\Application1.exe';
FeeManager = 'Z:\Apps\Application 2\Application2.exe';
对 ShellExecute 的调用如下:
rh := FindWindow(PChar('TMF'), PChar('Edit Job Details'));
if rh = 0 then
begin
ShellExecute(Handle, 'open', JobManager, nil, nil, SW_SHOWNORMAL);
...
由于我们有三个办公室,因此每个办公室服务器上都有 Apps 文件夹的副本。每台服务器的共享文件夹上都有一个映射到“Z:”的 Apps 文件夹
在其中一个办公室,我们发现了一个问题:如果路径包含空格,则无法找到应用程序。由于这些应用程序是彼此的直接副本,并且在其他办公室工作,因此问题似乎是机器设置。
有任何想法吗?
和你的lpFile
你应该转换的参数JobManager
as PChar
:
ShellExecute(Handle, 'open', PChar(JobManager), nil, nil, SW_SHOWNORMAL);
请注意,open
动词参数也不是必需的,你可以传递nil
与lpOperation
参数(默认)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)