- PR -

他のアプリケーションにデータを渡したい

投稿者投稿内容
kouji
会議室デビュー日: 2006/05/15
投稿数: 5
投稿日時: 2008-11-21 12:30
お世話になります。
C#で作成したアプリケーション(ここではAアプリと呼びます)から、
Processメソッドなどを使えば、他のアプリ(メモ帳、電卓、Officeなど)を
起動したり、呼び出すことはできますが、
例えば、Aアプリのテキストボックスに入力した情報を、
メモ帳を呼び出し、その情報をメモ帳に送る、
といった仕組みを用意したいのですが、どなたか解説いただけないでしょうか。

過去のスレッドや、どこかのサイトに答えがあるようでしたら、
それを見ますので、ご指摘いただければと思います。。

よろしくお願いします。
なかむら
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 67
お住まい・勤務地: 福岡
投稿日時: 2008-11-21 12:47
Process.Start メソッドにはコマンドライン引数を指定できるオーバーロードがあります。
文字列なら、このメソッドで情報を送れます。

参考URL:
http://msdn.microsoft.com/ja-jp/library/h6ak8zt5.aspx

_________________
Nakamura Blog
kouji
会議室デビュー日: 2006/05/15
投稿数: 5
投稿日時: 2008-11-21 14:23
すみません。
自分の質問が舌足らずだったと思います。
実現したいことは、
@Aアプリにテキストボックスとボタンがある。
Aテキストボックスに「こんにちは」と入力して、ボタンを押すと、
Bメモ帳が開き、「こんにちは」というテキストが入力されている。
そういう仕組みを作りたいのです。
汎用的に、Aの部分が数字、Bの部分が電卓、、というふうに。。
Processメソッドにこだわりがるのではなく、
他のアプリケーションに、自動的にテキスト等の情報を渡せる、
そんな基本的な手法を知りたいと思っています。

よろしくお願いします。
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-11-21 14:43
とりあえず、メモ帳や電卓が相手なら SetWindowText関数 が使えます。

ただ、事前にウィンドウを知っていないと使えないし。今後は使えないアプリケーションも増えてくると思います。Webアプリケーションでは使えない(IEのコンテンツ領域に表示されるテキストボックス、コンボボックスなどのコントロールはウィンドウではないから。) 同様に、Java/Swing アプリケーションもウィンドウじゃないからダメ。WPFアプリケーションは作ったことないけど、きっとダメだと思います。
なかむら
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 67
お住まい・勤務地: 福岡
投稿日時: 2008-11-21 14:50
確認なんですが

引用:

汎用的に、Aの部分が数字、Bの部分が電卓、、というふうに。。
Processメソッドにこだわりがるのではなく、
他のアプリケーションに、自動的にテキスト等の情報を渡せる、
そんな基本的な手法を知りたいと思っています。



Bで起動するのは

(A)自分で作成するアプリケーション
(B)メモ帳や電卓やWordといった、他者が作成したアプリケーション(用はソースコードを修正できないもの)
(C)両方

のどれに当てはまるのでしょうか?
_________________
Nakamura Blog
kouji
会議室デビュー日: 2006/05/15
投稿数: 5
投稿日時: 2008-11-21 15:04
(B)メモ帳や電卓やWordといった、他者が作成したアプリケーション(用はソースコードを修正できないもの)
になります。

@Aアプリにテキストボックスとボタンがある。
A(Aアプリを起動した後、)テキストボックスに「こんにちは」と入力して、ボタンを押すと、
Bメモ帳が開き、「こんにちは」というテキストが入力されている。
ここで、「メモ帳が開き」というのは、
ボタンに割り当てたメソッドにより、他者が作成したアプリケーションが起動して、
という意味です。
ただ単に、他者が作成したアプリケーションを起動させるだけなら、
Processメソッドなどで実現できますが、
他者が作成したアプリケーションを起動(あるいはアクティブに)したうえで、
テキスト等の入力までおこなわせたいと考えています。

Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2008-11-21 18:37
こんばんは。

クリップボードにテキストをコピーしておいて、
相手アプリケーションに無理やりペーストしてやるとか…
でも、相手アプリケーションに入力項目が複数ある場合どうしましょう!?
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2008-11-21 18:52
メモ帳
http://mt-soft.sakura.ne.jp/web_dl/vb-parts/key_sendmessage/

電卓
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t02.htm

単純なアプリであれば、テキストボックスのウインドウハンドルを取得して、WM_SETTEXTをSendMessageすればよいです。
テキストボックスのウインドウハンドルの取得方法は、あらかじめSpy++などのツールでクラス名やコントロールIDを調べておきます。

OfficeやIEであれば、オートメーションという手があります。

[ メッセージ編集済み 編集者: todo 編集日時 2008-11-21 18:53 ]

スキルアップ/キャリアアップ(JOB@IT)