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

3番目のパラメーターはPCharにキャストする必要があるため、次のことを試してください。

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

お役に立てれば :)

ちなみに、デフォルトのWindows APIの動作を当てにせず、2番目のパラメーターをnilではなく'open'として指定するのは賢明です-念のため;)

于 2012-06-10T12:40:41.383 に答える