【发布时间】:2021-11-27 10:00:16
【问题描述】:
我有一个全屏应用程序,它隐藏了 Windows 自己的任务栏(应该如此)。我有一个启动 IE 进程的按钮方法
Process.Start(pathWayToIE);
这很好用,但是当最小化该窗口时,我无法再次访问它,因为任务栏已隐藏,正如我想要的那样。有没有办法在同一个按钮单击时找到相同的进程并最大化该窗口,而不是打开一个新的 IE 窗口?
我确实有这个语句来查看一个窗口是否已经打开
var proc = Process.GetProcesses();
for(var i = 0; i < proc.Length; ++i)
{
if(proc[i].ProcessName == "msedge")
{
appName = proc[i].ProcessName;
appId = proc[i].Id;
}
}
int count = Process.GetProcesses().Where(p => p.ProcessName == appName).Count();
if (count > 1)
{
MessageBox.Show("A window is already open!");
}
所以要查看一个窗口是否真的打开了,但是如何再次最大化它我很纠结。
整个方法如下所示:
private void IE_Button_Click(object sender, RoutedEventArgs e)
{
var startEdge = @"pathwayToIE";
var appName = "";
var appId = 0;
var proc = Process.GetProcesses();
for(var i = 0; i < proc.Length; ++i)
{
if(proc[i].ProcessName == "msedge")
{
appName = proc[i].ProcessName;
appId = proc[i].Id;
}
}
Process myEdgeProcess = new Process();
ProcessStartInfo procStartInfo = new ProcessStartInfo(startEdge);
myEdgeProcess.StartInfo.FileName = startEdge;
int count = Process.GetProcesses().Where(p => p.ProcessName == appName).Count();
int currentRunningInstance = Process.GetProcesses().Where(c => c.Id == appId).Count();
if (count > 1)
{
MessageBox.Show("A window is already open!");
}
else
{
Process.Start(procStartInfo);
}
}
提前感谢您的提示
【问题讨论】:
-
如果您没有任务栏,但需要在窗口之间切换 - 使用 Alt+Tab :)
-
@Auditive 哦,我的错,我忘了补充说我要禁用所有热键命令,或者至少尝试一下,因为我不希望用户能够自行退出应用程序