Windows サービスを作成しました。その下でイベント「テスト」を作成しています。アプリケーションで同じイベント オブジェクトを設定/リセットするために使用したいと考えています。しかし、アプリを介してイベント オブジェクトのハンドルを取得していないようです。ただし、イベントが BaseNamed オブジェクトにリストされていることがわかります。
create Event の security Attribute で何かをする必要があると思います。
サービスでこのイベントを作成しています
CreateEvent(NULL, TRUE, FALSE, TEXT("テスト"))
私のアプリケーションでOpenEventを使用しています。
OpenEvent( EVENT_ALL_ACCESS, TRUE, TEXT("テスト"))
アプリがハンドルを取得するために必要な変更を提案してください。
アップデート
交換後TEXT("Test") with TEXT("Global\\Test")
。それでも、Event オブジェクト ハンドルを取得できませんでした。はい、少なくとも Error return(Access Denied) でイベント オブジェクトの存在を認識するようになりました。以前はエラーが返されていました (システムは指定されたファイルを見つけることができません)。私が言ったように、ここにはセキュリティの側面があると思います。これが私が見つけたものです:セッションがセッション0でイベントを作成するため、セッション1で作成されているアプリケーションでは継承できません。そのために、イベントオブジェクトの作成中に、セキュリティ属性構造を指定する必要がありますそのための適切な Security Dispatcher。誰かが私にそうする方法を教えてもらえますか?