掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
エクスプローラの「元に戻す」を実現するには (ID:42804)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
えらい時刻ですが,目が冴えて... (^^; どうせ,エクスプローラのオブジェクトを生成するのですから, 提示のサイトの記事の一番下にあるように,エクスプローラを起動したった同じでしょう ? というわけで,以下のコードでテストしてみました. [元に戻す]が可能かどうかは,どうするんでしょうね. //============================================================================= // [元に戻す]のテストコード // エクスプローラを非表示で起動して,そのハンドルにコマンドを送信 // // 動作確認は,Windows XP(SP3) + Delphi XE // エクスプローラで,削除,コピー,移動をして元に戻ることを確認 // ただし,テストに使用したファイルは,ローカルのPCで1つだけ // // IWebBrowser2の使用には,usesにSHDocVwが必要 //============================================================================= procedure TForm1.Button2Click(Sender: TObject); var AURL : String; Flags : OleVariant; IEObj : IWebBrowser2; IEHandle : HWND; begin //表示するのはこのプロジェクトのフォルダ内 AURL := ExtractFileDir(ParamStr(0)); //エクスプローラのオブジェクトを生成 IEObj := CreateComObject(CLASS_ShellBrowserWindow) as IWebBrowser2; //フォルダがないとエラーになるのでその対策 if DirectoryExists(AURL) then begin //指定のフォルダを新規にエクスプローラで表示 Flags := 0; IEObj.Navigate(AURL, //表示するフォルダ Flags, //各種設定フラグ EmptyParam, //表示フレームの指定 EmptyParam, //サーバに送信するデータ EmptyParam); //サーバに送信するHTTPヘッダ //起動完了まで待つ while IEObj.ReadyState < READYSTATE_INTERACTIVE do begin Application.ProcessMessages; end; //開いたIEの操作用にIEのハンドル値を取得 IEHandle := IEObj.HWnd; //元に戻す SendMessage(IEHandle, WM_COMMAND, 28700 - 1, 0); end; //起動したIEを閉じる PostMessage(IEHandle, WM_CLOSE, 0, 0); IEObj := nil; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.