заставить process.start работать с WindowStyle - PullRequest
0 голосов
/ 10 января 2019

В vb.net я пытаюсь найти надежный способ начать новый процесс в скрытом, свернутом, обычном или развернутом окне (как заранее определено пользователем).

Следующий код со значением MyWindowProcessingStyle, установленным надлежащим образом, иногда работает, но не работает:

     Dim MyWindowsProcessingStyle As ProcessWindowStyle = ProcessWindowStyle.Maximized

    ' the above set elsewhere to values of minimized, maximized, hidden, and normal

    Dim MyProcess as new Process
    Dim MyProcessStartInfo As New ProcessStartInfo

    With MyProcessStartInfo
         .FileName = Program
         .Verb = "open"
         .CreateNoWindow = True               
         .WindowStyle = MyWindowProcessingStyle
         .UseShellExecute = True
    End With

    myProcess.Start(MyProcessStartInfo)

Например, если я использую его для запуска пакетного файла (.bat), он работает надежно 100% времени.

Если, однако, я использую его для запуска калькулятора окна, он вообще не работает. Он просто открывает калькулятор окна так же, как в прошлый раз.

Мне нужно остаться с другими частями в MyProcessStartInfo по причинам, связанным с тем, как работает мое приложение. Соответственно, это наблюдение мне не подходит.

Я пытался отправить нажатия клавиш в приложение после его запуска, например (WIN) (DownArrrow), чтобы свести приложение к минимуму после свершившегося факта - и хотя во многих случаях это работает, в других оно проблематично и ненадежно.

Я также пытался получить идентификатор процесса или дескриптор приложения после его запуска, в надежде, что после этого я смогу использовать различные методы Pinvolke, чтобы получить то, что мне нужно, - но, к сожалению, мне это не удалось .

Любая помощь будет принята с благодарностью.

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