Oi, estou desenvolvendo um aplicativo de console C que inicia uma linha de comando e obtém alguns dados através de outro comando (o que é irrelevante nesta discussão). Eventualmente, vou obter alguns dados na linha de comando e eu só preciso apenas da última linha disso. Eu usei o seguinte código: Process. StartInfo. FileName quotcmd. exequot Process. StartInfo. RedirectStandardInput true Process. StartInfo. RedirectStandardOutput true Eu usei Processo. StandardInput. WriteLine para escrever os comandos que eu preciso para o console. Mas se Process. StartInfo. RedirectStandardOutput é verdade, não estou obtendo a saída desejada usando a instrução Process. StandardOutput. ReadToEnd (). Split (n) Enquanto a opção ReadLine está funcionando bem e eu estou recebendo a primeira linha do texto exibido. Como sempre que os dados que eu consigo no console diferem, não consigo codificar qualquer tipo de ação específica de onde obter minha saída. Mesmo que eu coloquei um relógio na declaração Process. StandardOutput. ReadToEnd (). Split (n) Estou recebendo uma exceção de tempo limite de função. Por favor me ajude com esse problema. Quinta-feira, 07 de agosto de 2008 5:44 AM Então copiei o código de Manjus. Myprocesss quotcmd. exequot. Primeiro, enviei o comando quotipconfigquot, com um readToEnd () Timed out. Tentou ler em blocos, falhou também. Tentou esperarForInputIddle (), mas esqueceu cmd sem interface gráfica, falhou também. Então eu precisava do cmd para terminar o fluxo se eu quisesse lê-lo. Ok então saia Então eu tentei enviar TODOS OS MEUS COMUNES, INCLUINDO primeiro o comando de saída, depois lendo. SIn. WriteLine (quotipconfigquot) sIn. WriteLine (quotipconfig allquot) sIn. WriteLine (quotexitquot) string strOutPut sOut. ReadToEnd () Funciona como um encanto. Meu ReadToEnd () retorna uma string em meio segundo, e eu obtive toda a informação que eu preciso. -) Isso poderia ser de alguma ajuda para você, Gauri O improvável que fazemos, o impossível demora um pouco mais. - Steven Parker Marcado como resposta por Jack 321 segunda-feira, 11 de agosto de 2008 5:44 AM quinta-feira, 07 de agosto de 2008 7:51 AM ReadToEnd () é capaz de causar impasse, especialmente quando você o codifica após um WaitForExit () ou envia Muita entrada. O processo está escrevendo sua saída para um buffer, esse buffer não é muito grande (2KB, eu acho). Você não lê o conteúdo deste buffer, digamos com o ReadLine (), o processo irá parar, esperando que o buffer seja esvaziado. O seu programa, por sua vez, será interrompido, pois WaitForExit () nunca retornará ou a chamada WriteLine () será interrompida, já que o processo não está mais a ler a entrada. Se esse for seu cenário, você precisará ler de forma assíncrona com BeginOutputReadLine (). Hans Passant. Marcado como resposta por Jack 321 segunda-feira, 11 de agosto de 2008 5:44 AM quinta-feira, 07 de agosto de 2008 12:13 PM Todas as respostas Você também precisa definir Process. StartInfo. UseShellExecute como falso. Marcado como resposta por Jack 321 segunda-feira, 11 de agosto de 2008 5:43 AM O que há acima é uma resposta padrão muito agradável, no entanto. Eu não acho que o quotcmdquot termina o fluxo. Não há nada enviado a partir do cmd-box para indicar que o fluxo está encerrado. Considere uma página da Web que você carrega, uma vez que o código html inteiro chegou ao seu PC, o fluxo está pronto. Mesmo com a leitura de um arquivo, uma vez que você alcançou o último personagem, o fluxo está pronto. No entanto, com cmd, o fluxo não é quotdonequot. Ele só espera uma nova entrada, então, se você der um outro comando, ele terá saída novamente. Hmm, eu pareço ter problemas para me expressar em inglês novamente, minhas desculpas. De qualquer forma, não penso que haja algo que você possa fazer para usar ReadToEnd () em um cmd-output-stream, a menos que você envie o comando quotexitquot. Você tentou combinar o readline () com um. Uma análise da linha (ou seja, você obtém linhas vazias) ou b. O comando Process. WaitForIddleInput () O improvável que fazemos, o impossível demora um pouco mais. - Steven Parker quinta-feira, 07 de agosto de 2008 7:35 AM Caso você esteja executando o processo cmd. Lembre-se de escrever quotEXITquot no fluxo de entrada Quinta-feira, 07 de agosto de 2008 7:51 AM Então copiei o código do Manjus. Myprocesss quotcmd. exequot. Primeiro, enviei o comando quotipconfigquot, com um readToEnd () Timed out. Tentou ler em blocos, falhou também. Tentou esperarForInputIddle (), mas esqueceu cmd sem interface gráfica, falhou também. Então eu precisava do cmd para terminar o fluxo se eu quisesse lê-lo. Ok então saia Então eu tentei enviar TODOS OS MEUS COMUNES, INCLUINDO primeiro o comando de saída, depois lendo. SIn. WriteLine (quotipconfigquot) sIn. WriteLine (quotipconfig allquot) sIn. WriteLine (quotexitquot) string strOutPut sOut. ReadToEnd () Funciona como um encanto. Meu ReadToEnd () retorna uma string em meio segundo, e eu obtive toda a informação que eu preciso. -) Isso poderia ser de alguma ajuda para você, Gauri O improvável que fazemos, o impossível demora um pouco mais. - Steven Parker Marcado como resposta por Jack 321 segunda-feira, 11 de agosto de 2008 5:44 AM quinta-feira, 07 de agosto de 2008 7:51 AM ReadToEnd () é capaz de causar impasse, especialmente quando você o codifica após um WaitForExit () ou envia Muita entrada. O processo está escrevendo sua saída para um buffer, esse buffer não é muito grande (2KB, eu acho). Você não lê o conteúdo deste buffer, digamos com o ReadLine (), o processo irá parar, esperando que o buffer seja esvaziado. O seu programa, por sua vez, será interrompido, pois WaitForExit () nunca retornará ou a chamada WriteLine () será interrompida, já que o processo não está mais a ler a entrada. Se esse for seu cenário, você precisará ler de forma assíncrona com BeginOutputReadLine (). Hans Passant. Marcado como resposta por Jack 321 segunda-feira, 11 de agosto de 2008 5:44 da manhã Quinta-feira, 07 de agosto de 2008 12:13 PM A Microsoft está realizando uma pesquisa on-line para entender sua opinião sobre o site da Msdn. Se você optar por participar, a pesquisa on-line será apresentada quando você deixar o site Msdn. Você gostaria de participar? Qual permanente é WaitForExit (). Quero dizer, existe algo que uma alternativa pode fazer para quebrar a espera, caso contrário, eu executarei o meu segmento em uma função separada e controlá-lo por variáveis globais. Razão - um segmento CMD. EXE, com um aplicativo de console em execução, do qual precisamos cancelar antes do tópico em execução. Aqui está o que temos: ProcessStartInfo psi novo ProcessStartInfo (quotCMD. EXEquot, consulta) psi. UseShellExecute useShellExec psi. RedirectStandardOutput stdout psi. CreateNoWindow noWindow hbProc novo Processo () hbProc Process. Start (psi) hbProc. WaitForExit () Bem, você poderia Use: enquanto (hbProc. WaitForExit (someTimeout)) se (ShouldCancel) quebrar On Sep 19, 5:15 am, quotMarc Gravellquot ltmarc. grav. Gt escreveu: gt Bem, você poderia usar: gt gt enquanto (hbProc. WaitForExit (someTimeout)) gt se (ShouldCancel) romper gt gt gt gt Marc (nota, não há motivo para chamar o novo processo () eo processo. Start (psi) Ou você poderia usar: hbProc new Process () hbProc. EnableRaisingEvents true hbProc. Exited new EventHandler (functionToCallAfterProcesit) hbProc. StartInfo psi hbProc. Start () outro thread - on quer cancelar evento: hbProc - EventHandler novo ( FunctionToCallAfterProcesit) Em ambos os casos, apenas esteja ciente da condição de corrida potencial entre o processo que sai e o desejo de cancelar a espera. Em 19 de setembro, 4:11 am, Alistair George ltnon. Xtra. co. nzgt escreveu: gt Como permanente é WaitForExit (). Quero dizer, há algo que uma alternativa gt pode fazer para quebrar a espera, caso contrário, eu executarei meu thread gt em uma função separada e controlá-lo por variáveis globais. Gt Reason - um segmento CMD. EXE, com um console Aplicação em execução, da qual gt precisamos cancelar antes do segmento que está executando seu curso E. Gt Aqui está o que temos: gt ProcessStartInfo psi new gt ProcessStartInfo (quotCMD. EXEquot, consulta) gt psi. UseShellExecute useShellExec gt psi. RedirectStandardOutput stdout gt psi. CreateNoWindow noWindow gt hbProc novo Processo () gt hbProc Process. Start (psi) gt HbProc. WaitForExit () gt gt Obrigado, gt Alistair. Você pode matar o thread executando WaitForExit () ou usar a sobrecarga que permite especificar um timeout bool WaitForExit (int msToWait). Se você executá-lo em um segmento separado e matá-lo, você receberá uma exceção interrompida. Você pode querer certificar-se de que o processo que você iniciou ainda não está sendo executado (se for, mate-o). Gt Você pode matar o segmento executando WaitForExit () ou usar a sobrecarga gt que permite especificar um timeout bool WaitForExit (int gt msToWait). Se você executá-lo em um fio separado e matá-lo, você vai obter uma exceção interrompida. Você pode querer certificar-se de que o processo gt que você iniciou ainda não está sendo executado (se for, mate-o). Gt Agradeço aos caras as sugestões que são úteis. Aconselhará qual opção funcionou melhor. Al. Copyright cópia 2005-2017, TechTalkz. Todos os direitos reservados.
Bila terdapat kesalahan dalam penulisan lirik lagu. Acorde gitar. Atau video klip tidak dapat diputar segera laporkan kepada kami, agar kami senantiasa dapat mengupdate dengan segera. Jika Anda suka dengan mp3 Hamparan Kasih yang dipopulerkan oleh Analisa belilah kaset dan CD artis yang bersangkutan. Lirik Lagu Analisa Hamparan Kasih Bilakah berakhir lagi Kerinduan hati ini Bila kita berjauhan Ku derita Dalam hempasan wajahmu Melontar sejuta warna Onak duri yang kugenggam Tak terasa (korus) Andainya kita bertemu lagi Ku kan hamparkan lautan Kasih sayang Andainya kau disisiku kasih Kan ku belai mesra dikau Sayang8230 Lirik lagu daerah (jawa, campursari, tarling, sunda, batak, bugis, banjar), lirik lagu nasional, lirik lagu berbagai gênero (lirik lagu dangdut, keroncong, pop, jazz, rock, reggae, hip hop, rap), lirik Lagu malaysia, lirik lagu india, lirik lagu mandarin, lirik lagu arab (gambus), dan lirik lagu barat terbaru dan terpopuler. Semua konten yang tersedia di Meliriklagu adalah ...
Comments
Post a Comment