Notwendig, um ein Fenster zu aktivieren

Ich habe eine Situation wie diese. Ich habe das Fensterhandle einer Anwendung. Ich muss es aktivieren. Ich habe alle diese Funktionen ausprobiert, aber es funktioniert nicht immer (meistens funktioniert es nicht beim ersten Mal und ich muss manuell darauf klicken, um es zu aktivieren. Beim zweiten Versuch funktioniert es einwandfrei). Der Grund, warum ich Das liegt daran, dass ich Code in das Form.Activate-Ereignis des Formulars geschrieben habe, das ich ausführen muss. Anwendung ist eine Einzelinstanzanwendung. Wenn eine neue Instanz erstellt wird, prüft sie zuerst, ob ein anderer Prozess vorhanden ist. Wenn er gefunden wird, wird das Handle des alten Prozesses an diese Funktionen übergeben, damit der Benutzer mit dem alten Formular arbeiten kann. Die Anwendung wird von einer anderen C-Anwendung aufgerufen. [DllImport ("user32.dll")] public static extern int ShowWindow (IntPtr hWnd, int nCmdShow);

    [DllImport("user32.dll")]
    public static extern int SetForegroundWindow(IntPtr hWnd);

    [DllImport("user32")]
    public static extern bool PostMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam);

Antworten auf die Frage(6)

Ihre Antwort auf die Frage