Programm mit CreateProcess-nur einmal starten

angela_anaconda

Grünschnabel
:confused: Hallo zusammen,

ich will mit CreateProcess ein Programm starten, welches aber max. nur einmal gestartet
sein darf. Außerdem soll es immer an ein und derselben Stelle plaziert sein und es muss
immer die gleiche Größe habe und es soll bis zur Beendigung im Vordergrund bleiben.

Komme irgendwie nicht weiter. Kann mir jemand mit Codeausschnitten bzw. Tips
weiterhelfen ?

thx im voraus

Angela_Anaconda

Albert.Preinesberger@optima-ger.com
 
Zuletzt bearbeitet:
Also das mit dem "einmal Starten" kannst du lösen, in dem du dir einen "Mutex" einrichtest, das ist eine einfache uns sehr Sichere Lösung, hier mal ein Beispiel:
http://www.codeguru.com/Cpp/W-P/system/processesmodules/article.php/c5745/

Das mit der "festen Größe" kannst du machen, in dem du den Resize-Event des Fensters behandelst und dort einfach kein resizing zulässt.

Das mit dem "Vordergund" kannst du lösen, in dem du dein Hauptfenster einfach die Eigenschaft TOPMOST (bei Windows) mitgibst, das kannst zu z.B. mit SetWindowPos machen.
Aber das mit dem Vordergrund würde ich mir sehr gut überlegen, da das nicht sehr schön ist und ungern gesehen wird.

Daniel
 
Hallo,

danke für deine Antwort. Das mit der festen Fenstergrösse habe ich auf die
Größe bei Programmaufruf bezogen. Versuche gerade mit der STARTUPINFO die Größe und die Position so festzulegen. Hat aber bisher noch nicht funktioniert.

Vielleicht kannst du mir mit diesem Problem auch weiterhelfen.

thx

angela :suspekt:
 
Warum legst du die Position und Größe nicht beim erzeugen des Hauptfensters, des Kindprozesses fest?
Oder hast du keinen Code für das zu startende Programm?

Dann starte den Prozess und hol dir anschliesend mit FindWindow das Fensterhandle des Hauptfensters, dann kannst du mit SetWindowPos, die Größe und Position das Fensters änder.

Daniel
 
Zurück