メモ帳の名前をつけて保存のデフォルトディレクトリを変更するには?

解決


のろり  2010-09-24 19:39:37  No: 39208

初めての質問です。
開発言語:Delphi6
OS:WindowsXP

ShellExecuteExで指定したメモ帳の「名前を付けて保存」を実行した際に
保存先が実行ファイルのカレントディレクトリになっていますが
このダイアログのデフォルトディレクトリを変更することは可能でしょうか。
※設定はユーザのマイドキュメントにしようとしています。

半永久的に設定するのではなく、一時的に変更できればと考えております。
妙案があればご教授をお願い致します。


けど  2010-09-25 06:47:28  No: 39209

uses ShlObj;

procedure TForm1.Button1Click(Sender: TObject);
var
  TSH : TSHELLEXECUTEINFO;
  lpszPath: array[0..MAX_PATH] of Char;
begin
  SHGetSpecialFolderPath(Handle, lpszPath, CSIDL_PERSONAL, False);
  with tsh do
  begin
    cbSize:=Sizeof(tsh);
    fmask:=SEE_MASK_NOCLOSEPROCESS;
    WND:=Form1.Handle;
    lpVerb:='open';
    lpFile:='notepad';
    lpParameters:='';
    lpDirectory:=lpszPath;//★
    nShow:=SW_SHOW;
  end;
  ShellExecuteEx(@tsh);
end;


のろり  2010-09-29 00:42:08  No: 39210

>けどさん

回答ありがとうございます。
言葉足らずで申し訳ないです。

ShellExcuteExで開くファイルを指定したあとを想定していました。
「lpParameters:='';」となっているのでこれは新規ファイルになりますね。

当方の方で色々調べたのですが、ShellAPIでWindowsのメモ帳を操作するのは難しそうです。

ちなみにメモ帳で開いたファイルのパスはレジストリに保持しているようです。
この部分を変更するしかないようです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加