レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
ユーザーサポート
こちらは、汎用キーバインディング変更ソフト「のどか」サポート掲示板です。公序良俗に反する記載内容や、個人情報が記載された場合、削除することがあります。
コメントならびに自己フォローありがとうございます。
default.nodoka は、「窓使いの憂鬱」由来の設定ファイルですが
すべての設定が必要とは限らず、意図しない操作となる危険性が
あるために、あえて、default2.nodoka を準備し、そちらをデフォルトに
しています。
ヘルプのチュートリアルのii. コピーした設定ファイルに最低限の設定を書く
に記載した通りですが、確かに設定記述のコメントにしか書いていないので
ヘルプの記述を、見直すこととしましょう。
どうもありがとうございました。
XPでのどか4.06を使っているのですが
不意に5秒ぐらいキー入力が不可能になることが
けっこうあります。
たいていは、Alt+TABでアプリケーションを切り替えようとしても
タスクリストのアイコンが出っぱなしで
切り替わってくれないなーっていう感じです。
再現方法はわかりません。
>>32
ご連絡ありがとうございます。
まずは、再現に努め、原因を探りたいと考えます。下記の情報を、お教えください。
直接メールを、お出し頂くか、こちらに書き込まれるのか、どちらでもかまいません。
Windows XPの SP1,SP2,SP3のいずれかの種別と、キーボードがPS/2, USBのいずれかとか
英語キーボードなのか、日本語キーボードなのかお教えいただけますか?
また、dot.nodoka ならびに、109.nodokaなどを修正されている場合には
それらも含めて、お送りいただけますか?
また、キーボードやマウスをフックするようなアプリを同時に使用されている場合には
それらもお教えください。
また、一日どのくらいPCをお使いで、どのくらいの頻度で発生するなどの情報も
ありましたら、併せてお教えください。
以上、よろしくお願いいたします。
更新お疲れ様です。
4.07にてバグらしき物を見つけたので報告させていただきます。
具体的にはModキーを含むキーでLoadSettingすると、その時利用したModキーが押しっぱなしになってしまいます。
・例
key S-*F3 = &LoadSetting("a") #Shiftが押しっぱなしに
key A-*F4 = &LoadSetting("a") #Altが押しっぱなしに
・テストに使用した設定ファイル
http://www1.axfc.net/uploader/File/so/20553
・使用環境
Windows XP SP3
USB接続日本語キーボード(ただし使用しているドライバは英語版)
のどか 4.07 試用版(こちらは109を選択、4.07以前では発生せず)
>>34
ご報告大変ありがとうございます。
調査開始させてください。進捗状況については、逐次ご報告いたします。
&HelpMessageでメッセージが表示されません。
4.03だと問題なかったので4.04からの問題だと思います。
環境
XP SP3
のどか4.07試用版
>>34
確認しました。確かに Shiftキーが押されたままとなります。不具合箇所を調査中です。
>>36
ご指摘ありがとうございます。確認しました。4.07では、VistaではOKですが、XPでは表示されませんでした。
4.07は、大きなバグが2個も見つかったので、4.06 を並行して御提供させていただくことにしました。
4.06を、入手されたい方は、ご連絡頂ければ幸いです。ご迷惑をおかけして大変申し訳ありません。
>>34
>>36
こんにちは。お待たせしました。
それぞれの修正を入れた評価版 Setup を作成しました。
お時間あるときに、ご評価いただければ幸いです。
購入先ごとに異なるパスワード付き zip ファイルとしました。
Vectorから購入された場合、下記 zipファイルをダウンロードして、ご連絡済のパスワードを用いてzipファイルを開いてください。
http://www.appletkan.com/download/nodoka-4.07a_setup_for_vector.zip
Paypalから購入された場合、下記 zipファイルをダウンロードして、ご連絡済のパスワードを用いてzipファイルを開いてください。
http://www.appletkan.com/download/nodoka-4.07a_setup_for_paypal.zip
なお、この評価版は、バージョン表記は、4.07 のままですが、
呼称する場合には、4.07a と便宜上、呼んでください。 4.08のリリースの際、Webサーバーから削除の予定です。
以上、よろしくお願いいたします。
>>38
追伸。
起動後、30分で停止する制限は入っていません。
バグ対策対策に対する評価版です。
もし、30分制限あり版でのご評価ご希望の方がいらしたら、ご連絡ください。
>>39
対応ありがとうございます。
申し訳ないのですが、当方未払いのため確認できません。
お手数ですが、30分制限あり版をお願いいたします。
>>39
ご連絡ありがとうございます。
それでは、こちらが30分間評価版となります。
http://www.appletkan.com/download/nodoka-4.07a_sample_setup.zip
よろしくお願いたします。
>>41
修正を確認できました。
迅速な対応をありがとうございました。
>>42
こちらこそ、ご確認ならびに、ご報告大変ありがとうございます。
また、ご利用いただいた方々、ご不便をおかけして、申し訳ありませんでした。
今しばらく、他の不具合など無いか確認して、4.08のリリースとなると
考えます。今後ともよろしくお願いいたします。
C#かC++からnodokaに登録したkeyseqを呼ぶことはできますか?
ペンタブとの併用を考えているためできると非常に助かるのですが・・
サポート外の使い方となっても構いません。
>C#かC++からnodokaに登録したkeyseqを呼ぶことはできますか?
下記2つのことから、出来ると考えます。
4.08をお待ちいただくか、現時点の版でも、お出し出来るでしょう。
1. nshell.exeという外部プログラムから、のどか のウィンドウハンドルを見つけて
制御するということを実現しています。
2. 現在 gamepad.dllというプラグインを作っています。ゲームパッドのスティックやボタンを
押した情報から、Window Messageを飛ばして、それをキー入力として受け取る部分を のどか に
追加しています。まだ、おかしくて正しく動いていませんが、それはパッドの情報の解釈の
問題だろうと考えます。
失礼いたします。
U-、D-の挙動についてご質問およびご報告させていただきます。
あるkeyに対し、~U-D-、U-~D-をつけることで、
そのキーを押したときと離したときで個別に挙動を決めることができますが、
そのキーをモディファイヤキーとして使用した場合、
様々な挙動を示すようになります。
(One Shotの場合、キーリピートありの場合などで異なる)
これはこういう仕様なのでしょうか?
また、モディファイヤキーとして使用した場合にも、
通常の場合の~U-D-、U-~D-のように、押したとき、離したときの
挙動を決める方法はあるのでしょうか。
>>46
仕様かどうかは、微妙です。~U-D-、U-~D-とモデイファイヤー、かつOne Shot, キーリピートとの組み合わせは
ヘルプには出ていないので。
とはいえシンタックスエラーにならない限りは、サポートしていると考えるべきだとは思います。
さて、具体的には、どのような設定ファイルになっていますでしょうか。
例を示していただければ幸いです。
すばやいご返答ありがとうございます。
一例として以下のように設定しているのですが、
どうも4行目が認識されていないようです。
mod mod0 += !!!Applications
key M0-~L8-Applications = BackSpace
key M0-L8-~U-D-Applications = &Ignore
key M0-L8-U-~D-Applications = &Toggle(Lock8,off)
#以下、モディファイヤmod0をつかうキーの設定
key M0-*L8-~U-D-A = Q &Toggle(Lock8,on)
key M0-*L8-~U-D-Z = A &Toggle(Lock8,on)
key M0-*L8-~U-D-LeftWindows = Z &Toggle(Lock8,on)
・
・
・
(以下同様)
このように設定しているのは、キーボードを2台使い、
モディファイヤキーは2台目のほうにあてているため、
素直にモディファイヤを設定すると、
Applicationをモディファイヤとして使った後に、
BackSpaceが入力されてしまうためです。
スキャンコードは、例えばApplication-Aと入力すると
以下のようになります。
E0-0x5d D-Applications
0x1e D-M0-A
0x1e U-M0-A
E0-0x5d D-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d U-R-Applications
また、単純な実験として、
mod shift += !!!_1
key S-_2 = _3
key S-~U-D-_1 = _4
key S-U-~D-_1 = _5
と設定して_1-_2と入力すると
3のみが表示されます。
(2台目のキーボードは使っていません)
!!!を!!にすると大抵は3、
!!!を!にすると3がでたり345がでたりします
長文失礼しました
>>48
どうもありがとうございます。
さて、&DescribeBindingsを定義して、二つの例のときに
解釈している内容を表示させて見ました。
例1の方は、mod0を定義しているのに mod4と表示されるので、表示には何かバグがありそうです。
例2の方は、_1はシフトになっていますが、One Shotでかつ真のモディファイヤのときには
シフトとして使われたときには、単独のUp/Downは無効になっている動きをしているようですね。
キーバインディングとしては、後から定義した方が有効になるので、設定には実は優先順位がありますね。
期待通りのキーバインディングにするために、何かこちらで、できることがあるのか不明ですが
基本的には、二つのキーボードからの入力時に、どちらから入力されたものか
実は判らないという現実があるので、難しいと考えます。
mod0がmod4と表示されるのは、おかしいので、まずは、そこを追いかけます。
--- 例1
key C-A-D = &DescribeBindings # 現在のキーマップのログ出力
mod mod0 += !!!Applications
key M0-~L8-Applications = BackSpace
key M0-L8-~U-D-Applications = &Ignore
key M0-L8-U-~D-Applications = &Toggle(Lock8,off)
#以下、モディファイヤmod0をつかうキーの設定
key M0-*L8-~U-D-A = Q &Toggle(Lock8,on)
key M0-*L8-~U-D-Z = A &Toggle(Lock8,on)
key M0-*L8-~U-D-LeftWindows = Z &Toggle(Lock8,on)
--- 例1のバインディング解釈状況。
window Global ( /.*/ || /.*/ ) = &OtherWindowClass
mod Shift = LeftShift RightShift
mod Alt = LeftAlt RightAlt
mod Control = LeftControl RightControl
mod Windows = LeftWindows RightWindows
mod Mod4 = !!!Applications
key D-M0-A = Q &Toggle(lock8, on)
key M0-Applications = BackSpace
key U-M0-L8-Applications = &Toggle(lock8, off)
key D-M0-L8-Applications = &Ignore
key A-C-D = &DescribeBindings
key D-M0-LeftWindows = Z &Toggle(lock8, on)
key D-M0-Z = A &Toggle(lock8, on)
--- 例2
mod shift += !!!_1
key S-_2 = _3
key S-~U-D-_1 = _4
key S-U-~D-_1 = _5
--- 例2のバインディング解釈状況。
window Global ( /.*/ || /.*/ ) = &OtherWindowClass
mod Shift = LeftShift RightShift !!!_1
mod Alt = LeftAlt RightAlt
mod Control = LeftControl RightControl
mod Windows = LeftWindows RightWindows
key U-S-_1 = _5
key D-S-_1 = _4
key S-_2 = _3
key A-C-D = &DescribeBindings
ありがとうございます。
mod4と表示されるのは…どうなんでしょう。
mod0の修飾自体は機能しているのですが…よくわかりません。
後の要望としましては、例2のような場合に、
単独のUp/Downと同等の設定ができれば大変助かるのですが…
たびたびすみませんが宜しくお願いします。
>>50
こちらこそ、お世話になっています。
mod4表記については、たぶん表示だけのバグと考えます。
単独のUp/Down設定については、キーバインディングとして採用する優先順位の問題と考えるので
現状のソースコードのままでは、無理だろうと考えますが、出来ても良さそうなものだなとも思うので
ソースコードを確認したいと考えます。ご期待に添えないかも知れませんが
何故、今こうなっているかぐらいは、ご説明できればと考えています。期待どおりの動作をしておらず大変申し訳ありません。
宜しくお願いします
>>48
下記では、所望の動作とは異なりますか?
mod shift += !!!_1
key S-_2 = _3
key R-*_1 = &Ignore
例1のような場合を考えてくださったとお見受けします。
ありがとうございます。
さて、ご提案の方法ですが、実は既に試しました。
この方法に関しては次の不満点があります。
(例として例1をつかっています。)
①Applicationsを単独キー(BackSpace)として使った場合
キーリピートができない
②Applicationsをモディファイヤキー(mod0)として使った場合
意図しないBackSpaceが一度だけではあるがやはり入る
それから、Application-Aと入力すると
E0-0x5d D-Applications
0x1e D-M0-A
0x1e U-M0-A
E0-0x5d D-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d D-R-Applications
E0-0x5d U-R-Applications
となるとご説明しましたが、実際には、
Applicationsを離すタイミングによって、
E0-0x5d D-Applications
0x1e D-M0-A
0x1e U-M0-A
E0-0x5d U-Applications
となったり、
E0-0x5d D-Applications
0x1e D-M0-A
0x1e U-M0-A
E0-0x5d D-Applications
E0-0x5d U-Applications
となったりするので、これらの場合を統一的に扱うには
Applicationsキーを離す瞬間を認識するしかないかなと思い、
ご質問した次第です。
説明不足で申し訳ありません。
>>54
コメントどうもありがとうございます。
いずれも難しい問題ですね。解決策を探るには、現状のキーボードハンドラーの問題点を洗い出す必要があり
すぐに解決できるものではないと考えますが、小さく区切って、あげられた問題点の解決策が無いか模索することに
なりそうです。
特に後半については、以前からも御要望頂いているもので、モディファイヤーキーが反応するタイミングを
時間軸で調整すべきもので、現在のハンドラーでは、しかけを持っていないので
今のままでは、どうにもならないと理解しています。
>>44
>C#かC++からnodokaに登録したkeyseqを呼ぶことはできますか?
お世話になっています。お待たせしました。
Ver.4.08で、実験実装した gamepad.dll プラグインが、ご参考になると思うので
ソースをご覧ください。http://sourceforge.jp/projects/nodoka4/
nodokaソリューションの中の、gamepadプロジェクトの gamepad.cpp が、ソースとなります。
現状、gamepad.dllプラグインはプラグインとしては、タッチパッドサポートの ts4nodokaと同様の特別なプラグインであり
名前が同じで、エントリに ts4nodoka.init, ts4nodokaTermがあれば、動作すると考えます。
ts4nodoka.init で、loopスレッドを起動しており、loopスレッドの中で、UpdateInputState()にて、ユーザの操作を検出して
chaneEvent(i_up, lParam); にて、のどかに対し、キーが押された場合には、0, キーコード、キーが離された場合には、1, キーコードを
送っています。
キーコードは、のどか側で E1-がついたキーコードとして認識するので、gamepad.nodoka でキー定義して、任意のキーバインディングが
指定できるようにしています。
以上、ご不明な点がございましたら、また ご連絡ください。
要望なんですが、ここに書き込みをさせてもらいます。
コマンドライン引数をつけて起動することで、起動時に任意のキー操作やファンクションを実行できるようにしてもらえませんか?
(.nodoka設定実装例)
arg Hoge = S-Hogehoge
例えば以下のような利用方法があると思います。
# Windows起動時に、のどかにキー操作やファンクションを実行させる。
# マウス入力時に外部ソフトによってのどかを(再)起動させ、キー操作やファンクションを実行させる。
# 外部タイマーソフトから定期的にのどかを(再)起動させ、キー操作やファンクションを実行させる。
以上、検討よろしくお願いします。
>>57
お世話になっています。御要望どうもです。
引数の解釈、dot.nodokaでの記述などを検討する必要がありますが
要件の整理も含め、考えることにします。
こんにちは。お世話になってます。要望はここでいいのかな。
以前、「窓使いの憂鬱」メーリングリストでも一度要望したことがあったんですが
「ある特定のウインドウがアクティブになったら」というeventか何かは作れないでしょうか?
これがあれば「ある特定のウインドウがアクティブになったらIMEをオンにする」等の設定が出来ると思いまして。
window notepad /notepad\.exe/ : Global
event window_activated = &SetImeStatus( on ) &Toggle( Lock0,off )
と、もう一つ、タイマー機能とでも言いましょうか、「nミリ秒たったら」と言う機能は難しいでしょうか。
具体的には例えば
keymap map_X : Global
event passed( 100 ) = &HelpMessage( nodoka, 1秒経過 )
key y = &HelpMessage( nodoka, Yが押されました )
keymap Global
key x = &Prefix( map_X )
タイマーが働いたら、右辺を実行して親キーマップに戻るイメージです。
なんに使うかというと、例えば「LCtrlを2度素早く叩くとクリップボードユーティリティ起動」だとか、
NICOLA(親指シフト)といった、同時打鍵式の日本語入力配列に役に立つと思いまして。
キーバインディング変更というよりスクリプト実行環境のような機能ですし、果たして実装可能かどうかも全然分かりません。
デバイスドライバ署名取得でもお忙しいでしょうし、気が向いた時に検討していただけると嬉しいです。
御要望書き込み ありがとうございます。
現在のWindowが何かというのは、常時確認しているので、実現の可能性はあるといえるでしょう。
そのとき何か、別のキーを押したことにすればできそうです。
タイマーの方は、同様にタイマースレッドを動かして、自分で決めたキーを押したことにすれば
次のことが出来そうです。
ただし、いくつか宿題になっている御要望もあるので、優先順位付けしないとダメでしょう。
乱文お許しください。
key LeftWindows = NumEnter
的な設定を以前から使用していたのですが、HDDの故障ですべて設定が
飛んでしまった為、新しく設定をし直したのですが、上の設定だけ
どうにも正常に作動しません。
最新版だから駄目なのかと思い、購入した頃のバージョンである4.07で
試してみましたが、結局正しく動作はしませんでした。
カスタムのキー設定以外は、デフォルトで登録されている4つのdot.nodoka
以外読み込んでおりません。
どうすればLwinに機能を割り振れますでしょうか?
よろしくお願いします。
mod windows -= LWin
key LWin = NumEnter
こちらで、いかがでしょうか。
ヘルプの 6.チュートリアル
vii. モディファイヤになっているキーを置き換える を ご覧ください。
出来ました!
わざわざお答えいただいてすいません。
ありがとうございました!
デバイスドライバに署名をつけるために有料としていたはずですが、
現在どのくらいの入金があって、いつ頃署名がつきそうなのでしょうか。
ある意味カンパなのですから、その情報は公開するべきなのでは。
こんにちは。
お問い合わせありがとうございます。
署名付きは、今月、出来ればWindows 7リリースに合わせて
御提供の予定で進めております。
ちょうど昨日10/1に会社設立のための登記申請をしたため、登記事項証明書が
取得できる来週末以降にコードサイニング署名のための申請を行います。
詳細については、下記をご覧ください。
http://d.hatena.ne.jp/applet_at_h/20090902/1251898974
以上、よろしくお願いいたします。
お返事ありがとうございます。
進んでいるようですので、微力ながら購入してご協力させていただきます。
色々面倒だとは思いますが、心待ちにしております。
>>66
どうもありがとうございます。
すみやかに署名が取れるよう進めてまいりますので
今後ともよろしくお願いいたします。
こんにちは。
会社設立が目前ですね。
いちユーザーとして蔭ながら応援しております。
お忙しい最中だとは思いますが、個人的にしばらく取り組んでみて、解決しなかった問題がありますので相談させてください。
key T = &ClipboardCopy("A") &Sync C-V B &Sync &ClipboardCopy("C") &Sync C-V
のようなスクリプトの結果が、アプリケーションによって(意図通り)AbCとなったり、あるいはCbCやAbAとなったりします。
(失敗するのはFirefoxなど)
&Syncがひとつしか無い場合はこうした問題は起こらないようです。
このように「一連の動作の中に&Syncが複数ある場合、同期がとれない場合がある(らしい)」というのは、既知のことでしょうか?
>>68
こんにちは。お問い合わせありがとうございます。
確認しました。4.09だとFirefoxを起動して、URLを入れるところなどで
定義した Tを押すと確かに CbCなどと入力され、問題が発生します。
ところが手元の4.10では発生しないようです。直したつもりはないので何故OKなのか
恥ずかしながら判りません。x64対応で直したところが関係あるのかも知れません。
あるがまま(ASIS)となりますが、4.10試して頂けますでしょうか。
別途御連絡頂ければ幸いです。
署名無し版では4.10を出さないつもりでしたが、広くβテストした方が
良いのかもとも思います。
早速のご回答ありがとうございます。
もしかしたら興味のある方もおられるかと思い、こちらからご報告さしあげます。
ご用意いただいた4.10で上記のスクリプトを試したところ、おっしゃるように正しく出力されます。
ただ、&Syncを使用した別のスクリプト(実はこちらが本命)を実行してみると、4.09では起こらなかった「5秒フリーズ」の問題が発生しました。
これに関してはアプリケーションを問わず発生するようなので、やはり&Syncまわりが以前のバージョンから相当変わっているようです。
具体的にスクリプトの該当部分を示しますと、(かな入力モードで)
key IL-*IC-_1 = &SetImeConvStatus(0x0008) &Sync _1 &Sync &SetImeConvStatus(0x0009)
のようにして、最上段のキーから刻印通りの数字を入力できるようにしています。
先般のテストはこのスクリプトからIME関連の問題を切り離してみたものです。
今回の結果で、やはりIME操作の関数にも原因があるのかという疑いが復活しましたが。
生憎その種の知識の乏しい私には、
&SetImeConvStatusのような比較的「時間のかかる」処理に&Syncが「カチ合う」と、同期に問題が起こる
といった程度の漠然としたイメージしか湧きません。
私より高度な検証をおこなえる方にβを試してもらう、というのは有意義なことと考えます。
署名あり版のリリースを控えておられる現状では、いろいろと煩雑でしょうが……
>>70
どうも追試並びに御報告 大変ありがとうございます。
&Syncのところは、x64対応に際し同じ動きになるように組んだつもりでしたが
微妙に違うようです。広くβテストするレベルではないことが分かったので
今しばらく、お待ちください。
>>70
key T = &ClipboardCopy("A") &Sync C-V B &Sync &ClipboardCopy("C") &Sync C-V
ですが、窓使いの憂鬱 3.30とFirefoxの組み合わせで
AbCとならず、CbCと入力されることを確認しました。
あらかじめ、クリップボードに違う文字をいれてあっても
CbCと入力されます。
潜在していた不具合であると言えると考え、また御推察どおりということに
なります。
のどか 4.10 x64版では、Firefoxを含む、IE x64やWordPad32などでも
同じ事象が発生するが、各機能ごとにログを表示するようにして、各機能
が順序通り動作していることを確認しました。
特に、CbCとして入力されてしまうケースでは、最初の&ClipboardCopy("A")が
一度も実行されていませんし、後半の&ClipboardCopy("C")が、キー入力
よりも先に入力されていることになります。
結局、&Syncは、開始順序は正しくなるよう機能するが、それぞれの&Functionの
終了は見ることが出来ないので、&Functionの働かないことがあり
そのようなケースでは&Waitの使用を検討すべきということであろうと考えます。
現状 &Syncのタイムアウトが発生するようにしか直せなかったために
今後とも継続して、検討することになるでしょうが、しばらくは直せない
ということになります。大変申し訳ありません。
合同会社アプレット、設立おめでとうございます。
>>72
窓使いの憂鬱の過去バージョンの検証はこちらで行うべきだったかも知れません。
お手数をおかけしました。
現状で解決の糸口がみつからないのは残念ですが、そこは汎用性の高いのどかのことですから
当面はケースバイケースで回避策をさがしていきたいと思います。
署名あり版のリリースもふくめ、今後の発展に期待をかけております。
4.10を使ってみました。
設定ファイルの文字コードがUTF-8だとnodoka.exeが落ちます。
ShiftJISに変更すると問題なく動きました。
たしか4.07辺りはUTF-8でも動いていたように思います。
環境は
WindowsVista 32bit Ultimete
のどか4.10
深刻な問題というわけでもありませんがとりあえずご報告まで。
早速の御利用並びに、御報告、大変ありがとうございます。
再現致しました。4.06はOKですが、4.07, 4.07a, 4.08, 4.09, 4.10は
すべて、UTF-8の設定ファイルを読み込むと落ちます。
コンパイラ変更時の修正が充分で無いことが原因であろうと考えます。
他の不具合があるかもしれませんが、放置されていたバグということになるので
できるだけ、早い時期に修正致します。
重ねて、大変ありがとうございました。
あまり私はこっち系は詳しくないのですが
試用版をしてみました。
某シューティングゲーム(東方)をするときにキー配列を変えてみたいと思い・・。
これはシフトを押しながら低速移動するのですが
keymap Global
key Up = I
key I = Up
key Down = K
key K = Down
key Left = J
key J = Left
key Right = L
key L = Right
このように変更したあとにシフトキーを押しながら移動したりすると
シフトキーを押した後に他のキーを離したり入力したりする認識がされないようです。
ずっと一方向に動いていってとまらないような感じです。
対処方法はあるのでしょうか・・?
連レス済みません。
他のキーとは設定したIKJLのことです。
体験版も含み、同じ症状がでています。
>76,77
お世話になっています。下記で、いかがでしょうか。
御参考 ヘルプ 6. チュートリアル tutorial
vi. モディファイヤキーの状態と無関係に置き換えてみる の後半。
keymap Global
key *Up = *I
key *I = *Up
key *Down = *K
key *K = *Down
key *Left = *J
key *J = *Left
key *Right = *L
key *L = *Right
こんなに早く返信が頂けるとは・・・ありがとうございます!
大体ちゃんと動作するようになりました。
「モディファイア」の意味が分からず少し飛ばして読んでいたところのようです;;
申し訳ないです
「ほかに設定が必要でしょうか?」
ESC <-> 全角/半角 と 変換・無変換に ToggleIME を設定している位なのですが、 IME 使用中に IME がオフになる場合があります。
-----------------------
OS :WS08R2 x64
IME:ATOK2008(32bit)
-----------------------
のどか設定
-----------------------
### ESC <-> 全角/半角 ###
key Esc = 半角/全角
key 半角/全角 = Esc
### 変換&カナ/かな -> Toggle IME ###
key *変換 = $ToggleIME
key *ひらがな = $ToggleIME
-----------------------
[問題の再現]
IME オンの状態にする。
IME で文字を入力。仮名漢字変換を[確定(return)]する前に、 ESC(キーとしては[全角/半角])を押すと、 IME がオフになる。また変換中の文字も消える。
IME が MS-IME2007 の場合は、仮名漢字変換確定前の状態で IME だけが ON/OFF になる。
[考察]
仮名漢字変換中はキーフックできずに、 ESC ではなく元のキーの[全角/半角]として動作してしまっている様子。(なので、 ATOK と MS-IME では入力が消える/そのままの見た目の差が出ているが、動作的には IME の ON/OFF が行われているような状況と思われる。)
[ということで]
仮名漢字入力中でも、のどかの設定を活かすには、下記の設定以外(-= ?)が必要なのでしょうか?
-----------------------
key Esc = 半角/全角
key 半角/全角 = Esc
-----------------------
>>80
お問い合わせありがとうございます。
ヘルプの8. カスタマイズ i.モディファイヤキーの無視にあるように、デフォルトモディファイヤーの中で
IL, IC がそれぞれ、*IL, ~IC になっているため、IME変換中すなわち、ICの時には、Escと半角/全角の入れ替えが
無効になっています。御推察の通りです。
従って、キー名の前に*をつけてやれば、ICも無視されるようになり、例えば、下記のような設定ファイルとなります。
ヘルプの7. Q&A Q.6, Q.7 にあるように、*IC-をつけるか、デフォルトモディファイヤー自身を変更するのも良いでしょう。
Windows 7 x86/x64 において、付属IMEにて確認しました。Escを押しても、入力した文字が消えるのみで、IMEはオフになりません。
include "109.nodoka"
keymap Global
### ESC <-> 全角/半角 ###
key *Esc = *半角/全角
key *半角/全角 = *Esc
### 変換&カナ/かな -> Toggle IME ###
key *変換 = $ToggleIME
key *ひらがな = $ToggleIME
Re: 81
素早い回答ありがとうございます。
WS08R2+ATOK2008 環境でも、意図した動作になりました。
ヘルプはざっくり読んだのですが、なかなか難しくて・・・。
大変助かりましたm(__)m
はじめまして。よろしくお願いします。
XPで使っていたパソコンのHDDが突然クラッシュしてしまい、急遽 Windows7(32ビット版) のパソコン(東芝EX /55kbl)を買いました。
大分Windows7の扱いにもなれて苦労して自分の好みの環境構築もできてきました。
しかし、XPで使っていた「猫まねき」がうまく使えないので、「のどか」の正規版を購入してみました。
まだインストールしていません。少し不安があるからです。せっかく苦労して構築した環境が壊れてしまったっり、
リカバリーしなければならないような事態にならないか心配です。それと何かプログラムのようなものを書かないと使えないのだろうかという心配です。
何事にも絶対ということはないのは分かっていますが、「のどか」をインストールしても、そんなに心配することはないでしょうか。
それと、プログラムのようなものを書かないと使えないソフトでしょうか。
よろしくお願いします。
>>83
お買い上げ大変ありがとうございます。
>せっかく苦労して構築した環境が壊れてしまったり、リカバリーしなければならないような事態にならないか心配です。
そのような事例は、のどか においては、伺っておりません。可能性は低いと考えます。
>それと何かプログラムのようなものを書かないと使えないのだろうかという心配です。
設定ファイルのことでしたら、そういうことになりますが、実施したいことによります。
単純なキー入れ替えの場合ならば、モディファイヤーキー(Ctrl, Alt, Shift, Winキー)を考慮するところで
一つのハードルがあります。このスレッドの >>81 などや、ヘルプをご覧頂き、ご不明な点は
お問い合わせ下されば、可能な限り対応致します。
よろしくお願いいたします。
早速のご回答ありがとうございます。
>単純なキー入れ替えの場合ならば、モディファイヤーキー(Ctrl, Alt, Shift, Winキー)を考慮するところで
一つのハードルがあります。このスレッドの >>81 などや、ヘルプをご覧頂き
このことがよく分かりませんが、要するに「猫まねき」のように、CAPS LOCK を CTRL に変えたり、「無変換」キーでIMEをon,offしたりというようなことなら簡単にできるということですね。
はい。dot.nodokaファイルは、下記のような感じとなるでしょう。
各キーの指定時の名称は、ヘルプ A 補足 appendix vi. キー配列定義をご覧ください。
#-----------------------------------
include "109.nodoka"
keymap Global
### 英数-> 左コントロール ###
mod control += 英数
key *英数 = *LeftControl
### 左コントロール-> 英数 ###
mod control -= LeftControl
key *LeftControl = *英数
### 無変換 -> IME ON/OFF ###
key *無変換 = $ToggleIME
7対応になったとの事ですが
64bit版7で、nProとの競合は起こらないでしょうか?
以前XPで使っていたとき、ネトゲに含まれているnProがのどかを検出?するのか
起動しているとキー入力ができなくなってしまうということがありました。
別にネトゲで使っているわけではないのですが、のどかはスタートアップに入れていて常時つけっぱなしなので
その状態でゲームをする→キー入力ができなくなる となっていました。
ゲームするときだけ終了させればいいんですが、のどか終了→ゲーム→ゲーム終了→のどか起動
みたいにいちいちやるのが面倒でのどかを封印していたのですが
もし動作するのであれば7の64bitを購入しようかなと。
>>87
お問い合わせありがとうございます。
nProtect GameGuard によって、「のどか」が検出され、以降キー入力が出来なくなり
プロテクトされる問題に関しては、特に対策を実施していないので、nPro側で除外されない限り
挙動は同じとなると考えます。
>のどか終了→ゲーム→ゲーム終了→のどか起動
を実現する nshell.exe を同梱していますが
テスト対象としていた LaTaleというゲームでは
プロテクトされなくなったので、nProtectとの併用時の挙動については、確認できていません。
ありがとうございました。
ヘルプなども書いてあることが難しく、よく分からなかったのですが、
多分こうだろうと手探りでやりましたが、うまくいきました。
感動です。自分のやりたかったことがずばりできるようになりました。
自分が一番したかったことは、CAPS LOCK → CTRL , 無変換、変換、かな/カナ→IME on/off
これができたのが最高です。この調子なら他のこともできそうに思えました。
ありがとうございました。またよろしくお願いします。
>>89
御報告大変ありがとうございます。また、うまく行ったとのこと、素晴らしいです。
今後とも、よろしくお願いいたします。
はじめまして。大変心地よく nodoka を使っております。
1つ困ったことがありまして、お伺いしたいことがあります。
現在、nodoka を使用して IME 制御を行っております。
key *IC-C-Yen = &SetImeStatus(on)
key *IC-C-CircumflexAccent = &SetImeStatus(off)
このように IME のオンオフを切り替えるように設定しています。
これ自体は正常に動作しているようなのですが、IME を制御するアプリケーションで
この切り替えが動作しなくなることがあります。
現在その現象を確認しているのは bluewind というアプリケーションと、
自作アプリケーションです。
その現象とは、あるタイミングでアプリケーションが自動的に IME をオフにすると
その後 nodoka SetImeStatus(on) が有効にならないというものです。
半角/全角キーだとオンオフが可能で、その後は SetImeStatus(on) が有効になります。
自作のほうは C# + .NET Framework で次のようなコードで実現しています。
IntPtr ime_handle = (IntPtr)ImmGetContext(this.Handle);
uint conv = 0, sent = 0;
ImmGetConversionStatus(ime_handle, ref conv, ref sent);
int result = ImmSetConversionStatus(ime_handle, IME_CMODE_ALPHANUMERIC, sent);
IME がオンのときにこのコードを実行するとオフになります。
この後 SetImeStatus(on) を行ってもオンになっていないように見えます。
ただ、そのときもう一度上のコードを実行し
ImmGetConversionStatus(ime_handle, ref conv, ref sent);
直後の conv の値を調べると
IME_CMODE_NATIVE | IME_CMODE_FULLSHAPE | IME_CMODE_ROMAN (数値では25)
となっており、IME がオンの状態と同じです。
半角/全角キーで正常に動作し、nodoka の SetImeStatus(on) で意図通り動作しないので、
nodoka ではどのように制御しているのか教えていただけないでしょうか?
以上です。
>>91
こんにちは。お問い合わせありがとうございます。
>nodoka ではどのように制御しているのか教えていただけないでしょうか?
hook.cpp の funcSetImeStatus(HWND i_hwnd, int i_status)となります。
http://sourceforge.jp/projects/nodoka4/svn/view/nodoka/branches/nodoka_4.10/dll/hook.cpp?view=markup&root=nodoka4
bStatus = ImmSetOpenStatus(hIMC, bSetStatus);
>>92
ありがとうございます。
ソースコードが公開されていたのですね。
参考に制御方法を ImmSetConversionStatus から ImmSetOpenStatus に変更したら挙動が変わりました。
直接解決はしていませんが、
key *IC-C-Yen = &SetImeStatus(off) &Sync &SetImeStatus(on)
としたら正常に動作するようになりました。
ありがとうございます。
>>93
どうにか、間接的にせよ、解決できた御様子。御報告大変ありがとうございます。
うまく操作できないアプリも存在するので、その場合でも
IME ONしてからOFFするというのは、意味があるのかも知れませんね。
のどか ver4.10 を使っていて、どうもCPU使用率が高めで
何もしていなくてもCPUが安定しないため、
Windows7 x64 UltimateEdition (PhenomII X4 945/nforce720D/RadeonHD4550),
Windows7 x86 UltimateEdition (Atom Z550/US15W)
WindowsXP Professional Edition (Athlon X2 5000+BE/Geforce7050) の
3PCで試しましたが、どれもCPUに関係なく一様に10%程度CPU使用率が
高い状態で常時変動しつづけます。
OSはクリーンインストールして試しています。
以前はそんなことはなかったように記憶しているのですが、
なにか検討がつくようなことがありましたらお教えください。
>>95
お問い合わせ ありがとうございます。
http://sourceforge.jp/ticket/browse.php?group_id=3682&tid=19323
のチケット(バグ)と同じ原因であろうと考えます。
x64の実行ファイルと、x64,x86のDLLとの間での情報共有の方式を4.10では変更したことによるものと
考えております。現在、最優先で、本対策を実施しようとしておりますが、まだ実現しておりません。
今しばらく、お待ちください。
こんにちは。
4.11を準備中です。exeとdll間で情報共有にレジストリを使うという良くない実装を改め
共有メモリに変更しています。
お試しされたい方がいらしたら、別途 applet@bp.iij4u.or.jpまで、御連絡下さい。
修正内容(暫定)は下記となります。
・実行ファイル、DLL間の情報共有をレジストリから共有メモリに戻し、性能向上させた。
また、その結果不要となったレジストリを削除するようにした。
・設定ファイルの文字コードがUTF-8のものを読み込むとアプリケーションエラーとなるのを修正した。
・DLL Detachの際、SendMessageTimeout()使用をやめて、SendNotifyMessage()とし、
未開放なウィンドウを残すアプリ終了時に、そのアプリがアプリケーションエラーとなることを解消させた。
・Windows 7 x64において、上書きインストールが失敗することがあることを修正した。
・インストール時に のどか が動作中であった場合、終了できるようにした。
・&MayuDialog, &CancelPrefixを追加し、窓使いの憂鬱及びYAMYとの互換性を高めた。
YAMYの著作権表記を追加した。
はじめまして,「けんちんぢる」と申します。
元々mayuを使っておりまして,会社で使っているPCをいよいよWin7にすることになり,困っていたらnodokaを探し当てました。
もちろん,すぐに購入しました。
喜び勇んでインストールしたのですが,赤い●にバッテンのダイアログで「サーバーから紹介が返ってきました。」という謎のメッセージが表示され,nodokaが起動しませんでした。
イベントログを見ると,次のようなエラーが出ておりました。
ログの名前: Application
ソース: Microsoft-Windows-CAPI2
日付: ********
イベント ID: 4110
タスクのカテゴリ: なし
レベル: エラー
キーワード: クラシック
ユーザー: N/A
コンピューター: ********
説明:
次のエラーが原因で、サード パーティ ルート証明機関ストアに証明書を追加できませんでした: 証明書チェーンを、信頼されたルート機関として構築できませんでした。
インストール時には,administratorでログインし,ウィルスチェックソフトはオフにしてあります。
と,ここでハッと我に返って,ローカルのadministratorでログインせねばダメなのかと思いまして,やってみたところ,問題がなくなりました。
実は,PCは会社のネットワークに接続しているので,ドメインに参加しており,当然作業はドメインのadministratorでした。
今まで,同じ管理者権限があるユーザーでも,ローカルかドメインかの違いでインストールできなかったことがなかったもので,気付くのが遅くなってしまいましたが,証明書はローカルに保存するのでローカルなのかなと理解しております。
他に,同じく悩んでいる方がいるかも知れないと思い,投稿させていただきました。
今後とも,よろしくお願いします。
御報告大変ありがとうございます。
ドメインコントローラのルート証明書のアップデイトが実施されていないのかもしれません。
マニフェストに、uiAccess="true" がついているので、ローカルPCでも、Windows XP無印などの場合で
Windows Updateを実施していないと、同様のエラーダイアログが表示されることがあります。
この「サーバーから紹介が返ってきました。」という意味不明のエラーダイアログは、実行ファイルについている
署名の認証に失敗したというエラーメッセージです。
64bit版Windows7でのどか 4.11を利用しています。
テストのために設定ファイルは日本語109キーボード(Emacs風)にしています。
この設定でたとえばC:\Windows\notepad.exeを起動したとします。
CTRLを押しっぱなしにして初めてPを押すと↑と同じ動作をするはずですが
Notepad上でカーソルは上に行きません。
この状態からCTRLを離さずにさらにPを押すと初めてカーソルが上に移動します。
以降CTRLを離さずにPを押すとその分だけカーソルが上に行きます。
CTRL+Nに関しても同じで、一回目のNには反応しませんが二回目以降のNには反応します。
あと、CTRL+B,Fに関しては
最初の一回はCTRL+←,→と同様に動作し
(ているように見える。つまり行頭もしくは行末にカーソルが移動する)
二回目以降は普通の←,→として動作します。
気になって調べたところ、この現象は4.10でも発生していました。
ただ同じ現象は32bit版XPでは発生しません。(これは別マシンです)
マシンが悪いのかよくわからないのですが
同じような現象が発生しているユーザはいませんか?
>>100
書き込みどうもです。
1. Ctrl-P,Ctrl-N,Ctrl-B,Ctrl-F が所定の動作をしない件ですが
Windows 7 x64環境で、書かれた症状は発生しませんでした。
それぞれ メモ帳の上で、カーソルキーのUp,Down,Left,Rightとして
動作しているように見えます。
2. Ctrl-B, Ctrl-F がそれぞれ、行頭、行末に行くとのことですが
c:\Program Files\nodoka\emacsedit.nodoka の設定では、下記であり
key C-A = Home #行頭
key C-B = Left # ←
key C-E = End # 行末
key C-F = Right # →
B,Fで、それぞれ、行頭、行末に行く設定にはなっていないはずですが、ここを
書き変えておられるか、違う設定ファイルを読み込んでいますか?
のどか のログウィンドウを開いて、詳細をチェックした後で
メモ帳上で、Ctrl-P,Ctrl-P, Ctrl-N, Ctrl-N, Ctrl-B, Ctrl-B, Ctrl-F, Ctrl-F を押された際の詳細ログを
見せて頂くことは可能でしょうか?
お返事が遅くなりました。
ログを添付します。
長いと書き込めないのでいくつかに分割します。
まずはCTRL+ALD+Dを押したときの設定は以下のようになっています。
----------------------------------------------------------------------
window Notepad /:Notepad:Edit$/ : EmacsEdit = &KeymapParent
mod Shift = LeftShift RightShift
mod Alt = LeftAlt RightAlt
mod Control = LeftControl RightControl 英数
mod Windows = LeftWindows RightWindows
key A-J = C-G
key C-S = F3
key C-X = &Prefix(NotepadC-X, true)
keymap EmacsEdit : EmacsMove = &KeymapParent
key A-BackSpace = $EmacsEdit/backward-kill-word
key A-D = $EmacsEdit/kill-word
key C-D = Delete
key C-H = BackSpace
key C-J = Enter
key C-K = $EmacsEdit/kill-line
key A-L = $EmacsEdit/downcase-word
key C-M = Enter
key C-O = Enter ←
key C-Solidus = C-Z
key C-Space = &Prefix(EmacsMark, true)
key C-T = $EmacsEdit/transpose-chars
key A-U = $EmacsEdit/upcase-word
key C-U = &Variable(0, 4) &Prefix(EmacsC-U, true)
key A-W = C-C
key C-W = C-X
key C-Y = C-V
keymap EmacsMove : Global = &KeymapParent
key C-A = Home
key A-B = C-←
key C-B = ←
key S-A-Comma = C-Home
key C-E = End
key End = C-End
key S-End = S-C-End
key A-F = C-→
key C-F = →
key S-A-FullStop = C-End
key C-G = Esc
key Home = C-Home
key S-Home = S-C-Home
key C-L = &WindowRedraw &Recenter
key C-N = ↓
key C-P = ↑
key C-Q = &Prefix(KeymapDefault, true)
key A-V = PageUp
key C-V = PageDown
window Global ( /.*/ || /.*/ ) = &OtherWindowClass
key A-C-D = &DescribeBindings
key Esc = 半角/全角
key S-F2 = &IconColor(2) &HelpMessage("Reloaded", "日本語 109 キーボード (104 風)") &LoadSetting("日本語 109 キーボード (104 風)")
key 半角/全角 = Esc
key 英数 = LeftControl
window EditControl /:(Edit|TEdit|RichEdit(20[AW])?)$/ : EmacsEdit = &KeymapParent
その2
<CTRL-P,CTRL-Pと続けた場合>
----------------------------------------------------------------------
end ReadFile();19.617
* Modifier Key
0x1d D-NL-LeftControl
one shot modifier is NULL
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
> &KeymapParent(Global)
> &OtherWindowClass(EditControl)
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
> &KeymapParent(Global)
> &OtherWindowClass(Global)
> &OtherWindowClass
* Gen Modifiers {
}
GenKeyEvnet: 19.641:0-29
WriteFile() done: 19.641
GetOverlappedResult() done: 19.641
=> 0x1d D-LeftControl
begin ReadFile();19.650
end ReadFile();19.722
0x19 D-C-NL-P
one shot modifier is NULL
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
* Gen Modifiers {
GenKeyEvnet: 19.728:1-29
WriteFile() done: 19.728
GetOverlappedResult() done: 19.728
=> 0x1d U-LeftControl
}
GenKeyEvnet: 19.728:2-72
WriteFile() done: 19.728
GetOverlappedResult() done: 19.728
=> E0-0x48 D-↑
begin ReadFile();19.729
end ReadFile();19.790
0x19 U-C-NL-P
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
GenKeyEvnet: 19.799:3-72
WriteFile() done: 19.799
GetOverlappedResult() done: 19.799
=> E0-0x48 U-↑
begin ReadFile();19.799
end ReadFile();19.955
0x19 D-C-NL-P
one shot modifier is NULL
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
* Gen Modifiers {
}
GenKeyEvnet: 19.965:2-72
WriteFile() done: 19.965
GetOverlappedResult() done: 19.965
=> E0-0x48 D-↑
begin ReadFile();19.965
end ReadFile();20.31
0x19 U-C-NL-P
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
GenKeyEvnet: 20.32:3-72
WriteFile() done: 20.32
GetOverlappedResult() done: 20.32
=> E0-0x48 U-↑
begin ReadFile();20.44
end ReadFile();20.214
* Modifier Key
0x1d U-NL-LeftControl
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
> &KeymapParent(Global)
> &OtherWindowClass(EditControl)
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
> &KeymapParent(Global)
> &OtherWindowClass(Global)
> &OtherWindowClass
=> (already released) 0x1d U-LeftControl
* No key is pressed
* Gen Modifiers {
}
begin ReadFile();20.225
その3(最後)
<CTRL-B,CTRL-Bと続けた場合>
----------------------------------------------------------------------
end ReadFile();55.329
* Modifier Key
0x1d D-NL-LeftControl
one shot modifier is NULL
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
> &KeymapParent(Global)
> &OtherWindowClass(EditControl)
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
> &KeymapParent(Global)
> &OtherWindowClass(Global)
> &OtherWindowClass
* Gen Modifiers {
}
GenKeyEvnet: 55.365:0-29
WriteFile() done: 55.365
GetOverlappedResult() done: 55.365
=> 0x1d D-LeftControl
begin ReadFile();55.365
end ReadFile();55.490
0x30 D-C-NL-B
one shot modifier is NULL
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
* Gen Modifiers {
GenKeyEvnet: 55.514:1-29
WriteFile() done: 55.514
GetOverlappedResult() done: 55.514
=> 0x1d U-LeftControl
}
GenKeyEvnet: 55.544:2-75
WriteFile() done: 55.544
GetOverlappedResult() done: 55.544
=> E0-0x4b D-←
begin ReadFile();55.544
end ReadFile();55.560
0x30 U-C-NL-B
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
GenKeyEvnet: 55.561:3-75
WriteFile() done: 55.561
GetOverlappedResult() done: 55.561
=> E0-0x4b U-←
begin ReadFile();55.578
end ReadFile();55.787
0x30 D-C-NL-B
one shot modifier is NULL
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
* Gen Modifiers {
}
GenKeyEvnet: 55.787:2-75
WriteFile() done: 55.787
GetOverlappedResult() done: 55.787
=> E0-0x4b D-←
begin ReadFile();55.787
end ReadFile();55.861
0x30 U-C-NL-B
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
GenKeyEvnet: 55.868:3-75
WriteFile() done: 55.868
GetOverlappedResult() done: 55.868
=> E0-0x4b U-←
begin ReadFile();55.868
end ReadFile();56.72
* Modifier Key
0x1d U-NL-LeftControl
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
> &KeymapParent(Global)
> &OtherWindowClass(EditControl)
> &KeymapParent(EmacsEdit)
> &KeymapParent(EmacsMove)
> &KeymapParent(Global)
> &OtherWindowClass(Global)
> &OtherWindowClass
=> (already released) 0x1d U-LeftControl
* No key is pressed
* Gen Modifiers {
}
begin ReadFile();56.99
----------------------------------------------------------------------
となりました。
(CTRL-NとCTRL-Fはほぼ同じでしょうから省略します。
必要でしたら添付します)
ご確認よろしくお願いします。
>>102 ,103,104
詳細ログ大変どうもありがとうございます。
ログ上は、begin ReadFile()して、end ReadFile()後に、物理的に入力されたキー入力であり
それを変換して、=> のところがメモ帳に送られたキー入力となります。
Ctrl-P, Ctrl-Bのいずれも、最初、Ctrlキーが押されたので、いったんCtrlキーを送っていますが
そのあと Pが押されたときには、Ctrlキーをup(解除)してから、↑の down,up, down, upとなっています。
Bが押された時も同様で、←のdonw, up, down, up であり、
こちらの手元で実行した場合と、全く同じログです。
1回目のP押下時に、すぐにCtrlキーの解除と、↑のdownを送っているため
ログ上、変な動作をしているようには見えません。それでも、1回目は、カーソルの上移動には
ならないとのことで、大変申し訳ありませんが、判らないというのが回答となります。
さらに調査を実施するなら Visual Studio 2008(評価版でも良い)をインストールされ、64bit版のspy++を
用いて、メモ帳が受け取っているキー入力のログを表示すれば、何か判るかもしれません。
ところで、キー入力操作を入れ替えるような他のソフトをインストールされていることは
ありませんか?
appletさん
調べていただきありがとうございます。
お手数をおかけして申し訳ないです。
他のキー操作入れ替えツールは、動いてないと思います。
少なくとも意図的には動かしていません。
VisualStudio2008のspy++で調べられるのであれば
インストールして調べてみたいと思います。
ではでは
こちらで質問してもよろしいでしょうか。
現在、下記のようなキー設定を行っています。
CTRL+J/Lでカーソルの左右移動、CTRL+ALT+J/LでHome/Endにしています。
ノートパッドなどでカーソル移動でShiftを押しながら選択状態にしているときに、Shiftを押したままHomeやEndにすると、
いったん選択状態が解除されてしまうのですが、選択状態を解除させないことはできるでしょうか。
----
mod control += 英数
key *英数 = *LeftControl
key *S-C-L=*S-Right
key *S-C-J=*S-Left
key *S-C-A-*L=*S-End
key *S-C-A-*J=*S-Home
----
>>107
>いったん選択状態が解除されてしまうのですが、選択状態を解除させないことはできるでしょうか。
ヘルプ、2chのログ、ソースコードなどから、解決策を検討してみましたが、見つかりませんでした。
ログを見る限り、Shift, Ctrl, Altキーが、すべて、キーアップされます。
Shiftキーがアップしたので、文字列選択が一旦解除となることを確認しました。
key *S-C-L=*S-Right
key *S-C-J=*S-Left
key *S-C-O=*S-End
key *S-C-U=*S-Home
上記なら、O,Uを使いますが、文字列選択が解除されることは無いので、モディファイヤーキーの組み合わせが
変わった場合、モディファイヤーキーが一度、キーアップするのは、明記されていない仕様ということになります。
確かに単独キーでの Home/Endキーを使えば、選択されたままとなるので、期待した動きと異なるわけで、大変申し訳ありません。
迅速な回答に感謝します。
現状難しいということですね。
残念ですが、致命的でもないので、キーアサインなどで工夫してみたいと思います。
現在試用版ですが、正式版の購入予定です。
いつか良い解決策が見つかりましたらぜひご対応お願いします。
はじめまして。
マウス移動をキーボードに割り当ていますが、&MouseMove関数だけでは
タスクバー近辺やゴミ箱近辺への移動が手間なので、下記関数を用意して
ていただけると助かります。
&MouseMoveTo
&MouseMonitor
それぞれ、WindowMoveTo/WindowMonitorの動作と対応します。
ご一考いただければ幸いです。
>>110
書き込みどうもです。
&WindowMoveTo, &WindowMonitor のいずれもウィンドウを移動させる機能ですが
ウィンドウではなく、マウスポインタを移動させたいということでしょうか?
そうです、マウスカーソルを移動させたいです。
例えば、
マウスカーソルをディスクトップ左上へ移動するには、
&MouseMoveTo(NE,0,0)
マウスカーソルをプライマリモニタから次のモニタへ移動するには、
&MouseMonitor(1)
#カーソル位置を割合で移動すると、カーソルの画面外への
#はみ出しは考えなくてもよいかと思います。
マウスカーソルをマウスカーソルのあるモニタから前のモニタへ移動、
&MouseMonitorTo(current,-1)
説明不足ですいません。。。
以前は調査していただきありがとうございます。
spy++を入れて調べてみたところどうもモディファイヤキー全般が
トグル動作になっていることに気づきました。
(のどかの「仮想キーの調査」でもいいことに後で気づきました)
そんな機能がWindowsにあったなぁと思い出し調べているとWindows7で
[コンパネ]-[コンピュータの簡単操作センター]-[キーボードを使いやすくします]の
「固定キー機能を有効にする」が有効になっていました。
いつの間にかこの機能が有効になってしまったみたいです。
これを解除したところ望む通りの動作になりました。
ということで、nodokaにはまったく問題ありませんでした。
ちゃんちゃん
>>112
了解並びに理解いたしました。
マウス関係を拡充するとなると、他もいじりたくなりますが
Todoリストに載せることにしましょう。
>>113
ご報告ありがとうございます。同じ問題で悩んでいる人がいた場合
固定キーの機能の有効化をしていないか確認するという知見が得られたわけで
大変ありがとうございました。
お世話になってます。
要望なのですが、のどかからキーリピートを変更できるようにならないでしょうか。
現在、kbdaccというソフトウェアを使っていますが、この機能をのどかで設定できるようにならないかなあと思い、今回提案します。
キーリピートの速度を速めると、操作が快適になるので、是非他の方もできるようになって欲しいです。
御提案どうもありがとうございます。
チケットとして、登録しました。
http://sourceforge.jp/ticket/browse.php?group_id=3682&tid=20361
以下、御報告頂いたもの。HP社PCのオーナーはご注意ください。
---
HP(ヒューレットパッカード)のEliteBookで不具合があったので報告します。
EliteBookには特殊キーを扱うドライバーがインストールされていて、
その中のHPqkbfiltr.sysがキーコードフィルタリングを行っているようで、
のどかと干渉を起こす模様です。
結果として、深刻な不具合が生じます。
インストールすると、ブラックアウトするか、ブルースクリーン行きです。
起動直後にのどかをオフにして、システムの修復を行って一応回復はできました。
環境詳細は、
HP EliteBook 8730w
OS WindowsXP Professional
です。
ドライバ同士の干渉が原因だと思うので、
修正して使えるようにするのはできないと思いますが、
HPユーザーに警告したほうがいいようには思うので、
報告しました。
のどかの場合はデフォルトで -DNODOKA が設定されると、
if で分けられるので yamy と設定ファイルの共通化がやりやすそうです。
(yamy でも -DYAMY をデフォルトで定義されると嬉しいですが)
それから、&WindowVMaximize が Windows7 だとうまく動作しません。
&WindowHMaximize はちゃんと動作します。
>>119 ,120
ご提案並びに、ご報告大変ありがとうございます。
sourcefogeの方に、チケットとして登録します。
>>120
dot.nodoka に、下記を記述し、Windows 7 x86, Windows 7 x64で
メモ帳に対し 試験してみましたが、特に症状は見られませんでした。
ダメだったアプリ名称など お判りになりますか?
key C-_1 = &WindowVMaximize
key C-_2 = &WindowHMaximize
調査ありがとうございます。
タスクバーを画面の左側立ててあるのが何か関係あるのかもしれません。
もう一度確かめてみます。
&WindowVMaximize が正しく動作していないように見えたのは、
私のキーボードで C-S-x という 3 つのキーの組み合わせを認識しないためでした。
(CapsLockをコントロールキーとして使用しているため)
おさわがせして申し訳ありませんでした。
>>124
ご報告大変ありがとうございます。
私の環境でも試してみました。
mod control += CapsLock
key *CapsLock = *LeftControl
key C-S-_1 = &WindowVMaximize
key C-S-_2 = &WindowHMaximize
ThinkPad X32 英語配列キーボード Windows 7 x86環境ですが
逆に、&WindowVMaximize はOKですが、&WindowHMaximizeがダメでした。
Controlキーにした CapsLockキーを使わずに、元々のControlキーを使う
場合には、問題ありませんでした。
CapsLockあるいはたぶん英数キーを Controlキーにした場合
C-S-xの xキーによっては、xが押されたことが
キーボードによっては送られてこないという事実のようです。
あらたな知見が得られたと考えます。大変ありがとうございました。
質問があります。
「変換キーを押しながらiキーを押すと、↑キーを押したのと同じになる」
という設定をしたいので、
key *変換 =
mod Win += !変換
key W-*I = *↑
をdot.nodokaファイルに記述しています。
Windows Vista + nodoka 4.0x ですとこれでいけたのですが、
Windows7 + nodoka 4.11a だと「ウィンドウが最大化」するだけで、
↑キーの挙動になりません。
何かアドバイスがあれば、いただけませんでしょうか。
>>126
こんにちは。7ではVistaよりもショートカットが追加されていて
Win-Up は最大化になっているようです。
いろいろやってみて、解を二つ挙げますので、参考にしてみてください。
http://www.microsoft.com/japan/enable/products/keyboard/windows7.mspx
単純に key W-Up = &Ignore を追加すると
W-Up自体は、無効にできますが
W-I を押したときに、*がついているので
Win + Upが送られてしまうのでダメでした。
key W-Up = &Ignore
key *変換 =
mod Win += !変換
key W-*I = *↑
解1 ~W を追加する。
key *変換 = &Ignore
mod Win += !変換
key W-*I = ~W-*Up
解2 Winキーにするのではなく、mod0にする。
key *変換 = &Ignore
mod mod0 = !変換
key M0-*I = *Up
うわっ出来ました!
解1、解2とも大変参考になりました。
どうもありがとうございます。
また、すぐに対応してくださり、ありがとうございます。
質問なのですが、まだのどかを使ったことがないので
以下の様なことができるのか教えてください。
(マニュアルをみてもよくわからなかったので)
F1キーを押すとA,B,C,D,E,F,Gと順番に複数のキーを
連続で入力する。
この連続して入力しているときにウエイト処理を入れる。
詳しく書くと下記の様になります。
A Down
20 msecウエイト
A Up
50 msecウエイト
B Down
30 msecウエイト
B Up
100 msecウエイト
C Down
15 msecウエイト
C Up
250 msecウエイト
...
G Down
50 msecウエイト
G Up
この様にキーを押している時間、次のキー押しまでの時間は
設定できるのでしょうか。宜しくお願い致します。
>>129
お問い合わせ ありがとうございます。
help 6.チュートリアルで、自分用の設定ファイルをホームディレクトリに
コピーした後、エディタで、dot.nodokaファイルが開きます。
そのdot.nodokaファイルの一番下に、Ver4.12の場合
# 以下に、ご自身の設定を御書き下さい。 とあるので
ここに、下記のように記述して、ファイルを保存後、設定ファイルを再読み込みしてください。
なお未指定のところは20msecにしました。
key F1 = D-A &Wait(20) U-A &Wait(50) \
D-B &Wait(30) U-B &Wait(100) \
D-C &Wait(15) U-C &Wait(250) \
D-D &Wait(20) U-D &Wait(20) \
D-E &Wait(20) U-E &Wait(20) \
D-F &Wait(20) U-F &Wait(20) \
D-G &Wait(50) U-G
・遅延には、&Wait(milli_second)を使います。
・また、Down/Upを個別に記述するにはキー名の前に D-, U-を付けます。
・なお、D-,U-を付けない場合には、自動的に DownしてUpします。
・1行で書くのは、分かりにくかったので 行末に \ を書いて、次の行と設定が続いていることを
示すようにしましたが、1行で書いてもかまいません。
・各キーの名称は、ヘルプのA.補足のキーボード配列定義をご覧ください。
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板