none
Автоматизировать установку программы RRS feed

  • Вопрос

  • Здравствуйте. Подскажите пожалуйста что я не так делаю ? Моя программа запускает установочный msi файл. Потом я хочу используя функцию SendMessage программно нажать на кнопку далее , но она почему-то не нажимается автоматически. Делаю так

    const int WM_COMMAND = 0x0111;
            const int BN_CLICKED = 0;
            [DllImport("user32.dll")]
            static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    
            [DllImport("user32.dll", SetLastError = true)]
            static extern IntPtr FindWindowEx(IntPtr parenhandle, IntPtr childWindoHandle, string className, string windowTitleName);
    
            [DllImport("user32.dll")]
            static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, IntPtr lParam);
    
            public void ClickExternalAppButton()
            {
    
                var handlePointer = FindWindow("Название класса", "Название окна");
                var childformPointer = FindWindowEx(handlePointer, IntPtr.Zero, "Button", "&Далее >");
                int wParam = (BN_CLICKED << 16) | (ButtonId & 0xffff);
                SendMessage(childformPointer, 245, wParam, childformPointer);

      
    24 июня 2015 г. 7:27

Ответы

Все ответы

  • Запускайте отладчик и смотрите, какая функция возвращает ошибку.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    25 июня 2015 г. 9:03
  • Сделал проще, запустил установку через командную строку в тихом режиме Process.Start()
    • Изменено Timur2008 25 июня 2015 г. 9:51
    • Помечено в качестве ответа Timur2008 25 июня 2015 г. 9:51
    25 июня 2015 г. 9:50