レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
ユーザーサポート
こちらは、汎用キーバインディング変更ソフト「のどか」サポート掲示板です。公序良俗に反する記載内容や、個人情報が記載された場合、削除することがあります。
>>868
すばやい対応、有難うございます。
「key A-Left = PageUp」を試しました。
XP(32bit)上のmayuだと、意図した通りにPageUpしますが、
Win7(64bit)上のnodokaだと、Alt-Leftのまま素通りします。
BrowserBack以外のキーを使って、例えば「key A-Comma => PageUp」とすると、
正しくPageUpします。
TrackPointキーボードの64bitドライバとの相性??
ドライバはLenovoの次のサイトからダウンロードしました。
http://support.lenovo.com/ja_JP/downloads/detail.page?DocID=DS013897
BrowserBackキーは、AltとLeftの2つのコードを返すので、
ScanCode Mapでは対応できないと思ってよろしいですか?
よろしくお願いいたします。
>>869
状況御報告大変ありがとうございます。
・まず、バージョン情報かログの先頭で、x64版が動作しているか御確認下さい。
・また&DescribeBindings を割り当てたキーを押して、指定したキーバインドが適用された状態であることを御確認ください。
・それから、キーボードの方で勝手に二つのキーコードが送られるのでScanCode Mapでの変更が可能なキーでは無いという
御理解は正しいです。
>>870
深夜に対応していただき、有難うございます。
「のどか」のバージョンはx64で問題なさそうです。
また、&DescribeBindings実行後に、BrowserBackキーを押した時のログは以下の通りです。
申し訳ありませんが、見方がよくわかりません。
=================================================================================
------------------------------------------------------------
のどか 4.25_sample for x64
built by applet@airport (Sep 22 2013 18:51:33, Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 14.00)
started at 2014年2月24日 2:13:47
C:\Program Files\nodoka\nodoka64.exe
use Keyboard filter driver.
------------------------------------------------------------
log was cleared at 2014年2月24日 2:30:38
Set show to Normal (MDI)
Set show to Normal
FocusChanged
HWND: 15041c
THREADID:2784
CLASS: C:\Program Files\nodoka\nodoka64.exe:#32770:Button
TITLE: C:\Program Files\nodoka\nodoka64.exe:ログ - のどか:ログのクリア(&L)
m_currentKeyPressCount:1
* Modifier Key
0x38 D-LeftAlt
one shot modifier is NULL
> &OtherWindowClass
* Gen Modifiers {
}
=> 0x38 D-LeftAlt
m_currentKeyPressCount:1
m_currentKeyPressCount:2
E0-0x4b D-A-←
one shot modifier is NULL
> &OtherWindowClass
* Gen Modifiers {
}
=> E0-0x4b D-←
m_currentKeyPressCount:2
m_currentKeyPressCount:1
* Modifier Key
0x38 U-LeftAlt
> &OtherWindowClass
=> 0x38 U-LeftAlt
m_currentKeyPressCount:1
m_currentKeyPressCount:0
E0-0x4b U-←
> &OtherWindowClass
=> E0-0x4b U-←
m_currentKeyPressCount:0
* No key is pressed
* Gen Modifiers {
}
=================================================================================
問題がありましたら、お知らせください。
なお、週末まで時間が取れそうにありません。
ご承知おきください。
よろしくお願いいたします。
>>871
追試結果ありがとうございます。
ログからは御申告どおり、キーバインド変更されていないです。
実際に、BrowserBackキーでキーバインド変更したいアプリ(現在うまく動いていないと判断されている)は何でしょうか?
それから、メモ帳に対して、キー操作して、&DescribeBindingsの結果のログを見せて頂けますか?
その後、同じくメモ帳に対して、BrowserBackキーを押したときのログもお願いします。
>>872
> 実際に、BrowserBackキーでキーバインド変更したいアプリ(現在うまく動いていないと判断されている)は何でしょうか?
特定のアプリではなく、グローバル設定として変更したいです。
うまく動かないと判断したのはIEとK2Editorというフリーのテキストエディタです。
K2Editorのショートカットキー登録機能を使うと、Alt+←が素通りしてくるのがわかります。
> それから、メモ帳に対して、キー操作して、&DescribeBindingsの結果のログを見せて頂けますか?
> その後、同じくメモ帳に対して、BrowserBackキーを押したときのログもお願いします。
メモ帳上で&DescribeBindings操作をしても反応しませんでした。
のどかのログウィンドウ上で&DescribeBindingsのキー操作を行った後に、
メモ帳上でBrowserBackを押したときのログは以下のとおり。
=========================================
HWND: 0
THREADID:4296
CLASS: C:\Windows\system32\notepad.exe
TITLE: C:\Windows\system32\notepad.exe
Toplevel Window Position/Size: (2, 0) / (2002740798x0)
Desktop Window Position/Size: (0, 0) / (1600x868)
Set show to Normal (MDI)
Set show to Normal
HWND: a03f0
THREADID:4296
CLASS: C:\Windows\system32\notepad.exe:Notepad
TITLE: C:\Windows\system32\notepad.exe:無題 - メモ帳
Toplevel Window Position/Size: (12, 42) / (943x754)
Desktop Window Position/Size: (0, 0) / (1600x868)
Set show to Normal (MDI)
Set show to Normal
HWND: 50422
THREADID:4296
CLASS: C:\Windows\system32\notepad.exe:Notepad:Edit
TITLE: C:\Windows\system32\notepad.exe:無題 - メモ帳:
Toplevel Window Position/Size: (12, 42) / (943x754)
Desktop Window Position/Size: (0, 0) / (1600x868)
Set show to Normal (MDI)
Set show to Normal
FocusChanged
HWND: 50422
THREADID:4296
CLASS: C:\Windows\system32\notepad.exe:Notepad:Edit
TITLE: C:\Windows\system32\notepad.exe:無題 - メモ帳:
m_currentKeyPressCount:1
* Modifier Key
0x38 D-LeftAlt
one shot modifier is NULL
> &OtherWindowClass
* Gen Modifiers {
}
=> 0x38 D-LeftAlt
m_currentKeyPressCount:1
m_currentKeyPressCount:2
E0-0x4b D-A-←
one shot modifier is NULL
> &OtherWindowClass
* Gen Modifiers {
}
=> E0-0x4b D-←
m_currentKeyPressCount:2
m_currentKeyPressCount:1
* Modifier Key
0x38 U-LeftAlt
> &OtherWindowClass
=> 0x38 U-LeftAlt
m_currentKeyPressCount:1
m_currentKeyPressCount:0
E0-0x4b U-←
> &OtherWindowClass
=> E0-0x4b U-←
m_currentKeyPressCount:0
* No key is pressed
* Gen Modifiers {
}
=========================================
よろしくお願いします。
>>874
再度、追試結果大変ありがとうございます。手元でも試してみました。
現状、うまく動作しない原因が、キーボードにあるのか、設定ファイルにあるのか
のどかにあるのか切り分け出来ていませんが、下記を御参考にしてみてください。
まず設定ファイルは、下記を使いました。
#
include "109.nodoka"
Keymap Global
key A-Right = &DescribeBindings
key A-Left = PageUp
最初に、メモ帳の上で、設定ファイルで定義したA-Rightを押して実行された&DescribeBindingsの結果です。
Set show to Normal (MDI)
Set show to Normal
HWND: 82bcc
THREADID:3640
CLASS: C:\Windows\system32\notepad.exe:Notepad:Edit
TITLE: C:\Windows\system32\notepad.exe:無題 - メモ帳:
Toplevel Window Position/Size: (477, 56) / (907x743)
Desktop Window Position/Size: (96, 0) / (1304x1050)
m_currentKeyPressCount:1
* Modifier Key
0x38 D-LeftAlt
one shot modifier is NULL
> &OtherWindowClass
* Gen Modifiers {
}
=> 0x38 D-LeftAlt
m_currentKeyPressCount:1
m_currentKeyPressCount:2
E0-0x4d D-A-→
one shot modifier is NULL
> &DescribeBindings
window Global ( /.*/ || /.*/ ) = &OtherWindowClass
mod Shift = LeftShift RightShift
mod Control = LeftControl RightControl
mod Alt = LeftAlt RightAlt
mod Windows = LeftWindows RightWindows
key A-← = PageUp
key A-→ = &DescribeBindings
最後の方に、キーバインドの一覧が表示されますが
これが、&DescribeBindingの結果となります。
メモ帳の上でも、Globalであると認識して、設定したキーバインドになるよう認識している状態となります。
では実際に、A-Leftキーを押した場合の詳細ログを下記に示します。
m_currentKeyPressCount:2
m_currentKeyPressCount:1
E0-0x4d U-A-→
> &DescribeBindings
m_currentKeyPressCount:1
m_currentKeyPressCount:2
E0-0x4b D-A-←
one shot modifier is NULL
* Gen Modifiers {
=> 0x2a D-LeftShift
=> 0x2a U-LeftShift
=> 0x38 U-LeftAlt
}
=> E0-0x49 D-PageUp
m_currentKeyPressCount:2
m_currentKeyPressCount:1
E0-0x4b U-A-←
=> E0-0x49 U-PageUp
m_currentKeyPressCount:1
m_currentKeyPressCount:0
* Modifier Key
0x38 U-LeftAlt
> &OtherWindowClass
=> (already released) 0x38 U-LeftAlt
m_currentKeyPressCount:0
* No key is pressed
* Gen Modifiers {
}
手元では、ブラウザキーは無いので、物理的にはAltキーと左カーソルキーを使いましたが
例えば、IE上でページスクロールが必要なページを表示している際、PageUpが機能したことを確認しました。
以上、よろしくお願いいたします。
>>875
回答有難うございます。
当方の返信がおそくなり申し訳ありませんでした。
そちらで使われたのと同じ設定ファイルを作成して試してみたのですが、
メモ帳の上で&DescribeBindingsのキー操作(Alt-→)をしても反応しませんでした。
そればかりか「Alt-→」の組み合わせでは、のどかのログウィンドウ上でも反応なしです。
この状態のまま、メモ帳上でBrowserBackキーを押しても反応なし。
さらにAlt-←を押してもPageUpせず、反応なしです。
異なる設定ファイルでC-A-Dを&DescribeBindingsに割り当てた場合、メモ帳上では反応しませんが、のどかのログウィンドウ上であれば反応します。ただし、この場合にはキーバインドの一覧などは表示されません。
正直なところ、何が何だよくわからなくなってきました。
まどかの前に「yamy-0.03」を試したのですが、その影響が何か残っているのでしょうか?
>>876
御報告大変ありがとうございます。
yamyが動いている状態で、のどかは実は動けるので、その場合には通知領域に、yamyとのどかのアイコンが両方並ぶことになります。
タスクマネージャーのプロセス一覧で、両方が動いていたり、スタートアップ登録に両方が登録されていなければ影響はないと考えます。
それから以前の御報告のログではuse Keyboard filter driver.の表示があるので、デバイスドライバモードと考えますが
インストール時にキーボードフィルタドライバが検出されたかどうかは判りますか?
もし、御記憶なくても、regeditで、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}
UpperFiltersの項において、kbdclass nodokad以外のドライバが登録されている場合には、影響がある可能性があります。
上記以外では、他にキーボードに関係するユーティリティアプリなどが無いかも御確認ください。
>>877
すばやい対応、有難うございます。
yamyは既に削除ずみです。
NLSキーの設定は使っていなかったのですが、レジストリが書き換わっていないか心配でした。
キーボードフィルタドライバ関連のレジストリ項目を確認しましたが、登録されているのは「kbdclass」と「nodokad」の2つだけでした。
yamy以外でキーボード関連ソフトといえば、思い当たるのはLenovoのTrackPointキーボード用のドライバだけですね。
このキーボードは手に馴染んでいて、とても快適なのですが、BrowserBack/Forwardキーに別機能を割り当てられないのは結構つらいですね。
もし他にも解決のための糸口などありましたら、ご指導ください。よろしくお願いします。
>>878
TrackPointキーボードのドライバを外すのは難しいかも知れませんが、無くてもキーボードとしては
ある程度動作するのではと考えます。
もし別のキーボードが存在するならば、一旦TrackPointキーボードのドライバは削除して、キーボード自体を変えてみるというのも
切り分けのためには一案かも知れません。
>>879
アドバイス、有難うございます。
このキーボードのドライバを外すと、マウス機能(TrackPoint)が使えなくなるので、それは厳しいですね。
とりあえずyamyをもう一度試してみることにします。
既に開発が終了しているらしく、サポートは一切期待できそうにないし、
前回試したときは、いきなりCtrlキーが押しっぱなしの状態になるなどの問題があったので、敬遠していたのですが...
どうしてもyamyがダメな場合はnodokaの購入を再考させていただきます。
その際はよろしくお願いいたします。
サポートしていただき、有難うございました。
プログラムからキーボード入力をWriteFileを使って行いたいのですが、
以下の様なコードでCreateFileを実行するとCreateFileが失敗します。
のどかでは、窓使いの憂鬱の様にWriteFileでキー入力ができないのでしょうか?
#define NODOKA_DEVICE_FILE_NAME _T("\\\\.\\NodokaWalk1")
m_device = CreateFile(NODOKA_DEVICE_FILE_NAME, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED , NULL);
>>890
お問い合わせありがとうございます。
下記ように、1回CreateFile()実行して、失敗したら、サービスのスタートを実施しているコードがあります。
これは、窓使いの憂鬱でも同じですが、この違いはありますか?
デバイスドライバ自体のコードにも修正がありますが、オープンしてきたバイナリをチェックするコードは無いので、他のバイナリからでも
オープンできると思います。また
デバイスドライバのファイル名と論理的なデバイス名を変更した以外には、窓使いの憂鬱とは違いは無いという認識でいます。
// open nodoka device
bool Engine::open()
{
if (m_keyboard_hook != 0)
{
m_device = INVALID_HANDLE_VALUE;
return false;
}
// open nodoka m_device
m_device = CreateFile(NODOKA_DEVICE_FILE_NAME, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);
if (m_device != INVALID_HANDLE_VALUE) {
return true;
}
// start nodokad
SC_HANDLE hscm = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
if (hscm)
{
SC_HANDLE hs = OpenService(hscm, NODOKA_DRIVER_NAME, SERVICE_START);
if (hs)
{
StartService(hs, 0, NULL);
CloseServiceHandle(hs);
m_didNodokaStartDevice = true;
}
CloseServiceHandle(hscm);
}
// open nodoka m_device
m_device = CreateFile(NODOKA_DEVICE_FILE_NAME, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);
return (m_device != INVALID_HANDLE_VALUE);
}
初心者です。Ctrl キーと マウスの組み合わせ について質問があります。
mod control + = !無変換
key 無変換 = RCtrl
としているのですが、それだと 無変換キーとマウスクリック/スクロールの組み合わせのときに無変換キーがCtrlキーの役割をしてくれません。
def option mouse-event = true とするとその問題は解決するのですが、不安定になって不具合が数えきれないくらい出てくるので、使うのを諦めました。
def option mouse-event = true を使わないで無変換キーとマウスクリック/スクロールの組み合わせを使う方法はあるでしょうか?
今はとりあえず Ctrlキーだけは changekeyというソフトで替えていますが、Ctrlキーを使ったキーバインドがうまくいかなくなるので不便です。
>>893
御報告大変ありがとうございます。状況確認しました。確かに無変換キーがCtrlキーとして機能しないですね。
窓使いの憂鬱時代から持っている問題と理解しており、すぐに解消できる不具合では残念ながらありません。
チケットとしては、以前からワンショットモディファイヤーとマウスの併用の問題がネットで報告されていましたが
そのチケットのタイトルを変更しました。
https://sourceforge.jp/ticket/browse.php?group_id=3682&tid=30898
モディファイヤとマウスの併用
不具合原因の追究などのために優先度をあげ、サポートリクエストからバグに昇格させました。
>>893
追伸です。通常のモディファイヤーと真のモディファイヤーの違いによる現象であることを確認しました。
下記のように、通常のモディファイヤーにするとどうでしょうか?
mod control += 無変換
key *無変換 = RCtrl
ご返答ありがとうございます。
確かに私の環境でも、上記のようにすると、無変換+マウスで Ctrl+マウスの働きをするようになりました。
ちなみに、mod の文無しで
key *無変換 = RCtrl
だけでも、マウスに関しては 無変換が Ctrl の働きをしました(その場合は無変換と他のキーの組み合わせではCtrlになりませんが)。
ところで、前回、def option mouse-event = true とすると不具合がたくさん出てくると書きましたが、
その後、その不具合の多くは、最近買った Microsoft製のキーボードの不具合と組み合わさっていることが判明しました。
(そのキーボードの不具合というのは、任意のキーを数秒間押していると、キーが押された状態のままになってしまうもので、モディファイヤキーの場合はロックされた状態になります。)
失礼しました。
>>897
御報告ありがとうございます。無事動作して何よりです。
また、key *無変換 = RCtrlの話は、ワンショットモディファイヤーで、例えばSandS(スペースバーをシフトとスペース併用にする)と
マウス併用時の問題に関して、解決策が見つかる可能性があると考えます。情報大変ありがとうございます。
もう一つ気づいたことがあったので、一応ご報告しておきます。
mod control + = !無変換 や mod control + = !!無変換 とした場合に、無変換+マウスが機能しませんが、
無変換を押したまま他のキー(例えば shiftなど)を押した後にマウスを操作すると、機能するようです(その間無変換は押しっぱなしです)。
>>899
御報告ありがとうございます。どちらかと言えば、不具合っぽい動作ですが、実際に使われることないだろうと考えるので
そのままで良いだろうと思います。しかし、うまく出力できれば使えるという実証になっていると考えます。どうもありがとうございます。
surface 3 pro では、ペンの上部ボタンを押すと、OneNoteが立ち上がったり、画面がキャプチャできるのですが、
のどかを入れると、正常に動きません。設定ファイルをいじってみたがよくわかりません。
ペンの1クリックでは
E0-0x5b D-LeftWindows
0x6b
E0-0x5b U-Leftwindows
0x6b
がログには出力されます。これを無視するように設定するにはどのようにすればいいでしょうか?
>>903
御報告ありがとうございます。
6bというキーコードは未定義なので、下記を登録すれば、ログの出力表示が変わると考えます。
def key PenButton = 0x6b
しかしながら通常は、キーバインド変更設定が無い場合、そのままWindowsやアプリに渡され
この場合、Surface Pro 3にインストールされたOneNote起動だったり、画面をキャプチャしてOneNoteに張り付けるなどが
機能しないとおかしいわけです。
key W-PenButton = &Ignore
で無視できるようになるかもしれませんが、うまく行かない可能性もあります。
ちなみに2回押しの場合には、同じものが2回繰り返されますか?
>>904 返答ありがとうございます。貴重なアドバイスを元に試行錯誤しました。これが正解かどうかわかりませんが、今のところは正常位動くようになりました。
def key PenButton = 0x6b
def key PenButton2 = 0x6a
key D-W-PenButton = &Ignore
key D-W-PenButton2 = &Ignore
まだ少し疑問点もありますが、今のところ動いているようです。ありがとうございます。
>>905
御報告大変ありがとうございます。
ところで、ボタンを1回あるいは2回押すことで、OneNoteへの操作(起動やキャプチャ画面を貼り付ける)が出来るのが通常と考えますが
今回の設定を入れないと機能しないけど、入れることで、ほぼ正常に機能するようになったと考えてよろしいですか?
チケットを作成しました。次のバージョンアップの際には、キー定義を追加したいと考えます。
https://sourceforge.jp/ticket/browse.php?group_id=3682&tid=34088
今日の時点では、大丈夫と思います。もし変な動作がわかった場合は、またこの掲示板に報告させて頂きます。
>>907
ありがとうございます。承知致しました。今後ともよろしくお願いいたします。
複数キーボードの使用に関する質問です。
私のパソコンだと、Bluetooth で接続したパソコンは全部 def option UnitID = Kx 0 0 0 となってしまうので、Bluetooth 接続のキーボード間で異なるキーバインドはできないと思うのですが、
内蔵Bluetooth以外にもう一つ外付けのBluetoothアダプタを付けて、一つのキーボードをそちら経由で繋いだらどうなると思われますか?
>>909
お問い合わせありがとうございます。Bluetoothのキーボードが現在 Kx 0 0 0としか認識できていないのですね。
設定ファイルに、def option UnitID = K1 0 0 0だけを記述したときに、表示される下記のように表示されると考えます。
current device name:\\?\HID#VID_0709&PID_9137&MI_00#7&2373d6f3&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 1801 37175 0
1801, 37175などではなく、Kx 0 0 0 と表示されているということになりますか?
もし、current device name: で表示された行を見せて頂けると、対応できる可能性があります。
現状の実装では、ここのHIDという文字列の後ろのVIDとPIDのところの数字を取ってきて、キーボードを区別しています。
この値がそれぞれ0になっていたり、HID(PS/2キーボードの場合はACPI)以外のキーワードだと処理していません。
早速のお返事ありがとうございます。
はい。設定ファイルに def option UnitID = K1 0 0 0 と書いて、他にdef option UnitID を書いていない状態です。
私の acer aspire p3 に有線キーボード一つと Bluetoothキーボード二つを付けて、のどかを再読み込みすると、以下のようなログが出ます。
current device name:\\?\HID#{00001124-0000-1000-8000-00805f9b34fb}_VID&0002056e_PID&100a&Col01#9&14b776a7&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 0 0 0
current device name:\\?\ACPI#10250794#4&3f4545b&0#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 0 0 0
current device name:\\?\HID#VID_040B&PID_2000&MI_00#8&30d1543b&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 1035 8192 0
current K1 0 0 0
def option UnitID = K1 0 0 0
successfully loaded.
Keyboard device change
Keyboard device change
Keyboard device change
ちなみに、このパソコンは元々セットで付いてきたキーボードが Bluetooth接続です。
>>911
御調査大変ありがとうございます。
current device name:\\?\HID#{00001124-0000-1000-8000-00805f9b34fb}_VID&0002056e_PID&100a&Col01#9&14b776a7&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 0 0 0
current device name:\\?\ACPI#10250794#4&3f4545b&0#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 0 0 0
current device name:\\?\HID#VID_040B&PID_2000&MI_00#8&30d1543b&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 1035 8192 0
2番目の表示が、PS/2キーボードであり、現在の実装ではACPIのキーワードがあれば、0 0 0 で扱うようにしています。
だからこれは認識できるのですが、HIDのキーワードがある表示のうち、3番目の物は、helpにも記載の記述と同じ形式なので
認識できて、ユニークな数字が取れています。しかし1番目の物は、初めて見る形式の物で、Windowsは、この全部の文字列で
キーボードを区別しているようですが、のどかの方では、VID_XXXX, PID_XXXXしか想定していないので、取得に失敗して
0 0 0 と判断しています。だからPS/2キーボードと区別がつかないわけです。
取れる値をお教え頂いたので、少なくともこの3個のキーボードを区別するようにのどかを改修することは出来ると考えますが
現状では、有線キーボードとどちらかひとつのBluetoothキーボードは同じキーボードに見えていることになります。
いつできるかはお約束出来ませんが、対応する方向で進めます。既存チケットに情報を追加しました。
https://sourceforge.jp/ticket/browse.php?group_id=3682&tid=30964
お返事ありがとうございます。
お返事を頂いてから、どの番号がどのキーボードに対応しているかを見るために、各キーボードを接続したり切断したりしてみたのですが、ACPIのキーワードのある文は、すべてのキーボードやマウスの接続を切ってタブレットの状態にしても何故か消えませんでした。
今から思うと、先ほどのログを出したときには Bluetoothキーボードの一つがうまくつなかっていなかったのかもしれません。
もう一つのBluetoothキーボードを持ってきて、 有線キーボード一つと Bluetoothキーボード三つが付いた状態のログを以下に書きます。
current device name:\\?\HID#{00001124-0000-1000-8000-00805f9b34fb}_VID&00021025_PID&0794&Col01#9&17c5f756&4&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 0 0 0
current device name:\\?\HID#{00001124-0000-1000-8000-00805f9b34fb}_VID&000224d3_PID&7228&Col01#9&1dce410a&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 0 0 0
current device name:\\?\HID#{00001124-0000-1000-8000-00805f9b34fb}_VID&0002056e_PID&100a&Col01#9&14b776a7&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 0 0 0
current device name:\\?\HID#VID_040B&PID_2000&MI_00#8&296cc7ab&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 1035 8192 0
current device name:\\?\ACPI#10250794#4&3f4545b&0#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}
def option UnitID = Kx 0 0 0
current K1 0 0 0
def option UnitID = K1 0 0 0
successfully loaded.
Keyboard device change
Keyboard device change
Keyboard device change
Keyboard device change
Keyboard device change
Kx 1035 8192 0 の文は有線キーボードに対応しています。
HID#{000011..... は Bluetooth接続のときに出るようです。
ACPI の文は物理的なキーボードには対応してないようです。
>>913
追試レポート大変ありがとうございます。
最初の3個がBluetoothとのことなので、それぞれ区別できるよう検討を進めます。
それからPS/2キーボードではなく、なにか特別なボタンなどがPC本体についているのではと予想します。
確かに、PC本体(タブレット)に windowsボタンが一つ付いています。
Surface Pro 3 のペン上部ボタンのOneNote起動、画面キャプチャ機能ですが、
私の環境では下記のみを109.nodokaに定義することで動作しました。
逆にIgnore設定を追加してしまうと動作しませんでした。
ご報告まで。
def key PenButton = 0x6b
def key PenButton2 = 0x6a
>>916
御報告大変ありがとうございます。
何故違うのか不明ですが、チケットに追記いたしました。
https://sourceforge.jp/ticket/browse.php?group_id=3682&tid=34088
お世話になります。
のどか利用時に、ゲームパッドだけを
のどかのフック対象から外したいのですが可能でしょうか?
def option gamepad = enable を定義していないのですが、
ゲームパッドがキーボードとして扱われ、
通常のキーボードのマッピングがゲームパッドにも適用されてしまっています。
・LLフックで利用しています。
・問題となっているデバイスは、 Razer Orbweaver と言うゲームパッドです。
・その他に Belkin n52te、 Razer Naga、 Wacom Intuous 4 と言った
キーボード入力機能を備えた物を併用しています。
複数キーボード対応で対処すると入力デバイスの数だけ対応が必要となる為、
出来ましたら特定のデバイス入力には、
あるいは特定デバイス以外には、 のどか がフックしない様にしたいのですが・・
可能でしょうか?
あるいは、どう言った対応が考えられますか?
>>918
お問い合わせありがとうございます。
Razer Orbweaver は、キーボード機能付きのゲームパッドのようです。
def option gamepad = enable 未定義の場合、ゲームパッド側はのどかでは処理していませんが
キーボード機能側は、キーボードとしてWindowsが扱っているために、のどかも、そのまま処理していると
考えます。
幸いRazer Orbweaverはマクロ機能も備えているようですから、ゲームパッドを使うアプリが起動しているときには
のどか側をオフにするか無効にされた方が良さそうです。
複数キーボード対応は、キー入力されたあとで初めて、どこからの入力かが判るものなので
遅延が発生します。また、LL Hookでの使用時には複数キーボードの認識は出来ません。
またLL Hookは仕組み上、遅延が発生するので、御使いのアプリによっては
それが障害になることも考えられます。
解決策として、二つの手段が考えられます。
ひとつめは、御使いのアプリが起動しているときには、キーマップを一切変更をしないようにすることです。
以下の行を、設定ファイルの最後に追加すれば良いはずです。
window RemoteDesktop /notepad\.exe/
notepadのところは、対象アプリの実行ファイル名称に変えてください。
二つ目は、のどか自身を一時停止か終了にすることです。
一時停止にする方法で、一番簡単なのは、c:\program files\nodokaに存在する
nodoka.exeの引数を使って、起動中ののどかに指示することになります。
nodoka -p -y を実行すれば、起動中ののどかの一時停止/一時停止解除を実行するたびに変更できます。
起動時の引数の詳細については以下をご覧ください。
http://www.appletkan.com/nodoka-doc/CUSTOMIZE-ja.html #option_arg
終了させる場合は、ヘルパーアプリを使うことが出来ます。
nshell.exe というヘルパーアプリを使って、使用するアプリの起動前後でのどかの終了と起動を行います。
ヘルパーアプリの詳細については、以下のヘルプをご覧ください。
http://www.appletkan.com/nshell.htm
以上、よろしくお願いいたします。
丁寧なお返事ありがとうございます。
ゲームパッドの用途が、ゲームを主とした開発用途でして・・
プログラミングの為にキーボードと頻繁に使い分ける状態です。
ですから、行き来の都度に
のどかを一時的に中断させて・・と言う操作は現実的で無くなっています。
特定デバイスだけ、のどかを無効に出来れば・・と思っていたのですが、
出来ないようです。
また、このゲームパッドの挙動を確認しました所、
キーの単純な割り当てのみならず、マクロまでもが
のどかを経由している事が確認出来ました。
( 1打鍵に対して複数のキーを発行した場合も、全てのどか経由 )
要件と満たす手段は結局の所、
1つしか無くて、のどかの割り当てを前提として、
ゲームパッドのキー割り当てをする必要がある様です。
とは言え、お返事によって
他の手段が無い事が分かりましたので、助かりました。
ありがとうございます。
当方win7、マルチモニタ環境です
非アクティブのウィンドウをタスクバーから閉じるや複製などをしようとした時、
極まれにマウスカーソルの挙動が非常に重くなり(2fps程度になりガクガクになる)、
そのまま30秒ほどしたのち、のどかが強制終了します
バージョン4.19以前はこのようなことはなかった気がするのですが、
類似の症状や、解決法はないでしょうか
よろしくお願いします
>>921
御報告大変ありがとうございます。
同様の御報告は受けていませんが、のどかが落ちるのだから、のどかに何か問題があるのは
明らかと言えるので大変申し訳ありません。
まず、のどか強制終了の際になにかダイアログに文言が表示されますか?
また、そのウィンドウを閉じる/複製を作る方法には、のどかのキーマップ変更によるものですか?
もしそうであれば、その設定を教えて頂ければ幸いです。
以上、よろしくお願いいたします。
ダイアログに特に表示などはありません
プチフリーズの断続が終わるとのどかの機能が使用不可になり、
タスクバーののどかアイコンが消える、という感じです
発生する際は、のどかのキーマップ変更機能などは特に使っておらず、
ウィンドウ切り替えの際に発生するようです
現状で原因の特定は難しいようなので、
4.20以前のバージョンに戻してみて、
それでも発生するようでしたらまた報告させて頂きます
Apple Wireless KeyboardをWindows環境で使用したい思っています.
そこでFnキーやEjectキーを定義したいのですが,def keyをしてものどかで反応しません.
Fnキーのキーコードが464,Ejectキーのキーコードが161らしいのですが,
こういう特殊なキーをのどかで定義することは可能でしょうか?
>>924
お問い合わせありがとうございます。
スキャンコードの調査結果で、そのコードになっているようならば、def key設定できると考えますが
もし、コードが無いようならば無理と考えます。
http://bob-mk2.hateblo.jp/entry/2013/02/03/153030
も、御参考にしてみてください。解決できそうにも読めます。
>>925
お返事ありがとうございます.
のどかの調査ウィンドウでは反応がなく,
.nodokaにdef key AppleFn = 0x01d0のように記述しても取れないので難しいようですね.
ですが,ご紹介していただいたサイトに記述されているApple Wireless Keyboard Helper for Windowsと
併用することで自分の望み通りの設定ができそうです.
ありがとうございました.
>>720 4個以上のマルチモニタ対応
>>909 複数キーボード対応にBluetoothキーボードを含める
上記二つの御要望に対する機能修正を入れた評価版を作成しました。
以下からダウンロード出来ます。もし可能ならば動作御報告など頂けると幸いです。
GuiEdit.exeは1.03になっていますが、これはときどきウィンドウサイズが最小になったまま起動することがあるので
ある一定以上より小さいときはデフォルトサイズに変更するようにしました。
http://www.appletkan.com/download/2014-10-12_nodoka.zip
zipファイルにパスワードはありません。
nodoka.exe, nodoka64.exeのバージョン番号は4.27になっていますが正式なものではなく、ディジタル署名の期限が2014-11-20となっています。
また実行ファイルしか入っていません。
以上、よろしくお願いいたします。
>>927
&WindowMonitorTo(current, 1, true, true)の対応ありがとうございます。
しかし、試してみたのですがうまく動かないようです。
「画面の解像度」でモニタをどのように並べていても関わりなく
この画面でモニタに付いている番号でいうと1→3→2→4と移動しました。
(期待する動作は、OS標準のWin+Shift+→と同じ順で移動すること。
ただしウインドウのリサイズの動作はOS標準ではなくのどかの動作になること)
バージョン表示は4.27になっていることを確認しました。
OSはWin8.1x64で、起動方法は、nodoka64.exe -k -nを管理者権限で起動しました。
>>928
早速お試しいただき、大変恐縮です。
ダメでしたか。しかし大変ありがとうございます。
手元にはモニタ4個の環境は無くて、下記のような設定で
ウィンドウやマウスポインタが移動することを試したのみなので
モニタ2個や3個では問題無く、少なくとも機能としては壊れていないと
考えていたのですが、大変残念ですが、御要望頂いてから1年以上かかっており
大変申し訳ありませんでした。
まずは環境を作ることを考えます。大変ありがとうございました。
key C-_4 = &WindowMonitorTo(current, -1)
key C-_5 = &WindowMonitor(0)
key C-_6 = &WindowMonitorTo(current, 1)
key C-_8 = &MouseMonitorTo(current, -1)
key C-_9 = &MouseMonitor(0)
key C-_0 = &MouseMonitorTo(current, 1)
>>929
モニタ3個でも確かめられると思います。
モニタの配置によらず、
C-_6でのウインドウの移動方向がWin+Shift+→ と一致すれば
問題なしです。
こちらでもモニタ3個でテストしてみたところ、今回の評価版ですと、
「画面の解像度」でモニタの配置を321にしたら
C-_6とWin+Shift+→の移動方向は一致しましたが、
123にしたら反対方向に移動しました。
例えばモニタ2にウインドウがある時にC-_6を押すとモニタ1に移動しますが
Win+Shift+→を押すとモニタ3に移動します。
>>930
お世話になっています。モニタ4個ではまだ未確認ですが、ソースコードにおいて、モニタの位置関係の判断に誤りがあったので
再度作り直してみました。ご評価いただけましたら、幸いです。
http://www.appletkan.com/download/2014-10-14_nodoka.zip
>>931
ありがとうございます。
モニタのtopが一致する場合は
モニタ3個と4個で試した限り、正しくモニタが並んでいる順番で移動しました。
topが違う場合は、まだWin+Shift+→ と移動する順番が違う場合がありました。
例えば、モニタ3個が132の順で並んでいて、座標が以下の場合です。
3のモニタだけ縦が小さいのでbottom側で合わせているケースです。
1: left=-3200 top=0 right=-1280 bottom=1200
3: left=-1280 top=176 right=0 bottom=1200
2: left=0 top=0 right=1920 bottom=1200 primary
この場合、Win+Shift+→ だと1→3→2と移動しますが、
C-_6だと反対周りに2→3→1と移動します。
(なお、たまたまかもしれませんが、4.26だと正しく1→3→2と移動します)
また、別件となるので触れていませんでしたが
「モニタの位置関係の判断に誤りがあった」とのことなので関係あるかもしれない点として
モニタが3個の時、C-_6は何度も押すとループしてぐるぐる周るのですが
C-_4はどれかのモニタで止まってしまいます。
モニタが2個や4個では発生しないようです。
>>932
御報告大変ありがとうございます。
現在は、Windows側がモニタの情報を返してくる順番が物理的な順番とは無関係ということから
取れた座標で左右の位置を判断しています。過去のWindowsでも問題無いよう新しいAPIは使用していません。
以下のような判断基準ですが、比較の際、leftとtopだけを見ているので、誤ってしまうようです。
bottomやrightも入れて、さらに考えてみます。以下Xと書いてあるのが、leftのこと、Yと書いてあるのがtopのことです。
// X
// 小 同 大
//
// 小 左 左 左
// Y 同 左 - 右
// 大 右 右 右 Xの大小に関係なく、Yが小さいときは左に入れる。
// Xが小さいとき、Yが同じなら左。
二つ目の方の問題は、理由が思いつきませんが、モニタの数が奇数になるときが特徴ですから、その点から考えてみたいと思います。
追試と御報告大変ありがとうございました。
>>933
すみません、判断基準のご説明の見方がよく分からないですが、
おそらく、まずtopで比較して、topが同一ならleftで比較しているということですね。
Win+Shift+→の移動順を見ていると、
まずleftで比較して、leftが同一ならtopで比較しているようです。
leftが先の方が物理的な配置順の感覚に合うと思います。
bottomやrightは見なくてもよさそうです。
モニタが3個の時にC-_4でループできないのは、
SFにあるr222のソースを拝見したところ、
移動先の決定に%を使っているのと分母が符号なしであるsize_tなので、
0番目のモニタの移動先が-1 % 3U = 0番目という計算になるため
移動しなくなるのだと思います。
>>934
どうもありがとうございます。ついでにデバッグまで、すいません。
前半、モニタの左右の位置だけであれば、leftだけを比較すればよいのですが、上下にもモニタが並んでいる場合
上の段を左から右に辿り、続いて次の段の左からと出来るようにすることを想定しています。
しかし現在手元のコードでは、例えば、一つ目のモニタの右側に、二つ目のモニタがあるとして
二つ目のtopの位置が、一つ目のtopの位置よりも上だと、右側になるケースもあるので、
無条件に、左側と現在判断しています。
だから、二つのモニタの位置関係で、bottomとtopを比較するケースを追加すれば、直りそうなので、少しお待ちください。
後半、オリジナルの窓使いの憂鬱から変わっていない部位なので、4.26でも、そうなるならば潜在バグということになります。
大変ありがとうございます。
>>934
再度バイナリを作ってみました。位置関係の判断誤りと、左への移動が途中で止まる不具合の両方に対応したつもりのものとなります。
http://www.appletkan.com/download/2014-10-18_nodoka.zip
よろしくお願いいたします。
>>936
モニタの移動順については、配置している順番に移動するようになりました。
ありがとうございました。
モニタが3個だと左への移動が途中で止まるのは、直っていないようです。
>>937
御報告大変ありがとうございます。
前半、何よりです。お付き合いくださり感謝しています。
後半、剰余を計算したさい分子が負になると正しい値を求めることが出来ていないので
補正するようにしたのですが、まだ何か足りないようです。
また少し考えてみます。ありがとうございました。
最近インストールして試行錯誤しながら設定を書いているのですが、どうしてもわからないので質問させてください。
key IL-A = S-_3
例として上のようにした時、IMEオンでAを押した時に#が出ますが、そのまま続けてAを押すと2文字目以降は「あ」が出て「#あああ」となってしまいます。
2文字目以降も常に#を出すようにするにはどのように書いたらいいのでしょうか?
初歩的なこととは思いますがよろしくお願いします。
>>939
お問い合わせありがとうございます。
key IL-*IC-A = S-_3
になります。ILは、IME ONになるときと考えると良いでしょう。
FAQ Q6もご覧ください。以上、よろしくお願いいたします。
http://www.appletkan.com/nodoka-doc/MANUAL-ja.html #FAQ
>>940
なるほど、そういうことだったんですか理解できました。
初歩的なことに回答していただきありがとうございました。
>>937
以下の設定で、Ctrl-4やCtrl-8を使ってモニタを左に辿って行くと、どこかで留まってしまい次のモニタに辿れない不具合に対応しました。
http://www.appletkan.com/download/2014-11-02_nodoka.zip
key C-_4 = &WindowMonitorTo(current, -1)
key C-_5 = &WindowMonitor(0)
key C-_6 = &WindowMonitorTo(current, 1)
key C-_8 = &MouseMonitorTo(current, -1)
key C-_9 = &MouseMonitor(0)
key C-_0 = &MouseMonitorTo(current, 1)
>>942
左への移動、留まらずに動いています。
いろいろとありがとうございました。
>>943
御報告ありがとうございます。4.27リリースに向けての準備を進めます。
のどか いつも便利に使わせていただいております。
のどかが起動している状態でwasdで移動するようなゲームをプレイしていると
たまにキーボードに触れていなくても移動し続ける現象が発生してしまいます。
移動している方向に対応するキーを押すと移動が止まるためキーアップが検出できていないのかなという感じです
この現象はのどかを終了すると発生しないのですが、のどかが起動していると一時停止中であっても生じます。
これはのどかが原因で発生しているのでしょうか それとも当方の環境が原因で生じているものなのでしょうか
>>945
御報告ありがとうございます。押しっぱなし自体は御報告あります。
ただし、それらは、モディファイヤーキーの押しっぱなしであり、CtrlキーやShiftキーなどが押されたままとなり
御報告どおり、キーアップをWindowsが認識しなかったために、発生します。
御報告頂いた内容では、ゲームがWASDのキーアップを認識できずに
押されたままと認識していると判断しているのだろうと考えます。ただし単独キーでの御報告は初めてです。
一時停止といってもキーバインドの変更を行わないだけで、必ずデバイスドライバからキー入力を受けて
また、デバイスドライバに戻しているので、のどかが原因であると考えます。
実は解決策は見つかっていません。いくつかの症状ごとに原因は異なるのではと考えているのと、再現させることは出来ても
それを防ぐ手段が見つからないからです。
ログの詳細をチェックして、再現させログを取得した際、どのようなキー入力操作がそうさせているか判るかも知れませんが
たぶん、そこから先へは無理で、そのようなキー入力をやらないみたいな省力的な解決策になるかもと思います。
以上、よろしくお願いいたします。
4.27のリリースお疲れ様です。
今までnodoka64_hil.exe -k -nで使っていましたが、hil版が無くなったので
nodoka64.exe -k -n -g 2で起動しましたが
Alt+TabやWin-Xが効きません。
起動方法が間違っていますでしょうか?
nodoka.exeなら-k -n -g 2でAlt+Tabなどが効きました。
(64bitプロセスにキー変更が効かなくなりますが)
>>947
御報告大変ありがとうございます。
引数の記述には問題がありませんが、おっしゃる通り、Windows 8.1 x64版上で、Alt-Tab, Win-Xが機能していないことを
確認しました。
整合性レベルが変わっていることは確認していましたが、Windows 8上で該当キーバインドに問題が無いか確認していませんでした。
大変申し訳ありません
不具合原因を追究し、改修するか、hil版を作成してリリースする方向で考えます。
とりあえずは、4.26のhil版を御使いになる。-w引数を使う。のいずれかで御対応頂ければ幸いです。
御迷惑をおかけして大変申し訳ありませんでした。
以上、よろしくお願いいたします。
のどか4.27を利用させて頂いています.
よくある質問かもしれませんが,うまく過去履歴を見つけられませんでした.
Windows PCのスペースキーの横の「無変換」「変換」キーを,半角/全角の切り替えにするにはどのようにセッティングすればよいでしょうか?
よろしくお願いします.
>>949
お問い合わせありがとうございます。
インストール先 contrib\ime.nodoka では下記のような設定例があります。
参考にしてみてください。
key ~IL-変換= $ToggleIME # 変換 => IME ON
key IL-*IC-無変換= $ToggleIME # IME ON中に 無変換 => IME OFF
key IL-*IC-変換= &SetImeConvStatus(0x0019) # IME ON中に 変換 => ひらがなモード
初めまして。
気になったことがあったので確認させて下さい。
設定ファイルの一行目でincludeを指定しても正常に読み込まれないのですが、これが正常な動作なのでしょうか。
例えば以下のように設定します。
include "104.nodoka"
keymap Global
key C-A = Home
この状態で読み込むと「invalid key name @ load_key_name」でエラーが出ます。
一行目を空行等にして、二行目で指定する分には正常に動作するので気になりました。
のどか 4.27を使用しています。
以上です、よろしくお願いします。
>>951
御連絡ありがとうございます。これは窓使いの憂鬱時代からの仕様となります。
文字コード判定の関係で、使用している文字コードによっては
設定ファイルの最初の行の最初の1文字がうまく読めません。
通常1行目は、コメント行などにすることが普通なことや、大きな問題でもないので
調査もせず、また公けにもせず、そのままにしてきました。
チケットを作成しました。御報告ありがとうございました。
https://sourceforge.jp/ticket/browse.php?group_id=3682&tid=35017
以上、よろしくお願いいたします。
windows7 (64bit) のどか4.27
ShellExecuteを使った時に起動した画面が最前面に来ません。以下のようなショートカットを作っています
key A = &ShellExecute("open", "C:\\Windows\\SysWOW64\\notepad.exe",,, ShowNormal)
※show_command の部分は一通り試しましたが結果は変わりませんでした
やり方は、エクスプローラなどを開き、その状態で上記のショートカットを実行しています
例1)メモ帳の場合、最前面で開かず必ずエクスプローラの裏で開きます
例2)Everythingというソフトでは、1つ目のウィンドウは最前面で開きますが、
一つ目のウィンドウはそのままで、エクスプローラをアクティブにし2つ目以降を起動しようとすると、
エクスプローラの裏で起動してタスクバーが点滅するだけになります
Everything(http://www.forest.impress.co.jp/library/software/everything/ )
例3)DeskTopmostというソフトでは、画面が一瞬だけ表示されすぐ消えます(たまに上手くいく)
DeskTopmost(http://www.forest.impress.co.jp/article/2009/06/19/desktopmost.html )
このようにソフトによって3つくらいのパターンになります。
windows標準のソフトで例を示したかったのですが再現率の高さより上記ソフトを例に挙げさせてもらいました。
32bitソフトから64bitソフトを呼び出したりする部分が怪しいのかな?とは思うのですが、
自分のテストだけではよく分からなかったので調査頂けたらと思います。よろしくお願いします。
>>953
お問い合わせありがとうございます。
&ShellExceuteは(下で試した&SetForegroundWindowも)、アプリ側の挙動に依存して、最前面にならないことがあることは
判っていたので、ヘルプではそれぞれ、「その挙動は実行ファイルに依存します。」
「制限事項として、Windowsの仕様により、最前面に表示されずに、タスクバーで点滅するのみとなることがあるので ご注意ください。」
と記載していました。
メモ帳で4パターン試してみましたが、どれも最前面になりました。(Windows 7 x64, のどか4.27)
下記に記載した設定ファイルで試してみたものは上から
32bit版、64bit版、コマンドプロンプトから、&ShellExceuteを実行後、 &SetForegroundWindowで最前面にする。
の4パターンとなります。
再現しなかったので調査は難しく、また再現したととしても仕様ということになりますが
例えば以下の挙動はどうか御時間あるときに試して頂けると幸いです。
コマンドプロンプトを開いて、notepad[Enter]をタイプするとメモ帳が起動しますが、開いたメモ帳が
常に最前面にならない。あるいはスタートメニューからアクセサリのメモ帳を選択するたびにメモ帳が開くが最前面にならない。
#
include "109.nodoka"
key C-_1 = &ShellExecute("open", "C:\\Windows\\SysWOW64\\notepad.exe",,, ShowNormal)
key C-_2 = &ShellExecute("open", "C:\\Windows\\System32\\notepad.exe",,, ShowNormal)
key C-_3 = &ShellExecute("open", "cmd.exe", "/c notepad.exe",, hide)
key C-_4 = &ShellExecute("open", "C:\\Windows\\System32\\notepad.exe",,, ShowNormal) &SetForegroundWindow(/Notepad/)
以上、よろしくお願いいたします。
調査頂きありがとうございました!
コマンドプロンプトからは最前面になりました。
keyではC-_4のみ最前面にきました。
同じ環境(Windows 7 x64, のどか4.27)で1〜4まで全て上手くいっているとのことなので、
他のソフトが影響しているのかもしれません。
と書いたところで思い立ったので常駐ソフトを消せるだけ消してみたら、
4が失敗することが出てきて、3が上手くいきました。
う〜ん、、お手上げですorz
>>955
追試など大変ありがとうございます。
プログラムによっては、うまく行く可能性がある3か4、どちらかを御使い下さい。
のどか本体自体では現状どうにもなるものでもないのですが
でもスタートメニューからでも必ず最前面に来ると思うので、なにか
うまい制御の仕方があるのかも知れません。継続して調査することとするために
サポートリクエストと言う形でチケットを作成しました。
https://sourceforge.jp/ticket/browse.php?group_id=3682&tid=35056
ShellExceuteがじゃじゃ馬すぎるので(のどかじゃなくてMicrosoftの関数がという意味で)、
中の人にも無理と言われ諦めもつき、「ショートカットをクリック」にしました。
ダサすぎますが一番理想通りに動いてくれるのでこれで凌ごうかなと思います。
大変丁寧なサポートありがとうございました!
こんばんは。
Ctrlキー単独押しの場合だけESCと同じ働きにできますか?
下記では Ctrl+X 押しても ESC+Ctrl+X と認識されてしまいました。
## Oneshot Ctrl => Esc
mod Control += !!RCtrl !!LCtrl
key C-RCtrl = Esc
key C-LCtrl = Esc
>>958
お問い合わせありがとうございます。
右側のコントロールキーで試されているでしょうか?
左側のコントローキーでは御提示頂いた設定ファイルで問題ありませんでした。
どうやらこれはバグです。
キー定義を&DescribeBindings表示で表示させると
モディファイヤCtrlのうち、ワンショットにしただけでなく
RightControlの設定が残ってしまっています。
ご不便をおかけして大変申し訳ありませんがチケットを作成しました。
https://osdn.jp/ticket/browse.php?group_id=3682&tid=35136
大変申し訳ありません。どこかのバージョンでデグレートしているか
元々の窓使いの憂鬱でも抱えていた不具合か不明ですが
調査を進めます。御報告大変ありがとうございました。
以下設定ファイル
include "109.nodoka"
key F1 = &DescribeBindings # 現在のキーマップのログ出力
## Oneshot Ctrl => Esc
mod Control += !!RCtrl !!LCtrl
key C-RCtrl = Esc
key C-LCtrl = Esc
以下&DescribeBindings表示
window Global ( /.*/ || /.*/ ) = &OtherWindowClass
mod Shift = LeftShift RightShift
mod Control = RightControl !!RightControl !!LeftControl
mod Alt = LeftAlt RightAlt
mod Windows = LeftWindows RightWindows
key F1 = &DescribeBindings
key C-LeftControl = Esc
key C-RightControl = Esc
以上、よろしくお願いいたします。
ご対応ありがとうございます!
ご推測通り、右側Ctrlで試してました。
その後、
ワンショットCtrl => Escape はやめて
ワンショット英数 => Escape にしようとしましたが、不成功でした。
バグでしょうか?設定不足でしょうか?
include "109.nodoka"
include "104on109.nodoka"
define USE104on109
keymap Global
key F1 = &DescribeBindings # 現在のキーマップのログ出力
## 英数 → Ctrl
## 仮想キーの調査で見るとShift+Ctrlが押されてる模様 [2015-05-10]
mod Control += Eisuu
key *Eisuu = *LCtrl
## Oneshot Eisuu => Esc
mod Control += !!Eisuu !!LCtrl
key C-LCtrl = Esc # !!左Ctrlは成功
## !!英数→Escape にならない。↓無くても不成功
key C-Eisuu = Esc
key S-C-Eisuu = Esc
#########
window Global ( /.*/ || /.*/ ) = &OtherWindowClass
mod Shift = LeftShift RightShift ReverseSolidus
mod Control = RightControl !!英数 !!LeftControl
mod Alt = LeftAlt RightAlt
mod Windows = LeftWindows RightWindows
key F1 = &DescribeBindings
key C-LeftControl = Esc
key 英数 = LeftControl
key C-英数 = Esc
key S-C-英数 = Esc
>>960
御検討大変ありがとうございます。
ヘルプのFAQ Q23にあるように 104on109.nodokaを使用すると
英数キーを押すと、Shiftが必ず押される設定になります。それを回避するには
以下を追加してください。
def subst *英数 = *英数
ヘルプのFAQ
http://www.appletkan.com/nodoka-doc/MANUAL-ja.html #FAQ
>>961
サポートありがとうございます!!
FAQ-23の件、理解いたしました。
ワンショット英数キーをESC化するにはどうすれば良いのでしょうか?
下記設定では働きませんでした。
日本語キーボード、Windows7環境です。
define USE104on109
include "109.nodoka"
include "104on109.nodoka"
def subst *英数 = *LCtrl
keymap Global
## 効かない
mod Control += !!英数
key C-英数 = Esc
## 仮想キー調査結果
## 0x11 &VK( D-CONTROL )
## 0x11 &VK( U-CONTROL )
## 英数には効かない
mod Control += !!LCtrl
key C-LCtrl = Esc
## 0x11 &VK( D-CONTROL )
## 0x11 &VK( U-CONTROL )
## 0x1b &VK( D-ESCAPE )
## 0x1b &VK( U-ESCAPE )
>>962
御検討ありがとうございます。ログの詳細を見るかぎり、英数キーを押して話したときには
Ctrlキーが押されておらず単独の英数キー扱いでしたので、以下の設定ではどうでしょうか?
---
#
include "109.nodoka"
include "104on109.nodoka"
key F1 = &DescribeBindings # 現在のキーマップのログ出力
def subst *英数 = *英数
## Oneshot 英数 => Esc
mod Control += !!英数
key 英数 = Esc
>>963
サポートありがとうございます!!
ご教示いただいたコードで希望通りとなりました。
英数-X等 => Ctrl-X等
英数OneShot => Escaape
かなり難解でしたorz
ありがとうございました!!
どこで問い合わせすれば良いかわからなかったのでこちらで失礼します
Windows 10のリリースが迫っておりますが正式対応の予定や動作保証など
今後のロードマップどのようになっているか教えて頂けますか?
よろしくお願いします。
最後にいつも愛用しております。ありがとうございます。
>>965
お問い合わせ大変ありがとうございます。
以下のようなことを検討中です。よろしくお願いいたします。
Windows 10リリース直前あたり(あと1週間切っています)で、一旦現時点でのbug fix版のリリースを考えています。
その後でWindows 10リリース後、微調整が必要であれば対応して、Windows 10対応版を
リリースしようと考えています。これは、アップグレード版となり既存ユーザー様のうち
2014年12月31日以前に御購入された方にはアップグレード版御購入(予価1000円)をお願いすることになります。
アップグレード版の申込みは2か月間を想定し、期限は9月末か10月末あたりを想定しています。
現状Windows 10 Insider版上で大きな問題は出ていないと思いますが
ブラウザであるEdgeのWindowでは、IMEの状態が取れていないなどあるので
改修を試みるか、回避策あるいは制限事項をあきらかにすることになると考えます。
>>966
早速の返信ありがとうございます!
Windows 10対応の予定があるようで安心しました
ありがとうございます
sandboxie下で立ち上げたウィンドウを拾うことはできないでしょうか?
調査しても枠は認識できるようですがCLASS,TITLEが拾えないので
指定した窓(アプリ)で異なるキー設定ができないでいます。
なにか特別なオプションなり設定で回避できるのでしょうか?
通常に起動させたものはCLASS,TITLEともに認識できています。
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板