方法类:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace JustTest
{
public class LockTaskBar
{
[DllImport("CoreDll.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string className, string WindowsName);
[DllImport("coredll.dll", EntryPoint = "EnableWindow")]
public static extern bool EnableWindow(IntPtr hwnd, bool bEnable);
/// <summary>
/// this is for enable and disable task bar.
/// Basically this is provide access control Start menu.
/// </summary>
/// <param name="HHTaskBar">HHTaskBar</param>
/// <param name="enabled">default false</param>
/// <returns></returns>
public static bool Execute(string HHTaskBar, bool enabled)
{
bool IsState = false;
try
{
IntPtr hwnd = FindWindow(HHTaskBar, null);
if (!hwnd.Equals(IntPtr.Zero))
{
if (enabled)
{
IsState = EnableWindow(hwnd, false);
}
else
{
IsState = EnableWindow(hwnd, true);
}
}
}
catch (DllNotFoundException dllex)
{
throw dllex;
}
catch (Exception ex)
{
throw ex;
}
return IsState;
}
}
}
如何调用
/// <summary>
/// 禁止开始菜单栏
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
LockTaskBar.Execute("HHTaskBar", true);
}
/// <summary>
/// 解禁开始菜单栏
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
LockTaskBar.Execute("HHTaskBar", false);
}
/// <summary>
/// 禁止输入法按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
LockTaskBar.Execute("MS_SIPBUTTON", true);
}
/// <summary>
/// 解禁输入法按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button4_Click(object sender, EventArgs e)
{
LockTaskBar.Execute("MS_SIPBUTTON", false);
}