J'essaie de créer une application qui donne une console HUD Drop Down de style de séisme. Je peux l'obtenir pour montrer et masquer la fenêtre, mais je ne peux pas comprendre comment la définir comme fenêtre active après l'avoir montrée. Je utilise des appels Win API pour montrer et masquer la fenêtre. J'ai essayé Setforegroundwindow (IntPTR Hwnd) et SetFocus (IntPTR HWND) en vain. Quelqu'un a des idées?
http://pastebin.com/dgtjjgiv p>
4 Réponses :
Essayez ceci (fonctionne pour moi):
public static void ShowApp()
{
IntPtr h = FindWindow(null, "C:\\Windows\\system32\\cmd.exe");
ShowWindow(h, ShowWindowCommands.Show);
SetForegroundWindow(h);
SetFocus(h);
System.Diagnostics.Debug.WriteLine(h);
}
SetFocus () ne saisit pas la mise au point si vous passez à une application différente et appelez la commande (j'ai la méthode ShowApp () définie pour déclencher sur tilde.) Si vous ne modifiez pas la mise au point entre la cachette et le montrer qu'il reste sur la console, même tout en caché.
Y a-t-il une raison pour laquelle vous ne pouvez pas implémenter votre propre fenêtre de console? Ce que je veux dire, c'est une forme simple avec une zone de texte réglée sur le style correct. Vous auriez probablement plus de contrôle sur la manière dont cela fonctionne que d'essayer d'utiliser le processus "CMD". P>
Juste une pensée. P>
Vous pouvez utiliser seactivewindow < / code> méthode Winapi. J'espère que cela vous aidera ... p>
J'ai trouvé une réponse ici: Comment montrer le formulaire devant C #
Les approches Winapi ne fonctionnaient pas correctement pour moi, mais cela a fait: P>
form.Activate();