VistaのInvokeVerb(Ex) 2012-04-20 (Fri) 00:54

VistaのInvokeVerb(Ex)の挙動の件について。

たとえばパラメタとして、「開く(&O)」を指定すると何も起らないが、「open」だと対象ファイルに関連付けられたアプリで開かれる。
では日本語を受け付けなくなっているのかというとそうでもない。
「秀丸エディタで開く」は正常に機能するし、「&Unlocker」は機能しないのだ。

推察するに、コンテキストメニューの動詞(上記例では open)は受け付けるが、項目名(正式名称は不明。上記例では「開く(&O)」)は受け付けなくなっているのではないのか?

XPではどちらでも動作するので、Vistaで仕様が変わったのか、そうでなければバグということなのだろう。

とりあえず、ファイルの単一指定の場合であれば、
コンテキストメニュー実行.jsのソースの
if(sVerb.match(sVerb1)) oItem.InvokeVerb(sVerb);


if(sVerb.match(sVerb1)) cVerbs.item(i).DoIt();

のように書き換えればよいのだが、複数指定の場合、InvokeVerbExでDoIt()相当のメソッドが無いのでどうしようもない。

いっそのこと項目名では無く、動詞を指定するように書き換えるのもありだが、目的のコマンドの動詞をどうやって調べるのかというのが問題となってくるわけだ。

X-Finderでエクスプローラ互換のコンテキストメニューを表示させ、目的のコマンドにフォーカスしたときにステータスバーにそれと思しきものが表示されるのだが、



全てのコマンドで動詞がわかるわけではない(動詞を持たないコマンドもある?)。

上の例はavastの検査(S) を選択したものだが、「avast! scan」をInvokeVerb(Ex)のパラメタに指定するとavastでウィルススキャンが実行される。

同様に「秀丸エディタで開く」にフォーカスすると、ステータスバーには「秀丸エディタで開く」とだけ表示され、これをパラメタとして指定すると秀丸エディタが開く。

Unlocker」は「Unlocker」と表示されるけど、これをパラメタとして与えてもUnlockerは起動しない。

ってな訳で動詞を調べるのは簡単では無い。なにかいい方法があるのか?
とにかく現状では非常にメンドクサイOrz
関連記事

コメントの投稿

管理者にだけ表示を許可する

注意事項
基本的にこのブログはブログ主の備忘録です。

ブログの内容にはブログ主の主観や時には正確でない情報が含まれていることもあります。書いてある内容がすべての環境にあてはまることを保証するものでもありません。
また過去の記事の情報はそれが参照された時点では既に陳腐化していることもあります。

その辺をご理解の上で当ブログ内に書いてあることを試す場合は自己責任でお願いします。

万一何らかの損害が生じても責任は持てませんのであしからず!

記事内容の誤りの指摘、疑問点の回答などコメント頂けると助かります。
カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
ブログ内検索
カラーコードチェッカ
カラーコードの確認
入力例) #ffffff | blue
カテゴリ
最新記事
最新コメント
最新トラックバック
リンク
ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文: