Estou escrevendo um aplicativo de linha de comando no VB. Esta aplicação está chamando outra, msxsl. exe, para executar uma transformação XSL. Eu estou usando a classe Process para fazer isso: Esta parte funciona muito bem. O que eu quero que ele possa exibir a saída desse processo para o console da minha aplicação. Eu li várias postagens explicando esse método, mas isso não parece funcionar neste caso. A saída é uma string vazia. Eu verifiquei que, se eu executar o executável do msxsl por conta própria (ou seja, executando msxsl. exe base. xml test. xsl - o styled. xml), ele exibe a saída na linha de comando. O que estou fazendo errado EDITAR: devo notar que o processo do msxsl está atualmente falhando devido a um arquivo XML mal formado. Está exibindo esta mensagem de erro: Ocorreu um erro ao executar a folha de estilo test. xsl. Código: 0x800c0006 O sistema não pode localizar o objeto especificado. Este é exatamente o tipo de coisa que eu quero exibir no console do meu aplicativo (ou, eventualmente, um arquivo de log.) Thread: exibir saída padrão de fluido do processo de console no WinForm Exibição padrão de fluido de exibição do processo de console no WinForm Oi. Eu tenho pesquisado pela web e aqui por vários dias e não encontrei uma solução para o meu problema. Eu sou um desenvolvedor ASP veterano, mas eu sou novo em WinForms e multithreading. Estou usando VS 2010 e VB 4.0. Eu tenho um aplicativo de console que leva minutos para horas para serem executados. Ele escreve para a saída padrão o que está fazendo. O meu cliente agora quer uma GUI para este aplicativo (parâmetros de linha de comando e XML assustá-los) e a solução mais rápida é escrever um WinForm que lança o aplicativo de console. Eu escrevi com sucesso esta aplicação. É o código principal que eu tenho neste ponto: Isso abrirá outro WinForm que fiz, basicamente um grande Textbox com uma propriedade pública Output que eu posso atribuir o StandardOutput. ReadToEnd () para. O WinForm congelará os minutos que meu programa (BCMaker. exe) está sendo executado e depois volte, com a saída na janela de Saída. Bem. Conheci os requisitos do meu projeto. Exceto que este congelamento provavelmente agravará meu cliente, especialmente quando eles não podem ver nenhum progresso. Agora, eu aprendi que WaitForExit () é uma operação síncrona, então, se eu quiser usar um BackgroundWorker e usar esse trecho, isso é uma má idéia. Eu experimentei com o BackgroundWorker, mas os resultados não foram muito melhores. A forma principal e a janela de saída são sensíveis, mas a janela de saída mostra nenhuma saída até o processo ser concluído, onde mostra tudo. É o que eu tenho com BackgroundProcess: o evento BackgroundWorker. ProgressChanged não é bom, já que não há nada discernível, meu aplicativo de console está relatando estou redirecionando o fluxo StandardOutput. Talvez, se o ProgressChangedEventArgs pudesse conter uma carga útil de dados, eu poderia enviar a saída padrão do console periodicamente (como cada 100ms), mas não vejo uma maneira de enviar qualquer carga de dados dessa maneira. Qualquer ideia sobre como exibir um Fluido StandardOutput
O objetivo desta página é incentivar e coletar as avaliações de usuários de um produto Forex chamado DreamSphere Live Trading Room. Para obter os detalhes sobre este produto (como os seus recursos) ou se você estiver procurando por suporte, visite o site oficial que pode ser encontrado em dslivetradingroom. Abaixo estão as revisões atuais do DreamSphere Live Trading Room. É possível que, no momento em que você estivesse lendo esta página, ainda não há comentários. Como eles vêm de usuários reais, pode levar algum tempo para que as primeiras revisões apareçam. Favor marcar esta página e voltar regularmente para verificar novas críticas. Se você tiver experiência com o DreamSphere Live Trading Room, deixe uma breve revisão ou comentários com seus comentários (siga as regras de publicação). Isso ajudará outros usuários a decidir. Obrigado Se você deseja enviar um produto Forex que ainda não esteja listado neste site para comentários e comentários dos usuários, use o formulário de inscriçã...
Comments
Post a Comment