vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
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.908Marcus W13.01.14 21:09
Re: Prozess starten und in eigene Anwendung einbinden5.686killroy13.01.14 22:45
Re: Prozess starten und in eigene Anwendung einbinden5.678Marcus W14.01.14 19:38
Re: Prozess starten und in eigene Anwendung einbinden5.858Marcus W18.01.14 18:33
Re: Prozess starten und in eigene Anwendung einbinden5.700killroy20.01.14 13:13
Re: Prozess starten und in eigene Anwendung einbinden5.639Manfred X20.01.14 15:26
Re: Prozess starten und in eigene Anwendung einbinden5.533killroy20.01.14 22:45
Re: Prozess starten und in eigene Anwendung einbinden5.383catweazle2k324.04.14 13:41
Re: Prozess starten und in eigene Anwendung einbinden5.473Manfred X24.04.14 13:55
Re: Prozess starten und in eigene Anwendung einbinden5.511catweazle2k324.04.14 14:12
Re: Prozess starten und in eigene Anwendung einbinden5.401Marcus W24.04.14 14:12
Re: Prozess starten und in eigene Anwendung einbinden5.698Manfred X24.04.14 14:27
Re: Prozess starten und in eigene Anwendung einbinden5.389catweazle2k324.04.14 14:34
Re: Prozess starten und in eigene Anwendung einbinden5.552Manfred X24.04.14 14:43
Re: Prozess starten und in eigene Anwendung einbinden5.603catweazle2k324.04.14 15:01
Re: Prozess starten und in eigene Anwendung einbinden5.431powerzone300024.04.14 15:11
Re: Prozess starten und in eigene Anwendung einbinden5.351catweazle2k324.04.14 15:55
Re: Prozess starten und in eigene Anwendung einbinden5.371catweazle2k325.04.14 12:18
Re: Prozess starten und in eigene Anwendung einbinden5.364killroy25.04.14 12:45
Re: Prozess starten und in eigene Anwendung einbinden5.415Manfred X25.04.14 13:42
Re: Prozess starten und in eigene Anwendung einbinden5.516catweazle2k325.04.14 13:51
Re: Prozess starten und in eigene Anwendung einbinden5.452Manfred X25.04.14 14:06
Re: Prozess starten und in eigene Anwendung einbinden5.298catweazle2k325.04.14 14:18
Re: Prozess starten und in eigene Anwendung einbinden5.573Manfred X25.04.14 14:44
Re: Prozess starten und in eigene Anwendung einbinden5.321catweazle2k325.04.14 14:57
Re: Prozess starten und in eigene Anwendung einbinden5.290Manfred X25.04.14 15:30
Re: Prozess starten und in eigene Anwendung einbinden5.326catweazle2k325.04.14 15:50
Re: Prozess starten und in eigene Anwendung einbinden5.360Manfred X25.04.14 15:53
Re: Prozess starten und in eigene Anwendung einbinden5.344catweazle2k325.04.14 15:58
Re: Prozess starten und in eigene Anwendung einbinden5.493Manfred X25.04.14 16:06
Re: Prozess starten und in eigene Anwendung einbinden5.399catweazle2k325.04.14 16:10
Re: Prozess starten und in eigene Anwendung einbinden5.561Manfred X25.04.14 16:24
Re: Prozess starten und in eigene Anwendung einbinden5.628catweazle2k325.04.14 16:46
Re: Prozess starten und in eigene Anwendung einbinden5.380Manfred X25.04.14 17:02
Re: Prozess starten und in eigene Anwendung einbinden5.767Manfred X25.04.14 17:55
Re: Prozess starten und in eigene Anwendung einbinden5.406catweazle2k309.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-2025 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