Please note before we get started that this program must be ran as
Administrator
.
There are a few Ways that we can do this Check out the MSDN site for the First Method
windowsimpersonationcontext. another way would be to add an
Application Manifest
to your project.
="1.0"="utf-8"
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
</application>
</compatibility>
</asmv1:assembly>
Now change the
level asInvoker
to
requireAdministrator
as done above on line 24 or just copy and paste this into the app.manifest file. Now that we have this done we will have two
protected overrides
being the
OnLoad
and
OnClosing Events
.
OnLoad
will Disable the TaskManager and
OnClosing
will Enable the TaskManager.
To Download the .reg registry scripts to do this you can get those here
TaskMgrED Now to see how the code works :)
First we will have an
enum
that contains our TaskManager Settings and an
class
That will give us our
RegistryKey
based on whether the TaskManger is Enabled or Disabled.
you will need to add
using Microsoft.Win32;
public enum TaskManager
{
Enabled,
Disabled
}
As you can see our TaskManager
enum
is Really straight-forward. Now for the
class
that holds our RegistryKey
public static class RegEdit
{
public static RegistryKey SetKey(TaskManager command)
{
RegistryKey mKey;
string subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";
mKey = Registry.CurrentUser.CreateSubKey(subKey);
switch (command)
{
case TaskManager.Enabled:
mKey.SetValue("DisableTaskMgr", 0);
break;
case TaskManager.Disabled:
mKey.SetValue("DisableTaskMgr", 1);
break;
}
return mKey;
}
}
To Call the methods we will use
OnLoad
to Disable
protected override void OnLoad(EventArgs e)
{
RegistryKey regkey = RegEdit.SetKey(TaskManager.Disabled);
regkey.Close();
}
and
OnFormClosing
To Enable
protected override void OnFormClosing(FormClosingEventArgs e)
{
RegistryKey regkey = RegEdit.SetKey(TaskManager.Enabled);
regkey.Close();
}