PHPでWindowsのクリップボードを取得操作するコード

| コメント(0) | トラックバック(0)

PHPでWindowsのクリップボードを取得操作するコード

windowsで動かすPHP CLIモードで、コピペの情報が欲しかったため いろいろ調べた所、ようやく動くコードができたので公開です。

php
class Clipboard {
    var $OLECMDID_COPY = 12;
    var $OLECMDID_PASTE = 13;
    var $OLECMDID_SELECTALL  = 17;
    var $objIE ;

    function Clipboard () {
        $this->objIE = new COM("InternetExplorer.Application") or die("Unable to instantiate ie");
        $this->objIE->navigate("about:blank");


    }

    function SetData($text){
        //削除
        //$this->objIE->Document->parentwindow->clipboardData->SetData("text",$text);

        //このページを使用して、クリップボードから情報を貼り付けますか?対策
        $this->objIE->document->body->innerText = $text;
        $this->objIE->execWB($this->OLECMDID_SELECTALL, 0);  //全て選択
        $this->objIE->execWB($this->OLECMDID_COPY, 0);       //コピー

    }

    function GetData(){
        //削除
        //$this->objIE->Document->parentwindow->clipboardData->GetData("text");

        //このページを使用して、クリップボードから情報を貼り付けますか?対策
        $html  = "<form action='/' name='form1'>";
        $html .= "<textarea  name='field1'  id='field1' ></textarea >";
        $html .= "</form>";
        $this->objIE->document->body->innerHtml = $html;
        $this->objIE->document->form1->field1->focus;
        $this->objIE->execWB($this->OLECMDID_PASTE, 0);      //ペースト
        $a = $this->objIE->document->form1->field1->innerHtml;

        return $a;
    }




    function quit(){
        $this->objIE->quit();
    }

}

//使用例
$obj = new Clipboard();
$obj->SetData(date("H:i:s"));
echo $obj->GetData();
$obj->quit();

COM 関数でIE引っ張りだして、コピペの情報を取得、入れ込みしてます。

ほぼWSHの流用コードです(笑
このコード修正すればJavaScripやVBscriptにも適用可能なはず!?

PHPのWin32api関数を利用したかったのですが、動作は遅いですがとりあえず動くのでOKとします。

目的としては、Linuxのターミナル(putty)でemacs,vi,cat,screenの各種情報をwindowsに入れたかったのです。 あとはSocket通信のモジュール書だけ!!

お世話になった参考リンク

「環境変数の展開」と「WSHでクリップボードアクセス」

WSHでのクリップボードアクセス - ardarimの日記

Internet Explorerオブジェクト (InternetExplorer.Application)

トラックバック(0)

トラックバックURL: http://mukaer.com/cgi-bin/mt/mt-tb.cgi/29

コメントする

PR

PR





検索

Loading

メニュー

twitter