Startposition und Zustand eines Programms bestimmen (in VB)?
Ich weiß, dass ich "Process.start("Pfad zum Programm")" in Visual Basic schreiben kann.
Doch wie kann ich bestimmen, an welcher position das programm starten soll, ob es maximiert oder minimiert starten soll und etc.
Ich freue mich auf Antworten
2 Antworten
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
- bessere Ergebnisse bei C# finden wirst, das ist verbreiteter
- 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.
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