« 2009年1月 | トップページ | 2009年4月 »

2009年3月の2件の記事

2009.03.31

Vista 対応

いまさらながら、Vista の UAC 対応について調べた。

一般 or 保護モードで起動されたプロセスからの、管理者モード で起動されたプロセスへの PostMessage() は失敗するのだね。

今まで、当然のように UAC は解除してたので気付いてなかったです^^;

VD では、ウィンドウをドラッグする瞬間に、そのドラッグされたウィンドウを subclass 化してそのウィンドウの情報を取得しているのだが、その情報を PostMesssage() で VD に伝えてるので、UAC Enable だと届かず、謎な状態でした^^;

で、ちょっとぐぐったら、ChangeWindowMessageFilter() で、PostMessage() できるメッセージを登録できるとのこと。

で、試したら、一発でいまくいきました!

Vista 以外だと、この API は無いかもしれないので、LoadLibrary() して

typedef BOOL (__stdcall *FUNC_BOOL_UINT_DWORD)(UINT, DWORD);
void ChangeWindowMessageFilterForVista(void)
{
 FUNC_BOOL_UINT_DWORD ChangeWindowMessageFilter;

 HMODULE hDll = LoadLibrary("user32.dll");
 if (hDll) {
  ChangeWindowMessageFilter = (FUNC_BOOL_UINT_DWORD) GetProcAddress(hDll, "ChangeWindowMessageFilter");
  if (ChangeWindowMessageFilter) {
   ChangeWindowMessageFilter(WM_USER_DRAGGING_CAPTION, MSGFLT_ADD);
   ChangeWindowMessageFilter(WM_USER_FINISH_DRAGGING_CAPTION, MSGFLT_ADD);
  }
  FreeLibrary(hDll);
 }
}

こんな感じでうまくいきました。管理者権限、難しいね。。。
#WM_USER(= 0x0400) 以上のメッセージじゃないと ADD できないっぽいね。

明日、会社でXPでも試してみよう。(XP は持ってないの。。。)

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

| | コメント (0) | トラックバック (0)

2009.03.18

久しぶりに

昨日、久しぶりに言語な本を買った。

これ。

amazon 的には1人しか評価してなく、いまいちな感じがするのだが、読んでみると結構面白かったので買ってみたのだった。

#買ったのはヨドバシ。
#ポイント還元率の低い(3%)のをポイントだけで買うのがお得だよね。


でも、、、
今日、気付いたのだが、
http://gigamonkeys.com/book/
ここに全て公開されてるのね。。。;;
なんかすごくすごくがっかりでっした;;

英語苦手な私にとってはすごく助かるのだけど、読める方にとっては全く必要の無い本っぽいね。。。
#この前の TOEIC で、やっとうちの最低レベル(650)を超えた程度じゃ、
#この英語読むのは大変すぎるのだ。。。;;

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

| | コメント (3) | トラックバック (0)

« 2009年1月 | トップページ | 2009年4月 »