在任务栏中没有显示窗口,仅在系统托盘中显示。如何使它也显示在任务栏中?
我尝试了以下代码,但没有效果:
int windowStyle = GetWindowLong(pMainWindow, GWL_EXSTYLE);
SetWindowLong(pMainWindow, GWL_EXSTYLE, windowStyle & WS_EX_TOOLWINDOW);
而且,这不是我的表格!我从Process.GetProcessesByName获取句柄,并且我不知道如何访问Form类的属性:
Process[] processes = Process.GetProcessesByName("somename");
someProcess = processes[0];
pMainWindow = someProcess.MainWindowHandle;
最佳答案
以下似乎可以解决问题。如果在调用SetWindowLong之后隐藏并重新显示窗口,则它将显示在任务栏中。
一旦窗口最小化,我正在努力寻找一种从任务栏中删除它的方法...
[DllImport("User32.Dll")]
public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
private const int SW_HIDE = 0x00;
private const int SW_SHOW = 0x05;
private const int WS_EX_APPWINDOW = 0x40000;
private const int GWL_EXSTYLE = -0x14;
private void ShowWindowInTaskbar(IntPtr pMainWindow)
{
SetWindowLong(pMainWindow, GWL_EXSTYLE, WS_EX_APPWINDOW);
ShowWindow(pMainWindow, SW_HIDE);
ShowWindow(pMainWindow, SW_SHOW);
}
关于c# - 如何使窗口出现在任务栏中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1462504/