質問者
JavaScript内の変数値をC#プログラム内で利用する方法

質問
すべての返信
-
たぶんやりたいことは、クライアントコールバックじゃないかな。。。
サンプルは
http://blogs.sqlpassj.org/mitsugi/archive/2006/01/17/15833.aspx
にあります。 -
おがわみつぎ 様へ
大変曖昧な質問内容なのに、サンプルコードまで付けてご回答下さいまして有難うございました。
早速にクライアントコールバックについて調べさせて頂きましたが、ただ残念な事に私はC#を始めたばかりの超初心者でして、今回作成中のアプリはクライアントコールバックを利用できるほど高度なものではありません。。。
しかしクライアントコールバックについて勉強する機会を下さって感謝です。おがわみつぎさんのアドバイスがなければ、クライアントコールバックの存在自体気づかなかったと思います。いつかクライアントコールバックを使えるようなソフトを開発できるよう頑張ります! 有難うございました。
-
trapamiya 様へ
いつも大変お世話になっております。 C#超初心者のFuNeedsHelpです。 trapamiyaさんのご回答に対して、新たなご助言を頂けないでしょうか?
trapemiya さんからの引用 流れとしては、javascriptからvbscriptの関数を読んで、その中で.Netのクラスをインスタンス化してあげればいいんじゃないかと思います。vbscriptはCOM相互呼び出しが可能です。 trapamiyaさんのご回答にある、”javascriptからvbscriptの関数を呼んでその中で.Netのクラスをインスタンス化する”までは、悪戦苦闘の末、何とかたどり着いたのですが。。。
「どの.Netのクラスのインスタンスを、どの様に利用すれば、HTMLファイル内のJavascriptによって抽出した電話番号を、VisualC#で作成した WindowsApplication1.sln に渡す事が出来るのか?」という部分につまずいております。 再度、trapamiyaさんのご助言を頂けないでしょうか? 宜しくお願いいたします。
私のアプリの動作ついての補足説明:
①C:¥...¥解析.html ファイル内のJavascriptによって任意のWebサイトのHTMLソースコードを解析し、そのWebサイト内の電話番号のみを抽出して、 Javascript内の変数 TelNum に格納する。
② VisualC# で作成した C:¥...¥WindowsApplication1¥WindowsApplication1.sln 内でこの変数 TelNum を利用して電話帳アプリなど?を作成する。
①の処理については作成済みなのですが、②の部分(HTMLファイル内にあるJavascriptの変数値を、どの様にしてWindowsApplication1.slnに渡すかと言う部分)の解決策を探しております。
-
-
FuNeedsHelp さんからの引用
私のアプリの動作ついての補足説明:①C:¥...¥解析.html ファイル内のJavascriptによって任意のWebサイトのHTMLソースコードを解析し、そのWebサイト内の電話番号のみを抽出して、 Javascript内の変数 TelNum に格納する。
② VisualC# で作成した C:¥...¥WindowsApplication1¥WindowsApplication1.sln 内でこの変数 TelNum を利用して電話帳アプリなど?を作成する。
①の処理については作成済みなのですが、②の部分(HTMLファイル内にあるJavascriptの変数値を、どの様にしてWindowsApplication1.slnに渡すかと言う部分)の解決策を探しております。
この流れであれば、Hongliangさんが言われているように、全てC#でやってしまうのが普通です。
例えば、株価を表示しているページから株価を得るなどを目にします。
ただし、htmlの構造が変わると、その度にC#のプログラムを作り直す必要があります。FuNeedsHelp さんからの引用
「どの.Netのクラスのインスタンスを、どの様に利用すれば、HTMLファイル内のJavascriptによって抽出した電話番号を、VisualC#で作成した WindowsApplication1.sln に渡す事が出来るのか?」という部分につまずいております。 再度、trapamiyaさんのご助言を頂けないでしょうか? 宜しくお願いいたします。
私のイメージは、IEで右クリックして表示されるメニューを追加し、そこからjavascript -> vbscript -> C#という流れを想像していました。C#のdllは、dllを作成するプロジェクトのプロパティで、
1.アプリケーション -> アセンブリ情報 -> アセンブリをCOM参照可能にする。
2.ビルド -> COM相互運用機能の登録にチェックする。
でいいんじゃないかと思います。ただ、アプリの動作環境、動作仕様から受ける感じでは、最初に書きましたように、C#で直接HTMLを解析する方がいいんじゃないかと思います。 以下がサンプルです。
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
IE.Visible = true;
object Dummy = System.Type.Missing;
IE.Navigate("http://hoge.moge.jp", ref Dummy, ref Dummy, ref Dummy, ref Dummy);
while (IE.Busy) { } ;
while (((mshtml.HTMLDocument)IE.Document).readyState != "complete") { } ;
-
Hongliang様、 trapemiya様 へ
毎回のご回答本当に有難うございます。 こんなに頻繁にしかも素早くご助言を頂けるので、私みたいなC#超初心者でも、「鬼に鉄棒」と言った気分でプログラミングにチャレンジでき、感謝の気持ちで一杯です! 本当に本当に有難うございます!!!
さて、私のソフト開発についてですが、やはりお二人が勧めて下さっている様に、今回のソフトはC#一本で作成してみる事にします。 始めは私自身C#を勉強したてだったもので、ソフト開発はC#で。。。と意気込んでいたのですが、IEとかHTML解析とか色々と調べているうちに Javascriptと言う物もあるんだ。。。 > これを使うの。。。? > 使うんだー。。。 > 使わなきゃー。。。 という具合に勝手に思い込んでしまっていたと思います。 (その結果、大変お騒がせしてしまい、恐縮しております。) ですので、まずC#一本でこのソフトを完成させてみたいと思います。
そして今回 Javascript や VBScript にも初めてチャレンジしたので、バージョン2でこれらScriptの経験を生かしてみようかな。。。(素人考えで甘すぎますか?)と考えております。
それでは早速、C#でHTMLの解析にチャレンジしてみます。 また(かなりの確立で)お世話になると思いますが、その時はどうぞ宜しくお願い致します。
FuNeedsHelp