C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 57 を表示中)
■32401 / )  Re[2]: 画面に表示されているウィンドウを列挙したい
□投稿者/ επιστημη (1660回)-(2009/02/06(Fri) 10:19:39)
επιστημη さんの Web サイト
2009/02/06(Fri) 10:38:54 編集(投稿者)
> VB.NETから IsIconic-API を呼ぶには
> Private Declare Auto Function IsIconic Lib "user32.dll" (ByVal hwnd As IntPtr) As Boolean
> なんてな宣言しとけばおっけぃなんですが、C#からだと...えーと、ふぉろーよろしく > だれぞ

こんなんでいいのかな。
VBおんちなのでC#版です。VB版だれぞよろ。

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

public class EnumWindows {

  // P/InvokeによるIsIconic召喚の呪文
  [DllImport("user32.dll")]
  [return: MarshalAs(UnmanagedType.Bool)]
  static extern bool IsIconic(IntPtr hWnd);

  static void Main() {
    // プロセスを列挙して
    foreach (Process p in Process.GetProcesses()) {
      // MainWindowHandleを持ち、かつそれが最小化されてないなら
      if (p.MainWindowHandle != IntPtr.Zero && !IsIconic(p.MainWindowHandle) ) {
        // プリントしる!
        Console.WriteLine(p.ProcessName + " : " + p.MainWindowTitle);
      }
    }
  }
}

返信 編集キー/


管理者用

- Child Tree -