私のコンピュータ上で実行される.exeがあります。どうすればC#からそれに接続できますか?Cから別のアプリケーションと通信する方法#
たとえば、notepad.exeが実行されています。私は、Windowsフォームアプリケーションまたはコンソールアプリケーションフォームからメモ帳に書きたいと思います。どうやってやるの?
私のコンピュータ上で実行される.exeがあります。どうすればC#からそれに接続できますか?Cから別のアプリケーションと通信する方法#
たとえば、notepad.exeが実行されています。私は、Windowsフォームアプリケーションまたはコンソールアプリケーションフォームからメモ帳に書きたいと思います。どうやってやるの?
this tutorialをご覧ください。私が言う限りでは、それはまさにあなたが探しているものです。私はそれがドイツ語であることに気がついたので、ソースコードを見てください。
thxたくさんのThalaur。あなたはソースコードをダウンロードしましたか?エラーがあります:リソースファイルのプロパティ\ resources.resxが見つかりません。私を少し助けてくれますか?どうも。このコードでは、exeファイルをexeファイルから作成して実行しましたか? – elisa
記事のソースコードを見てください。まず、メモ帳アプリケーションを起動します。次に、ウィンドウハンドルを取得し、ウィンドウにメッセージを送信します。これらのウィンドウメッセージでは、テキスト(WM_SETTEXT)の変更、テキストの追加などを行うことができます。私は与えられたプログラムをコンパイルしていませんでした。それはあなたにこれらのことをする方法を示すことを意味しています。 – Thalur
つの提案: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
私はknoe私はprocess.start()で.exeを有効にすることができます。私はどのようにC#からのメモ帳にテキストメッセージを送信するかについて尋ねていましたか?私はC#コードを書いた後、メモ帳でC#で書いた文字列を参照することを意味します# – elisa
それは正確に依存あなたがしたいこと。 SendKeys
を使用するのが最も簡単な解決策ですが、機能が限られています。 SendMessage
でより多くのことができますが、これはコード化するのが難しくなります。
ウィンドウ内の別のプロセスから読み込むことは、最低限の問題ではありません。しばらく前にこの作業をしましたが、アセンブリ言語を使用して低レベルのWin32 APIに取り掛かりました。本質的に、それは本当に楽しいことではありません、あなたがこれを避けることができれば、あなたはあなたの頭の上にもっと多くの髪を持っています。
SendMessageの使用は、送信しようとしているアプリケーションが送信しようとしているメッセージを理解している場合に有効です。私は、あなたがこれ以降のWindowsバージョン(Vista + Win7)でセキュリティ上の問題に陥るのではないかと考えており、昇格した権限でアプリケーションを実行する必要があります。
なぜこれをやりたいですか?
hi。私は、例えばメモ帳にアクセスし、そこから読んでそれに書きたいと思っています。私はまた、Windowsサービスとして実装したいと思います。私は、Windowsサービスからメモ帳にアクセスして、私のサービスからメッセージを送信することを意味します – elisa
'SendKeys()'を使用する –
正しく 'SendKeys'を呼び出すと、指定されたものではなく、アクティブなアプリケーションとやりとりします。私は可能な限りメッセージを送信することを好むでしょう(通常、ゲームは低レベルのアプローチが必要です)。 – CodesInChaos
@code、AppActivate、次にSendKeys – Blorgbeard