2013年10月29日火曜日

ラベルの階層化がパクられてる模様

いやまぁ、使ってもらうために記事にしてるんで利用するのは構わない。
けどさ、それを丸ごと自分の記事として書いて、それを参考にした人に「お役に立てたようで本当に良かったです」とかコメントしちゃうメンタリティってどうなのよ?Φ(^_^;)

しかも元ネタの記事よりパクった記事と、それを参考にした記事のほうが検索上位に来るとはこれ如何に。(^_^;)

ひとまず、ソース丸パクリ無断掲載の魚拓。
http://megalodon.jp/2013-1029-2017-54/internet-bibouroku.blogspot.jp/2012/11/blogger_13.html

他にもあったのでついでに魚拓
http://megalodon.jp/2013-1029-2022-49/hiro-blogger-memo.blogspot.jp/2013/05/blog-post.html

http://megalodon.jp/2013-1029-2051-06/kon104.blogspot.jp/2013/02/blogger-label-weighet.html

機能追加したので、とりまパクリ先を参考にして記事を書いている人のコメントにフォロー中。

色々と面倒臭いんで、パクって記事にした人でこれを読んだ人は、引用先を明記するように。
ソースにも著作権ってあるんだよ?

(2014/4/21 追記)
ラベルの階層化のパクリを指摘して回ったところ、殆どの方にリンク先の変更に応じて頂けました。m(_ _)m
こちらがオリジナルかどうか判断が出来かねるという、もっともなご意見も掲載されていましたので、その根拠を示しておきます。

当方のオリジナル記事の投稿日が、2012年7月12日。
そして幸いな事に一番最初についたコメントの投稿日時が2012年9月24日。
パクった先の投稿日付は、これよりも全て後であること。

記事の投稿日時をイジることが出来ますが、記事についたコメントの投稿日時はイジれません。
こんな事でしか正当性を主張出来ないのもアレですが。(^_^;)

2013年10月8日火曜日

Alt+SpaceでIMEを切り替える その2

EmEditorでキーボードのフックが出来ない件を帰宅途中に歩きながら思い出し、「もっと優先順位が高いフックって出来たよなぁ」とか「それかフィルタドライバでやるのかなぁ」なんて考えながら帰宅。

色々と雑事が終わったので、「キーボード フィルタドライバ」でググったら有益な情報がすぐに拾えた。
そもそもLLフックの事をスッカリ忘れてたという…。

AutoHotKeyがLLフックでの実装との事なので、LLフックで書き直せば大丈夫なんだろう、ってことでメモ。
ついでに、C#でもグローバルフックが出来ることが分かったのでメモ。

Alt+SpaceでIMEを切り替える

リビングで使ってるiMacがUSキーボードでIMEの切り替えは、Command+Spaceで行っているので、他のWindowsPCもAlt+SpaceでIMEの切り替えが出来るるように変更する。

適当にググったらCmdSpaceというユーティリティがヒットした。
が、64bitでは動作しない模様。
ふつうにキーフックしてるだけのようなので、自分で作ってみた。(汗)
が、EmEditor上でフック出来ない…。orz
こんなことに1時間以上使うのはアレなんで、もう1回ググったら、AutoHotKeyというユーティリティを発見した。

しかも設定も簡単、インストールしたら、拡張子が 「ahk」というファイルを作りスタートアップに保存。
ファイルの内容は
!Space::vk19
と書くだけ。
折角コードを書いたのでフックのコードだけ残しておく。
 と言っても猫でもわかるプログラミングのサンプルをほぼ丸パクリなんだが。(滝汗)

#include <Windows.h>
#include <Imm.h>
#include <tchar.h>
#include "KeyHook.h"

#pragma data_seg("MY_DATA")
HHOOK hMyHook = 0;
#pragma data_seg()

HINSTANCE hInst;

BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpReserved)
{
 switch (dwReason) {
 case DLL_PROCESS_ATTACH:
  hInst = hInstDLL;
  break;
 case DLL_PROCESS_DETACH:
  break;
 }
 return TRUE;
}

int SetHook()
{
 hMyHook = SetWindowsHookEx(WH_KEYBOARD, MyHookProc, hInst, 0);
 if (hMyHook == NULL)
  MessageBox(NULL, _T("フック失敗"), _T("CmdSpace64"), MB_OK);

 return 0;
}

int ResetHook() 
{
 if (UnhookWindowsHookEx(hMyHook) == 0)
  MessageBox(NULL, _T("フック解除失敗"), _T("CmdSpace64"), MB_OK);
 
 return 0;
}

LRESULT CALLBACK MyHookProc(int nCode, WPARAM wp, LPARAM lp)
{
 if (nCode < 0)
  return CallNextHookEx(hMyHook, nCode, wp, lp);

 if (nCode==HC_ACTION) {
  // ALT + SPACE が押下された場合
  if (GetKeyState(VK_MENU) < 0 && wp == VK_SPACE)
  {
   // キーダウンのみ処理
   if ((lp & 0x80000000) == 0)
   {
    // 最前面のウィンドウを取得
    HWND hwndActive = GetForegroundWindow();
    // IMEの規定のウィンドウハンドルを取得
    HWND hWnd = ImmGetDefaultIMEWnd(hwndActive);
    // 入力コンテキストを取得
    HIMC hImc = ImmGetContext(hWnd);
    // IMEの状態を取得
    if (ImmGetOpenStatus(hImc))
    {
     // IMEを閉じる
     ImmSetOpenStatus(hImc, FALSE);
    }
    else
    {
     // IMEを開く
     ImmSetOpenStatus(hImc, TRUE);
    }
    // 入力コンテキストを解放
    ImmReleaseContext(hWnd, hImc);
   }

   return TRUE;
  }
 }
 
 return CallNextHookEx(hMyHook, nCode, wp, lp);
}

Windows7でUSキーボードに変更する

USキーボードに設定を変更したのでメモ。

レジストリエディタで下記を編集して再起動

[HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥i8042prt¥Parameters]
[LayerDriver JPN]を kbd106.dll → kbd101.dll
[OverrideKeyboardIdentifier]を PCAT_106KEY → PCAT_101KEY
[OverrideKeyboardSubtype]を 2 → 0

2013年10月5日土曜日

Amazon.comからキーボードを取り寄せてみる その3

Amazon.comで発注してから12日目、ようやくキーボードが届いた。
グッピングで表示されているトラッキング番号は、DHLのトラッキング番号なので、DHLの方で確認した方が詳細な状態が把握出来た。

ただ、DHLから最終的な宅配業者へ引き渡しが終わると、宅配業者の荷物番号が表示されず、ステータスも更新されなくなり、最終的に配達が完了すると、ステータスが更新される。
気になる場合は、DHLに電話で問い合わせると丁寧な対応で、宅配業者の荷物番号を教えてくれる。

配達完了した状態でグッピングの追跡情報はこんな感じ。


自分で写真を撮るのが面倒なんで、グッピングの倉庫で商品確認で撮影してくれたのを転載。(汗)


今回の輸送費。


商品サイズと重さの割には高いような気がする。。。
まぁ、しゃーないか。

で、商品を確認すると、無線のレシーバーが入ってない!?(汗)

と一瞬、冷や汗が出たがキーボードの裏の電池ボックス内に格納されていた。
スッキリデザインさん。(汗)