過去ログ

記事一覧

理由はわからんでもない、しかし

ごちゃごちゃうるさいとこではもう書かねぇ

【.net VB】リネージュ向けイミュタイマー0.3b公開

イミュタイマーはサウンドキータイマーに変更されました。
新しいバージョンについてはこちら
http://www.lbtg2.com/index.cgi?no=3448


動作環境:32bit版のWindows
本体:imutimer.exe
ダウンロード:http://www.lbtg2.com/lbtg/l1db/Imu_Timer0.3b.zip

音声ファイルは「あみたろの声素材工房」さんよりお借りしました。
soundフォルダ内のReadme.txtをよく読んでご使用ください。
http://www14.big.or.jp/~amiami/happy/

------------------------------------------------------------
※.NET Frameworkをインストールして下さい
WindowsXPの方はこちら
http://www.microsoft.com/ja-jp/download/details.aspx?id=17851

WindowsVista以降はこちら
https://www.microsoft.com/ja-jp/download/details.aspx?id=30653
------------------------------------------------------------

操作方法:
1.「検出するキー」をF5~F12から選ぶ
2.タイマー秒数をカウントしたい数値にする
3.カウント開始を3~10秒の範囲で選ぶ
4.PageDownキーでキー監視を開始する
5.1で選んだキーを押すとカウントダウン開始

PageUpキー:タイマーの動作停止
PageDownキー:タイマーの動作開始
F5~F12:指定キー

・デフォルトでセットしてある音声以外は音声ファイル欄右のボタンをクリックすることで指定できます。
・再生できるダファイルの拡張子は「.wav」のみです。
・サウンドファイルが未設定の場合はカウントダウン中でも無音になります。
・カウントダウン中でもPageUpキーで中断します
・最小化しても動作します、タスクバーの小アイコンを左ダブルで最大化、右クリックでサブメニュー表示になります
・多重起動可能ですが動作確認行っておりません

【.net VB】WindowsVista以降でグローバルフックできないのは

Ruby と iPhone と UI とさん「グローバルフック(システムフック)でハマったところ」
http://uisteven.blog.fc2.com/blog-entry-3.html

まずWindowsVista以降で仕様が変わったこと。


rarirureroさん「Windows7でグローバルフックが効かなくなる 」
http://nazochu.blogspot.jp/2011/08/windows7.html

そして仮に動かしても300ms応答なしを10回繰り返すと二度とフックできなくなる。

今後のためにメモ。

【.net VB】タイマーの件、XPだとGG起動してても動作する

自宅に戻ってきてXP機にて動作確認をしましたらキチンと動くじゃないですかー
7だとリネ起動中は動作しない
さて、何故なのか

取りあえず細かい調整終えたらXP向けに公開しますけど、理由が分からなくて気持ち悪い

【.net VB】バックグランドで動作するタイマー、音声カウントあり

ちょっと前にしたらばの某スレで「KR動画見てたらイミュのカウントダウンしてくれるアプリ使ってるみたい」とかなんとか書いてありました。

タイマーといえば昔リネ2でBuff時間が見えなかった時はそうしたアプリにお世話になっておりました。今ではそのアプリもネットから消滅し再ダウンロードできないのですけれど我が家のリネ2フォルダに保管してあって以前WIZをちょっとやった時に自分にイミュをかけない場合のタイマー代わりにと使ってみたのですが、

・音声が1種類だけ
・開始音、x秒前音、終了音が全て同じ

なもので、イミュ(サウンド)→5秒前(サウンド)→きれるorかけ直す(サウンド)という風に大変賑やかになってしまい使うのをやめてしまいました。
しかし現在こうしてVBのお勉強をしているわけですし、じゃあちょっと作ってみようかなと取り掛かりだしたのはいいんですが超えないといけないハードルがいっぱいw

・アプリがバックグラウンドにある時もキーを受け付ける
・アプリの設定を保存する
・サウンドを再生する

と勉強にはうってつけ、しかし難題ばかり。
想像通り最初の最初で躓いたのですがアプリが非アクティブな時もキー入力を受け付けるというのが非常に難解・・・あちこち参考にさせていただき何とかなりましたが、先人さんの知恵とインターネットは偉大です。

参考記事
------------------------------------------------------------
n3104の日記さん「Windowsキーの無効化」
http://d.hatena.ne.jp/n-3104/20090418/1240066907

MSDN「方法 : Windows フォームの Timer コンポーネントを使用して一定間隔でプロシージャを実行する」
https://msdn.microsoft.com/ja-jp/library/3tszykws(v=vs.110).aspx

DOBON.NET プログラミング道さん「WAVEファイルを再生する」
http://dobon.net/vb/dotnet/programing/playwavfile.html
------------------------------------------------------------

今回は最初から.NET 4で作りまして、XPと7では動作を確認しております。
起動、タイマーON/OFF、キーの設定、タイマーの動作、サウンドファイルの選択、コンフィグの保存/読み出しまではキチンと動作しましたのであとは実際にリネをプレイしながら音声の再生がうまく行くかどうかを残すのみ。

今晩試してみて結果良好でしたら公開したいと思います。

<追記1>
と思ったんだけどちょっとググってみたらGameGuardでキーボードフックが全て弾かれるらしいw
VBの低レベルフックだと弾かれるので、弾かれたくなかったらC#かC++で高レベルフック使わないといけないそうな。
ていうかマジで・・・www
くっそwwwww

<追記2>
せっかく作ったのに勿体ないからなんとかできないかなと調べてみたら多ボタンマウスのキーフックはGameGuardも通すらしい。公式で推奨してるからいけるのは多分間違いない。じゃあImu_Timer側でサイドボタンにキーアサインすればいけるんじゃないかな?どうしてもキーボード対応させたかったらJoyToKeyでサイドボタンを更にFキーにアサインしたらいいんじゃないか。
いま多ボタンマウス無いから試せないけど指定キーをアサインできるように取りあえず作り変えてみよう。


ファイル 3443-1.png