2011-03-31 10 views
1

私のコンピュータ上で実行される.exeがあります。どうすればC#からそれに接続できますか?Cから別のアプリケーションと通信する方法#

たとえば、notepad.exeが実行されています。私は、Windowsフォームアプリケーションまたはコンソールアプリケーションフォームからメモ帳に書きたいと思います。どうやってやるの?

+2

'SendKeys()'を使用する –

+0

正しく 'SendKeys'を呼び出すと、指定されたものではなく、アクティブなアプリケーションとやりとりします。私は可能な限りメッセージを送信することを好むでしょう(通常、ゲームは低レベルのアプローチが必要です)。 – CodesInChaos

+0

@code、AppActivate、次にSendKeys – Blorgbeard

答えて

0

this tutorialをご覧ください。私が言う限りでは、それはまさにあなたが探しているものです。私はそれがドイツ語であることに気がついたので、ソースコードを見てください。

+0

thxたくさんのThalaur。あなたはソースコードをダウンロードしましたか?エラーがあります:リソースファイルのプロパティ\ resources.resxが見つかりません。私を少し助けてくれますか?どうも。このコードでは、exeファイルをexeファイルから作成して実行しましたか? – elisa

+0

記事のソースコードを見てください。まず、メモ帳アプリケーションを起動します。次に、ウィンドウハンドルを取得し、ウィンドウにメッセージを送信します。これらのウィンドウメッセージでは、テキスト(WM_SETTEXT)の変更、テキストの追加などを行うことができます。私は与えられたプログラムをコンパイルしていませんでした。それはあなたにこれらのことをする方法を示すことを意味しています。 – Thalur

2

つの提案:Windowsスクリプトホストから

いずれかProcess.Startを(使用してプロセスを開始する)

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx

または使用のSendKeys

http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx

+0

私はknoe私はprocess.start()で.exeを有効にすることができます。私はどのようにC#からのメモ帳にテキストメッセージを送信するかについて尋ねていましたか?私はC#コードを書いた後、メモ帳でC#で書いた文字列を参照することを意味します# – elisa

1

それは正確に依存あなたがしたいこと。 SendKeysを使用するのが最も簡単な解決策ですが、機能が限られています。 SendMessageでより多くのことができますが、これはコード化するのが難しくなります。

+0

私はそれをどうすればいいのですか?私はメモ帳exeを開いてデータを送ることができるようにしたいと思っています...また、そこから日付を読み込みます。可能です? – elisa

+1

@elisa:私はあなたに解決策を与えることはできません。あなた自身で最初に試してみてください。 – Jon

+0

thx Jon :)私はあなたにいくつかのC#の例があると思った – elisa

0

ウィンドウ内の別のプロセスから読み込むことは、最低限の問題ではありません。しばらく前にこの作業をしましたが、アセンブリ言語を使用して低レベルのWin32 APIに取り掛かりました。本質的に、それは本当に楽しいことではありません、あなたがこれを避けることができれば、あなたはあなたの頭の上にもっと多くの髪を持っています。

SendMessageの使用は、送信しようとしているアプリケーションが送信しようとしているメッセージを理解している場合に有効です。私は、あなたがこれ以降のWindowsバージョン(Vista + Win7)でセキュリティ上の問題に陥るのではないかと考えており、昇格した権限でアプリケーションを実行する必要があります。

なぜこれをやりたいですか?

+0

hi。私は、例えばメモ帳にアクセスし、そこから読んでそれに書きたいと思っています。私はまた、Windowsサービスとして実装したいと思います。私は、Windowsサービスからメモ帳にアクセスして、私のサービスからメッセージを送信することを意味します – elisa

関連する問題