したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

支援ソフトを"支援する"スレ 避難所

54名無しさん:2006/02/20(月) 00:59:54 ID:RfRlw77.
>>45
ALT+F4封じはFindWindow等でウィンドウハンドル得たらGetWindowLongでウィンドウプロシージャを
取得してこれをサブクラス化し、サブクラス内のWM_SYSKEYDOWNメッセージでF4がおされているなら
元のウィンドウプロシージャの処理をしないようにすれば行けるはず。
ただし、これだと他のALT+Fキー押しがどうなるかは試してないので知らない。
↓こんなかんじ
//初期化部分
g_Wnd = FindRoWindow( Class );
wndproc = cast(WNDPROC)(.GetWindowLong( g_Wnd, GWL_WNDPROC ));
.SetWindowLong( g_Wnd, GWL_WNDPROC, cast(LONG)&SubProc );

// ラッパープロシージャ
extern(Windows)
LRESULT SubProc( HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam )
{
switch( Msg ) {
// ALT+F4封じ
case WM_SYSKEYDOWN:
if( setup.ALTF4 == true ) { // ALT+F4封じ有効?
if( wParam == VK_F4 ) return 0; // 押されたキーがALT+F4なら何もせずに終了
}
break;
default:
break;
}
return CallWindowProc( wndproc, Wnd, Msg, wParam, lParam ); // オリジナルのウィンドウプロシージャへ
}


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板