2016-06-01 8 views
0

C#でテキストボックスからリストボックスへのボタンテキストの助けを借りて追加するプロジェクトがあるとします。 Project 12つの別々のプロジェクト間のListBoxアイテムの交換

そして今、我々は、我々はソースコードを持っていないと我々はプロジェクト番号2 Project 2

にそれぞれ独立したテキストボックスに私たちのリストボックスからアイテムを送信したい第二のプロジェクトはです持って言うことができますこれを実現する方法はありますか?

+5

はい、あります;-) – Joey

+0

これはどのように可能かについてのガイダンスをお願いしますか? –

+0

さて、ジョーイ、あなたは私が好奇心を持っています。 –

答えて

2

はい、方法はあります。エラーが発生しやすいが、書き込みが簡単なインジェクションキーストロークから別のアプリケーションの入力キュー(SendKeys、他のアプリケーションにキーボードフォーカスを最初に与えることと組み合わせる)をより洗練された方法でUI Automationに変更し、Windows APIを直接操作してテキストボックスの内容をWM_SETTEXTで送信します。これは、他のアプリケーションの記述内容によって異なります(カスタムUIフレームワークでは、ネイティブのWindowsコントロールを使用したり、アクセシビリティをサポートしないことがよくあります)。

SendKeysのアプローチは、クリップボードを使用すると、特にキーボード上に存在しない可能性のある文字についてはるかに堅牢にすることができます。一回限りの仕事のために私はおそらくそれをやるだろう。 PowerShellでスクリプトを作成することで、RSSフィードをあるアプリケーションから別のアプリケーションに移行するために、私は一度同様のことをしました。丈夫さを求めるなら、他のオプションを調べるべきです。 UIオートメーションは扱いにくいかもしれませんが、少なくともこれを直接処理するAPIを提供しています(ただし、使用方法を理解するためにはコンセプトを拾う必要があります)。 Windows APIのルートでは、Windowsが.NETフレームワークの下でどのように動作するかを理解する必要があります。

+0

に同意します[WM_COPYDATA](https://msdn.microsoft.com/en-us/library/windows/desktop/ms649011%28v=vs.85%29.aspx)を使用することもできますが、他のアプリケーションのソースコードにアクセスして実装する必要があります。もしUIAutomationを持っていなければ、 – prizm1

+0

@ prizm1:それらのテキストボックスにドラッグ&ドロップ操作をシミュレートすることができます。あなたはおそらく、Windows APIやUIオートメーションがどこにあるのか把握する必要があるでしょう。 IMEやWindowsの「数学入力パネル」のようなものは、おそらく同様の働きをして任意のアプリケーションに入力を送ります。 – Joey

+0

これはすべてプログラミングに関するものです) – prizm1

関連する問題