| 

.NET C# Java Javascript Exception

3
Ich starte aus Vb.Net ein anderes Programm und muss 10 Sekunden warten, bis es geladen ist und ich es ansprechen kann
21.08.2011
Gast
31 1
4 Antworten
5
Hallo,

sofern möglich würde ich schauen, obs ereignisbasiert funktionieren kann.
Z.B. wenn das andere Programm "ready" ist, dass es in den Standardausgabe-Strom etwas schreibt und auf dieses Schreiben wartet dein Programm.

Somit bist du auf der sicheren Seite, denn wenn das andere Programm länger als die hart-codierten 10 Sekunden braucht scheiter Thread.Sleep.

mfG Gü
21.08.2011
gfoidl 9,1k 3 5
Da hast Du 100% Recht. Wenn er den fremden Prozess steuern kann, dann sollte er das natürlich so lösen...
LutzJ 21.08.2011
3
Die Process-Klasse bietet da einiges an. Z.B:

Dim p As Process
p = Process.Start("...")
p.WaitForInputIdle()


Das wartet, bis das gestartete Programm "bereit" ist.
22.08.2011
Andreas Ganzer 1,4k 7
1
System.Threading.Thread.Sleep(new TimeSpan(0, 0, 10))

Ist zwar c#, solltest Du aber recht einfach übersetzen können...
21.08.2011
LutzJ 1,3k 6
1
Du könntest alternativ auch so lange eine Warteschleife auführen, bis das gewünschte Programmfenster offen ist, z.B. indem Du die Fenstertitel überprüfst. Natürlich nur, falls keine andere Möglichkeit der Kommunikation besteht.

Nur weil DEIN Rechner 10 Sekunden braucht, um das andere Programm zu starten, heisst es nicht, das andere Rechner nicht 15 Sekunden benötigen. Und unnötig lange (z.B. 30 Sekunden) zu warten, ist auch suboptimal, finde ich.

Mehr Informationen, wie Du die andere Software ansteuerst, wären da hilfreich. "Ansteuern" klingt für mich erst einmal nach einer Schnittstelle.
22.08.2011
Jens Duczmal 2,2k 2 8

Stelle deine .net-Frage jetzt!