###前提・実現したいこと
・ある端末に接続されたターミナル機能を持つアプリ(ターミナル部はRICHTEXTBOXコントロール)に対して、設定コマンド、取得コマンドを発行するC#のアプリを作っています。
・ターミナル機能を持つアプリ(別アプリ)は外部で作成されたソフトのためソースコード等はありません。
・別アプリはターミナル機能で、端末状態の設定コマンド、取得コマンドが利用可能で、C#のアプリ仕様として、C#のアプリが端末に対して直接ではなく、別アプリのターミナル機能を経由して、設定コマンド発行、取得コマンド発行による情報取得を行う必要があります。
・そのため、C#のアプリから別アプリのRICHTEXTBOXに対して、設定コマンドの文字列の送信、取得コマンドの文字列の送信と、取得コマンドによってターミナル部に出力された文字列結果の読込みが必要ですが、文字列の送信はできており、文字列結果の読込みは最終行もしくは指定行の読込みを行いたいです。
###発生している問題
現在、C#から別アプリのRICHTEXTBOXのウィンドウハンドルを取得して、WM_GETTEXTで指定した文字数分を取得することは可能なのですが、別アプリのRICHTEXTBOX側の行数が時間と共に増えていくため、
指定するサイズも読めず、C#から別アプリのRICHTEXTBOXの最終行(指定行)のみを取得するなど、何か方法はないでしょうか?
###該当のソースコード
別アプリのRICHTEXTBOXのウィンドウハンドル(hWnd)を取得して、WM_GETTEXTで指定した文字数分を取得することは可能だが、ターミナル部なので何行なのか、何文字なのか分からない。
最終行、指定行などで部分的に読み出しできるなどよい方法はないでしょうか?
C#
1uint WM_GETTEXT = 0x000D; 2StringBuilder sb = new StringBuilder(256); 3SendMessage((IntPtr)hWnd, (UInt32)WM_GETTEXT, (int)255, sb);

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/18 12:36
2017/12/18 12:41
2017/12/18 13:24