Reflection Terminal Emulatorで動作するレガシーアプリケーションとIEで動作するブラウザベースのアプリケーションとの間の統合を実装しようとしています。Reflection Terminal Emulator - IEとの統合
私は、Host Initiated Scriptsを使用しているため、保守と配備の問題が従来のアプリケーションと隔離されています。すべてのスクリプトはレガシーアプリで生成され、エスケープシーケンスを使用してReflectionに送信されます。
私は現在にできる午前:そのようなバックのためのレガシーアプリ
- 起動IE
- オプションを設定しますレガシーアプリからの「閉じる」信号
- 閉じるIE
ここでそれをするVBAコードです:
Sub Main
Dim CR as String
CR = CHR$(rcCR)
Dim objIE as Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.ToolBar = false
objIE.Navigate("http://www.google.com/")
objIE.Visible = true
Session.Transmit "OK" & CR
Session.WaitForString "CLOSE", 0, rcAllowKeystrokes
objIE.Quit
End Sub
これに伴う問題は、スクリプトは、それがレガシーアプリからcloseコマンドを取得するまで実行し続けていることです。
私がしたいことは、ブラウザを起動するために1つのスクリプトを使用し、別のURLのためにそれを閉じるか再利用することです。しかし、私はスクリプトコールを介してIEへの参照を保存する方法を見つけることができませんでした。サブメイン以外のグローバルとしてobjIEを宣言することは役に立たなかった。セッションオブジェクトは、スクリプト呼び出しを介して保持されますが、私はこの目的のために使用できるプロパティを持っていないようです。 (セッションがUserDataプロパティを持っているが、それは文字列ではなく、オブジェクトの。)ここで
は私がやりたいものの例です:スクリプト1 - オープンIEを開き、それを残す&:
Sub Main
Dim CR as String
CR = CHR$(rcCR)
Dim objIE as Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.ToolBar = false
objIE.Navigate("http://www.google.com/")
objIE.Visible = true
Session.Transmit "OK" & CR
End Sub
スクリプト2 - 新しいURLに、元のIEウィンドウを送る
Sub Main
Dim CR as String
CR = CHR$(rcCR)
Dim objIE as Object
Set objIE = FindOriginalIE()
objIE.Navigate("http://www.stackoverflow.com/")
Session.Transmit "OK" & CR
End Sub
スクリプト3 - 閉じるIE
代わりにCreateObjectの私は、GetObjectメソッドを(使用してみました
Sub Main
Dim CR as String
CR = CHR$(rcCR)
Dim objIE as Object
Set objIE = FindOriginalIE()
objIE.Quit
Session.Transmit "OK" & CR
End Sub
私が把握することはできません一部のスクリプト2と3
で使用FindOriginalIE()関数を実装する方法である)()、それは私を得ましたどこにもない。 GetObject()は新しいIEウィンドウを開くことも、既存のIEウィンドウを見つけることもありません。私はこれがCitrixの下で動作しているからだと思うが、わからない。
私の唯一のリードは、IEのhWNDを使用して元のウィンドウに再接続したり、OLEの代わりにDDEを使用したりすることです。しかし、私はそれらのいずれかで多くの運がなかった、主にドキュメントの不足のために。
だから、私の質問は以下のとおりです。
- は私がOLEを使用して 可能何をしようとしていますか?つまり、ある方法があります ホストがスクリプト呼び出しを開始したときにIEに私のハンドルを永続させるには?
- GetObject()が動作するとはいいでしょうか、 、それとも致命的なものですか?
- ホスト起動スクリプトでWin32 API を使用すると、 はhWNDを使用してIEに再接続できますか?
関連記事、サンプルコード、またはその他の洞察力へのリンクがあれば、大変ありがたいです。