Skip to main content

Verarbeiten Waitforexit Nicht Verlassen


Diese Frage mag ein wenig seltsam erscheinen, aber ich versuche, VS2005 durch einen Prozess zu rendern und einen bestimmten Befehl auszuführen und ich waruplit (). Ich bin umgekehrt meine Eingabe und Ausgabe erfolgreich, aber ab und zu bekomme ich zufällig eine Fensterfehler Reporting WindowMessage. Das Problem ist, dass ich remoting, also wenn dieses Meldungsfenster während der Prozessausführung auftritt, werde ich hängen, wenn ich mich nicht in die andere (remoting) Maschine einlogge und das Fenster schließe. Gibt es eine Möglichkeit, dieses Fenster programmatisch zu töten oder evtl. das Meldungsfenster zu deaktivieren, habe ich gedacht, VS in einer stillen Ausführung zu laufen (ich habe noch keinen Weg dazu). Ich habe auch versucht zu sehen, ob es irgendetwas gibt, das lauched ist, wenn dies auftritt, wenn es nicht ist. Donnerstag, 25. Oktober 2007 8:32 Nun, ich habe versucht, FindWindow und FindWindowEx zusammen mit SendMessage zu verwenden, aber ich konnte den richtigen Fenstergriff nicht finden. Aber da ich weiß, dass ein Windows-Fehler-Reporting Msssage Box auftauchen wird, habe ich überprüft, ob es sein eigener Prozess war (und es ist). Der Prozess ist dwwin. exe (Dr. Watson Win) und alles, was ich tun musste, war das, um mir zu erlauben, das aktuelle Problem richtig zu machen. Ersetzen Sie den aktuellen Codeblock unten für die WaitForExit () - Anweisung, die ich zuvor hatte. Proc. WaitForExit (60000) eine Minute Prozess ProcArray Process. GetProcessesByName (quotdwwinquot) foreach (Process ProcessFound in ProcArray) Ich habe auch überprüft, ob Sie in der Lage, die Process. MainWindowTitle () zu bekommen, aber es ist auf quotquot gesetzt. Also das ist ein Hack und ich mag es wirklich nicht, aber es funktioniert für die aktuelle Ausführung. Montag, 29. Oktober 2007 07:26 Nein, ich kann Eingang und Ausgang ohne Problem umleiten. Der Fehler, den ich empfange, ist die allgemeine Windows-Fehlermeldung und leider ist es auf Japanisch, also weiß ich nicht was der genaue Fehler ist, aber es ist der allgemeine Fehler. Ich habe nicht den Code vor mir, aber ich setze delegatesthreads zu lesen umgeleitet den Fehler und Ausgabe, nachdem ich den gesamten Prozess beenden. Ich kann nicht mit etwas kommen und ich bin in der Lage, den gleichen Prozess auf meinem eigenen Computer laufen, aber ich bin nicht in der Lage, dies zu tun, ein bestimmter Befehl durch Remoting. Ich werde es morgen versuchen, morgen auf einer nicht-japanischen Maschine bei der Arbeit zu reparieren und ich werde meine Erkenntnisse unabhängig verfolgen. Freitag, 26. Oktober 2007 02.34 Uhr Bist du die Konsole quotcmdquot. Wenn ja, dann musst du auch exit eingeben. Freitag, den 26. Oktober 2007 um 4:50 Uhr Wenn du eine Vorstellung davon hast, wie viel Zeit dein Prozess nehmen wird, dann kannst du bool ausgegebene Prozesse verwenden. WaitForExit (timeInMilliSeconds) if (exited) Prozess vor dem Timeout verlassen. Else Print Fehlermeldung Dies kann nicht mit dem verglichen werden, was du tust, aber ich hatte eine Erfahrung, wo der Prozess nicht beenden würde, wenn ich seine Ausgabe umgeleitet hätte. Versuchen Sie, die Ausgabeumleitung zu deaktivieren und sehen Sie, ob der Prozess beendet wird. Probieren Sie es aus. Freitag, 26. Oktober 2007 11:58 Ich würde es gerne ausprobieren, aber es ist zu viel von einem Hack. Ich habe zu viele verschiedene Befehle, die unterschiedliche Zeitaufwand (30 Sekunden bis 25 Minuten) nehmen, so dass es keine Echtzeit-Einstellung gibt, die ich ohne Zerstörung meiner Leistung platzieren könnte. Diese Funktion hat in den letzten 6 Monaten korrekt für mehrere Befehle gearbeitet und nun entscheidet es sich, auf mich zu kommen. Ich habe es auf einem anderen Computer ohne Probleme probiert (was bei mir wirklich weht). Ich weiß, dass es nicht die Outputerror-Umleitung ist, weil ein neues WINDOW auf dem Server erstellt wird, auf den ich remoting bin. Sobald ich dieses Fenster schließe, verlässt mein Prozess wie erwartet und die richtige Ausgabe wird auf der User-Seite angezeigt. Vielen Dank für Ihre Hilfe, aber ich bin immer frustriert mit diesem Problem. Freitag, 26. Oktober 2007 15:01 Ohne zu wissen, das Detail der Nachricht waren nur zu erraten, das Problem. Hast du schon 3,5 Beta oder Visual Studio 2008 beta installiert? Wie kommst du mit Process, um das Programm zu starten, Process. Start (quotfile. exequot) oder verwenden Sie ProcessStartInfo Freitag, 26. Oktober 2007 15:21 Nein, ich habe 2003 und 2005 installiert. Proc neuer Prozess () procSI new ProcessStartInfo () Ich setze dann einen neuen Thread für den StandardError und den StandardOutput ein und schreibe dann meine Befehle und wenn ich den Standard ausschreibe. Out If (Umleitung von Standardfehler) Start Thread für st. Fehler Proc. WaitForExit () lt -------- Hier befindet sich das Fenster Generic Windows Error Reporting. Ich habe übersetzt, was ich aus dem Fenster herauskomme. Microsoft Visual Studio 2005 Weil das Problem auftritt, beendet es Microsoft Visual Studio 2005. Wir wenden Unannehmlichkeiten an, es gibt keine Entschuldigung. Nochmals vielen Dank für all eure Zeit. Ich habe den StreamWriter sIn vor dem Erstellen des Proc Process Objekts erstellt. Ich habe dann die Eingabe nach dem Befehl proc. Start () umgeleitet, also wie kann ich das nicht besitzen. Unabhängig davon kann ich die Änderung vornehmen, um die sIn. Close () nach dem WaitForExit-Aufruf zu verschieben, um zu sehen, ob dies Änderungen vornimmt. Der Proc war ein Typ, das hätte sein sollen. Wieder ist es keine Fehlermeldung, also gibt es keine Stack-Trace. Meine StandardError-Umleitung ist leer und die Standard-OUtput-Umleitung enthält, was ich erwartet habe, aber nichts, was auf einen Fehler hindeutet. Dies ist der Grund, warum alles noch funktioniert, nachdem ich das Fenster Windows Error Reporting geschlossen habe. Ich werde posten, was passiert, nachdem ich die sIn. Close () Zeile unter die WaitForExit () Zeile verschoben habe. Freitag, 26. Oktober 2007 16:59 Peter Ritchie hat geschrieben: Du möchtest das sIn-Objekt nicht schließen, bis die Anwendung ausgegeben ist, wenn du dich umleitet. Man sollte überhaupt keinen dieser Streams schließen. Das Prozessobjekt besitzt sie und es ist das Verantwortliche für die Aufräumung nach sich selbst. Man sollte am besten Process. Dispose () nach dem Beenden mit dem Process-Objekt anrufen. Du brauchst es sicher nicht (ich bin seine Redundante), aber es sollte nicht ein Problem nach dem Prozess verlassen haben. Process. Close ist die empfohlene Methode zum Schließen der Standardinput - und Standardausgabe - (und Standarderror-) Streams. Freitag, 26. Oktober 2007 17:03 Ich würde überrascht sein, wenn die Dispose-Methode nicht annulliert hat, zumindest als Teil ihrer Operation. Ich würde die Verwendung der Tatsache, dass seit Prozess implementiert IDisposable (indirekt durch erweiterte Komponente, die es implementiert), sollte man auf Dispose und lassen Sie diese auf die richtige Aufräumung. Ich würde nicht empfehlen, Process. Close anstelle von, noch zusätzlich zu Process. Dispose aufrufen. Ja, Anrufe ausschalten Schließen. Meine erste Empfehlung ist, einen Block zu benutzen, meine zweite ist, um zu schließen, wenn du weißt, wann du damit fertig bist. In Objekten, die eine quotClosequot-Methode implementieren, obwohl sie IDisposable ist, ist es viel klarer, die quotClosequot-Methode zu verwenden. Plus ohne Verwendung eines Bausteins haben Sie keine Möglichkeit, die Variable und den Aufruf zu entsorgen - das Objekt könnte nach dem Aufruf zur Dispose verwendet werden. Wenn du die Schließe benutzt hast, hast du alle verwalteten Ressourcen entsorgt, aber das Objekt kann immer noch verwendet werden (dh es wurde nicht als quotdisposedquot markiert und du kannst es verwenden, um eine andere Anwendung ohne Zuordnung eines neuen Prozessobjekts zu starten - das würde sonst eine ObjectDisposeException auslösen ). Freitag, 26. Oktober 2007 18:09 So, wenn die erste Empfehlung ist, einen Baustein zu benutzen, dann wäre das nächste beste, um Dispose zu rufen. Nicht schliessen, wann du, wie du gesagt hast, du mit dem Gegenstand gemacht hast. Durch das Aufrufen von Close auf etwas, das IDisposable implementiert, macht der Entwickler möglicherweise einen Fehler. Wenn Dispose einige zusätzliche Bereinigung über nur delegieren zu schließen, dann ist der Programmierer setzt sich für einen Bug, indem Sie einfach anrufen. Es kann ein Fall für den Aufruf von Schließen geben, aber nur, wenn du nicht mit dem Objekt fertig bist, wie du am Ende deiner letzten Antwort angekündigt hast. Aber wenn es damit fertig ist, rufen Sie Dispose an. Freitag, 26. Oktober 2007 18.20 Uhr Also wenn die erste Empfehlung ist, einen Baustein zu benutzen, dann wäre das nächste Beste, um Dispose zu rufen. Nicht schliessen, wann du, wie du gesagt hast, du mit dem Gegenstand gemacht hast. Durch das Aufrufen von Close auf etwas, das IDisposable implementiert, macht der Entwickler möglicherweise einen Fehler. Wenn Dispose einige zusätzliche Bereinigung über nur delegieren zu schließen, dann ist der Programmierer setzt sich für einen Bug, indem Sie einfach anrufen. Es kann ein Fall für den Aufruf von Schließen geben, aber nur, wenn du nicht mit dem Objekt fertig bist, wie du am Ende deiner letzten Antwort angekündigt hast. Aber wenn es damit fertig ist, rufen Sie Dispose an. Tatsächlich ist seine Quittung gleichbedeutend mit: DisposableClass obj neue DisposableClass () IDisposable Einweg obj als IDisposable if (Einweg null) Aber ja, das ist, was eine Gebrauchsanweisung ist fehlerhaft gleichbedeutend, aber ich stimme nicht ausdrücklich zu rufen Dispose in Anwesenheit einer quotClosequot-Methode sollte Sei die erste Wahl wegen der Mangel-Scoping mit dem Dispose-Aufruf. Zum Beispiel, die folgenden: verwenden (Prozess Prozess neue Prozess ()) Ich hatte den Dienst ausgeführt, aber ich hielt es, weil es für 2 Stunden lief und hatte noch nie den Breakpoint, dass es innerhalb von 10 Minuten von mir beginnen sollte meine Klient. Ich habe die sIn. Close () - Linie gerade noch nicht kommentiert und den Service und den Client neu gestartet und alles funktioniert wie früher. Ich kann den Breakpoint nach dem WaitForExit () und ich komplett, mit der Windows Error Reporting Nachricht noch (wie es vorher war). Also, in meinem Fall muss ich den Eingabestrom schließen, um den Prozess wie erwartet beenden zu können. Gibt es irgendwelche anderen Ideen, die ich die sIn. Close () Linie empfehlen kann, wenn du etwas überprüfen möchtest. Freitag, 26. Oktober 2007 19:19 Anthony Maimone hat geschrieben: Ich hatte den Service läuft, aber ich hielt es an, weil es für 2 Stunden gelaufen war und hatte noch nie den Breakpoint, dass es innerhalb von 10 Minuten von mir anfangen sollte mein Client . Ich habe die sIn. Close () - Linie gerade noch nicht kommentiert und den Service und den Client neu gestartet und alles funktioniert wie früher. Ich kann den Breakpoint nach dem WaitForExit () und ich komplett, mit der Windows Error Reporting Nachricht noch (wie es vorher war). Also, in meinem Fall muss ich den Eingabestrom schließen, um den Prozess wie erwartet beenden zu können. Gibt es irgendwelche anderen Ideen, die ich die sIn. Close () Linie empfehlen kann, wenn du etwas überprüfen möchtest. Es wäre hilfreich, die Ausnahmedetails zu sehen, wenn du den Fehler bekommst (wie der Anrufstapel). Wie benutzt man die Standard-Eingabe und die Standard-Ausgabe verwenden Sie verwenden alle ReadLine-Methoden Peter, mein Punkt ist: Wenn Sie nicht auf Dispose auf ein Objekt, das (direkt oder indirekt) IDisposable implementiert, dann sind Sie nur für einen Bug fragen. Ich möchte nicht auf diese endlos aber streiten. Du kannst es auch weiterhin tun, wie du es tust und kommst bei mir. Solange wir nicht brauchen, um jeden anderen Code zu behalten, gut. Und übrigens, ein Notizblock schützt dich auch nicht. Nichts hält Sie davon ab, die Variable außerhalb des Blocks zu deklarieren (wenn ich mich richtig erinnere), so dass es immer noch im Geltungsbereich sein kann, nachdem der Block endet. Sie müssen sorgfältig schriftlich korrigieren. Wenn du es in der quotusingquot-Anweisung deklarierst, das ist ein Weg. Aber mit dem tryfinally-Ansatz zu entlassen, nur weil es die Variable im Geltungsbereich verlässt, ist nicht wirklich der Punkt. Es muss noch irgendwo entsorgen sein. Freitag, 26. Oktober 2007 19:34 Peter Ritchie hat geschrieben: Anthony Maimone hat geschrieben: Ich hatte den Service laufen, aber ich hielt es an, weil es für 2 Stunden gelaufen war und hatte noch nie den Breakpoint, dass es innerhalb von 10 Minuten getroffen haben sollte Ich beginne meinen Klienten. Ich habe die sIn. Close () - Linie gerade noch nicht kommentiert und den Service und den Client neu gestartet und alles funktioniert wie früher. Ich kann den Breakpoint nach dem WaitForExit () und ich komplett, mit der Windows Error Reporting Nachricht noch (wie es vorher war). Also, in meinem Fall muss ich den Eingabestrom schließen, um den Prozess wie erwartet beenden zu können. Gibt es irgendwelche anderen Ideen, die ich die sIn. Close () Linie empfehlen kann, wenn du etwas überprüfen möchtest. Es wäre hilfreich, die Ausnahmedetails zu sehen, wenn du den Fehler bekommst (wie der Anrufstapel). Wie benutzt man die Standard-Eingabe und die Standard-Ausgabe Verwenden Sie alle ReadLine-Methoden Wieder ist dies keine Ausnahme, die geworfen wird, also sehe ich keine Ausnahmedetails. Ich gehe nicht direkt in den Fangblock in meinem Code, ich nehme DIREKT nach dem WaitForExit () Aufruf wieder auf. Das Fenster, das ich empfange, ist das gleiche, das du bekommst, wenn jemand Microsoft Produkt unerwartet schließt und MS will Informationen über den Crash. So wieder gibt es keine Ausnahmedetails. Allerdings in einem der System-Logs, bekomme ich eine mesage (übersetzt aus Japanisch) quotDevenv. exe Anwendung erros auftreten, 8.0.50727.762 Version der Fehler aufgetreten msvcr80.dll Modul, Version 8.0.50727.762, Fehler aufgetreten Adresse 0x00039001. Für weitere Informationen, go. microsoftfwlinkevents. asp die Helo und Support Center bitte refer. quot Ich bin die Umleitung der Standard-Eingang, um in den verschiedenen Befehlen in passieren, weil ich hatte Probleme mit ihnen zu arbeiten, wie ich wollte Form der StartInfo. Ich bin die Umleitung der Ausgabe - und Fehlerströme, um zu überprüfen, was sie in ihnen haben, nachdem der Prozess verlassen hat. Dies wird mir erlauben, für alles, was ich möchte in jedem Stream zu überprüfen, sobald wir fertig sind. Ich erlaube auch nicht, dass die Ausgabe - oder Fehlerumleitungs-Threads bis zum Ende des Prozesses den WaitForExit-Aufruf vergeben haben. Ich bin völlig stumped Freitag, 26. Oktober 2007 07:53 Peter, mein Punkt ist: Wenn du nicht auf Dispose auf ein Objekt rufst, das (direkt oder indirekt) IDisposable implementiert, dann bist du nur um einen Bug gefragt. Ich möchte nicht auf diese endlos aber streiten. Du kannst es auch weiterhin tun, wie du es tust und kommst bei mir. Solange wir nicht brauchen, um jeden anderen Code zu behalten, gut. Ich stimme nicht zu. Es ist nicht ein quotbugquot nicht aufrufen Dispose. Ihre Ressourcen werden nicht sofort befreit, aber die GC wird sie freigeben, wenn es das Gedächtnis braucht (vorausgesetzt, das Dispose-Muster ist ordnungsgemäß implementiert und ein Finalizer existiert). Wenn die Klasse youre mit implementiert eine quotClosequot-Methode, die nicht alle die gleichen Dinge wie quotDisposequot, Close sollte entweder als solche oder theres ein Bug in der Klasse dokumentiert werden. Ich habe nie eine Framework-Klasse, die IDisposable implementiert und eine Close () - Methode, die ein quotleakquot eingeführt, wenn Close aufgerufen wurde, ohne Aufruf Dispose. Das überwältigende Muster für DisposeClose ist, dass Dispose Anrufe schließen sowie die Einstellung eines quotdisposedquot Flags (verwendet für das Werfen von ObjectDisposedException). In der Tat ist dies in der Framework General Reference: quotOccasionally eine Domain-spezifische Name ist besser geeignet als Dispose. Beispielsweise kann eine Dateikapselung den Methodennamen Close verwenden. In diesem Fall implementieren Sie Dispose privat und erstellen Sie eine Public-Close-Methode, die Dispose aufruft. Das folgende Codebeispiel veranschaulicht dieses Muster. Sie können Schließen mit einem Methodennamen, der für Ihre Domain geeignet ist, ersetzen. Implementieren von Finalisieren und Entsorgen, um nicht verwaltete Ressourcen zu bereinigen Sowie quot Für bestimmte Klassen von Objekten wie Dateien oder Datenbankverbindungsobjekten stellt eine Close-Methode besser die logische Operation dar Sollte durchgeführt werden, wenn der Objektkonsument mit dem object. quot von der Verbesserung der Managed Code Performance fertig ist (obwohl es auch auch Details quotIn gut geschriebene Fälle, beide sind funktional äquivalent. quot es impliziert, dass mit Close ist klarer mit quotbetter representquot.) Und übrigens, ein Notizblock schützt dich auch nicht. Nichts hält Sie davon ab, die Variable außerhalb des Blocks zu deklarieren (wenn ich mich richtig erinnere), so dass es immer noch im Geltungsbereich sein kann, nachdem der Block endet. Sie müssen sorgfältig schriftlich korrigieren. Wenn du es in der quotusingquot-Anweisung deklarierst, das ist ein Weg. Aber mit dem tryfinally-Ansatz zu entlassen, nur weil es die Variable im Geltungsbereich verlässt, ist nicht wirklich der Punkt. Es muss noch irgendwo entsorgen sein. Ja, theres alle Arten von Weisen, die Sie sich in den Fuß schießen können, aber das ist kein Szenario, das wir besprochen haben. Ich würde persönlich jeden Code, den ich so bewertet habe, abschießen. Das wäre auf meiner nicht empfohlenen Liste. Freitag, 26. Oktober 2007 07:54 Wieder ist dies nicht eine Ausnahme, die geworfen wird, also sehe ich keine Ausnahmedetails. Ich gehe nicht direkt in den Fangblock in meinem Code, ich nehme DIREKT nach dem WaitForExit () Aufruf wieder auf. Das Fenster, das ich empfange, ist das gleiche, das du bekommst, wenn jemand Microsoft Produkt unerwartet schließt und MS will Informationen über den Crash. So wieder gibt es keine Ausnahmedetails. Allerdings in einem der System-Logs, bekomme ich eine mesage (übersetzt aus Japanisch) quotDevenv. exe Anwendung erros auftreten, 8.0.50727.762 Version der Fehler aufgetreten msvcr80.dll Modul, Version 8.0.50727.762, Fehler aufgetreten Adresse 0x00039001. Für weitere Informationen, go. microsoftfwlinkevents. asp die Helo und Support Center bitte refer. quot Ich nahm an, dass Ihre Anwendung die Nachricht generiert (in diesem Fall sollten Sie immer eine Ausnahme und eine Stack-Trace) es war nicht klar, dass Sie nach dem Aufruf wieder aufnehmen Zu WaitForExit (). Es klingt für mich wie die Anwendung youre läuft endet abnormal. Laufen Sie devenv. exe Im nicht sicher, was Sie in Ihrer Anwendung tun können, um eine andere Anwendung zu stoppen, um abnormal zu beenden. Anthony Maimone schrieb: Ich bin die Umleitung der Standard-Eingabe, um in den verschiedenen Befehlen zu übergeben, weil ich Schwierigkeiten hatte, sie zu arbeiten, wie ich wollte, dass die StartInfo. Ich bin die Umleitung der Ausgabe - und Fehlerströme, um zu überprüfen, was sie in ihnen haben, nachdem der Prozess verlassen hat. Dies wird mir erlauben, für alles, was ich möchte in jedem Stream zu überprüfen, sobald wir fertig sind. Ich erlaube auch nicht, dass die Ausgabe - oder Fehlerumleitungs-Threads bis zum Ende des Prozesses den WaitForExit-Aufruf vergeben haben. Ich bin völlig stumped Sie können einen Deadlock bekommen, wenn Sie beim Lesen von und Anwendungen Standardausgabe blockieren - was würde freigeben, wenn Sie den Strom geschlossen haben, glaube ich. Das einzige, was ich mir vorstellen kann, ist die Schaffung einer Anwendung, die auf dem Server läuft und überwacht Fenster, die Form der Prozesse, die Sie steuern remote und dann finden Sie die richtigen Schaltflächen und drücken Sie sie programmgesteuert Pusing eine Nachricht an die Nachricht Pumpe des Dialogfensters . Dieses alos geschieht mit excel, wort und anderen anwendungen, die mit autimation verwendet werden können MSFT hat nicht entworfen diese Anwendungen laufen ohne Benutzerinteraktion so einmal in eine Weile erhalten Sie Fenster auf Fehler. Hast du die Verwendung von MSBuid in Betracht gezogen, die für Batch-Builds besser geeignet ist, scheint es auch, dass in TFS 2008 Build-Server einfach zu bauen sind. Samstag, 27. Oktober 2007 11:07 Nun, ich habe versucht, FindWindow und FindWindowEx zusammen mit SendMessage zu verwenden, aber ich konnte den richtigen Fenstergriff nicht finden. Aber da ich weiß, dass ein Windows-Fehler-Reporting Msssage Box auftauchen wird, habe ich überprüft, ob es sein eigener Prozess war (und es ist). Der Prozess ist dwwin. exe (Dr. Watson Win) und alles, was ich tun musste, war das, um mir zu erlauben, das aktuelle Problem richtig zu machen. Ersetzen Sie den aktuellen Codeblock unten für die WaitForExit () - Anweisung, die ich zuvor hatte. Proc. WaitForExit (60000) eine Minute Prozess ProcArray Process. GetProcessesByName (quotdwwinquot) foreach (Process ProcessFound in ProcArray) Ich habe auch überprüft, ob Sie in der Lage, die Process. MainWindowTitle () zu bekommen, aber es ist auf quotquot gesetzt. Also das ist ein Hack und ich mag es wirklich nicht, aber es funktioniert für die aktuelle Ausführung. Montag, 29. Oktober 2007 7:26 PMDiese Frage mag ein wenig seltsam erscheinen, aber ich versuche, VS2005 durch einen Prozess zu rendern und einen bestimmten Befehl auszuführen, und ich warte vor (). Ich bin umgekehrt meine Eingabe und Ausgabe erfolgreich, aber ab und zu bekomme ich zufällig eine Fensterfehler Reporting WindowMessage. Das Problem ist, dass ich remoting, also wenn dieses Meldungsfenster während der Prozessausführung auftritt, werde ich hängen, wenn ich mich nicht in die andere (remoting) Maschine einlogge und das Fenster schließe. Gibt es eine Möglichkeit, dieses Fenster programmatisch zu töten oder evtl. das Meldungsfenster zu deaktivieren, habe ich gedacht, VS in einer stillen Ausführung zu laufen (ich habe noch keinen Weg dazu). Ich habe auch versucht zu sehen, ob es irgendetwas gibt, das lauched ist, wenn dies auftritt, wenn es nicht ist. Donnerstag, 25. Oktober 2007 8:32 Nun, ich habe versucht, FindWindow und FindWindowEx zusammen mit SendMessage zu verwenden, aber ich konnte den richtigen Fenstergriff nicht finden. Aber da ich weiß, dass ein Windows-Fehler-Reporting Msssage Box auftauchen wird, habe ich überprüft, ob es sein eigener Prozess war (und es ist). Der Prozess ist dwwin. exe (Dr. Watson Win) und alles, was ich tun musste, war das, um mir zu erlauben, das aktuelle Problem richtig zu machen. Ersetzen Sie den aktuellen Codeblock unten für die WaitForExit () - Anweisung, die ich zuvor hatte. Proc. WaitForExit (60000) eine Minute Prozess ProcArray Process. GetProcessesByName (quotdwwinquot) foreach (Process ProcessFound in ProcArray) Ich habe auch überprüft, ob Sie in der Lage, die Process. MainWindowTitle () zu bekommen, aber es ist auf quotquot gesetzt. Also das ist ein Hack und ich mag es wirklich nicht, aber es funktioniert für die aktuelle Ausführung. Montag, 29. Oktober 2007 07:26 Nein, ich kann Eingang und Ausgang ohne Problem umleiten. Der Fehler, den ich empfange, ist die allgemeine Windows-Fehlermeldung und leider ist es auf Japanisch, also weiß ich nicht was der genaue Fehler ist, aber es ist der allgemeine Fehler. Ich habe nicht den Code vor mir, aber ich setze delegatesthreads zu lesen umgeleitet den Fehler und Ausgabe, nachdem ich den gesamten Prozess beenden. Ich kann nicht mit etwas kommen und ich bin in der Lage, den gleichen Prozess auf meinem eigenen Computer laufen, aber ich bin nicht in der Lage, dies zu tun, ein bestimmter Befehl durch Remoting. Ich werde es morgen versuchen, morgen auf einer nicht-japanischen Maschine bei der Arbeit zu reparieren und ich werde meine Erkenntnisse unabhängig verfolgen. Freitag, 26. Oktober 2007 02.34 Uhr Bist du die Konsole quotcmdquot. Wenn ja, dann musst du auch exit eingeben. Freitag, den 26. Oktober 2007 um 4:50 Uhr Wenn du eine Vorstellung davon hast, wie viel Zeit dein Prozess nehmen wird, dann kannst du bool ausgegebene Prozesse verwenden. WaitForExit (timeInMilliSeconds) if (exited) Prozess vor dem Timeout verlassen. Else Print Fehlermeldung Dies kann nicht mit dem verglichen werden, was du tust, aber ich hatte eine Erfahrung, wo der Prozess nicht beenden würde, wenn ich seine Ausgabe umgeleitet hätte. Versuchen Sie, die Ausgabeumleitung zu deaktivieren und sehen Sie, ob der Prozess beendet wird. Probieren Sie es aus. Freitag, 26. Oktober 2007 11:58 Ich würde es gerne ausprobieren, aber es ist zu viel von einem Hack. Ich habe zu viele verschiedene Befehle, die unterschiedliche Zeitaufwand (30 Sekunden bis 25 Minuten) nehmen, so dass es keine Echtzeit-Einstellung gibt, die ich ohne Zerstörung meiner Leistung platzieren könnte. Diese Funktion hat in den letzten 6 Monaten korrekt für mehrere Befehle gearbeitet und nun entscheidet es sich, auf mich zu kommen. Ich habe es auf einem anderen Computer ohne Probleme probiert (was bei mir wirklich weht). Ich weiß, dass es nicht die Outputerror-Umleitung ist, weil ein neues WINDOW auf dem Server erstellt wird, auf den ich remoting bin. Sobald ich dieses Fenster schließe, verlässt mein Prozess wie erwartet und die richtige Ausgabe wird auf der User-Seite angezeigt. Vielen Dank für Ihre Hilfe, aber ich bin immer frustriert mit diesem Problem. Freitag, 26. Oktober 2007 15:01 Ohne zu wissen, das Detail der Nachricht waren nur zu erraten, das Problem. Hast du schon 3,5 Beta oder Visual Studio 2008 beta installiert? Wie kommst du mit Process, um das Programm zu starten, Process. Start (quotfile. exequot) oder verwenden Sie ProcessStartInfo Freitag, 26. Oktober 2007 15:21 Nein, ich habe 2003 und 2005 installiert. Proc neuer Prozess () procSI new ProcessStartInfo () Ich setze dann einen neuen Thread für den StandardError und den StandardOutput ein und schreibe dann meine Befehle und wenn ich den Standard ausschreibe. Out If (Umleitung von Standardfehler) Start Thread für st. Fehler Proc. WaitForExit () lt -------- Hier befindet sich das Fenster Generic Windows Error Reporting. Ich habe übersetzt, was ich aus dem Fenster herauskomme, das auftaucht. Microsoft Visual Studio 2005 Weil das Problem auftritt, beendet es Microsoft Visual Studio 2005. Wir wenden Unannehmlichkeiten an, es gibt keine Entschuldigung. Nochmals vielen Dank für all eure Zeit. Ich habe den StreamWriter sIn vor dem Erstellen des Proc Process Objekts erstellt. Ich habe dann die Eingabe nach dem Befehl proc. Start () umgeleitet, also wie kann ich das nicht besitzen. Unabhängig davon kann ich die Änderung vornehmen, um die sIn. Close () nach dem WaitForExit-Aufruf zu verschieben, um zu sehen, ob dies Änderungen vornimmt. Der Proc war ein Typ, das hätte sein sollen. Wieder ist es keine Fehlermeldung, also gibt es keine Stack-Trace. Meine StandardError-Umleitung ist leer und die Standard-OUtput-Umleitung enthält, was ich erwartet habe, aber nichts, was auf einen Fehler hindeutet. Dies ist der Grund, warum alles noch funktioniert, nachdem ich das Fenster Windows Error Reporting geschlossen habe. Ich werde posten, was passiert, nachdem ich die sIn. Close () Zeile unter die WaitForExit () Zeile verschoben habe. Freitag, 26. Oktober 2007 16:59 Peter Ritchie hat geschrieben: Du möchtest das sIn-Objekt nicht schließen, bis die Anwendung ausgegeben ist, wenn du dich umleitet. Man sollte überhaupt keinen dieser Streams schließen. Das Prozessobjekt besitzt sie und es ist das Verantwortliche für die Aufräumung nach sich selbst. Man sollte am besten Process. Dispose () nach dem Beenden mit dem Process-Objekt anrufen. Du brauchst es sicher nicht (ich bin seine Redundante), aber es sollte nicht ein Problem nach dem Prozess verlassen haben. Process. Close ist die empfohlene Methode zum Schließen der Standardinput - und Standardausgabe - (und Standarderror-) Streams. Freitag, 26. Oktober 2007 17:03 Ich würde überrascht sein, wenn die Dispose-Methode nicht annulliert hat, zumindest als Teil ihrer Operation. Ich würde die Verwendung der Tatsache, dass seit Prozess implementiert IDisposable (indirekt durch erweiterte Komponente, die es implementiert), sollte man auf Dispose und lassen Sie diese auf die richtige Aufräumung. Ich würde nicht empfehlen, Process. Close anstelle von, noch zusätzlich zu Process. Dispose aufrufen. Ja, Anrufe ausschalten Schließen. Meine erste Empfehlung ist, einen Block zu benutzen, meine zweite ist, um zu schließen, wenn du weißt, wann du damit fertig bist. In Objekten, die eine quotClosequot-Methode implementieren, obwohl sie IDisposable ist, ist es viel deutlicher, die quotClosequot-Methode zu verwenden. Plus ohne Verwendung eines Bausteins haben Sie keine Möglichkeit, die Variable und den Aufruf zu entsorgen - das Objekt könnte nach dem Aufruf zur Dispose verwendet werden. Wenn du die Schließe benutzt hast, hast du alle verwalteten Ressourcen entsorgt, aber das Objekt kann immer noch verwendet werden (dh es wurde nicht als quotdisposedquot markiert und du kannst es verwenden, um eine andere Anwendung ohne Zuordnung eines neuen Prozessobjekts zu starten - das würde sonst eine ObjectDisposeException auslösen ). Freitag, 26. Oktober 2007 18:09 So, wenn die erste Empfehlung ist, einen Baustein zu benutzen, dann wäre das nächste beste, um Dispose zu rufen. Nicht schliessen, wann du, wie du gesagt hast, du mit dem Gegenstand gemacht hast. Durch das Aufrufen von Close auf etwas, das IDisposable implementiert, macht der Entwickler möglicherweise einen Fehler. Wenn Dispose einige zusätzliche Bereinigung über nur delegieren zu schließen, dann ist der Programmierer setzt sich für einen Bug, indem Sie einfach anrufen. Es kann ein Fall für den Aufruf von Schließen geben, aber nur, wenn du nicht mit dem Objekt fertig bist, wie du am Ende deiner letzten Antwort angekündigt hast. Aber wenn es damit fertig ist, rufen Sie Dispose an. Freitag, 26. Oktober 2007 18.20 Uhr Also wenn die erste Empfehlung ist, einen Baustein zu benutzen, dann wäre das nächste Beste, um Dispose zu rufen. Nicht schliessen, wann du, wie du gesagt hast, du mit dem Gegenstand gemacht hast. Durch das Aufrufen von Close auf etwas, das IDisposable implementiert, macht der Entwickler möglicherweise einen Fehler. Wenn Dispose einige zusätzliche Bereinigung über nur delegieren zu schließen, dann ist der Programmierer setzt sich für einen Bug, indem Sie einfach anrufen. Es kann ein Fall für den Aufruf von Schließen geben, aber nur, wenn du nicht mit dem Objekt fertig bist, wie du am Ende deiner letzten Antwort angekündigt hast. Aber wenn es damit fertig ist, rufen Sie Dispose an. Tatsächlich ist seine Quittung gleichbedeutend mit: DisposableClass obj neue DisposableClass () IDisposable Einweg obj als IDisposable if (Einweg null) Aber ja, das ist, was eine Gebrauchsanweisung ist fehlerhaft gleichbedeutend, aber ich stimme nicht ausdrücklich zu rufen Dispose in Anwesenheit einer quotClosequot-Methode sollte Sei die erste Wahl wegen der Mangel-Scoping mit dem Dispose-Aufruf. Zum Beispiel, die folgenden: verwenden (Prozess Prozess neue Prozess ()) Ich hatte den Dienst ausgeführt, aber ich hielt es, weil es für 2 Stunden lief und hatte noch nie den Breakpoint, dass es innerhalb von 10 Minuten von mir beginnen sollte meine Klient. Ich habe die sIn. Close () - Linie gerade noch nicht kommentiert und den Service und den Client neu gestartet und alles funktioniert wie früher. Ich kann den Breakpoint nach dem WaitForExit () und ich komplett, mit der Windows Error Reporting Nachricht noch (wie es vorher war). Also, in meinem Fall muss ich den Eingabestrom schließen, um den Prozess wie erwartet beenden zu können. Gibt es irgendwelche anderen Ideen, die ich die sIn. Close () Linie empfehlen kann, wenn du etwas überprüfen möchtest. Freitag, 26. Oktober 2007 19:19 Anthony Maimone hat geschrieben: Ich hatte den Service läuft, aber ich hielt es an, weil es für 2 Stunden gelaufen war und hatte noch nie den Breakpoint, dass es innerhalb von 10 Minuten von mir anfangen sollte mein Client . Ich habe die sIn. Close () - Linie gerade noch nicht kommentiert und den Service und den Client neu gestartet und alles funktioniert wie früher. Ich kann den Breakpoint nach dem WaitForExit () und ich komplett, mit der Windows Error Reporting Nachricht noch (wie es vorher war). Also, in meinem Fall muss ich den Eingabestrom schließen, um den Prozess wie erwartet beenden zu können. Gibt es irgendwelche anderen Ideen, die ich die sIn. Close () Linie empfehlen kann, wenn du etwas überprüfen möchtest. Es wäre hilfreich, die Ausnahmedetails zu sehen, wenn du den Fehler bekommst (wie der Anrufstapel). Wie benutzt man die Standard-Eingabe und die Standard-Ausgabe verwenden Sie verwenden alle ReadLine-Methoden Peter, mein Punkt ist: Wenn Sie nicht auf Dispose auf ein Objekt, das (direkt oder indirekt) IDisposable implementiert, dann sind Sie nur für einen Bug fragen. Ich möchte nicht auf diese endlos aber streiten. Du kannst es auch weiterhin tun, wie du es tust und kommst bei mir. Solange wir nicht brauchen, um jeden anderen Code zu behalten, gut. Und übrigens, ein Notizblock schützt dich auch nicht. Nichts hält Sie davon ab, die Variable außerhalb des Blocks zu deklarieren (wenn ich mich richtig erinnere), so dass es immer noch im Geltungsbereich sein kann, nachdem der Block endet. Sie müssen sorgfältig schriftlich korrigieren. Wenn du es in der quotusingquot-Anweisung deklarierst, das ist ein Weg. Aber mit dem tryfinally-Ansatz zu entlassen, nur weil es die Variable im Geltungsbereich verlässt, ist nicht wirklich der Punkt. Es muss noch irgendwo entsorgen sein. Freitag, 26. Oktober 2007 19:34 Peter Ritchie hat geschrieben: Anthony Maimone hat geschrieben: Ich hatte den Service laufen, aber ich hielt es an, weil es für 2 Stunden gelaufen war und hatte noch nie den Breakpoint, dass es innerhalb von 10 Minuten getroffen haben sollte Ich beginne meinen Klienten. Ich habe die sIn. Close () - Linie gerade noch nicht kommentiert und den Service und den Client neu gestartet und alles funktioniert wie früher. Ich kann den Breakpoint nach dem WaitForExit () und ich komplett, mit der Windows Error Reporting Nachricht noch (wie es vorher war). Also, in meinem Fall muss ich den Eingabestrom schließen, um den Prozess wie erwartet beenden zu können. Gibt es irgendwelche anderen Ideen, die ich die sIn. Close () Linie empfehlen kann, wenn du etwas überprüfen möchtest. Es wäre hilfreich, die Ausnahmedetails zu sehen, wenn du den Fehler bekommst (wie der Anrufstapel). Wie benutzt man die Standard-Eingabe und die Standard-Ausgabe Verwenden Sie alle ReadLine-Methoden Wieder ist dies keine Ausnahme, die geworfen wird, also sehe ich keine Ausnahmedetails. Ich gehe nicht direkt in den Fangblock in meinem Code, ich nehme DIREKT nach dem WaitForExit () Aufruf wieder auf. Das Fenster, das ich empfange, ist das gleiche, das du bekommst, wenn jemand Microsoft Produkt unerwartet schließt und MS will Informationen über den Crash. So wieder gibt es keine Ausnahmedetails. Allerdings in einem der System-Logs, bekomme ich eine mesage (übersetzt aus Japanisch) quotDevenv. exe Anwendung erros auftreten, 8.0.50727.762 Version der Fehler aufgetreten msvcr80.dll Modul, Version 8.0.50727.762, Fehler aufgetreten Adresse 0x00039001. Für weitere Informationen, go. microsoftfwlinkevents. asp die Helo und Support Center bitte refer. quot Ich bin die Umleitung der Standard-Eingang, um in den verschiedenen Befehlen in passieren, weil ich hatte Probleme mit ihnen zu arbeiten, wie ich wollte Form der StartInfo. Ich bin die Umleitung der Ausgabe - und Fehlerströme, um zu überprüfen, was sie in ihnen haben, nachdem der Prozess verlassen hat. Dies wird mir erlauben, für alles, was ich möchte in jedem Stream zu überprüfen, sobald wir fertig sind. Ich erlaube auch nicht, dass die Ausgabe - oder Fehlerumleitungs-Threads bis zum Ende des Prozesses den WaitForExit-Aufruf vergeben haben. Ich bin völlig stumped Freitag, 26. Oktober 2007 07:53 Peter, mein Punkt ist: Wenn du nicht auf Dispose auf ein Objekt rufst, das (direkt oder indirekt) IDisposable implementiert, dann bist du nur um einen Bug gefragt. Ich möchte nicht auf diese endlos aber streiten. Du kannst es auch weiterhin tun, wie du es tust und kommst bei mir. Solange wir nicht brauchen, um jeden anderen Code zu behalten, gut. Ich stimme nicht zu. Es ist nicht ein quotbugquot nicht aufrufen Dispose. Ihre Ressourcen werden nicht sofort befreit, aber die GC wird sie freigeben, wenn es das Gedächtnis braucht (vorausgesetzt, das Dispose-Muster ist ordnungsgemäß implementiert und ein Finalizer existiert). Wenn die Klasse youre mit implementiert eine quotClosequot-Methode, die nicht alle die gleichen Dinge wie quotDisposequot, Close sollte entweder als solche oder theres ein Bug in der Klasse dokumentiert werden. Ich habe nie eine Framework-Klasse, die IDisposable implementiert und eine Close () - Methode, die ein quotleakquot eingeführt, wenn Close aufgerufen wurde, ohne Aufruf Dispose. Das überwältigende Muster für DisposeClose ist, dass Dispose Anrufe schließen sowie die Einstellung eines quotdisposedquot Flags (verwendet für das Werfen von ObjectDisposedException). In der Tat ist dies in der Framework General Reference: quotOccasionally eine Domain-spezifische Name ist besser geeignet als Dispose. Beispielsweise kann eine Dateikapselung den Methodennamen Close verwenden. In diesem Fall implementieren Sie Dispose privat und erstellen Sie eine Public-Close-Methode, die Dispose aufruft. Das folgende Codebeispiel veranschaulicht dieses Muster. Sie können Schließen mit einem Methodennamen, der für Ihre Domain geeignet ist, ersetzen. Implementieren von Finalisieren und Entsorgen, um nicht verwaltete Ressourcen zu bereinigen Sowie quot Für bestimmte Klassen von Objekten wie Dateien oder Datenbankverbindungsobjekten stellt eine Close-Methode besser die logische Operation dar Sollte durchgeführt werden, wenn der Objektkonsument mit dem object. quot von der Verbesserung der Managed Code Performance fertig ist (obwohl es auch auch Details quotIn gut geschriebene Fälle, beide sind funktional äquivalent. quot es impliziert, dass mit Close ist klarer mit quotbetter representquot.) Und übrigens, ein Notizblock schützt dich auch nicht. Nichts hält Sie davon ab, die Variable außerhalb des Blocks zu deklarieren (wenn ich mich richtig erinnere), so dass es immer noch im Geltungsbereich sein kann, nachdem der Block endet. Sie müssen sorgfältig schriftlich korrigieren. Wenn du es in der quotusingquot-Anweisung deklarierst, ist das ein Weg. Aber mit dem tryfinally-Ansatz zu entlassen, nur weil es die Variable im Geltungsbereich verlässt, ist nicht wirklich der Punkt. Es muss noch irgendwo entsorgen sein. Ja, theres alle Arten von Weisen, die Sie sich in den Fuß schießen können, aber das ist kein Szenario, das wir besprochen haben. Ich würde persönlich jeden Code, den ich so bewertet habe, abschießen. That would be on my not recommended list. Friday, October 26, 2007 7:54 PM Again, this is NOT an Exception that is being thrown, so I am not seeing any exception details. I do not go directly to the catch block in my code, I resume DIRECTLY after the WaitForExit() call. The window I am receiving is the same one you get when ANY Microsoft product unexpectedly closes and MS wants information about the Crash. So again, there is NO exception details. However in one of the System Logs, I am receiving a mesage (translated from Japanese) quotDevenv. exe application erros occur, 8.0.50727.762 version of the errors occurred msvcr80.dll module, version 8.0.50727.762, errors occurred address 0x00039001. For more information, go. microsoftfwlinkevents. asp the Helo and Support Center please refer. quot I assumed your application was generating the message (in which case you should always get an exception and a stack trace) it wasnt clear that you resume after the call to WaitForExit(). It sounds to me like the application youre running is terminating abnormally. Are you running devenv. exe Im not sure what you can do in your application to stop another application from terminating abnormally. Anthony Maimone wrote: I am redirecting the Standard input to pass in the different commands in because I was having trouble getting them to work how I wanted form the StartInfo. I am redirecting the Output and Error streams to check what they have in them after the process has exited. This will allow me to check for anything that I would like in either stream once we have finished. I also do not allow either of the output or error redirection threads to join until after the process has passed the WaitForExit call. I am completely stumped. You can get a deadlock if you block on reading from and applications standard output--which would unblock if you closed the stream, I believe. The only thing I can think about is creating an application that is running on the server and monitor windows comming form the processes that you are controling remotely and then find the correct buttons and press them programaticaly pusing a message to the message pump of the dialog window. This alos happens with excel, word and other applications that can be used with autimation MSFT did not design these applications to be run without user interaction so once in a while you will get windows on errors. Have you considered using MSBuid that is more appropiate for batch builds, also it seems that in TFS 2008 build servers will be easy to build. Saturday, October 27, 2007 11:07 AM Well, I attempted to use FindWindow and FindWindowEx along with SendMessage but I was unable to find the correct window handle. But since I know that a Windows Error Reporting Msssage Box will be popping up, I checked to see if it was its own process (and it is). The process is dwwin. exe (Dr. Watson Win ) and all I had to do was this to allow myself to get correct the current problem. Substitute the current code block below for the WaitForExit() statement that I had previously. proc. WaitForExit(60000) one minute Process ProcArray Process. GetProcessesByName(quotdwwinquot) foreach( Process ProcessFound in ProcArray ) I also checked to see if you were able to get the Process. MainWindowTitle(), but it is set to quotquot. So this is a hack and I really do not like to use it, but it works for the current execution. Monday, October 29, 2007 7:26 PM

Comments

Popular posts from this blog

Vorzeitiger Rückzug Aus Hydrocodon

Hydrocodon-Missbrauch 038 Sucht Symptome, Zeichen, Ursachen 038 Effekte Hydrocodon ist ein halbsynthetisches Medikament, das aus der Opiatklasse der Medikamente stammt. Hydrocodon, ein Betäubungsmittel, lindert Schmerzen durch Bindung an die Opiatrezeptoren im Zentralnervensystem. Hydrocodon, das in seiner reinen Form nicht allgemein verteilt ist, ist oft in Formulierungen wie Vicodin, Norco und Loratab bekannt. Hydrocodon, ein Zeitplan II oder Zeitplan III Medikament in Abhängigkeit von der Formulierung und ist ein Wirkstoff in Hunderten von verschreibungspflichtigen Medikamenten, die von einem Arzt verschrieben werden müssen. Über 140 Millionen Rezepte werden jedes Jahr für Medikamente geschrieben, die Hydrocodon enthalten. Medizinisch wird Hydrocodon sowohl bei mittelschwerer bis schwerer Schmerztherapie als auch bei Hustenunterdrückung bei Personen mit Pneumonie oder Keuchhusten eingesetzt. Hydrocodon hat weitgehend Codein ersetzt, ein weniger potentes verschreibungspflichtiges Med...

Masterforex V Forumes Bmw

Pavlidze: abejoju ar rastum gebogen vien post kur a k nors drabstau sh. O tu post ia jau prirasiau Visi mato kiek Ir apie masterforex - v nesu nieko bjauraus pasaks. Manau kad ji pakankamai domi TA Teoretikams ir naujokams. Tokia nuomon gal tau ir nepatinka, wette ji nieko nei eidia Individualios kelions 5-10 nuolaida vis ali viebuiams Krosneles. eu, Toni - kadangi abudu pakelet daugmaz vienoda quottemaquot - tai komentara apibendrinsiu vienu postu. 1. Pirmas ir svarbiausias momentas: Masterforex-V Akademijai NEREIKALINGAS stojanciuju kiekis. Reynäa Stojanciuju kokybe Todel tokie dalykai kaip: - tinklapis masterforex-v. lt ir jame sukelta nemokama informacija - Stojimo i Akademija kainos - skirtingi stojimo planai - ir kiti Visa tai padaryta ir pagaminta taip ir tam - kad atfiltruot kuo daugiau zmoniu. Vieni quatrisikabinsquot prie dalyku isdestytu nemokamose knygose tinklapyje, kitiems bus per brangu, treti pagalvos - kad visas MF yra nesamone. Kazkas isvys pasakys - kas cia pro organ...

Profi Forex Trader Einkommen Taschenrechner

Forex Einkommen Rechner Der Forex Einkommen Rechner wird zeigen, wie viele Pips, die Sie jeden Tag verdienen müssen, um ihre Einkommen Ziele für das Jahr zu erreichen. Plus, mit den erweiterten Optionen können Sie die Standardeinstellungen ändern, die von Wochen pro Jahr, die Sie handeln möchten, Anzahl der Tage pro Woche, Größe der Lose und Anzahl der Lose gehören. Grundsätzlich wollte ich ein Werkzeug entwickeln, das Händler verwenden könnten, um festzustellen, wie viele Pips sie jeden Tag verdienen mussten, um ihr jährliches Einkommensziel zu erreichen. So zum Beispiel könnten Sie ein Ziel von 100.000 eingeben und herausfinden, dass Sie 40 Pips pro Tag verdienen müssen, um dieses Ziel zu erreichen. Die Standardeinstellungen sind für reguläre Lose (100k oder 10 pro Pip), Handel 50 Wochen im Jahr für 5 Tage pro Woche. So was, wenn Sie diese Einstellungen ändern möchten, geben Sie die erweiterten Optionen ein. Unten ist eine kurze Zusammenfassung über jede der erweiterten Optionen und ...