常駐ソフトの作成
Siv3Duser  2020/11/13(Fri) 14:12

別のソフトを起動しつつ、

タスクバーに常駐して、特定のキーを押したら音が鳴るソフトを作りたいと考えています。



いまキーを押して音が鳴るのはできています。
常駐できる命令などあるでしょうか?
記事編集
Reputeless  2020/11/14(Sat) 00:39
OpenSiv3D v0.4.3 単体の機能では常駐アプリを作ることはできません。

動作するかはわかりませんが、

@
# include <Siv3D/Windows.hpp>
で Win32 API を使えるようにする

A
OpenSiv3D のプログラムで、アプリケーションとは別の新しいウィンドウを作成し、
そのウィンドウから Shell_NotifyIcon で常駐アイコンを作成、
メッセージをそのウィンドウで処理し、Siv3D アプリケーションに必要な命令を送る。

B
OpenSiv3D のメインループでその命令を受け取り、OpenSiv3D の関数を使って実行する

という方針になると思います。
編集
Siv3Duser  2020/11/15(Sun) 16:03

回答ありがとうございます。

調べる手間と動作テストなどの工数がかかり、時間がかかりそうなので、
DXライブラリ(こちらだとできるかもしれないと別の方から情報を頂きました)や他ライブラリも当たって、

短期間でできそうなことを検討したいと思います。
編集
Siv3Duser  2020/11/16(Mon) 13:46
DXライブラリには、

SetAlwaysRunFlag( TRUE ) ;

という隠し命令がありました。

https://scrapbox.io/dxlib/SetAlwaysRunFlag

OpenSiv3Dには同類の命令は用意されていないでしょうか?
編集
Reputeless  2020/11/16(Mon) 22:57
OpenSiv3D はウィンドウが非アクティブなときでも処理を実行するので、そのような関数は必要ありません。

なお、非アクティブ時にキー入力を取得するには SetWindowsHookEx() によるフックが必要ですが、
その際、メッセージループを実行しているスレッドで呼び出す必要があり、
OpenSiv3D の場合、そのスレッドはユーザには公開されていないので、不可能です。
編集
Siv3Duser  2020/11/19(Thu) 11:27

丁寧な説明ありがとうございます。

理解いたしました。


もし、可能ならば、今後のバージョンでフックする機能が追加していただきたいです。
編集
Reputeless  2020/11/20(Fri) 12:37
優先度の関係ですぐに着手することはないですが、検討します。
編集
件名
Re: 常駐ソフトの作成
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -