Findwindowex по ручке C#

Я боролся с этим в течение долгого времени и не мог получить ответ, который я понимаю. Я новичок в C#.

Итак, я запускаю приложение (Accpac, если быть точным), затем мне нужно отправить имя пользователя через sendkeys / sendmessage в дочернее окно. У меня есть дескриптор дочернего окна, но я не могу заставить его работать: IntPtr. (00020380), я получаю ошибку "Идентификатор ожидается"

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Runtime.InteropServices; 
    using System.Diagnostics; 
    using System.Windows.Forms; 
    using System.Threading; 

    namespace myNamespace
    {
        class StartAccpac
        {
            [DllImport("user32.dll", SetLastError = true)]
            static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

            [DllImport("user32.dll", SetLastError = true)]
            static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

            public static void Main3()
            {  
                //START ACCPAC
                //Process.Start("C:\\Programs\\Accpac\\runtime\\accpac.exe");
                IntPtr hwnd = IntPtr.Zero;
                IntPtr hwndChild = IntPtr.Zero;

                //Get a MAIN HANDLE
                hwnd = FindWindow(null, "Open Company");
                hwndChild = FindWindowEx(hwnd, IntPtr.(00020380), null, null); <---- ERROR
            }

        }
    }


[![enter image description here][1]][1]
[![enter image description here][2]][2]
[![enter image description here][3]][3]

1 ответ

Решение

Ваша проблема здесь:

IntPtr.(00020380)

Что вам нужно сделать, это что-то вроде этого:

new IntPtr(00020380)

Тем не менее, я подозреваю, что из восьми цифр это шестнадцатеричное число, поэтому вы также можете подумать:

new IntPtr(0x00020380)

Поиграйте с ними, посмотрите, что получится.

Другие вопросы по тегам