ホットキーの登録について

投稿者:smorkin 投稿日:2019/05/19(Sun) 09:11:07 No.2427

こんにちは、smorkin です。

ホットキー
https://rdr.utopiat.net/docs/reference/wincontrol/mics/hotkey.htm

について質問があります。
上記のページの「プログラム例」のように、
単一のプログラムの中でホットキーを登録して実行(押す)すると、
ホットキーは正常に登録され、イベントも動作します。

ところが、「設定ファイル」等でホットキーのキーと組み合わせを設定し、
プログラムの中で設定を読み込み、ホットキーを登録しようとすると、
「登録に失敗しました」というエラーになってしまいます。

これは、こういう仕様であるとすれば、仕方がないのですが、
他に、設定の方法や読み込みの手順などを工夫すれば
正常に登録することが出来るということでしたら、ぜひご教示ください。

よろしくお願いいたします。

Re: ホットキーの登録について

投稿者:アーク <info.nds.laboratry あっとまーくgmail.com> 投稿日:2019/05/19(Sun) 22:45:28 No.2428

smorkinさん、こんばんは。アークです。

私も最近ホットキーを使用したプログラムを作りました。
DVDドライブのトレーを開閉する簡単なものです。
常駐ソフトとして作成してホットキーで開いたり閉じたりします。
ホットキーを簡単に変更できるように初期化ファイルを使用しています。
このプログラムは問題無く動いています。
smorkinさんのプログラムはどのようなものでしょうか。

Re^2: ホットキーの登録について

投稿者:smorkin 投稿日:2019/05/20(Mon) 09:08:17 No.2429

こんにちは、smorkin です。

アーク 様、アドバイス、ありがとうございます。

> ホットキーを簡単に変更できるように初期化ファイルを使用しています。

この「初期化ファイル」というのは、どういうものでしょうか?
お教えいただければ幸いです。

> smorkinさんのプログラムはどのようなものでしょうか。

おおむね、次のようなプログラムです。

■設定ファイル

[ホットキー]
キー=OemPeriod
Ctrl=1
Shift=0
Windows=0
Alt=0

■プログラム

テストキーというホットキーを作る

キーは、アプリ設定について「ホットキー」から「キー」を取得したもの
テストキーのキーは、「[キー]」

Ctrlは、アプリ設定について「ホットキー」から「Ctrl」を取得したもの
もし、Ctrl=1なら
テストキーのコントロールキーは、○
もし終わり

テストキーを登録する

(※Ctrl 以外の修飾キーについては省略しています)

何かお気づきの点などありましたら、よろしくお願いいたします。

Re^3: ホットキーの登録について

投稿者:アーク <info.nds.laboratry あっとまーくgmail.com> 投稿日:2019/05/20(Mon) 09:47:26 No.2430

smorkinさん、おはようございます。アークです。

〉この「初期化ファイル」というのは、どういうものでしょうか?
設定ファイルの事です。
一般的には初期化ファイルと呼ばれています。

プログラムが抜粋の様なので外しているかも知れませんが、
設定ファイルが読み込まれていないのではないでしょうか。

当方で設定ファイルの内容を「テスト.ini」に保存して、
下記の内容で検証したところ正常に機能しました。

//--------------------------------------------------------------------------
アプリ設定という設定ファイルを作る
そのファイル名は、「[デスクトップ]テスト.ini」

テストキーというホットキーを作る

キーは、アプリ設定について「ホットキー」から「キー」を取得したもの
テストキーのキーは、「[キー]」

Ctrlは、アプリ設定について「ホットキー」から「Ctrl」を取得したもの
もし、Ctrl=1なら
  テストキーのコントロールキーは、○
もし終わり

テストキーを登録する
待機する

テストキーが押された時の手順
  テストキーを解除する
  終了する
終わり
//--------------------------------------------------------------------------

以上、参考までに…。

Re^4: ホットキーの登録について

投稿者:smorkin 投稿日:2019/05/20(Mon) 14:37:37 No.2432

こんにちは、smorkin です。

アーク 様、重ねてのアドバイス、ありがとうございます。

> 〉この「初期化ファイル」というのは、どういうものでしょうか?
> 設定ファイルの事です。
> 一般的には初期化ファイルと呼ばれています。

了解です。
「プロデル」でプログラミングを覚えたので、
一般的なプログラミング用語がピンとこない時があります。

> プログラムが抜粋の様なので外しているかも知れませんが、
> 設定ファイルが読み込まれていないのではないでしょうか。

アドバイスを参考に、プログラムをあれこれ見直してみました。

──────────

1.タスクトレイ1という通知アイコンを作る
2.タスクトレイ1にメニュー1を作成する
3.タスクトレイ1を表示する
4.ホットキーの設定を読み込み、登録する
5.待機する

──────────

としていたのを、3番と4番の手順を入れ替えたところ、
正常に動作するようになりました。

──────────

1.タスクトレイ1という通知アイコンを作る
2.タスクトレイ1にメニュー1を作成する
3.ホットキーの設定を読み込み、登録する
4.タスクトレイ1を表示する
5.待機する

──────────

アドバイスの内容はもちろんですが、質問のために手順を整理したり、
アドバイスの内容を自分なりに解釈したりすることで、解決に至ることが出来ました。

今回はありがとうございました。

▲ページの先頭へ

- WebForum -