• ベストアンサー

WSHでスクロールの制御をしたいと考えています。

WSHでスクロールの制御をしたいと考えています。 いつも開いているフォルダがあるのですが、そのフォルダで利用するものは一番下の方にあるため、フォルダを開いてフォルダの一番下までスクロールするという動作を自動化したいと考えています。 取り敢えず、フォルダを開くところまでは、 var objWShell = new ActiveXObject("WScript.Shell") objWShell.Run("H:\\") として、出来るようになりました。 後は、End keyのような動作かスクロールさせる動作をさせたいのですが検索しても見つかりません。 どなたか宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 0909union
  • ベストアンサー率39% (325/818)
回答No.2

>WSHってWindowsしかないものと思ってました ちょこっとすれ違いが! No1の回答者は、エクスプローラーでソートをデフォルトで設定しておけば、質問内容の事は ないよ。 と言っています。わざわざスクリプトで組むレベルではありません。と言う事です。それでOSを聞いています。WSHの動作環境を指していません。質問者が誤解するのも無理はなく、回答者が先に一言追加すれば済んだ事です。 >そのフォルダには、順次ファイルが最下部に追加されていくため 「順次ファイル」とは何の事でしょうか? 意味不明な呼び方ですね? それはそのように設定されているためです。デフォルトは追加されたファイルは表示上、最後に追加されてます。 そのフォルダー(ウインドウ)がアクティブな時に F5 キーを押せば設定されたソートでリストされます。 XPだと、エクスプローラー(マイコンピューターでもいい)一回「表示」メニューの「詳細」を選択してソートバーを出します。それで「更新日時」をクリックして「更新日時」をキーとした降順ソートにします。Vistaでもあまりやり方はかわりませんが、Vista移行だと自動種類機能により、拡張子で、ソートバーの項目が変わってきます。 この点からもOSが何であるか重要ですね。 なおこれを達成するには、エクスプローラーの「ツール」メニューの「フォルダーオプション」の「各フォルダーの表示設定を保存にする」が有効になっていないとだめです。これで、 >フォルダを開くと同時に最下部がでていると便利なんです。 が、達成されます。 あと、WSHのスクリプトですが、これもOSが何であるか重要です。他のOSと言う事でなくバージョンが重要です(Windows2000, XP, Vistaなど)。 >スクロールさせる動作をさせたいのですが これは「WScript.Shell」のオブジェクトにはそんな機能ありません。出来るとしたら「Shell.Application」です。または「classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"」です。これらはシェルと言って、WindowsのGUIではエクスプローラーを指します。後述の物は、フォルダーのプロパティで表示をカスタマイズすると、実はOS自信も使っています。下記のURLがリファレンスサイトです。 http://msdn.microsoft.com/en-us/library/bb773177(v=VS.85).aspx http://msdn.microsoft.com/en-us/library/bb773938(v=VS.85).aspx 可能性のあるやり方として、下記のURLのサンプルにあるようにWebコントロールとしてフォルダーを表示させると、スクロールのコントロールも可能です。サンプルを .hta ファイルとして保存してください。これ以外とだと、C++, C#, VBなどでコントロールするしかありません。 http://msdn.microsoft.com/en-us/library/bb774043(v=VS.85).aspx 他には下記のように、右クリックメニューでソートをさせるやり方です。フォルダー内で右クリックで、出てくる項目をスクリプトレベルで行う方法です。 http://msdn.microsoft.com/en-us/library/bb774172(v=VS.85).aspx これらは"shell.application"でネット検索すれば沢山サンプルが見つかります。

glarelance
質問者

補足

>「順次ファイル」とは何の事でしょうか? 意味不明な呼び方ですね? 「順次ファイルが最下部に追加されていくため、」というのは、「順次、ファイルが最下部に追加されていくため、」 順次:順々に、次々に、 という意味です。 「順次ファイル」というファイルがあるわけではないです。 >そのフォルダー(ウインドウ)がアクティブな時に F5 キーを押せば設定されたソートでリストされます。 そのソート操作が面倒なため、最初から、新しいファイルが追加される最下部に移動しておきたいと考えていたのです。 >「WScript.Shell」のオブジェクトにはそんな機能ありません。出来るとしたら「Shell.Application」です。 Shell.Applicationとshell.Shell_Applicationに関して、ScrollBarを操作できるオプションはないかとか、一番下のitemを選択したらスクロールも一番下に行くんじゃないかと思って、アイテムを選択するコマンドがないかとか思って色々検索したりしてみたんですが良い方法が見つかりませんでした。 >可能性のあるやり方として、下記のURLのサンプルにあるようにWebコントロールとしてフォルダーを表示させると、スクロールのコントロールも可能です。 これは、良い線行ったんですが、ウェブコントロールとしてフォルダを操作する場合、フォルダの機能全てを自分で作らないとまともに使えないようなので、残念ながらこれは断念しました。 >右クリックメニューでソート ソートだけならこういう方法もあるのでしょうが今回の方向性とは違うので利用しませんでした。 色々調べたところ、UWSCというソフトでスクリプトを構成できるようなので、こちらでスクリプトを構成してやることにしました。 以下のように、RecordFolder.UWSというファイルを作成して、このファイルをUWSC.exeに関連付けしてやると、ダブルクリックするだけで、フォルダの一番下へ行けるようになりました。 ////RecordFolder.UWS//// Exec("explorer.exe H:\"); folderRec=GETID("Record (H:)"); Ifb folderRec>=0 then CTRLWIN(folderRec,ACTIVATE); KBD(VK_END,CLICK); endif 色々情報有り難うございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#116115
noname#116115
回答No.1

OSが何かわかりませんが、更新日時でソートしてはいかがでしょうか。 もしくは、ショートカットを作るなどOS標準の機能で対処できるような気がします。

glarelance
質問者

補足

すみません、WSHってWindowsしかないものと思ってました^^; 使用しているOSはXPです。 そのフォルダには、順次ファイルが最下部に追加されていくため、下の方にあるものを逆順にソートしておいても、新しいのが追加されたらまたソートし直さなければいけなくなるのでフォルダを開くと同時に最下部がでていると便利なんです。

すると、全ての回答が全文表示されます。