Можно ли установить приложение, не пройдя следующий шаг? - PullRequest
0 голосов
/ 07 марта 2012

Ну, вопрос вполне понятен, но .. Я хочу создать программу, которая при запуске будет загружать некоторые файлы, а затем устанавливать их, например, Chrome. Но как я собираюсь пройти следующий следующий этап установки? Я использую диез или Java. У меня есть код на данный момент, чтобы загрузить файл, который не: S

Что я хочу, чтобы это было в конечном итоге: 1) Скачать - установить Chrome 2) Введите учетную запись Gmail (проли Java сценарий?) 3) Остальное, вероятно, будет чем-то похожим.

        private void Download()
    {
        WebClient webClient = new WebClient();
        webClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4");
        webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
        webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
        webClient.DownloadFileAsync(new Uri("http://dl.google.com/update2/installers/ChromeSetup.exe"), Environment.GetFolderPath(Environment.SpecialFolder.Desktop));
    }

Я не знаю, блокирует ли страница загрузки мне заголовок клиента или что-то еще .. Спасибо перед рукой!

1 Ответ

1 голос
/ 07 марта 2012

Используя pinvoke, вы можете отправлять ярлыки обработчику окна настройки с помощью функции SendKey.

Вот пример кода из codeguru . Он использует функцию PostMessage .

[DllImport("User32.Dll", EntryPoint = "PostMessageA")]
    static extern bool PostMessage(
        IntPtr hWnd, 
        uint msg, 
        int wParam, 
        int lParam
        );

    const uint WM_KEYDOWN = 0x100;

    const int WM_a = 0x41;
    const int WM_b = 0x42;
    const int WM_c = 0x43;


    static void Main(string[] args)
    {
        //using Process.GetProcessesByName to get the handle we want  
        Process[] p = Process.GetProcessesByName("notepad");  
        IntPtr pHandle = p[0].MainWindowHandle;  

        //will write "abc" in the open Notepad window
        PostMessage(pHandle, WM_KEYDOWN, WM_a, 0);
        PostMessage(pHandle, WM_KEYDOWN, WM_b, 0);
        PostMessage(pHandle, WM_KEYDOWN, WM_c, 0);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...