[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:06361] Re: 他のアプリを前面に



下村です。

> > ロングマンがそのように作られ
> > ていない限り方法はありません(たぶん)。API を叩けばでき
> > るかもしれませんが。
> > 2000 で回避方法ってありましたっけ?>だれか

C++だったら、こんな風にしていけています。
Lispは、できませんので勘弁してください。


void SetForegroundWindowAbsolutely( HWND hwnd, int flag )
{
    int nTargetID, nForegroundID;

    // フォアグラウンドウィンドウを作成したスレッドのIDを取得
    nForegroundID = GetWindowThreadProcessId( GetForegroundWindow(), NULL);

    // 目的のウィンドウを作成したスレッドのIDを取得
    nTargetID = GetWindowThreadProcessId( hwnd, NULL );

    // スレッドのインプット状態を結び付ける
    AttachThreadInput(nTargetID, nForegroundID, TRUE );  // TRUE で結び付け

        // 最小化状態だったら元に戻して
    if( flag&FG_WND_FLAG_RESTORE && IsIconic(hwnd) ){ ShowWindow( hwnd, SW_RESTORE ); }

    // ウィンドウをフォアグラウンドに持ってくる
    SetForegroundWindow( hwnd );

    // スレッドのインプット状態を切り離す
    AttachThreadInput(nTargetID, nForegroundID, FALSE );  // FALSE で切り離し
}



-- 
Tomonori Shimomura <chop@xxxxxxxxxxxxxx>

Index Home