Находит название класса экранной клавиатуры? - PullRequest
1 голос
/ 31 августа 2010

Я пытаюсь использовать этот пример кода для управления экранной клавиатурой Windows XP (OSK.exe) из приложения C # (.NET 3.5):* Как мне определить точное имя класса?Я предполагаю, что CaptionName - это «Экранная клавиатура».

1 Ответ

3 голосов
/ 31 августа 2010

Похоже, имя класса: "OSKMainClass"

Вот код, который я использовал, чтобы найти это.Это простое приложение на C # Forms

    [DllImport("User32.dll")]
    public static extern Int32 SetForegroundWindow(int hWnd);
    [DllImport("user32.dll")]
    public static extern int FindWindow(string lpClassName, string lpWindowName);
    [DllImport("user32.dll")]
    public static extern int GetClassName(int hWnd, StringBuilder lpClassName, int nMaxCount);
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        int hWnd =  FindWindow(null, "On-Screen Keyboard");
        StringBuilder buffer = new StringBuilder(128);
        GetClassName(hWnd, buffer, buffer.Capacity);
        MessageBox.Show(buffer.ToString());
    }

Получено из следующих источников Активировать любое окно с API и Функция MSC GetClassName

...