はてなキーワード: アプリケーションキーとは
かなりガチめにブラインドタッチを習得して、Tab、Shift、Alt、アプリケーションキーあたりは見ないで使える。右側もフルキーボードであればHome、End、PageUp、PageDownが見ないで使える。
なので割と本当にずっとパソコンの画面しか見てないんだけど、最近になって『キーボードに視線を落とすと焦点が合うのに時間がかかる』ようになってしまった。
これがすごく気持ち悪い。キーボードに視線を落とすたびに焦点の調整で視界が歪むので、脳がぐらぐらする。
多分、変な格好で寝るとその形で筋肉が硬くなってバキバキになるのと同じことが目の中で起こってるんだと思う。焦点を合わすための筋肉がこの形で硬くなってしまう。
という訳でブラインドタッチを習得するにしても程々で、視線はちょくちょくモニターから外した方がいいと思う。キーボードとモニター間で視線移動する頻度が高い方が目(と多分首)にいい。
レジストリを使ってキーアサインを変更する方法です。キーボードのキー配列をカスタマイズして使いたいけど、会社でフリーソフトが禁止されていてできないという人とかはこの方法が使えます。Windowsに元から入っている機能で設定を変更するだけなので、追加のソフトは不要です。やってみると意外と簡単ですが一応レジストリをいじるので自己責任で行いましょう。
レジストリエディターが開きます。
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Control
Keyboard Layout
「Keyboard Layout」(Layoutsではない)フォルダを選択した状態にします。
右側に「新しい値#」というファイルができるので「Scancode Map」という名前に変えます。
■例、CapsLockをCtrlに変える場合
00 00 00 00 00 00 00 00
02 00 00 00 1D 00 3A 00
00 00 00 00
以上です。
02 00 00 00 (変更するキーの数+1を最初に書きます、16進数です。あとは0を書いておきます)
1D 00 3A 00 (変更後のアサインと、変更するキーのコードを書きます。下記参照)
他にも例を挙げると下記のようになります。
■例、半角全角をEsc、カタカナひらがなを半角全角に変える場合
00 00 00 00 00 00 00 00
03 00 00 00 01 00 29 00
29 00 70 00 00 00 00 00
■例、CapsLockをCtrl、無変換をBackspace、変換をEnterに変える場合
00 00 00 00 00 00 00 00
04 00 00 00 1D 00 3A 00
0E 00 7B 00 1C 00 79 00
00 00 00 00
Esc、01 00
F2、3C 00
F4、3E 00
F5、3F 00
F6、40 00
F7、41 00
F8、42 00
F9、43 00
F10、44 00
F11、57 00
F12、58 00
半角全角、29 00
Backspace、0E 00
Tab、0F 00
CapsLock、3A 00
Enter、1C 00
左Shift、2A 00
右Shift、36 00
左Ctrl、1D 00
左Win、5B E0
左Alt、38 00
無変換、7B 00
Space、39 00
変換、79 00
右Alt、38 E0
右Win、5C E0
アプリケーションキー、5D E0
右Ctrl、1D E0
Insert、52 E0
Delete、53 E0
Home、47 E0
End、4F E0
PageUp、49 E0
PageDown、51 E0
上、48 E0
下、50 E0
左、4B E0
右、4D E0
Space/Enter/Backspace/Delete も文字入力
F4 はAltと押してウィンドウ閉じる。単体は個人的には独自のショートカットに割り当ててるから使ったこと無い。
F5 はリロード
F11 は全画面
ESC はいろいろなキャンセルっぽいときに使える。一番使うのはタスクマネージャにCtrl-Shift-ESC。ChromeだとShift-ESC
PrtScr はスクショ。Altと押すことが多め。
ScrollLock はエクセルのスクロールのしかた変えるときに
PauseBreak はコマンドプロンプトの流れていくのを一時的に止めるときに
Insert は上書きモードにしたいとき。あと、ShiftやCtrlと組み合わせてカット・コピーになるソフトがある
PgUp/PgDn はネットみてるときやエディタで一気にスクロールしたいとき
Home/End もブラウザで最初最後に飛んだり、エディタで行もしくは全体の最初最後に飛ぶ時
Tab はフォーカス切り替え。あとプログラムとか書くならインデント。
CapsLock はShiftと押して大文字固定にしたり、単体で押してアルファベット入力だけどIME使いたいときの切り替えとか
半角全角はIMEの切り替え
NumLock はテンキー付きなら常時ONでいいんだけど、テンキー無しのキーボードでテンキー配列で入力したいときに押す
無変換はひらがな・カタカナ・半角カタカナに切り替えるときに。F6/F7/F8でもいい。個人的にはAHKで修飾キーにもしてる
変換は入力確定したのをIMEで再編集するとき。稀にスペースキーがバグって変換できないときにスペース代わりに押したこともある
右側Ctrl/Alt/Shiftはめったに使わないけど、片手で操作したいときやVirtualBoxの特殊キーに使う(安いキーボードだとたまにない)
アプリケーションキー?は右クリック代わり。webページで右クリック禁止されてるときにこっち押したりする
Fnキーはキーが足りないキーボードについててWi-Fiや画面表示や外部接続の切り替えとかPC(キーボード)ごとにいろいろできる。
余り使わないのはあっても、全く使わないはほとんどなかった。
LiveDoor認証がでたらしいので、とりあえず寝際にちゃちゃっと書こうとしたのだけどなんかうまくいかない。
「ログインURLの有効期限が切れています」とかでちゃうんだ。
なにか間違ってるかな?
<?php // LiveDoor認証に必要なリンクの生成 // 定数がクラス内に切ってあるので環境にあわせ変更してください include_once('authlivedoor.class.php'); // Livedoor認証用クラス $obj_auth = new AuthLiveDoor(LIVEDOOR_APIKEY, LIVEDOOR_SECRET); $livedoorloginurl = $obj_auth->getLoginUrl(); ?> <div style="border:solid 1px #666666;"> <a href="<?= $livedoorloginurl ?>">ライブドア認証を利用してログインする<br /> <img src="http://auth.livedoor.com/img/cmn/head_livedoor.gif" border="0"> <img src="http://auth.livedoor.com/img/cmn/head_logo.gif" border="0"> </a><br />
<?php // this code is writen by utf-8 & lf //http://auth.livedoor.com/login/?app_key=<app_key>&perms=<perms>&t=<time>&v=1.0&userdata=<userdata>&sig=<sig> // LiveDoor外部認証APIを利用する // キーは各開発者ごとに取得が必要です。 http://auth.livedoor.com/ ここより取得できます。 // コールバックURLには authlivedoor.php を指定してください // --- 下記宣言を環境に合わせて変更してください。 --- define("LIVEDOOR_APIKEY" ,""); // アプリケーションキー define("LIVEDOOR_SECRET" ,""); // LiveDoor認証秘密キー // --- ここまで --- class AuthLiveDoor { const LIVEDOOR_AUTH_PORT = 80; // ポート const LIVEDOOR_AUTH_TIMEOUT = 10; // タイムアウト const LIVEDOOR_AUTH_VERSION = '1.0'; // 認証APIのプロトコルバージョン const LIVEDOOR_AUTH_PERMS = 'id'; // 認証APIのアクセス権 const LIVEDOOR_AUTH_FORMAT = 'xml'; // 認証APIの取得フォーマット const LIVEDOOR_AUTHURL = "auth.livedoor.com"; // LiveDoor認証URL private $login_state = false; private $login_id = ""; private $err_msg = ""; private $apikey = ""; private $secret = ""; public function __construct($apikey, $secret) { $this->apikey = $apikey; $this->secret = $secret; } // // $cert = $_GET['token']; public function getAuth($token) { if ($token == "" ) { return; } $api_time = date('U'); // エポック秒で $param_ary = array($this->apikey ,AuthLiveDoor::LIVEDOOR_AUTH_FORMAT ,$token ,api_time ,AuthLiveDoor::LIVEDOOR_AUTH_VERSION ); sort($param_ary); $api_sig = hash_hmac('sha1',implode('',$param_ary),$this->secret); $param = "app_key=".$this->apikey ."&format=".AuthLiveDoor::LIVEDOOR_AUTH_FORMAT ."&token=".$token ."&t=".$api_time ."&v=".AuthLiveDoor::LIVEDOOR_AUTH_VERSION ."&sig=".$api_sig; $fp = fsockopen(AuthLiveDoor::LIVEDOOR_AUTHURL , AuthLiveDoor::LIVEDOOR_AUTH_PORT , $errno , $errstr , AuthLiveDoor::LIVEDOOR_AUTH_TIMEOUT); if (!$fp) { $this->err_msg = "$errstr ($errno)<br />\n"; } else { $out = "POST /rpc/auth?$param HTTP/1.1\r\n"; $out .= "Host: auth.livedoor.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); $ret = ""; while (!feof($fp)) { $ret .= fgets($fp, 2048); } fclose($fp); } // LiveDoorの認証XMLのパターン $pattern = '/(\s*<livedoor_id>)(.*)(<\/livedoor_id>)/'; preg_match_all($pattern,$ret,$getAry); $livedooruserid = $getAry[2][0]; // ユーザーIDを取得できた場合 if ($livedooruserid != "") { // ログイン成功 $this->login_state = true; $this->login_id = $livedooruserid; return ture; } } public function getLoginState(){ return $this->login_state; } public function getLoginId(){ return $this->login_id; } public function getLoginUrl() { # http://auth.livedoor.com/guide/ # http://auth.livedoor.com/login/?app_key=<app_key>&perms=<perms>&t=<time>&v=1.0&userdata=<userdata>&sig=<sig> # app_key 必須 登録時に発行されたアプリケーションキー # perms 必須 要求するアクセス権、現状userhashとidの2種類がある # t 必須 URLが生成された時間をエポック秒で表したもの # v 必須 プロトコルバージョン、現在は1.0で固定 # userdata 任意 コールバックURLに引き継ぎたい値を255バイトまで自由に設定できる # sig 必須 このURLの正当性を確認するためのシグネチャ // ログインURLの有効期限が切れています // ヾ(。o、゜)ノ ここらへんがわからん!! // $api_time = time()+32400; // エポック秒で $api_time = date('U')+32400; // エポック秒で // $api_time = date('U'); // エポック秒??もしかして、それはポエティック病ではありませんか? $param_ary = array($this->apikey ,AuthLiveDoor::LIVEDOOR_AUTH_PERMS ,api_time ,AuthLiveDoor::LIVEDOOR_AUTH_VERSION // ,data ); sort($param_ary); $api_sig = hash_hmac('sha1',implode('',$param_ary),$this->secret); $loginurl = "http://auth.livedoor.com/login/" ."?app_key=".$this->apikey ."&perms=".AuthLiveDoor::LIVEDOOR_AUTH_PERMS ."&t=".$api_time ."&v=".AuthLiveDoor::LIVEDOOR_AUTH_VERSION // ."&userdata=" ."&sig=".$api_sig; return $loginurl; } }
もう疲れたので寝る。ライブドアなんてーーーー!!!
訂正。
秘密キーとか、そのままのっけちゃった (ーωー|||)
そしてなかなか訂正できなくてあせった。。
[Win]+[Break]で「システムのプロパティ」が表示されると知っての狼藉か!ええーい出会え出会え!
とか言いつつ、右の[Win]キーあたりが怪しい気がする。[Insert]もわざわざ押されることは少なさそうだ。アプリケーションキー(右Winキーの右のキー)もどうかな。
※この話題、「自分の環境では…」とか「自分の場合…」みたいな方向に進んでいきそうな気がする。