Utilizzando Processo Waitforexit C #


WaitForExit () è un metodo di filo di blocco Questo è esattamente la causa del problema. Se WaitForExit viene chiamato dal thread Forms, si eviterà che il modulo venga ridisegnato. Il trascinamento qualcosa di fronte a una finestra bloccata lascia una traccia della finestra trascinata. Proposto come risposta da ahmedilyas Moderatore giovedì 28 luglio, 2011 10:34 Contrassegnato come risposta di Jackie-Sun Moderatore Lunedi, mese di agosto 08, 2011 06:50 Giovedi, 28 luglio, 2011 10:18 Codice sarebbe meglio e si sarebbe anche meglio se ci si può dire esattamente quello che stai cercando di ottenere. il WaitForExit () attende semplicemente (blocchi il codice per questa durata) per un processo di uscire prima di continuare con l'esecuzione del codice chiamante. C MVP (2007-2010) MS Venditore - MS Per tutto il tragitto Follower dal 1995 MS Super Evangelista MSDN Moderatore proposto come risposta da ahmedilyas Moderatore Giovedi, 28 luglio, 2011 10:33 contrassegnate come risposta di Jackie-Sun Moderatore Lunedi, mese di agosto 08 2011 06:50 Giovedi, 28 luglio 2011 09:57 AM Tutte le risposte penso che questo non ha alcuna relazione con la funzione WaitForExit. che formano si sta trascinando. forma exe primo o secondo modulo exe. un po 'di codice è apprezzato, contrassegnare il mio post come risposta mio post se fosse utile per voi Giovedi, 28 luglio, 2011 09:52 AM codice sarebbe meglio e sarebbe anche meglio se ci si può dire esattamente quello che stai cercando di ottenere . il WaitForExit () attende semplicemente (blocchi il codice per questa durata) per un processo di uscire prima di continuare con l'esecuzione del codice chiamante. C MVP (2007-2010) MS Venditore - MS Per tutto il tragitto Follower dal 1995 MS Super Evangelista MSDN Moderatore proposto come risposta da ahmedilyas Moderatore Giovedi, 28 luglio, 2011 10:33 contrassegnate come risposta di Jackie-Sun Moderatore Lunedi, mese di agosto 08 2011 06:50 Giovedi, 28 luglio 2011 09:57 ho avuto checked. it ha problema su WaitForExit () only. i notato che problema quando si muovono seconda forma exe a cura di RAJ KUMAR. R Giovedi, 28 luglio 2011 10:09 Giovedi, 28 luglio, 2011 10:02 che cosa è esattamente il problema hai letto la mia risposta hai letto anche il link che avevo fornito WaitForExit () è un metodo di blocco filo che farà esattamente proprio questo - attendere per un processo di uscita prima di continuare con il codice. Non farà il modulo nascondere o minimizzare a tutti, a meno che non si dica il codice per fare questo prima di chiamare WaitForExit () C MVP (2007-2010) MS Venditore - MS Per tutto il tragitto Follower dal 1995 MS Super Evangelista MSDN Moderatore giovedì, 28 luglio 2011 10:05 Tutto sta funzionando fine. but quando mi muovo il modulo, esso esposizione forma multipla. Giovedi, 28 luglio, 2011 10:09 AM WaitForExit () è un metodo di filo di blocco Questo è esattamente la causa del problema. Se WaitForExit viene chiamato dal thread Forms, si eviterà che il modulo venga ridisegnato. Il trascinamento qualcosa di fronte a una finestra bloccata lascia una traccia della finestra trascinata. Proposto come risposta da ahmedilyas Moderatore giovedì 28 luglio, 2011 10:34 Contrassegnato come risposta di Jackie-Sun Moderatore Lunedi, mese di agosto 08, 2011 06:50 Giovedi, 28 luglio, 2011 10:18 Quando si dice che mostra molteplici forme - stai parlando più istanze di forme o solo il drawingrendering se è la drawingrendering allora sì, come detto prima - è perché si è in attesa del processo per exitend prima di continuare ed è threadblocking così potrete vedere il quotproblemquot si stanno comparendo da descrivere. Non vi è alcun quotfixquot per questo in quanto non è un bug o un problema, ma semplicemente ciò che si sta utilizzando e come lo si utilizza. c'è una ragione per la quale si utilizza WaitForExit (). Dovete mostrare il vostro modulo quando si utilizza WaitForExit () Perché non si nasconde o minimizzare il modulo prima di chiamare WaitForExit () quindi ripristinarlo afterwords C MVP (2007-2010) MS Venditore - MS Per tutto il tragitto Follower dal 1995 MS Forum Super Evangelista MSDN Moderatore giovedì 28 luglio, 2011 10:35 Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione del sito Web MSDN. Se si sceglie di partecipare, il sondaggio on-line sarà presentato a voi quando si lascia il sito Web MSDN. Vuoi partecipare Aiutaci a migliorare MSDN. Visita la nostra pagina UserVoice a presentare e votare le idee Dev centri di apprendimento resourcesThis domanda può sembrare un po 'strano, ma sto cercando di eseguire VS2005 attraverso un processo ed eseguire un comando specifico e mi WaitForExit (). Sto reindirizzare il mio ingresso e uscita con successo, ma ogni tanto mi capita di ricevere un errore di segnalazione Finestra WindowMessage. Il problema è che sto Remoting, in modo che quando si verifica questo MessageWindow durante l'esecuzione del processo, io appendere a meno che accedo l'altro (servizi remoti) della macchina e chiudere la finestra. C'è un modo per uccidere programatically questa finestra o, eventualmente disattivare l'MessageWindow si verifichi ho pensato di correre VS in un'esecuzione silenziosa (devo ancora trovare un modo per farlo). Ho anche cercato di vedere se c'è qualche cosa che è lauched quando ciò si verifica confrontare a quando non è così. Giovedi, 25 mese di ottobre, 2007 20:32 Beh, ho tentato di utilizzare FindWindow e FindWindowEx con SendMessage, ma non sono riuscito a trovare l'handle di finestra corretto. Ma dal momento che so che un errore di Windows Segnalazione Msssage Box sarà spuntando, ho controllato per vedere se era proprio processo (ed è). Il processo è dwwin. exe (Dr. Watson Win) e tutto quello che dovevo fare era questo per permettere a me stesso per ottenere corretto il problema attuale. Sostituire il blocco di codice corrente al di sotto per l'istruzione WaitForExit () che ho avuto in precedenza. proc. WaitForExit (60000) un processo minuto ProcArray Process. GetProcessesByName (quotdwwinquot) foreach (Processo ProcessFound in ProcArray) Ho anche controllato per vedere se sono stati in grado di ottenere il Process. MainWindowTitle (), ma è impostato su quotquot. Quindi questo è un hack e io davvero non mi piace usarlo, ma funziona per l'esecuzione corrente. Lunedi, 29 mese di ottobre, 2007 19:26 No, posso reindirizzare input e output senza un problema. L'errore che sto ricevendo è il generale Segnalazione errori di Windows e, purtroppo, è in giapponese, quindi non so che cosa l'errore esatto è, ma è l'errore generale. Non ho il codice di fronte a me, ma ho creato delegatesthreads di leggere reindirizzato l'errore e l'uscita dopo esco l'intero processo. Smusso venire con qualsiasi cosa e sono in grado di eseguire lo stesso processo sul mio computer, ma io non sono in grado di fare questo comando una particolare attraverso la comunicazione remota. I wil provare domani la comunicazione remota su un computer non-giapponese al lavoro e mi post i miei risultati a prescindere. Venerdì, 26 Ottobre 2007 02:34 sono in esecuzione console quotcmdquot. Se sì allora si deve digitare anche uscire. Venerdì, 26 Ottobre 2007 04:50 Se un'idea di quanto tempo il processo sta andando a prendere, quindi è possibile utilizzare bool exitted process. WaitForExit (timeInMilliSeconds) se (exitted) Processo exitted prima del periodo di timeout. messaggio di errore di stampa altrimenti questo potrebbe non essere correlato a quello che state facendo, ma ho avuto un'esperienza in cui il processo non sarebbe uscire se ho reindirizzato la sua uscita. Prova a disabilitare il reindirizzamento di uscita e vedere se il processo si chiude. Fare un tentativo, potrebbe funzionare. Venerdì, 26 Ottobre 2007 11:58 Vorrei provare che, ma è troppo di un hack. Ho troppi comandi diversi che prendono diverse quantità di tempo (30 secondi a 25 minuti) quindi non c'è tempo reale impostazione che ho potuto mettere senza distruggere la mia prestazione. Questa funzione ha lavorato correttamente per comandi multipli nel corso degli ultimi 6 mesi e ora decide di uscire con me. Ho provato su un altro computer senza problemi (che è veramente scherzi con me). So che non è il reindirizzamento outputerror perché una nuova finestra viene creato sul server che sto Remoting a. Non appena chiudo quella finestra, il mio processo si chiude come previsto e l'output corretto viene visualizzato sul lato utente. Grazie per il vostro aiuto, ma io sono sempre veramente frustrato con questo problema. Venerdì, 26 Ottobre 2007 15:01 Senza conoscere i dettagli del messaggio sono stati solo indovinare il problema. Avete installato 3.5 beta o Visual Studio 2008 beta a tutti come si sta usando il processo per avviare il programma, Process. Start (quotfile. exequot), o stai usando ProcessStartInfo Venerdì, 26 Ottobre 2007 15:21 No, ho 2003 e 2005 installato. proc nuova Process () procSI nuova ProcessStartInfo () Ho poi creato un nuovo thread sia per il StandardError e StandardOutput ho poi scrivere i miei comandamenti e se (reindirizzamento standard out) avviare il thread per st. Se fuori (reindirizzamento errore standard) avviare il thread per st. Errore di Proc. WaitForExit () lt -------- questo è dove si verifica la finestra di errore di Windows generico Segnalazione. Ho tradotto quello che potevo dalla finestra che si apre. Microsoft Visual Studio 2005 Perché si verifica problema, finisce Microsoft Visual Studio 2005. Si applica inconveniente, non ci sono scuse. Grazie ancora per tutto il vostro tempo. Ho creato il StreamWriter peccato prima di creare l'oggetto proc processo. Ho quindi reindirizzare l'ingresso dopo il comando proc. Start (), così come faccio io non possiedo questo Indipendentemente da ciò, posso fare il cambiamento per spostare il sIn. Close () per dopo la chiamata WaitForExit per vedere se questo fa alcuna modifica. Il Proc era un tipo, avrebbe dovuto essere proc. Di nuovo, non è un messaggio di errore, quindi non c'è nessuna traccia di stack. Il mio reindirizzamento StandardError è vuoto e il riorientamento di uscita standard contiene quello che mi aspettavo, ma nulla indica un errore si è verificato. questo è il motivo per cui tutto funziona ancora dopo la chiusura della finestra di Windows Error Reporting. Io posto quello che succede dopo che spostare la linea sIn. Close () al di sotto della linea di WaitForExit (). Venerdì, 26 Ottobre 2007 16:59 Peter Ritchie ha scritto: Non volete chiudere l'oggetto peccato fino dopo l'applicazione è uscito se sei reindirizzamento. Un shouldnt chiudere qualsiasi di tali flussi a tutti. L'oggetto del processo le possiede ed è il responsabile per la pulizia dopo se stessa. Si dovrebbe chiamare al meglio Process. Dispose () dopo aver finito con l'oggetto del processo. Non avete certamente bisogno di (vale a dire la sua ridondante), ma dovreste causare un problema dopo che il processo è terminato. Process. close è il metodo consigliato di chiudere la standardinput e standardoutput (e StandardError) ruscelli. Venerdì, 26 Ottobre 2007 17:03 sarei sorpresi se il metodo Dispose non ha ancora invito a chiudere, almeno come parte del suo funzionamento. Vorrei favorire sfruttando il fatto che dal processo implementa IDisposable (indirettamente attraverso l'estensione Componente che implementa), si dovrebbe richiamare Dispose e lasciare che per una corretta pulizia. Io lo consiglio vivamente invocando process. close invece, nè in aggiunta a, Process. Dispose. Sì, lo smaltimento chiama Chiudi. La mia prima raccomandazione è quella di utilizzare un blocco utilizzando, il mio secondo è quello di chiamare Chiudi quando si sa quando hai finito con esso. In oggetti che implementano un metodo quotClosequot pur essendo IDisposable, la sua molto più chiaro per utilizzare il metodo quotClosequot. Plus senza utilizzando un blocco utilizzando non hai modo di scoping variabile e la chiamata a Dispose - l'oggetto potrebbe essere usato dopo la chiamata da smaltire. Se si utilizza Chiudi youve, smaltito tutte le risorse gestite ma l'oggetto può essere ancora utilizzato (vale a dire che eccedente stato contrassegnato come quotdisposedquot e lo si può utilizzare per eseguire un'altra applicazione senza l'assegnazione di un nuovo oggetto del processo - che altrimenti lanciare un ObjectDisposedException ). Venerdì, 26 Ottobre 2007 18:09 Quindi, se la prima raccomandazione è quella di utilizzare un blocco utilizzando, quindi la prossima cosa migliore sarebbe quella di chiamare Dispose. Non è vicino, quando, come hai detto, sai youre fatto con l'oggetto. Con solo chiamando chiudere su qualcosa che implementa IDisposable, lo sviluppatore è potenzialmente facendo un errore. Se Smaltire fa un po di pulizia aggiuntiva oltre la semplice delega per chiudere, poi il programmatore sta creando se stesso per un bug semplicemente chiamando Chiudi. Ci può essere un caso per la chiamata Close, ma solo se non sei fatto con l'oggetto, come avete indicato in fondo alla tua ultima risposta. Ma quando è fatto con esso, chiamare Dispose. Venerdì, 26 Ottobre 2007 18:20 Quindi, se la prima raccomandazione è quella di utilizzare un blocco utilizzando, quindi la prossima cosa migliore sarebbe quella di chiamare Dispose. Non è vicino, quando, come hai detto, sai youre fatto con l'oggetto. Con solo chiamando chiudere su qualcosa che implementa IDisposable, lo sviluppatore è potenzialmente facendo un errore. Se Smaltire fa un po di pulizia aggiuntiva oltre la semplice delega per chiudere, poi il programmatore sta creando se stesso per un bug semplicemente chiamando Chiudi. Ci può essere un caso per la chiamata Close, ma solo se non sei fatto con l'oggetto, come avete indicato in fondo alla tua ultima risposta. Ma quando è fatto con esso, chiamare Dispose. In realtà, la sua quotmorequot equivalente a: DisposableClass obj nuovi DisposableClass () obj usa e getta IDisposable come IDisposable se (null usa e getta) Ma sì, questo è quello che un'istruzione using è quotfunctionally equivalentquot a ma io non concordare chiamando esplicitamente Smaltire in presenza di un metodo quotClosequot dovrebbe essere la prima scelta a causa della mancanza di scoping con la chiamata Dispose. Ad esempio, il seguente: (nuovo processo di processo Process ()) utilizzando Ho avuto il servizio in esecuzione, ma mi sono fermato perché aveva funzionato per 2 ore e non aveva mai è il punto di interruzione che avrebbe dovuto colpire in 10 minuti di me iniziare il mio cliente. Io non commentata la linea sIn. Close () solo ora e ri-iniziato il servizio e il Cliente e tutto funziona come ha fatto prima. Posso colpire il punto di interruzione dopo la WaitForExit () e completare, con il Windows Segnalazione errori messaggio ancora (come era prima). Così, nel mio caso, ho bisogno a chiudere il flusso di input per essere in grado di uscire dal processo come previsto. Ci sono altre idee che posso recomment la linea sIn. Close () se si desidera controllare qualcosa. Venerdì, 26 Ottobre 2007 19:19 Antonio Maimone ha scritto: Ho avuto il servizio in esecuzione, ma mi sono fermato perché aveva funzionato per 2 ore e non aveva mai è il punto di interruzione che avrebbe dovuto colpire in 10 minuti di me iniziare il mio cliente . Io non commentata la linea sIn. Close () solo ora e ri-iniziato il servizio e il Cliente e tutto funziona come ha fatto prima. Posso colpire il punto di interruzione dopo la WaitForExit () e completare, con il Windows Segnalazione errori messaggio ancora (come era prima). Così, nel mio caso, ho bisogno a chiudere il flusso di input per essere in grado di uscire dal processo come previsto. Ci sono altre idee che posso recomment la linea sIn. Close () se si desidera controllare qualcosa. Sarebbe utile per vedere i dettagli di eccezione quando si ottiene l'errore (come lo stack di chiamate). Come stai usando lo standard input e l'output standard Stai usando qualsiasi metodo ReadLine Peter, il mio punto è: Se non chiamare Dispose su un oggetto che implementa (direttamente o indirettamente) IDisposable, quindi tu sei solo per chiedere un bug. Non voglio discutere su questo all'infinito però. È possibile continuare a farlo nel modo di fare, e bastone malato con la mia. Finché noi non devono mantenere ogni codice gli altri, bene. E tra l'altro, un doesnt blocco quotusingquot ti protegga sia. Nulla vi impedisce di dichiarare una variabile all'esterno del blocco (se ricordo bene), in modo che possa essere ancora portata dopo il blocco finisce. Dovete essere diligenti nella scrittura di codice corretto. Se si dichiara nella dichiarazione quotusingquot, questo è un modo. Ma per chiudere utilizzando l'approccio tryfinally solo perché lascia la variabile di portata non è questo il punto. Si deve ancora essere Dispose () d qualche parte. Venerdì, 26 Ottobre 2007 19:34 Peter Ritchie ha scritto: Anthony Maimone ha scritto: Ho avuto il servizio in esecuzione, ma mi sono fermato perché aveva funzionato per 2 ore e non aveva mai è il punto di interruzione che avrebbe dovuto colpire entro 10 minuti mi iniziare il mio cliente. Io non commentata la linea sIn. Close () solo ora e ri-iniziato il servizio e il Cliente e tutto funziona come ha fatto prima. Posso colpire il punto di interruzione dopo la WaitForExit () e completare, con il Windows Segnalazione errori messaggio ancora (come era prima). Così, nel mio caso, ho bisogno a chiudere il flusso di input per essere in grado di uscire dal processo come previsto. Ci sono altre idee che posso recomment la linea sIn. Close () se si desidera controllare qualcosa. Sarebbe utile per vedere i dettagli di eccezione quando si ottiene l'errore (come lo stack di chiamate). Come stai usando lo standard input e l'output standard Si sta utilizzando i metodi ReadLine Ancora una volta, questo non è un'eccezione che viene gettato, quindi non sto vedendo alcun dettaglio eccezione. Non vado direttamente al blocco catch nel mio codice, riprendo subito dopo la chiamata WaitForExit (). La finestra che sto ricevendo è lo stesso che si ottiene quando qualsiasi prodotto Microsoft chiude in modo imprevisto e MS vuole informazioni sul crash. Così ancora una volta, non ci sono particolari eccezioni. Tuttavia, in uno dei registri di sistema, sto ricevendo un mesage (tradotto dal giapponese) erros applicazione quotDevenv. exe verificano, 8.0.50727.762 versione degli errori si è verificato modulo msvcr80.dll, versione 8.0.50727.762, si sono verificati errori indirizzo 0x00039001. Per ulteriori informazioni, go. microsoftfwlinkevents. asp il Helo e supporto tecnico si prega di refer. quot sto reindirizzare l'input standard di passare nei diversi comandi, perché ho avuto problemi a trovare loro di lavorare come volevo formare il StartInfo. Sto reindirizzando i flussi in uscita e di errore per controllare ciò che hanno in loro dopo che il processo è terminato. Questo mi permetterà di controllare per tutto ciò che vorrei in entrambe flusso una volta che abbiamo finito. Anche io non permetto uno dei fili di uscita o il reindirizzamento di errore per unirsi fino a dopo il processo ha superato la chiamata WaitForExit. Sono completamente perplesso. Venerdì, 26 Ottobre 2007 19:53 Peter, il mio punto è: Se non chiamare Dispose su un oggetto che implementa (direttamente o indirettamente) IDisposable, quindi tu sei solo per chiedere un bug. Non voglio discutere su questo all'infinito però. È possibile continuare a farlo nel modo di fare, e bastone malato con la mia. Finché noi non devono mantenere ogni codice gli altri, bene. Io non sono d'accordo. La sua non è una quotbugquot di non chiamare Dispose. Le risorse non otterrete liberate subito, ma il GC rilascerà loro se ha bisogno della memoria (assumendo che il pattern Dispose sia correttamente attuato ed esiste un finalizzatore). Se il youre classe utilizzando implementa un metodo quotClosequot che pretende molto fare le stesse cose come quotDisposequot, Close dovrebbe essere sia documentato in quanto tale o theres un bug nella classe. Non ho mai incontrato una classe framework che implementa IDisposable e un metodo Close (), che ha introdotto un quotleakquot quando chiudere è stato chiamato senza chiamare Dispose. Il modello schiacciante per DisposeClose è che lo smaltimento chiama chiudere così come impostazione di un flag quotdisposedquot (utilizzato per il lancio ObjectDisposedException). In realtà questo è dettagliato nel quadro di riferimento generale: quotOccasionally un nome specifico di dominio è più appropriato di smaltimento. Ad esempio, un file di incapsulamento potrebbe voler utilizzare il nome di metodo Close. In questo caso, l'attuazione Smaltire privatamente e creare un metodo Close pubblico che chiama Dispose. Il seguente esempio di codice illustra questo modello. È possibile sostituire chiudere con un nome metodo appropriato alla domain. quot dall'attuazione Finalizza e Dispose per ripulire le risorse non gestite Così come quotFor alcune classi di oggetti, come ad esempio file o oggetti di connessione al database, un metodo Close meglio rappresenta l'operazione logica che deve essere eseguita quando il consumatore oggetti è finito con il object. quot dal migliorare gestito prestazioni del codice (anche se anche si descrive inoltre quotIn casi ben scritti, entrambi sono funzionalmente equivalent. quot implica che l'utilizzo di Close è più chiaro con quotbetter representsquot.) e tra l'altro, un doesnt blocco quotusingquot ti protegga sia. Nulla vi impedisce di dichiarare una variabile all'esterno del blocco (se ricordo bene), in modo che possa essere ancora portata dopo il blocco finisce. Dovete essere diligenti nella scrittura di codice corretto. Se si dichiara nella dichiarazione quotusingquot, questo è un modo. Ma per chiudere utilizzando l'approccio tryfinally solo perché lascia la variabile di portata non è questo il punto. Si deve ancora essere Dispose () d qualche parte. Sì, ce n'è tutti i modi si può spararsi in un piede, ma non questo è uno scenario stavamo discutendo. Vorrei girare personalmente giù qualsiasi codice che ho rivisto in quel modo. Questo sarebbe sulla mia lista non è raccomandato. Venerdì, 26 Ottobre 2007 19:54 Ancora una volta, questo non è un'eccezione che viene gettato, quindi non sto vedendo alcun dettaglio eccezione. Non vado direttamente al blocco catch nel mio codice, riprendo subito dopo la chiamata WaitForExit (). La finestra che sto ricevendo è lo stesso che si ottiene quando qualsiasi prodotto Microsoft chiude in modo imprevisto e MS vuole informazioni sul crash. Così ancora una volta, non ci sono particolari eccezioni. Tuttavia, in uno dei registri di sistema, sto ricevendo un mesage (tradotto dal giapponese) erros applicazione quotDevenv. exe verificano, 8.0.50727.762 versione degli errori si è verificato modulo msvcr80.dll, versione 8.0.50727.762, si sono verificati errori indirizzo 0x00039001. Per ulteriori informazioni, go. microsoftfwlinkevents. asp il Helo e supporto tecnico si prega di refer. quot ho assunto l'applicazione stava generando il messaggio (nel qual caso si dovrebbe sempre ottenere un'eccezione e una traccia dello stack) non fosse stato chiaro che si riprende dopo la chiamata a WaitForExit (). Sembra a me come l'applicazione youre in esecuzione viene terminato in modo anomalo. Sei in esecuzione devenv. exe Im non sicuro di quello che si può fare nella vostra applicazione per fermare un'altra applicazione da terminato in modo anomalo. Anthony Maimone ha scritto: Sto reindirizzare l'input standard di passare nei diversi comandi, perché ho avuto problemi a trovare loro di lavorare come volevo formare il StartInfo. Sto reindirizzando i flussi in uscita e di errore per controllare ciò che hanno in loro dopo che il processo è terminato. Questo mi permetterà di controllare per tutto ciò che vorrei in entrambe flusso una volta che abbiamo finito. Anche io non permetto uno dei fili di uscita o il reindirizzamento di errore per unirsi fino a dopo il processo ha superato la chiamata WaitForExit. Sono completamente perplesso. È possibile ottenere una situazione di stallo se si blocca sulla lettura da e applicazioni standard output - che sarebbe sbloccare se si chiude il flusso, credo. L'unica cosa che posso pensare è la creazione di un'applicazione in esecuzione su Windows Server e monitorare comming formano i processi che si sta controllando da remoto e poi trovare i tasti giusti e premere li programaticaly pusing un messaggio alla pompa messaggio della finestra di dialogo . Questo accade Alos con Excel, Word e altre applicazioni che possono essere utilizzate con autimation MSFT non ha progettato queste applicazioni da eseguire senza l'interazione dell'utente in modo da una volta ogni tanto si otterrà finestre su errori. Hai pensato di usare MSBuid che è più appropriata per lotti costruisce, anche sembra che in TFS 2008 server di build sarà facile da costruire. Sabato 27 Ottobre 2007 11:07 Beh, ho tentato di utilizzare FindWindow e FindWindowEx con SendMessage, ma non sono riuscito a trovare l'handle di finestra corretto. Ma dal momento che so che un errore di Windows Segnalazione Msssage Box sarà spuntando, ho controllato per vedere se era proprio processo (ed è). Il processo è dwwin. exe (Dr. Watson Win) e tutto quello che dovevo fare era questo per permettere a me stesso per ottenere corretto il problema attuale. Sostituire il blocco di codice corrente al di sotto per l'istruzione WaitForExit () che ho avuto in precedenza. proc. WaitForExit (60000) un processo minuto ProcArray Process. GetProcessesByName (quotdwwinquot) foreach (Processo ProcessFound in ProcArray) Ho anche controllato per vedere se sono stati in grado di ottenere il Process. MainWindowTitle (), ma è impostato su quotquot. Quindi questo è un hack e io davvero non mi piace usarlo, ma funziona per l'esecuzione corrente. Lunedi, 29 mese di ottobre, 2007 07:26

Comments

Popular posts from this blog

Responsabile Commerciale Metatrader Forex Trading

Steve Sedco Inondazione Forex

Sm Manila Forex