2011年1月17日月曜日

【Windows】IEの右クリックに自作アプリケーションの起動の登録

レジストリの
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
に新しいキーを登録する。

キー名に右クリックに表示される名称になります。
規定の値に実行するhtmlファイル。

ContextsというDWORD値により、リンクで開くかページ内で開くか画像で開くかを設定できます。


実行するものは直接アプリケーションでは動かないようです。
htmlにスクリプトを記述し、その中でexeファイルなどを起動します。







【スクリプト】
  1. <script type="text/javascript">  
  2. var parentwin = external.menuArguments;  
  3. var parentwinPoint = external.menuArguments.document.elementFromPoint(parentwin.event.clientX, parentwin.event.clientY);  
  4.   
  5. var strTitle = new String();  
  6. var strURL = new String();  
  7. strTitle = parentwin.document.title;  
  8. strURL = parentwin.location.href;  
  9. //alert(strTitle);  
  10. alert("現URL:" + strURL);  
  11.   
  12. // リンク先  
  13. //alert("先URL:" + parentwinPoint.parentElement.href     );  
  14. //alert("先URL:" + parentwinPoint.href     );  
  15.   
  16. // もし現在の選択タグがAの場合は、現在タグのリンク先  
  17. if(parentwin.event.srcElement.tagName == "A"){  
  18.  alert("先URL:" + parentwin.event.srcElement.href     );  
  19. // それ以外の場合は、そのひとつ上のタグのリンク先  
  20. }else{  
  21.  alert("先URL:" + parentwin.event.srcElement.parentElement.href     );  
  22. }  
  23.   
  24.    
  25.   
  26.   
  27. // ファイル実行  
  28. //var WshShell = new ActiveXObject("WScript.Shell");  
  29. //WshShell.run("C:\\osero.exe");  
  30.   
  31. // ナビゲート  
  32. //parentwin.location.href ="http://yahoo.co.jp"  
  33.   
  34. // InnerHTML  
  35. //alert(parentwin.event.srcElement.document.body.innerHTML      );  
  36.   
  37. // tagName  
  38. //alert(parentwin.event.srcElement.tagName      );  
  39.   
  40. // 選択文字  
  41. //alert(external.menuArguments.document.selection.createRange().text);  
  42.   
  43.   
  44. </script>  
・ファイル実行
・ページ遷移
・InnerHTML取得
・右クリックしたリンク先の取得
・選択文字取得
・タグ名取得

などできるようです。

何かに応用利くかどうか考え中。

0 件のコメント:

コメントを投稿