(1)インターネットエクスプローラ上で、文字列を選択します。
(2)右クリックして myscript.pl実行
myscript.plの内容
----
IEで選択した文字列を取得
文字列を整形して出力
----
このようなことは可能でしょうか?
IE右クリックすると「コピー」コマンドが現れるので、クリップボードにコピーしてしまえばPerlで取得できそうです。
しかし、
コピーコマンド実行 → myscript.pl実行
と続けるには、どうすれば良いのでしょうか?
Win32::DDE
user32.dll
http://nifberry.727.net/test/hatena156.htm
�I��������������PERL�ɓn��
可能です
右クリックにする場合はコンテキストメニューの拡張が必要ですが
PERLに渡す処理が出来ているのであれば
JavaScriptで渡してやればよいだけです
<HEAD>
<TITLE>選択した文字列をPERLに渡す</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
function main(){
var ParentWindow = this;//選択のターゲットウィンドウ
var ParentDocument = ParentWindow.document;//ターゲットのドキュメント
var ParentSelection = ParentDocument.selection.createRange(); //選択範囲
var seltxt = ParentSelection.text;
if( seltxt.length >0){
// alert(seltxt);
document.forms[0].SEL.value=seltxt;
document.forms[0].submit();
return true;
}else{
ParentWindow.status="文字列が選択されていません";
return false;
}
}
// -->
</SCRIPT>
<FORM METHOD="POST" ACTION="http://nifberry.727.net/test/hatena156.cgi">
<INPUT TYPE="HIDDEN" NAME="SEL">
<BUTTON OnClick="main()">選択</BUTTON>
</FORM>
ここに選択用の文字列
</BODY>
</HTML>
http://web.archive.org/web/*/http://www.cybercom.jp/~mikio/translate/ie_translate/wordlookup....
詳しくはこちらのソースが参考になります
http://search.cpan.org/~ctrondlp/Win32-GuiTest-1.50.3-ad/Example...
Win32::GuiTest::Examples - collection of the scripts from eg - search.cpan.org
作ってみました。ただし事前にWin32::GuiTestをインストールしておかなければなりません。
use Win32::Clipboard;
use Win32::GuiTest qw(:ALL);
#@windows = FindWindowLike(0,””,”SleipnirMainWindow”); #sleipnir
#@childs = FindWindowLike($windows[0],””,”IEBrowserFrame”); #sleipnir
@childs = FindWindowLike(0,””,”IEFrame”); #IE
SetForegroundWindow($childs[0]);
SendKeys(”^c”);
$clip = Win32::Clipboard();
$text = $clip->GetText();
print ”内容:<$text>¥n”;
exit;
ブラウザが変わればウインドウを検索する部分を変えなきゃならないのでちょっと面倒ですが。
とりあえずIEと、自分が普段使っているSleipnir Ver.2でやってみました。
ちなみにClassNameの特定にはurlのspy.plを使いました。
素晴らしい!!!
完璧です。見事、期待通りに動作しました!
おまけに他ブラウザの場合も応用利くようなご指導!!
感謝感激です。素晴らしいお答えありがとうございました!!
JavaScriptで選択文字列を取得できることはわかりました。ありがとうございます。
起動は右クリックでなくても、簡単なら良いです。
JavaScriptなら、IEのお気に入りから実行させることができましたよね?
そうすると、後は、
1)クリップボードへの格納
2)外部プログラム(myscript.pl)実行
ができれば実現できそうです。
完成できる方を探してみます。
ありがとうございました。