使用C#隐藏任务栏

时间:2009-08-28 01:57:49

标签: c# windows security kiosk

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

我通过搜索网络尝试了代码。在所有这些中,它隐藏了任务栏。但问题是,当我打开记事本并最大化它时,它实际上并不是全屏。因为任务栏所在的空间仍然被空白空间阻挡。我希望它非常适合全屏模式。

4 个答案:

答案 0 :(得分:6)

如果您想更换Windows shell(任务栏),则必须更改注册表项。

更改默认shell(所有用户):

  1. 打开注册表(开始菜单>运行,输入注册表)
  2. 转至:HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon。
  3. 将Shell从explorer.exe更改为您的程序路径和名称,例如C:\ myKioskApp \ Kiosk.exe
  4. 更改默认shell(仅限当前用户):

    1. 打开注册表(开始菜单>运行,输入regedit)。
    2. 转到:HKCU \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon。
    3. 添加一个名为shell的新字符串值(Edit> New> String Value)。并将值设置为新shell的路径,例如C:\ myKioskApp \ Kiosk.exe
    4. 退出并重新登录。

答案 1 :(得分:4)

我通过使应用程序无边框,最大化并将其设置为Topmost来完成此操作。这是CodeProject的perfect example

正如其中一位评论者所说,替换禁用资源管理器并运行应用程序可能是最好的安全方式。

答案 2 :(得分:0)

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

WindowState:最大化 FormBorderStyle:FixedDialog

答案 3 :(得分: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;