飴屋ぷろじぇくと

Date : 2014年11月18日

--.--.--[--] スポンサーサイト

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

2014.11.18[火] デスクトップを振動させる

バイブレーション機能ではありません。
ふと「デスクトップが振動したらどうだろう?」と思い立ち、作ってみた。今回はWindowsです。
多分先人がもうやってると思うけどAPIの検索含め数十分で完成。
実行すると文字通りデスクトップ全体が上下に振動します。
#include <windows.h>

int WINAPI WinMain(
        HINSTANCE hInstance ,
        HINSTANCE hPrevInstance ,
        LPSTR lpCmdLine ,
        int nCmdShow ) {
    HDC pmdc = GetDC(NULL);
    RECT rc2;
    int i;
    for (i = 0; i < 5; i++) {
        ScrollDC(pmdc, 0, 1, NULL, NULL, NULL, &rc2);
        Sleep(5);
    }
    for (i = 0; i < 12; i++) {
        ScrollDC(pmdc, 0, -1, NULL, NULL, NULL, &rc2);
        Sleep(5);
    }
    for (i = 0; i < 16; i++) {
        ScrollDC(pmdc, 0, 1, NULL, NULL, NULL, &rc2);
        Sleep(5);
    }
    for (i = 0; i < 18; i++) {
        ScrollDC(pmdc, 0, -1, NULL, NULL, NULL, &rc2);
        Sleep(5);
    }
    for (i = 0; i < 18; i++) {
        ScrollDC(pmdc, 0, 1, NULL, NULL, NULL, &rc2);
        Sleep(5);
    }
    for (i = 0; i < 16; i++) {
        ScrollDC(pmdc, 0, -1, NULL, NULL, NULL, &rc2);
        Sleep(5);
    }
    for (i = 0; i < 12; i++) {
        ScrollDC(pmdc, 0, 1, NULL, NULL, NULL, &rc2);
        Sleep(5);
    }
    for (i = 0; i < 8; i++) {
        ScrollDC(pmdc, 0, -1, NULL, NULL, NULL, &rc2);
        Sleep(5);
    }
    for (i = 0; i < 4; i++) {
        ScrollDC(pmdc, 0, 1, NULL, NULL, NULL, &rc2);
        Sleep(5);
    }
    ScrollDC(pmdc, 0, -1, NULL, NULL, NULL, &rc2);
    Sleep(5);
    
    ReleaseDC(NULL, pmdc);
    InvalidateRect(NULL, NULL, TRUE);
    return 0;
}

こんな変なことが出来てしまうWindowsの緩いとこは好きだな。X Windowで出来るのかな?
バイナリとソースはこちらから。
スポンサーサイト

Copyright © 飴屋/菖蒲

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