掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ネットゲームをウインドウモード化するには? (ID:54775)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
DirectXを使用しているネットゲーム(BomberMan Online)は、フルスクリーン モードでしか起動することができないようになっているので、ウインドウモード化する方法についてです。 調べた挙句、DirectXを描画する前のウインドウ作成時にフックをかけ、SetWindowPosまたはMoveWindowを使用して解像度及び初期位置を書き換える 方法にたどり着いたのですが、どうも他のソフトではサイズと初期位置はうまく変更されるのですが、BomberMan Onlineをフックしながら実行すると、 固まってしまいます(フルスクリーン状態)。 以下にコードを記述します(抜粋)。 hHook = SetWindowsHookEx(WH_CALLWNDPROC, .... LRESULT CALLBACK MyHookProc(int nCode, WPARAM wp, LPARAM lp){ CWPSTRUCT *cwp = (CWPSTRUCT *)lp; HWND hBomber; DWORD dwStyle; if(nCode < 0 ) CallNextHookEx(hHook,.... if( nCode == HC_ACTION ){ switch( cwp->message ){ case WM_CREATE: hBomber = FindWindow(NULL, "OnlineBomberMan"); if( hBomber ){ // タイトルバーを取り除く dwStyle = GetWindowLong(hBomber, GWL_STYLE); if( dwStyle & WS_CAPTION ) dwStyle ^= WS_CAPTION; SetWindowLong(hBomber, GWL_STYLE, dwStyle); // ウインドウ解像度と初期位置を指定する MoveWindow(hBomber, 0, 0, 800, 600, TRUE); SetWindowLong(hBomber, NULL, 0, 0, 800, 600, SWP_SHOWWINDOW); }}} とこのようになりました。 もし何か分かる事等があればレスお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.