我有一個Delphi應用程序,使用ShellExecute調用按鈕按下第二個Delphi應用程序。ShellExecute失敗,如果空間中的路徑
應用程序存儲在同一個服務器上,在同一個網絡共享上。其路徑的格式爲:
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文件夾的副本。每個服務器上的Apps文件夾映射到「Z:」
在其中一個辦公室中,我們發現如果路徑中包含空格,則無法找到應用程序。由於應用程序是彼此直接拷貝的,並且在其他辦公室工作,所以這個問題似乎是機器設置。
任何想法?
您是否嘗試過使用雙引號? 'ShellExecute(0,nil,PChar(''Z:\ Apps \ Application 1 \ Application1.exe'',nil,nil,0);' – RRUZ
顯示代碼,幷包含傳遞給ShellExecute的所有變量的值。 –
@ RRUZ-我們已經嘗試在常數範圍內添加引號 –