使用C#隐藏任务栏

3

我正在运行Windows XP 64位系统。当我运行应用程序时,我想隐藏任务栏。

我尝试了在网上搜索到的代码。这些代码都可以隐藏任务栏。但问题是,当我打开记事本并将其最大化时,它实际上并没有进入全屏模式。因为原来任务栏所占的空间仍然被空白填充着。我希望它真正地进入全屏模式。


我将重新命名这个标题为“使用C#使应用程序全屏”,因为你真正想要的是全屏,而不是以编程方式隐藏操作系统的某些部分(也许用户希望它在那里)。 - user7116
@sixlettervariables,隐藏任务栏的目的是不让用户使用任务栏中的开始按钮。因此我需要将其隐藏。这是一个展示应用程序,所以我禁用了所有快捷键和Windows键。 - Anuya
4
如果你要运行一个展示器,可能比尝试隐藏/禁用Explorer功能更容易的方法是查看用自定义程序替换默认shell。 - Chris W. Rea
他的问题不是如何使用C#隐藏任务栏,而是如何在C#中制作一个Kiosk应用程序。 - user7116
4个回答

6
如果您想要替换Windows的Shell(任务栏),您需要更改注册表键。
更改默认Shell(所有用户):
1. 打开regedit(开始菜单>运行,然后输入regedit)。 2. 转到:HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon。 3. 将Shell从explorer.exe更改为您的程序路径和名称,例如c:\ myKioskApp \ Kiosk.exe。
更改默认Shell(仅当前用户):
1. 打开regedit(开始菜单>运行,然后输入regedit)。 2. 转到:HKCU \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon。 3. 添加一个新的字符串值(编辑>新建>字符串值),称为shell。并将值设置为新Shell的路径,例如c:\ myKioskApp \ Kiosk.exe。 4. 注销并重新登录。

4
我已经通过将应用程序设置为无边框、最大化并设置为置顶来实现这一点。这里有一个来自CodeProject的完美示例
正如其中一位评论者所说,从安全角度考虑,禁用资源管理器并运行您的应用程序可能是最好的方法,而不是替换它。

当然,你不能使用C#来替换Explorer...但是我同意,只要它是可行的选择,那这是最好的选择。 - harpo
我知道可以从任务管理器中结束Explorer.exe进程 - 这样会使资源管理器窗口和任务栏消失。但我不确定是否可以或明智地通过编程来结束它。 - Charlie Salts

0

您可以通过设置 C# 窗体的以下属性来隐藏任务栏。

WindowState : Maximized FormBorderStyle : FixedDialog


0
在Windows 7(或更高版本)中使用FormWindowState.Maximized是错误的,因为最大尺寸将减去任务栏的高度,但您可以这样做。
this.WindowState = FormWindowState.Normal; // or default
this.FormBorderStyle = FormBorderStyle.None;
this.TopMost = true;

// do it here
this.Location = new Point(0,0);
var fullscreenSize = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
this.Size = fullscreenSize;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接