Startposition und Zustand eines Programms bestimmen (in VB)?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

An der Stelle bist Du stark eingeschränkt, mit den Möglichkeiten.

Es gibt zwar über die StartInfo-Klasse ein paar Möglichkeiten, wie z.B. WindowStyle, damit kannst Du minimiert/maximiert/etc. starten, aber die Position müsstest Du über die WinAPI verändern. Stichwort ist dabei "P/Invoke"

Das heißt:

Handle von dem Prozess suchen (für's MainWindow hat Process eine Property) und dann über die WinAPI das gesamte Rectangle vom Window ändern.
Wenn der Proccess mehrere Fenster hat, musst Du das Window-Handle ebenfalls über die WinAPI herausfinden, die Process-Klasse ist dabei ja nur ein eingeschränkter Wrapper.

Hier ist beschrieben, wie man das Rectangle bekommt:
https://stackoverflow.com/questions/9668872/how-to-get-windows-position

Umgekehrt das Ändern geht ähnlich, vermutlich heißt die WinAPI-Funktion dann sowas wie "SetWindowRect".

Stell dich aber darauf ein, dass Du

  1. bessere Ergebnisse bei C# finden wirst, das ist verbreiteter
  2. viel Doku lesen und ausprobieren musst, die WinAPI kann selbst bei einfachen Dingen tricky sein

Hilfreich ist dabei auch die Seite pinvoke.net, die bieten für die meisten WinAPI-Funkionen bereits passende C#.NET- und VB.NET-Methoden und dazu notwenige Enums und Structs an.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

Schau mal hier in die Dokumentation von Microsoft rein (im oberen Bereich lässt sich die Programmiersprache von C# auf VB.Net ändern):
ProcessStartInfo-Klasse

Woher ich das weiß:Recherche