掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecuteで開くマイコンピュータのサイズと位置を指定する (ID:61017)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Blueさん、ありがとうございます。 いろいろ工夫してみて、最終的に下記のようにしました。 char fullpath[]は、絶対パスです。 これで、アプリの立ち上げ直後はFolder1とFolder2が開くのですが、一旦閉じて、再度開こうとするとどちらか1つしか開かなかったり、全く開かなかったりします。 全く別なところで別にShellExecuteを使ってから、もう一度開こうとすると、今度は問題なく開くので、なにかを引きずっていると思うのですが、原因を発見できません。 ここまできたのでなんとかすっきり成功させたく、心苦しいのですが、ご指導頂けませんでしょうか。 char mych1[1000]; strcpy(mych1,fullpath); strcat(mych1,"\\Folder1"); ::ShellExecute( HWND_DESKTOP, "open", "explorer.exe", mych1, NULL, SW_HIDE ); HWND hWnd1 = ::FindWindowEx( NULL, NULL, NULL, "Folder1" ); strcpy(mych1,fullpath); strcat(mych1,"\\Folder2"); ::ShellExecute( HWND_DESKTOP, "open", "explorer.exe", mych1, NULL, SW_HIDE ); HWND hWnd2 = ::FindWindowEx( NULL, NULL, NULL, "Folder2" ); const int screenX = ::GetSystemMetrics( SM_CXSCREEN ); const int screenY = ::GetSystemMetrics( SM_CYSCREEN ); if ( ::IsWindow( hWnd1 ) ) { ::MoveWindow( hWnd1, 0, 0, screenX / 2, screenY, TRUE ); ::ShowWindow( hWnd1, SW_SHOW ); ::SetForegroundWindow( hWnd1 ); } if ( ::IsWindow( hWnd2 ) ) { ::MoveWindow( hWnd2, screenX / 2, 0, screenX / 2, screenY, TRUE ); ::ShowWindow( hWnd2, SW_SHOW ); ::SetForegroundWindow( hWnd2 ); }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.