DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

ThinkPad用キーボードキー入れ替えソフト

ThinkPadのキーボードにはFnキーと組み合わせてメディア再生キーがついてます。

いつもすてきな[ThinkPad Geometry]さんのサイトでごらんください。
ThinkPad 戻る・進む/Webナビゲーションキーウザすぎ→うめちゃえ - Blog:TP Geometry
http://thinkpadblog.blog96.fc2.com/blog-entry-407.html

画像を拝借します。
Thinkpadキーボード

このキーボード機能、何のやくにもたった試しがない!
たぶん、100年使っても一度も使わないと思います。
だって俺が使っているVLCメディアプレーヤーではこのキーに対応してないんですもん。

他の世間のメディアプレーヤー自体がこのキーに対応しているんですか?
世界の全員から忘れられてるでしょう。

ということで、このキーは


    ── ∧,,,,∧/つつムダムダムダムダムダ
   ── ミ.,,・д・彡つつ ) ムダムダ   
   ── ミ つ ⊃ ⊃ ムダムダムダムダ
   :∧,,∧.  .ミ ヽ⊇⊃ ムダムダムダムダムダダダダー  
  ミ ,,゚Д゚彡 ヲヲヲヲォヲヲヲォヲヲ
  ミつ  ,,つ 
   ミ   ミ
   し'~`J  

無駄無駄っていいたいから、スタンド出してみました。

ですので、無駄なものは書き換えてしまえということで
独断と偏見に満ちた目で、このキーを変更します。

ここで、前回のソースが役に立つわけです。


一般的なノートPCは、

Fnキーを押しながらだと、
左右はHome/End
上下はPageUp/PageDown
になります。

画像はこちら。
レノボ、ThinkPadのキーボード設計へのこだわりを開発者が語る
http://pc.watch.impress.co.jp/docs/2007/1114/lenovo.htm
>ちなみに他社では、「ろ」のキーと「SHIFT」キーの間にカーソルキーが存在するものもある。


ThinkPadは
左右でメディアプレイヤーの曲切り替え
上下でメディアプレイヤーの停止と再生
非常に謎。

ということで、このキーを置き換えます。
前回のコードも入ってますが、次のように書き換えるだけで
この機能が実装されます。

procedure TMainForm.WMHotKey(var Msg: TWMHotKey);
begin
 {↓登録したHotKeyNumberによってcaseで分岐出来ます}
 case Msg.HotKey of
  1: begin
   keybd_event(VK_CONTROL , 0, 0, 0);
   keybd_event(VK_SHIFT , 0, 0, 0);
   keybd_event(VK_TAB , 0, 0, 0);
   keybd_event(VK_TAB , 0, KEYEVENTF_KEYUP, 0);
   keybd_event(VK_SHIFT , 0, KEYEVENTF_KEYUP, 0);
   keybd_event(VK_CONTROL , 0, KEYEVENTF_KEYUP, 0);
  end;
  2: begin
   keybd_event(VK_CONTROL , 0, 0, 0);
   keybd_event(VK_TAB , 0, 0, 0);
   keybd_event(VK_TAB , 0, KEYEVENTF_KEYUP, 0);
   keybd_event(VK_CONTROL , 0, KEYEVENTF_KEYUP, 0);
  end;
  3: begin
   keybd_event(VK_HOME, 0, 0, 0);
   keybd_event(VK_HOME, 0, KEYEVENTF_KEYUP, 0);
  end;
  4: begin
   keybd_event(VK_END, 0, 0, 0);
   keybd_event(VK_END, 0, KEYEVENTF_KEYUP, 0);
  end;
  5: begin
   keybd_event(VK_PRIOR, 0, 0, 0);
   keybd_event(VK_PRIOR, 0, KEYEVENTF_KEYUP, 0);
  end;
  6: begin
   keybd_event(VK_NEXT, 0, 0, 0);
   keybd_event(VK_NEXT, 0, KEYEVENTF_KEYUP, 0);
  end;

 end;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
 //<・>
 SethotKeyToOS(Self.Handle, 1, VK_BROWSER_BACK, False, False, False, False);
 SethotKeyToOS(Self.Handle, 2, VK_BROWSER_FORWARD, False, False, False, False);

 //←・→・↑・↓
 SetHotKeyToOS(self.Handle, 3, VK_MEDIA_PREV_TRACK, False, False, False, False);
 SetHotKeyToOS(self.Handle, 4, VK_MEDIA_NEXT_TRACK, False, False, False, False);
 SetHotKeyToOS(self.Handle, 5, VK_MEDIA_STOP, False, False, False, False);
 SetHotKeyToOS(self.Handle, 6, VK_MEDIA_PLAY_PAUSE, False, False, False, False);
end;

なかなか便利ですね。

実は、さらにつっこみをいれておくと、
この疑似Home/End/PgUp/PgDnでは、CtrlやShiftキーとの同時押し機能は
実現できてないっす。

これも、やるとなると、それぞれのキーに対して
Ctrl押し
Shift押し
Ctrl+Shift押しの3パターンを追加する必要があるから
12パターンの登録が必要になりそうですね。

ずらずら並べるのはかっこわるいので
なんかいいまとめ具合を考えてみますよ。

誰か自分でソース書いてみます?
スポンサーサイト

| 未分類 | 01:07 | comments:0 | trackbacks(-) | TOP↑

COMMENT















非公開コメント

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。