设置活动窗口

| 我正在尝试制作一个提供地震样式下拉HUD控制台的应用程序。我可以显示和隐藏窗口,但显示后无法弄清楚如何将其设置为活动窗口。我使用Win API调用来显示和隐藏窗口。我尝试了SetForegroundWindow(IntPtr hWnd)和SetFocus(IntPtr hWnd)无济于事。有人有想法么? http://pastebin.com/DgtJJGiv
public void ShowApp()
{
    IntPtr h = FindWindow(null, \"C:\\\\Windows\\\\system32\\\\cmd.exe\");
    ShowWindow(h, SW_SHOW);
    //EnableWindow(h, true);
    isHidden = false;
        // set focus to console window

    SetForegroundWindow(h);
    System.Diagnostics.Debug.WriteLine(h);
}
    
已邀请:
        我在这里找到了答案: 如何在C#的前面显示表单 winAPI的方法对我来说无法正常工作,但是可以做到:
form.TopMost = true;
form.TopMost = false;
我最初只是将TopMost设置为true,但是在表单后面显示对话框时遇到了问题。似乎将TopMost设置为true会将表单拉到最前面并保持在那里。将其设置为false不会将其后退,但会允许其他形式显示在前面。我仍然无法集中精力,因此我进行了以下工作:
form.Activate();
    
        您可以使用
SetActiveWindow
winAPI方法。希望这可以帮助...     
        试试这个(对我有用):
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);
}
    
        有什么原因导致您无法实现自己的控制台窗口?我的意思是将文本框设置为正确样式的简单表单。与尝试使用\'cmd \'进程相比,您可能会更好地控制它的工作方式。 只是一个想法。     

要回复问题请先登录注册