掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Windowsサービスプログラムからプロセス間通信するには? (ID:36272)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
monaaさんアドバイスありがとうございます。 少々ニュアンスが違うようですし、多少要求仕様も変わったので、改めて質問を書き直してみます。 Windowsサービスプログラムとして、とある計測機器と通信を行いデータを取得するプログラムを作成しました。この計測機器から受け取ったデータを判定し条件に一致した場合には履歴としてデータベースに情報を順次保存していきます。 計測機器との通信は非常に高速に処理をしなければならないため、条件判定及びデータ保存部分はサービス開始時に起動した別プログラム(タスクトレイ常駐プログラム)に処理させることとしました。 この時サービスプログラムと条件判定プログラムとでプロセス間通信によるデータ(メッセージ)の受け渡しを考えているのですが、ウィンドウを持つプログラムからのメッセージ送信はFindWindowで条件判定プログラムのウィンドウハンドルを取得することにより正しく行えたのですが、サービスプログラムではFindWindowは常に0を返すため利用できず困っていたので最初の質問をさせて頂きました。現時点では複数ユーザー機能とは考えていません。 その後アドバイスをもとに、GetWindowThreadProcessId等を利用しウィンドウハンドルの取得のための調査、テストを繰り返しましたが未だに条件判定プログラムのウィンドウハンドルが特定できずにいます。 プロセス間通信は諦めて、サービスプログラムから判定プログラムを起動して自身が既に起動済みの場合には自身にメッセージを送るという方法に変更しようと思い始めました。残念ですが時間切れのようです。今後も機会があれば調査したいと思っています。 改めて、『それは』さん『monaa』さん、ありがとうございました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.