人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows【Perl】IEの選択文字列を取得できる?

(1)インターネットエクスプローラ上で、文字列を選択します。
(2)右クリックして myscript.pl実行

myscript.plの内容
----
IEで選択した文字列を取得
文字列を整形して出力
----

このようなことは可能でしょうか?

IE右クリックすると「コピー」コマンドが現れるので、クリップボードにコピーしてしまえばPerlで取得できそうです。

しかし、
コピーコマンド実行 → myscript.pl実行
と続けるには、どうすれば良いのでしょうか?

Win32::DDE
user32.dll

●質問者: radio3
●カテゴリ:コンピュータ
✍キーワード:DDE DLL IE Perl Win32
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● aki73ix
●10ポイント

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....

詳しくはこちらのソースが参考になります

◎質問者からの返答

JavaScriptで選択文字列を取得できることはわかりました。ありがとうございます。

起動は右クリックでなくても、簡単なら良いです。

JavaScriptなら、IEのお気に入りから実行させることができましたよね?

そうすると、後は、

1)クリップボードへの格納

2)外部プログラム(myscript.pl)実行

ができれば実現できそうです。

完成できる方を探してみます。

ありがとうございました。


2 ● siachan
●500ポイント

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を使いました。

◎質問者からの返答

素晴らしい!!!

完璧です。見事、期待通りに動作しました!

おまけに他ブラウザの場合も応用利くようなご指導!!

感謝感激です。素晴らしいお答えありがとうございました!!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ