1

我正在尝试使用从用户那里获得的目录从 Delphi 中打开 Windows 资源管理器。此目录保存为字符串。当我使用以下代码时,它不会接受它。我必须亲自输入。

sDir : string;

procedure OpenDirectoryClick(Sender: TObject);
begin
 ShellExecute(Handle,nil,sDir,nil,nil,sw_Show);
end;

上面的代码不起作用

sDir : string;

procedure OpenDirectoryClick(Sender: TObject);
begin
 ShellExecute(Handle,nil,'C:\Windows',nil,nil,sw_Show);
end;

上面的代码确实有效

我该如何解决这个问题?

4

1 回答 1

4

第三个参数应该被转换成 PChar,所以请试试这个:

ShellExecute(Handle,nil,PChar(sDir),nil,nil,sw_Show);

希望这可以帮助 :)

顺便说一句:不要指望默认的 Windows API 行为并将第二个参数指定为“open”,而不是 nil,以防万一;)

于 2012-06-10T12:40:41.383 回答