「エクスプローラ枠」をキー操作&マクロNo.04199
naanfushi さん 09/10/14 16:00
 
 エクスプローラ枠を「キーボードからの操作(キー割り当てや)」「秀丸マクロ」
からコントロールしようと考えています。そこでヘルプを調べてみたのですが、「エ
クスプローラ枠(を表示/非表示する)」というコマンドしか見つけられませんでした。

 エクスプローラ枠を表示させ、キーボードやマクロから「フォルダ」「メニュー表
示」「プロジェクト」などの表示を切り替えるために、キー割り当てやマクロから、
どう指定すれば良いのでしょうか? 
 また、マクロから、「プロジェクトの読み込みファイルの指定」「プロジェクトの
表示内容の[更新]」などは、どうすれば良いのでしょうか?
 ご教示頂きますと幸いです。

 以上、宜しくお願い申し上げます。

[ ]
RE:04199 「エクスプローラ枠」をキー操作No.04212
秀丸担当 さん 09/10/14 18:00
 

> エクスプローラ枠を表示させ、キーボードやマクロから「フォルダ」「メニュー表
>示」「プロジェクト」などの表示を切り替えるために、キー割り当てやマクロから、
>どう指定すれば良いのでしょうか? 
> また、マクロから、「プロジェクトの読み込みファイルの指定」「プロジェクトの
>表示内容の[更新]」などは、どうすれば良いのでしょうか?

いまのところ、マクロやキー割り当てからこれらのことを操作する方法は無いで
す。
以前にあった別の要望のアウトプット枠の操作も含め、何らかの方法があったほ
うがいいと思います。

外部DLLという位置づけからdllfuncで操作できたらと考えましたが、結局別プロ
セスの垣根があって、ややこしいことになりそうです。
本当は本体のコマンドや標準のマクロ文を用意したほうが楽ではありますが、標
準でやってしまっていいかということで悩んでいます。
そういうことも含めて、できるかどうかわかりませんが検討したいと思います。

[ ]
RE:04212 「エクスプローラ枠」をキー操作No.04239
naanfushi さん 09/10/16 10:41
 
 一応、「loaddll」などを実行してみましたが、当然、何も起きませんでした。

 完全な素人意見としては「ぜひ、標準で実装して下さい」という単純な立場です。
 エクスプローラ枠の部分を外部DLLにして、「従来のまま使いたいという場合にも
弊害になるということはありません。」と明記されておられますが、それほど深刻な
「弊害」があること、あるいは、それほど多くの「従来のまま使いたい」と考える
ユーザの数を想像すらできないほど、エクスプローラ枠の機能は、魅力に溢れていま
す(専門知識の欠如によるものかもしれませんが…)。
 しかも、β会議室でも、このDLL導入でそれほどシビアな障害発生の報告もないよ
うに見受けます。
 
 だとしたら、「エクスプローラ枠の操作も標準で実装」する方がメリットが多いと
考えます。もし、正式版で多様な環境で使われた弊害が出るような事があっても、
「これらの機能を使わなければ、従来のまま安定」という、という保証が用意されて
いるわけですので、そういうユーザも安心です。
 

 微細な「弊害」をも避けようとする姿勢は極めて重要ですが、だからといって、よ
り多くのユーザが受けるであろう多大なメリットを見殺しにするのは、あまりにもっ
たいないと思います(弊害を避ける手立ても用意されているのですから)。
 
 単純な話ではないのかもしれませんが、ご検討頂ければ幸いです。

[ ]
RE:04239 「エクスプローラ枠」をキー操作No.04244
naanfushi さん 09/10/17 09:01
 
 自己レスで恐縮で、すいません
 「外部DLL(HmExplorerPane.dll)の機能を使わなければこのDLLが読み込まれないの
で弊害はない」の真意を読み取れておりませんでした。「外部DLLはWindowsME以前に
は未対応」という趣旨を忘れておりました。

 そこで参考のために、天下のWORD2007、一太郎2009でシステム要件を調べてみまし
た。
●ワード2007/オペレーティング システム:Microsoft Windows(R) XP Service Pac
k (SP) 2、Windows Server(R) 2003 SP1、またはそれ以降のオペレーティング シス
テム2
●一太郎2009/OS:Windows Vista(R)、Windows(R) XP(Service Pack 2以上)、Win
dows 2000 Professional(Service Pack 4以上)、※各日本語版

 と言うことで、いずれも原則的にME以前は切り捨てです。秀丸は、外部DLL以外はM
E以前のOSでも問題なく動くわけで、これだけでも著名ワープロより素晴らしいわけ
です。既存動作の保証があれば、これらの新規コマンドを「標準」で実装しても、大
きな不満も生ぜず、極めて現実的な対応と言えるのではないでしょうか。(95のユー
ザでブックマーク機能を使いたい人も皆無ではないでしょうが…)

 むしろ、ME以前のユーザを余りに大切にする配慮(ごく小数のユーザも大切にする
姿勢は重要ですが)は結果的に、圧倒的多数のXP以降のユーザが被る不利益が過度に
大きくなる事につながり、ユーザ数から言っても、秀丸の進歩にとっても、あまり望
ましい事ではないような気がします。

 しかも「本体のコマンドや標準のマクロ文を用意したほうが楽」という事なので、
迷うことは全くないと考えます。

 以上、自己レスと現状報告でした。何かのご参考にでもなれば幸いです。

[ ]
RE:04244 「エクスプローラ枠」をキー操作No.04252
秀丸担当 さん 09/10/19 09:57
 

エクスプローラ枠を操作する件ですが、おっしゃる通り作る側の事情はユーザー
様にとってはどうでもいいことなので、どういう方法であれ何らかのできる方法
を作りたいと思います。
マクロの場合は表向きはやはりdllfuncということにしようかと考えています。

[ ]
RE:04252 「エクスプローラ枠」をキー操作No.04283
naanfushi さん 09/10/23 12:15
 
 秀丸マクロとは別領域の話題で申し訳ないのですが、sendmessageの扱いで、下記
の3項目を質問させて頂きたいのですが…(昨夜から調べているのですが、なにぶん、
プログラム関連は全くの素人なもので…)。

・実現したい内容1
 編集している最中に、キーボードにマクロを割り当ててエクスプローラ枠を制御で
きますが、その時のフォーカス(? カーソルがある項目です)がある項目をマクロ
で取得できますでしょうか?
 例えば、「[Alt]+[Ctrl]+P」に「プロジェクトを表示」させられますが、この時、
プロジェクト枠に、薄く反転表示されるカーソルの位置の項目名を取得すること([A
lt]+[Ctrl]+Gでカーソルのあった位置の項目情報を取得)は可能でしょうか?
 
・実現したい内容2
 編集している最中でキーボードからプロジェクト枠のカーソル位置を移動させられ
ますでしょうか?
 具体的なイメージでは、プロジェクト枠をマウスでクリックした後、上下キーを押
すと、プロジェクト枠内の選択項目が上下します。これをsendmessageで実現(編集
しながら、でプロジェクト枠の選択項目が上へ、[Alt]+[Ctrl]+Dで下へ移動)できる
のでしょうか?

・実現したい内容3
 編集している最中で、エキスプローラ枠の項目を選択する命令を発することができ
るのでしょうか?
 例えば、上記のように矢印キーのように選択項目を上下に移動して指定して、それ
をマウスでダブルクリックした時のように指定(開く)ことは可能(編集しながら、
[Alt]+[Ctrl]+Rでリストにあるファイルを開く操作)でしょうか?


 素人として調べていると、何となく第2引数に適切な値を入れると、操作できそう
な気配は多少感じたのですが…。

 忙しさも頂点に達しようとしている時期だろうとは思いますが、もし可能/不可能
を含めて、ご教示頂けますと大変ありがたいです。

[ ]
RE:04283 「エクスプローラ枠」をキー操作No.04285
Iranoan さん 09/10/23 14:29
 
 naanfushi さん今日は、Iranoan です。
>  秀丸マクロとは別領域の話題で申し訳ないのですが、sendmessageの扱いで、下記
> の3項目
<snip>
>  編集している最中に、キーボードにマクロを割り当ててエクスプローラ枠を制御で
> きますが、その時のフォーカス(? カーソルがある項目です)がある項目をマクロ
> で取得できますでしょうか?
<snip>
>  編集している最中でキーボードからプロジェクト枠のカーソル位置を移動させられ
> ますでしょうか?
<snip>
>  編集している最中で、エキスプローラ枠の項目を選択する命令を発することができ
> るのでしょうか?
 どれも一度、マクロ・ヘルプの「エクスプローラ枠,アウトプット枠」の項
目を御覧下さい。

 「実現したい内容1」以外はそれ程難しくないと思います。「実現したい内容
1」は不可能では無いと思いますが、ちょっと難しいでしょうね。

[ ]
RE:04285 「エクスプローラ枠」をキー操作No.04287
秀丸担当 さん 09/10/23 16:28
 

マクロヘルプのエクスプローラ枠,アウトプット枠のGetWindowHandleで得られる
ウィンドウハンドルに対しての操作は、一応コマンド(0x0111=WM_COMMAND)を送
ってもらうために安易に作ったものでした。
コマンドを送る以外の操作はできないと思ってもらったほうがいいと思います。

独自のDLLを作って子ウィンドウを列挙てキー操作のメッセージを送ったりと、
WindowsAPI的な処理を作るともしかしたらできてしまうかもしれないですが、そ
こまでの動作はサポートできないです。
申し訳ありません。

[ ]
RE:04287 「エクスプローラ枠」をキー操作No.04289
naanfushi さん 09/10/25 16:28
 
 プログラム関係はまったくの無知のため、sendmessageで検索しているとWM_GETTEX
Tなど、一見、美味しそうなパラメータが見つかったため、何か出来るのかと思って
しまいました。
(エディタだからと言って、何から何までキーボード操作に依存するのも時代錯誤で
すね…)

 現状で十二分に快適に操作できており、感謝しております。お手間をおかけして申
し訳ありませんでした。

[ ]