Welcome to Dream.In.Code
Getting C# Help is Easy!

Join 136,069 C# Programmers for FREE! Get instant access to thousands of C# experts, tutorials, code snippets, and more! There are 1,580 people online right now. Registration is fast and FREE... Join Now!




disable ALT+F4 using c#

 
Reply to this topicStart new topic

disable ALT+F4 using c#

Mythili
8 Apr, 2008 - 10:24 PM
Post #1

New D.I.C Head
*

Joined: 8 Apr, 2008
Posts: 3

hi,

i'm working in asp.net with c#.

In my application, i want to disable ALT+F4 key so that user should not closed the form(webform)

can anyone send me the simple code for disabling ALT+F4 using c# code......................

thanks in advance!!!! smile.gif
User is offlineProfile CardPM
+Quote Post

MRJ
RE: Disable ALT+F4 Using C#
9 Apr, 2008 - 12:18 PM
Post #2

D.I.C Head
Group Icon

Joined: 13 Oct, 2007
Posts: 83



Thanked: 1 times
My Contributions
I don't think you'll get any code.

First this forum doesn't just procudce code to order. You have to try first, and post questions about where you are stuck. We don't do your work for you.

Second I'm pretty sure that it's imposible to disable Alt-F4 from a WebForm. It might be posible with a Windows form, but not a web form.


User is offlineProfile CardPM
+Quote Post

PsychoCoder
RE: Disable ALT+F4 Using C#
9 Apr, 2008 - 01:00 PM
Post #3

using DIC.Core;
Group Icon

Joined: 26 Jul, 2007
Posts: 8,983



Thanked: 125 times
Dream Kudos: 8525
Expert In: VB, VB.Net, C#, SQL, ASP, ASP.Net, Web Development, HTML, CSS, Win32 API, Javascript, mySQL, J#, Boo.Net

My Contributions
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?
User is online!Profile CardPM
+Quote Post

Mythili
RE: Disable ALT+F4 Using C#
9 Apr, 2008 - 09:46 PM
Post #4

New D.I.C Head
*

Joined: 8 Apr, 2008
Posts: 3

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
User is offlineProfile CardPM
+Quote Post

Fast ReplyReply to this topicStart new topic
Time is now: 12/1/08 06:53PM

Live C# Help!

C# Tutorials

Reference Sheets

C# Snippets

DIC Chatroom

Bye Bye Ads

Monthly Drawing

Thumb Drive

Top Contributors

Top 10 Kudos This Month