C # Как получить ручку над конкретным окном, используя user32 DLL - PullRequest
6 голосов
/ 19 апреля 2011

Как я могу получить контроль над определенными окнами, используя пользователя 32 .dll?Я работаю в C #.Спасибо.Может кто-нибудь привести мне короткий пример? :) Буду признателен!(методы: getwindowtext, show window, enumwindowcallback normal).

1 Ответ

12 голосов
/ 19 апреля 2011

Попробуйте следующее,

    // For Windows Mobile, replace user32.dll with coredll.dll
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

// Find window by Caption only. Note you must pass IntPtr.Zero as the first parameter.

[DllImport("user32.dll", EntryPoint="FindWindow", SetLastError = true)]
static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);

// You can also call FindWindow(default(string), lpWindowName) or FindWindow((string)null, lpWindowName)

EDIT: Вы можете использовать эти декларации следующим образом

 // Find window by Caption
        public static IntPtr FindWindow(string windowName)
        {
            var hWnd = FindWindow(windowName, null); 
            return hWnd;
        }

EDIT: 2 Вот краткая версия кода:

   public class WindowFinder
    {
        // For Windows Mobile, replace user32.dll with coredll.dll
        [DllImport("user32.dll", SetLastError = true)]
        static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        public static IntPtr FindWindow(string caption)
        {
            return FindWindow(String.Empty, caption);
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...