スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--.--.-- | スポンサー広告

IAppPublisher……じゃなかったり

本当は IAppPublisher インターフェイスを題材にしようかと思ったのですが、
MSDN Blog にまんまのサンプルがあったのでやめました。
ちなみにアレをそのまま実行しても何も表示されないと思います。
このインターフェイス、どうもアプリケーションの製作者の情報を
取得するものらしいので( ´・ω・)

しょうがないのでまた古いソースからネタをひっぱてきてみた。


#include <windows.h>

BOOL CALLBACK MinimizeProc(HWND hWnd, LPARAM lParam)
{
HWND hwnd_parent = ::GetWindow(hWnd, GW_OWNER);
WCHAR window_title[255];

long window_style = ::GetWindowLong(hWnd, GWL_STYLE);
if((hwnd_parent == NULL) && (window_style & WS_VISIBLE)
&& !(window_style & WS_DISABLED))
{
::GetWindowText(hWnd, window_title, sizeof(window_title));

// 例外的除外
if(!wcscmp(window_title, L"Program Manager"))
return TRUE;

::ShowWindow(hWnd, SW_MINIMIZE);
}

return TRUE;
}

int _tmain(int argc, _TCHAR* argv[])
{
ANIMATIONINFO anime_info;
bool animationa_was_on = false;

anime_info.cbSize = sizeof(anime_info);
::SystemParametersInfo(SPI_GETANIMATION,
sizeof(anime_info), &anime_info, 0);

if(anime_info.iMinAnimate != 0)
animationa_was_on = true;

if(animationa_was_on)
{
anime_info.iMinAnimate = false;
::SystemParametersInfo(SPI_SETANIMATION,
sizeof(anime_info), &anime_info, 0);
}

::LockWindowUpdate(::GetDesktopWindow());
::EnumWindows((WNDENUMPROC)MinimizeProc, 0);
::LockWindowUpdate(NULL);

if(animationa_was_on)
{
anime_info.iMinAnimate = true;
::SystemParametersInfo(SPI_SETANIMATION,
sizeof(anime_info), &anime_info, 0);
}

return 0;
}


最小化アニメーションを切った状態ですべてのウインドウを
最小化するサンプルプログラムです。
……意味不明な日本語になっているような気もしますが
実際に動かしてみるとわかるかと思います。


スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

2006.07.28 | Comments(0) | Trackback(0) | プログラム

コメント

コメントの投稿


秘密にする

«  | HOME |  »

ブロとも申請フォーム

この人とブロともになる

カウンター


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。