JoeTune ver1.3.0
ダウンロード
JoeTune
[公開停止]
プラグインによる機能追加型常駐ソフト。
プラグインの仕様を変更したため、JTActionやJTEraseRF、その他のプラグインを導入している方は、対応しているものへアップデートしてください。
更新履歴
- プラグインの必須エクスポート関数のJTEvent_Initの仕様を変更した。
- JoeTune APIにJTAPI_ClosePlugin関数を追加した。
- JoeTune APIにJTAPI_IniReadSection関数を追加した。
- JoeTune APIにJTAPI_IniReadString関数を追加した。
- JoeTune APIにJTAPI_IniReadInt関数を追加した。
- JoeTune APIにJTAPI_IniReadBool関数を追加した。
- JoeTune APIにJTAPI_IniWriteSection関数を追加した。
- JoeTune APIにJTAPI_IniWriteString関数を追加した。
- JoeTune APIにJTAPI_IniWriteInt関数を追加した。
- JoeTune APIにJTAPI_IniWriteBool関数を追加した。
- 選択エクスポート関数にJTEvent_GetSettingsCountを追加した。
- 選択エクスポート関数にJTEvent_GetSettingsInfoを追加した。
プラグイン仕様バージョンを1.2.0に上げたので、動作するプラグインも対応したものしか動きません。
JoeTuneSettingsで設定アプリをまだ作っていませんが、替わりにPluginsフォルダにあるプラグインをすべてダイアログで表示させるようにしました。そのプラグインのプラグイン仕様バージョン等の情報も一緒に表示されるので、バージョンの入れ替えで動かなくなったプラグインがあった場合等は、参考にしてください。
JoeTuneのプラグイン仕様の変更についてですが、後のブログで書きたいと思います。
プラグイン仕様ver1.1.0からver1.2.0に対応させるには、JTEvent_Initに(HMODULE hJoeTune)の引数を付けるだけです。
JoeTuneAPI
JoeTune本体から、プラグインが設定を読み込みや保存できるようなAPIを提供しようかと思ったのですが、どうやらCEではdllからexe側のエクスポート関数を呼び出すことはできないようです。
他にも試してみたところ、Windows Vistaではできるが、Windows CEではできないものとして、exeファイルに対してLoadLibraryできないのと、そもそもexeが自身のエクスポート関数をGetProcAddressできないというのが見つかりました。
さて、どうしよう・・・
新たにdllでも作るかなぁ・・・
JoeTuneプラグイン仕様書 ver1.1.0
ダウンロード
JoeTuneプラグイン仕様書 ver1.1.0
[公開停止]
プラグイン仕様ver1.0.0との違いを書いておきます。
必須エクスポート関数にJTEvent_PermitSpecVersionを追加しました。
・DWORD JTEvent_PermitSpecVersion()
*内容
この関数は、どのプラグイン仕様バージョンに対応したプラグインかを確認するために一番始めに呼ばれます。
*戻り値
下記のマクロに、対応するプラグイン仕様バージョンを入力して作成されるDWORDの値を返してください。
#define MAKEVERSION(a, b, c, d) ( (DWORD)( ( (BYTE)(a) ) << 24 | \
( (BYTE)(b) ) << 16 | ( (BYTE)(c) ) << 8 | ( (BYTE)(d) ) ) )
上記のマクロの"a","b","c"にはそれぞれ、メジャーバージョン、マイナーバージョン、ビルドナンバーを入れてください。例えば、プラグイン仕様バージョンが1.0.2の場合、1がメジャーバージョン、0がマイナーバージョン、2がビルドナンバーです。
"d"は、リビジョンとして定義していますが、現在使用していないので0を指定してください。
必須エクスポート関数のJTEvent_Run関数を削除しました。
プラグイン内でメインループを回したい場合は、JTEvent_Init関数の中でCreateThreadを使用するなどしてください。
選択エクスポート関数のJTEvent_KeyHookProcの仕様を変更しました。
以前までは、引数にKBDLLHOOKSTRUCT構造体がありましたが、今バージョンから、BOOL keyDown、BYTE vkCode、BYTE scanCodeに変更しました。
keyDownには、キーが押された場合はTRUE、離された場合にはFALSEが入っています。
vkCodeには、仮想キーコードが入っています。
scanCodeには、スキャンコードが入っています。
選択エクスポート関数にJTEvent_KeyboardProcを追加しました。
・void JTEvent_KeyboardProc(BOOL keyDown, BYTE vkCode, BYTE scanCode)
*内容
キーを押して、または離してから、実際に発行された後に呼ばれます。
JTEvent_KeyHookProc関数とJTEvent_KeyboardProc関数は似ていますが、それぞれ使用する内容によって使い分けてください。
以上、簡単に書いただけなので、詳しくは仕様書を読んでください。
今回もサンプルとしてJTActionのソースを置いておきます。
JTAction ver1.1.0 ソース
[追記]2008/7/23 14:15頃
JTAction ver1.0.0のソースがダウンロードされてしまっていたので、リンクを修正しました。
[公開停止]
JTAction ver1.1.0
ダウンロード
[追記] 2008/7/22 1:28頃
ReadMeファイルを追加した。
JTAction
[公開停止]
JoeTuneのプラグインです。dllを「Plugins」フォルダにコピーしてください
W-ZERO3シリーズのアクションキーを長押しすることでコンテキストメニューを表示させることができるようになります(ソフトによっては表示されません)。
JoeTuneのプラグイン仕様変更に伴うバージョンアップです。
JoeTune ver1.2.0
ダウンロード
[追記] 2008/7/22 1:28頃
ReadMeファイル中で更新日時がおかしかったため修正した。
JoeTune
[公開停止]
プラグインによる機能追加型常駐ソフト。
プラグインの仕様を変更したため、JTActionとJTEraseRFを導入していた方は、最新のものへアップデートしてください。
更新履歴
- 未公開版でサービスとして登録できるように変更したが、問題があったので1つのアプリとして起動するように戻した。
- 引数「-n」を「-f」に変更した(UnloadからFreeへ変更)。
- プラグインの必須エクスポート関数にJTEvent_PermitSpecVersionを追加した。
- プラグインの必須エクスポート関数からJTEvent_Runを削除した。
- プラグインの選択エクスポート関数にJTEvent_KeyboardProcを追加した。
- プラグインの選択エクスポート関数のJTEvent_KeyHookProcの仕様を変更した。
かれこれ1ヶ月以上もAd[es]からしかネットに接続できない日々が続いております。
引っ越した先で、NTTの回線が工事中で8月下旬まで契約ができないということでorz
JoeTuneのプラグイン仕様の変更についてですが、後のブログで書きたいと思います。
下記は、某チャンネルのソフト関連 Part28スレから。
188氏の通り、ver1.0.0では
> JTEvent_Initで初期化処理を行う
> JTEvent_Runで無限ループさせる
> JTEvent_Closeで終了処理を行う
のようにしたのですが、JTEvent_Runで無限ループさせるとJTEvent_Closeのタイミングが面倒で難しくなるので、ver1.2.0ではJTEvent_Runを消し、無限ループさせたい場合はJTEvent_InitでCreateThread等をしてもらって、JTEvent_Closeでスレッドを終了し解放してもらうという仕様に変更しました。
189氏
> 引数を与えられないのが厳しい。
「-l」の仕様を少し変更して、引数を与えられるようにしてみます。
各プラグインの設定保存について
190氏
> iniでも使えよ馬鹿
192氏
> JTの方で共通のiniを用意してそれをパースするライブラリを用意すればいいかもね。
193氏
> じゃあレジストリ使えよ
他いろいろな方々。
各プラグインの設定保存については、JoeTune.iniという1つのファイルに、JoeTune本体が(後のバージョンで)エクスポートする関数によってiniの読み書きができるようにしようと考えています。
この方法は、iniのセクション(大括弧で囲まれる部分「[***]」)をプラグイン名とするため、iniのキーと値(「***=***」の左辺がキー、右辺が値)しか使用できなくなりますが、あまり問題にはならないと思います。
さらに、iniの中身の設定は、JoeTuneSettingsで何とかしようと思っています。
(他に、JoeTuneSettingsでは、キーフックプラグインの実行順序の設定などができるようにしようと考えています。)
210氏
> まずは Sortinchkey を JT対応してみてほしい
これがやりたかったので、わざわざキーフックを実装した次第であります。
でも、完成するのはだいぶ後になりそうですが・・・
ひとまず、こんなもんでしょうか。
JoeTune ver1.0.0用 プラグイン仕様書 ver1.0.0
ダウンロード
JoeTune ver1.0.0用 プラグイン仕様書
[公開停止]
JoeTune本体は常駐するだけのソフトです。
常駐するJoeTuneにプラグインを追加していくことで、1つのプロセスで複数の機能を実行させることが可能になります。
小さなプログラムはJoeTuneのプラグインとして作成することにより、使用プロセス数の節約になります。
さらに、JoeTune本体がSetWindowsHookEx関数のWH_KEYBOARD_LLを使用してキーフックし、プラグインで共有することもできます。
JoeTuneのプラグインはただのDLLですので、プログラム作成の知識さえあれば誰でも作成することができます。
今まに公開されている小さな常駐プログラムが、プラグインとして移植されたらなぁ、なんて思います。
下記にJTAction ver1.0.0のソースをおいておくので参考にしてください。
ダウンロード
JTAction ver1.0.0 ソース
[公開停止]