vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Prozess starten und in eigene Anwendung einbinden 
Autor: killroy
Datum: 20.01.14 13:13

Hi,
fast exakt das Gleiche, was ich bei meiner Anwendung gemacht habe.
Auch ich starte optional mehrere DOS-Sitzungen parallel, das Ganze aus einer gemeinsamen Oberfläche raus, allerdings über ein Auswahlmenü.

Ich würde auf jeden Fall, auch wenn es nur eine Instanz gäbe, stets eine separate Startroutine haben wollen, ist einmal pflegeleichter und ... warum nicht sauber modularisiern, ggf, für spätere Einsatzzwecke.

ACHTUNG: Ich hatte da noch ein weiteres Problem, nämlich dass die Positionierung einfach nicht angenommen wurde.

Eine (pragmatische) Lösung dazu war der Einbau von Wartezeiten nach dem Start des DOS-Fensters

Hier meine Startroutine:

Private Sub ETCAStart()
...If ETCAWin IsNot Nothing Then
......If Not CBool(IsWindowVisible(ETCAWin.Handle)) Then
.........ShowWindow(ETCAWin.Handle, 1)
.........If Not CBool(IsWindowVisible(ETCAWin.Handle)) Then Exit Sub
......Else
.........ShowWindow(ETCAWin.Handle, 1)
.........If CBool(IsWindowVisible(ETCAWin.Handle)) Then Exit Sub
......End If
...End If

...ETCA.StartInfo.WorkingDirectory = PointOfKalk & "ETCASIE"
...PrgDrive.Text = ETCA.StartInfo.WorkingDirectory

...ETCA.StartInfo.FileName = "cmd"
...ETCA.StartInfo.Arguments = "/K""GEATEC.EXE ETCA"""
...ETCA.StartInfo.CreateNoWindow = False
...ETCA.StartInfo.UseShellExecute = True
...ETCA.Start()

...Dim hwnd As IntPtr = IntPtr.Zero

...System.Threading.Thread.Sleep(500)
...Application.DoEvents()

...hwnd = ETCA.MainWindowHandle
...Try
......ETCAWin.AssignHandle(ETCA.MainWindowHandle)
...Catch ex As Exception

...End Try

...SetParent(hwnd.ToInt32, ETCAPanel.Handle.ToInt32)

...System.Threading.Thread.Sleep(300)
...Application.DoEvents()

...SetWindowTextW(ETCAWin.Handle, "ETCA Siemensversion")
...SetWindowPos(ETCAWin.Handle, 0, 0, 0, 0, 0, &H1 + &H40)

...System.Threading.Thread.Sleep(200)
...Application.DoEvents()

End Sub

Ob nun 500 oder 300 ms, muss man einfach ausprobieren.
Ich bin eben auf diese Werte gekommen.

Hängt vielleicht damit zusammen, dass nach dem Öffnen des Fensters einige vorbereitende und relativ zeitaufwändige Operationen durchgeführt werden, wie gesagt, nur 'ne Vermutung.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Prozess starten und in eigene Anwendung einbinden7.410Marcus W13.01.14 21:09
Re: Prozess starten und in eigene Anwendung einbinden5.292killroy13.01.14 22:45
Re: Prozess starten und in eigene Anwendung einbinden5.283Marcus W14.01.14 19:38
Re: Prozess starten und in eigene Anwendung einbinden5.413Marcus W18.01.14 18:33
Re: Prozess starten und in eigene Anwendung einbinden5.301killroy20.01.14 13:13
Re: Prozess starten und in eigene Anwendung einbinden5.250Manfred X20.01.14 15:26
Re: Prozess starten und in eigene Anwendung einbinden5.138killroy20.01.14 22:45
Re: Prozess starten und in eigene Anwendung einbinden4.993catweazle2k324.04.14 13:41
Re: Prozess starten und in eigene Anwendung einbinden5.071Manfred X24.04.14 13:55
Re: Prozess starten und in eigene Anwendung einbinden5.120catweazle2k324.04.14 14:12
Re: Prozess starten und in eigene Anwendung einbinden5.012Marcus W24.04.14 14:12
Re: Prozess starten und in eigene Anwendung einbinden5.230Manfred X24.04.14 14:27
Re: Prozess starten und in eigene Anwendung einbinden4.997catweazle2k324.04.14 14:34
Re: Prozess starten und in eigene Anwendung einbinden5.155Manfred X24.04.14 14:43
Re: Prozess starten und in eigene Anwendung einbinden5.159catweazle2k324.04.14 15:01
Re: Prozess starten und in eigene Anwendung einbinden5.040powerzone300024.04.14 15:11
Re: Prozess starten und in eigene Anwendung einbinden4.943catweazle2k324.04.14 15:55
Re: Prozess starten und in eigene Anwendung einbinden4.982catweazle2k325.04.14 12:18
Re: Prozess starten und in eigene Anwendung einbinden4.975killroy25.04.14 12:45
Re: Prozess starten und in eigene Anwendung einbinden5.014Manfred X25.04.14 13:42
Re: Prozess starten und in eigene Anwendung einbinden5.121catweazle2k325.04.14 13:51
Re: Prozess starten und in eigene Anwendung einbinden5.045Manfred X25.04.14 14:06
Re: Prozess starten und in eigene Anwendung einbinden4.898catweazle2k325.04.14 14:18
Re: Prozess starten und in eigene Anwendung einbinden5.186Manfred X25.04.14 14:44
Re: Prozess starten und in eigene Anwendung einbinden4.928catweazle2k325.04.14 14:57
Re: Prozess starten und in eigene Anwendung einbinden4.892Manfred X25.04.14 15:30
Re: Prozess starten und in eigene Anwendung einbinden4.934catweazle2k325.04.14 15:50
Re: Prozess starten und in eigene Anwendung einbinden4.973Manfred X25.04.14 15:53
Re: Prozess starten und in eigene Anwendung einbinden4.956catweazle2k325.04.14 15:58
Re: Prozess starten und in eigene Anwendung einbinden5.007Manfred X25.04.14 16:06
Re: Prozess starten und in eigene Anwendung einbinden4.988catweazle2k325.04.14 16:10
Re: Prozess starten und in eigene Anwendung einbinden5.121Manfred X25.04.14 16:24
Re: Prozess starten und in eigene Anwendung einbinden5.176catweazle2k325.04.14 16:46
Re: Prozess starten und in eigene Anwendung einbinden4.987Manfred X25.04.14 17:02
Re: Prozess starten und in eigene Anwendung einbinden5.351Manfred X25.04.14 17:55
Re: Prozess starten und in eigene Anwendung einbinden4.997catweazle2k309.07.14 14:26

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel