QUOTE(PsychoCoder @ 9 Apr, 2008 - 02:00 PM)

MRJ is correct. In ASP.Net any key strokes that are captured are what takes place on the server, not on the client. Without Impersonation, encryption algorithms and lots of code/security you're not going to gain access to key strokes of the client machine. Even with Impersonation you're going to have the permission of the user in order to be able to accomplish something like this.
What is your purpose for accomplishing this?
hi all,
actually, we are doing security questions registration for the users who want to reset their password. The user should not skip this page while resetting their password. So i want to disable hot key combinations such as ALT+F4,ALT+TAB etc. i tried the follwoing code. it will throw two exceptions
Error 1400 - INVALID_WINDOW_HANDLE, Error 1409 HOTKEY_ALREADY_REGISTERED.with those exceptions it disabled the hotkeys but i cant able to enable it again.
here is my code....
csharp
#region Dynamic Link Library Imports
[DllImport("user32.dll",SetLastError=true)]
private static extern int FindWindow(string cls, string wndwText);
[DllImport("user32.dll",SetLastError=true)]
private static extern int ShowWindow(int hwnd, int cmd);
[DllImport("user32.dll", SetLastError = true)]
private static extern long SHAppBarMessage(long dword, int cmd);
[DllImport("user32.dll", SetLastError = true)]
private static extern int RegisterHotKey(IntPtr hwnd, int id, int
fsModifiers, int vk);
[DllImport("user32.dll", SetLastError = true)]
private static extern int UnregisterHotKey(IntPtr hwnd, int id);
#endregion
#region Modifier Constants and Variables
// Constants for modifier keys
private const int USE_ALT = 1;
private const int USE_CTRL = 2;
private const int USE_SHIFT = 4;
private const int USE_WIN = 8;
// Hot key ID tracker
short mHotKeyId = 0;
#endregion
public ki()
{
//InitializeComponent();
}
public void unreg()
{
UnregisterGlobalHotKey();
}
public void sampfn()
{
// Disable ALT+F4 - exit
RegisterGlobalHotKey(Keys.F4, USE_ALT);
// Disable CTRL+W - exit
RegisterGlobalHotKey(Keys.W, USE_CTRL);
// Disable CTRL+N - new window
RegisterGlobalHotKey(Keys.N, USE_CTRL);
// Disable CTRL+S - save
RegisterGlobalHotKey(Keys.S, USE_CTRL);
// Disable CTRL+A - select all
RegisterGlobalHotKey(Keys.A, USE_CTRL);
// Disable CTRL+C - copy
RegisterGlobalHotKey(Keys.C, USE_CTRL);
// Disable CTRL+X - cut
RegisterGlobalHotKey(Keys.X, USE_CTRL);
// Disable CTRL+V - paste
RegisterGlobalHotKey(Keys.V, USE_CTRL);
// Disable CTRL+B - organize favorites
RegisterGlobalHotKey(Keys.B, USE_CTRL);
// Disable CTRL+F - find
RegisterGlobalHotKey(Keys.F, USE_CTRL);
// Disable CTRL+H - view history
RegisterGlobalHotKey(Keys.H, USE_CTRL);
}
private void RegisterGlobalHotKey(Keys hotkey, int modifiers)
{
try
{
// increment the hot key value - we are just identifying
// them with a sequential number since we have multiples
mHotKeyId++;
if (mHotKeyId > 0)
{
// register the hot key combination
if (RegisterHotKey(this.Handle, mHotKeyId, modifiers,
Convert.ToInt16(hotkey)) == 0)
{
// tell the user which combination failed to register
// this is useful to you, not an end user; the user
// should never see this application run
UnregisterGlobalHotKey();
MessageBox.Show("Error: " + mHotKeyId.ToString() + " - " + Marshal.GetLastWin32Error().ToString(), "HotKey Registration");
}
}
}
catch
{
// clean up if hotkey registration failed -
// nothing works if it fails
MessageBox.Show(e.ToString());
UnregisterGlobalHotKey();
}
}
public void fun()
{
UnregisterGlobalHotKey();
}
private void UnregisterGlobalHotKey()
{
// loop through each hotkey id and
// disable it
for (int i = 0; i < mHotKeyId; i++)
{
UnregisterHotKey(this.Handle, i);
}
}
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
// if the message matches,
// disregard it
const int WM_HOTKEY = 0x312;
if (m.Msg == WM_HOTKEY)
{
// Ignore the request or each
// disabled hotkey combination
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
// unregister the hot keys
UnregisterGlobalHotKey();
// show the taskbar - does not matter really
ShowWindow(FindWindow("Shell_TrayWnd", null), 1);
}
}
}
I am calling this sampfn() in Button_Click event..
we didnt post this thread without trying any thing...
we dont know how to solve this problem....
help us to solve this ......
This post has been edited by PsychoCoder: 10 Apr, 2008 - 02:43 AM