
C#で外部のアプリケーションのリッチテキストコントロールの複数行の文字列を取得したいです。
自分は下のコードを書いたのですが、これだと1行しか取得できませんでした。
どこが悪いでしょうか。
ここでは対象のアプリケーションをA、リッチテキストのコントロールをRichEditとします。
button1をクリックしたら、textbox1にRichEditの内容が表示されるようなものを作ろうとしています。
//ここから
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, int wParam, StringBuilder lParam);
private const int WM_GETTEXT = 0x000D;
private void button1_Click(object sender, EventArgs e)
{
IntPtr hWnd = FindWindow("A", "");
if (hWnd != null)
{
IntPtr hWndChild = FindWindowEx(hWnd, IntPtr.Zero, "RichEdit", "");
StringBuilder strBuilder = new StringBuilder();
SendMessage(hWndChild, WM_GETTEXT, strBuilder.Capacity, strBuilder);
StringReader strReader = new StringReader(strBuilder.ToString());
string stResult = string.Empty;
while (strReader.Peek() >= 0)
{
string stBuffer = strReader.ReadLine();
stResult += stBuffer + System.Environment.NewLine;
}
strReader.Close();
textbox1.Text = stResult;
}
}
No.1ベストアンサー
- 回答日時:
>StringBuilder strBuilder = new StringBuilder();
を、大きめの容量を指定して
StringBuilder strBuilder = new StringBuilder(1000);
のようにしてみてはどうでしょう。
あと、
>StringReader strReader = new StringReader(strBuilder.ToString());
>string stResult = string.Empty;
>while (strReader.Peek() >= 0)
>{
> string stBuffer = strReader.ReadLine();
> stResult += stBuffer + System.Environment.NewLine;
>}
>strReader.Close();
>textbox1.Text = stResult;
でもいいと思いますが、
textbox1.Text = strBuilder.ToString();
とするだけでよいのではないかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
プログラミングを学べる!?進化している子どものおもちゃについて専門家に聞いた!
プログラミングを学べるレゴブロックがあることはご存知だろうか。レゴに限らず最近のおもちゃには、プログラミングの要素がどんどん取り入れられているようだ。「教えて!goo」にも、「プログラミングを学べる子供...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# ListBoxのアイテムをユーザ...
-
jap実行時のTomcatのエラーに困...
-
Delphiで改行文字の置換がうま...
-
「指定されたキャストは有効で...
-
【Java8以降】csvファイルの複...
-
string→CStringの型変換について
-
strcmp関数などでの複数の文字...
-
マルチスレッドで同時にFTPアッ...
-
C# で、あるフォルダー内にある...
-
javaで処理のやり方がわかりま...
-
JSPやサーブレットでSystem.out...
-
ORA-01858: 数値を指定する箇所...
-
動的配列が存在(要素が有る)か...
-
VBAで配列の計算
-
eclipseに記述したjavaファイル...
-
ダブルクォーテーションを含む...
-
オブジェクトの中のプロパティ...
-
StrutsでJSPからListを受け取り...
-
C#で、あるクラスのメンバーす...
-
IF関数でEmpty値を設定する方法。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# ListBoxのアイテムをユーザ...
-
C#でIPアドレスの取得について
-
string→CStringの型変換について
-
「指定されたキャストは有効で...
-
【Java8以降】csvファイルの複...
-
jap実行時のTomcatのエラーに困...
-
特定の文字列が一致する行から...
-
C#での関数テーブルの作り方
-
PHPのSHA256変換について
-
Delphiで改行文字の置換がうま...
-
GDI+ DrawString() で指定範囲...
-
strcmp関数などでの複数の文字...
-
C# 他のアプリケーションから複...
-
c#で(",")区切りのcsvファイル...
-
SQLインジェクション
-
ArrayListを改良したい
-
HTML文書の文字コードの判定法
-
phpマニュアルの見方
-
2つのリストのマージ方法について
-
strncpy後のatoiがおかしい
おすすめ情報