【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

cやc++などタスクバーに表示されるプログラムから、起動中のブラウザにjavascriptコードを実行させる方法があれば教えてください

それとブラウザ単体で動的にjavascriptを実行するには、
・アドレスバーに打ち込む
・コンソール画面に打ち込む(IE7とかの場合F12押下して出てくるやつ
以外に方法があるのでしょうか?

回答よろしくお願いいたします。

A 回答 (1件)

Cではやったことありませんが、WSHでのやり方を例示します。



-- ここから
var Shell = WScript.CreateObject("Shell.Application");
var WindowsShell = Shell.Windows();
// 現在開いているIEを調べる
for (var i=0; i<WindowsShell.Count; i++) {
 if (WindowsShell.item(i).FullName.match(/iexplore.exe/i)
  && WindowsShell.item(i).document.URL == "http://www.yahoo.co.jp/") {
  // IEに動的にJSを送り込む
  var d = WindowsShell.item(i).document;
  var s = d.createElement('script');
  s.type = "text/javascript";
  s.text = "document.sf1.p.value = 'test from JS';";
  d.body.appendChild(s);
 }
}
-- ここまで ※全角空白は半角かタブに置換してください。

上記を test.js などとして保存し、IEでyahooのトップページを開いてから test.js をダブルクリックしてください。
検索文字列入力欄に test from JS と出ましたでしょうか。

C++でのブラウザウインドウの操作はこちらを参考にしてください。

・VC++ WebBrowser COMメモ(Hishidama's VC++ WebBrowser-control Memo)
http://www.ne.jp/asahi/hishidama/home/tech/vcpp/ …

正式名称は忘れましたがキモは「SHDOCVW.DLL」ですので、
これを頼りに検索すればいろいろなサンプルが見つかると思います。
なおこの方法はIEもしくはIEコンポーネントを利用しているもの限定になります。
例えばDonutRAPTなどでも動きますが、….FullName.match(/donut.exe/i) といった修正が必要です。

ちなみに、少々強引なことを言うと、C/C++からこのWSHを呼び出してしまえば
「WindowsShell.item(i).document.sf1.p.value = 'test from JS'」とかやることも可能です。

≫それとブラウザ単体で動的にjavascriptを実行するには

こちらはちょっと漠然としててどうしたいのかよくわかりませんが、
「動的 javascript」で検索すれば、上記と同じサンプルが出てきます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報