我正在尝试使用从用户那里获得的目录从 Delphi 中打开 Windows 资源管理器。该目录保存为字符串。当我使用以下代码时,它不会接受它。我必须亲自输入。
sDir : string;
procedure OpenDirectoryClick(Sender: TObject);
begin
ShellExecute(Handle,nil,sDir,nil,nil,sw_Show);
end;
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用
sDir : string;
procedure OpenDirectoryClick(Sender: TObject);
begin
ShellExecute(Handle,nil,'C:\Windows',nil,nil,sw_Show);
end;
Run Code Online (Sandbox Code Playgroud)
上面的代码确实有效
我该如何解决这个问题?
第三个参数应转换为 PChar,因此请尝试以下操作:
ShellExecute(Handle,nil,PChar(sDir),nil,nil,sw_Show);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 :)
顺便说一句:明智的做法是不依赖默认的 Windows API 行为并将第二个参数指定为“open”,而不是 nil - 以防万一;)