AutoHotKey事始
勤務先の個人用PCがシンクライアント+仮想デスクトップに移行するため、このままでは英字配列のHHKBが使えなくなってしまう。
対応策として、以下の二点を考え付いた。
- HHKBとシンクラの間で物理的にJP配列を英字配列に変換する
- 仮想デスクトップ上のアプリケーションの前で英字配列に変換する
前者は手軽に行うのは難しそうなので断念し、後者をAutoHotKeyで実現することにした。
パクった参考にしたサイトは以下の通り。
http://ahk.xrea.jp/index.html
http://qiita.com/844196/items/9fc1cd8470a9ad9c3a69
とりあえず、今の設定はこんな感じ。
一番右上のチルダのキーが効かないのが悩み。
*"::send, @ *&::send, {^} *'::send, & *(::send, * *)::send, ( *+0::send, ) *=::send, _ *^::send, = *~::send, {+} *@::send, [ *`::send, {{} [::send, ] *+{::send, {}} *]::send, \ *}::send, | *+::send, : +*::send, " LWin::LAlt LAlt::LWin RWin::Send, {vkF3sc029} *vkBA::send, '
JavaScriptで文字コード値⇔文字列変換
作成中のアプリにてエラーメッセージが文字コードで出力されたので、文字列に変換する処理を書いてみた。
/** * 文字コード値→文字列 */ function (cd) { var cdArr = cd.replace(/\\u([0-9a-fA-F]{1,4})/g, function () { return parseInt(arguments[1], 16) + ','; }).split(','); return String.fromCharCode.apply(String, cdArr); }
ついでに逆の処理も書いた。
/** * 文字列→文字コード値 */ function (str) { var i = str.length, temp = new Array(i); if (str === '') return '\\u0000'; while (i--) { temp[i] = '\\u' + ('000' + str.charCodeAt(i).toString(16)).slice(-4); } return temp.join(''); }