Saturday 18 November 2017

Msdn Process Waitforexit


Estou tendo um problema com isso e espero que alguns de vocês possam lançar alguma luz sobre ele para mim O bloco de código: Ive mudou o URL, obviamente, mas isso não é importante. Quando eu tentar executá-lo, dá-me uma exceção na linha quotWaitForExitquot indicando processo quotNo está associado a este object. quot Qualquer ajuda aqui seria muito apreciada terça - feira, outubro 19, 2010 18:05 Processo de nome de arquivo tem que ser arquivo executável MBoardProcess. StartInfo. Argumentos microsoft / en / us / default. aspx mBoardProcess. StartInfo. FileName quotIEXPLORE. EXEquot CÓDIGO CONVERTER SITE Editado por kaymaf terça-feira, outubro 19, 2010 18:32 Marcado como resposta por Frank L. Smith terça-feira, outubro 19, 2010 6: 35 PM Terça-feira, 19 de outubro de 2010 6:26 PMManaging Processos no PowerShell Várias pessoas têm perguntado recentemente sobre como gerenciar processos no PowerShell. Esta postagem no blog deve responder a algumas dessas perguntas. Como se poderia esperar da parte 8220shell8221 do PowerShell, você não precisa fazer nada especial para iniciar um processo. Em uma linguagem de programação como VBScript, você tem que fazer algo bastante complexo como: strComputer 8220.8221 Set objWMIService GetObject (8220winmgmts: 8221 amp 8220 8221 amp strComputer amp 8220rootcimv28221) Set objStartup objWMIService. Get (8220Win32ProcessStartup8221) Set objConfig objStartup. SpawnInstance Set objProcess GetObject (8220winmgmts: rootcimv2: Win32Process8221) objProcess. Create 8220Notepad. exe8221, Null, objConfig, intProcessID mas em conchas (PowerShell, cmd. exe, festança, etc.) você pode simplesmente começar um programa como o bloco de notas simplesmente digitando 8220notepad8221 como mostrado. Agora, observe que ao fazer isso o shell retorna imediatamente e solicita o próximo comando. Isso ocorre porque o bloco de notas é um processo GUI win32 e é executado em segundo plano. Por outro lado, se você iniciar um aplicativo de console como 8220ping. exe8221, o PowerShell aguardará até que o processo seja concluído. Mas e se eu quiser esperar pelo processo Win32 Em cmd. exe, you8217d fazer isso com 8220start / wait8221, mas este comando não está (diretamente) disponível no PowerShell. Então o que fazemos O PowerShell executa diretamente executáveis. Se espera o processo para sair, o código de saída será deixado em LASTEXITCODE. Agora, se um executável do Win32 for o último comando de um pipeline e não for redirecionado, o processo será executado em segundo plano. No entanto, se você canalizar sua saída para algo, então o PowerShell aguardará o comando para sair. Portanto, esta é uma espera simples (se não intuitiva) para aguardar um processo de GUI para sair. Como alternativa, se o processo já estiver em execução, você pode usar o Get-Process para obter as informações necessárias e, em seguida, fazer um WaitForExit () nesse objeto. Aqui está um exemplo um pouco mais sofisticado onde abrimos um documento em vez de iniciar um processo. Desta vez we8217ll encontrar o processo pelo título da janela em vez de pelo nome do executável Infelizmente procurar por um processo sempre significa que você pode encontrar o processo errado. Idealmente, você gostaria de obter o objeto Processar diretamente. Assim, para obter um gerenciamento de processos mais preciso, você precisará usar a classe. NET System. Diagnostics. Process e iniciar os processos por conta própria. Por exemplo, você pode usar diagnostics. process :: Start () para aguardar um processo: Observe o uso de 8220pwdfoo. txt8221 para especificar o caminho completo para o arquivo. Isso ocorre porque o PowerShell mantém sua própria idéia do diretório atual. (Esta nota aplica-se ao uso de qualquer API. NET que acesse o sistema de arquivos que você precisa para dar-lhe um caminho absoluto.) Agora we8217re começando a voltar para o nível de complexidade que você encontrar em uma linguagem de programação. No entanto, você também tem todo o poder dessas línguas. Here8217s um exemplo de script 8220background. ps18221 que lhe permitirá executar um scriptblock isolada em uma janela separada (ou na mesma janela se você especificar o parâmetro inconsole. Este script let8217s você faz as coisas em PowerShell que você can8217t fazer a partir cmd. exe, mas pode Fazer a partir do VBScript Finalmente, aqui estão duas outras maneiras de trabalhar com processos. Mesmo que o PowerShell doesn8217t têm um comando de início, cmd. exe faz isso você pode fazer um start / wait por fazer E, por último mas não menos importante, o PowerShell Community Extensions Inclui um Start-Process cmdlets. Você pode obter uma lista destes recursos em: Bruce Payette MSFTIm ter um problema com isso e espero que alguns de vocês podem lançar alguma luz sobre ele para mim O bloco de código: Ive mudou o URL, obviamente , mas isso não é importante. Quando eu tentar executá-lo, dá-me uma exceção na linha quotWaitForExitquot indicando processo quotNo está associado a este object. quot Qualquer ajuda aqui seria muito apreciada terça-feira, outubro 19, 2010 18:05 processo Filename tem que ser o arquivo executável mBoardProcess. StartInfo. Argumentos microsoft / en / us / default. aspx mBoardProcess. StartInfo. FileName quotIEXPLORE. EXEquot CODE CONVERTER SITE Editado por kaymaf Terça-feira, 19 de outubro de 2010 18:32 Marcado como resposta por Frank L. Smith Terça-feira, 19 de outubro de 2010 6: 35 PM terça-feira, 19 de outubro de 2010 18:26

No comments:

Post a Comment