Yaptığım program da kılavyenın kısal yollarını engellemek istiom yani kullanıcı masaüstüne ulaşamıyacak asla sadece bir kısayol olacak onlada yetkili kişi şifreyi girip masaüstüne ulaşabilecek bunu nasıl yapabilirim.
Vb.net kısayol tuşları
Cevaplar
Lütfen yardım :(:(
msdn'de bulduğum bir kod.dene bakalım.
namespace BlockShortcuts
{
public partial class Form1 : Form
{
public Form1 ()
{
InitializeComponent ();
}
private delegate int LowLevelKeyboardProcDelegate ( int nCode , int
wParam , ref KBDLLHOOKSTRUCT lParam );
[ DllImport ( "user32.dll" , EntryPoint = "SetWindowsHookExA" , CharSet = CharSet . Ansi )]
private static extern int SetWindowsHookEx (
int idHook ,
LowLevelKeyboardProcDelegate lpfn ,
int hMod ,
int dwThreadId );
[ DllImport ( "user32.dll" )]
private static extern int UnhookWindowsHookEx ( int hHook );
[ DllImport ( "user32.dll" , EntryPoint = "CallNextHookEx" , CharSet = CharSet . Ansi )]
private static extern int CallNextHookEx (
int hHook , int nCode ,
int wParam , ref KBDLLHOOKSTRUCT lParam );
const int WH_KEYBOARD_LL = 13 ;
private int intLLKey ;
private KBDLLHOOKSTRUCT lParam ;
private struct KBDLLHOOKSTRUCT
{
public int vkCode ;
int scanCode ;
public int flags ;
int time ;
int dwExtraInfo ;
}
private int LowLevelKeyboardProc (
int nCode , int wParam ,
ref KBDLLHOOKSTRUCT lParam )
{
bool blnEat = false ;
switch ( wParam )
{
case 256 :
case 257 :
case 260 :
case 261 :
//Alt+Tab, Alt+Esc, Ctrl+Esc, Windows Key
if ((( lParam . vkCode == 9 ) && ( lParam . flags == 32 )) ||
(( lParam . vkCode == 27 ) && ( lParam . flags == 32 )) || (( lParam . vkCode ==
27 ) && ( lParam . flags == 0 )) || (( lParam . vkCode == 91 ) && ( lParam . flags
== 1 )) || (( lParam . vkCode == 92 ) && ( lParam . flags == 1 )) || (( true ) &&
( lParam . flags == 32 )))
{
blnEat = true ;
}
break ;
}
if ( blnEat )
return 1 ;
else return CallNextHookEx ( 0 , nCode , wParam , ref lParam );
}
[DllImport("kernel32.dll")]
private static extern IntPtr GetModuleHandle(IntPtr path);
LowLevelKeyboardProcDelegate mHookProc;
private void KeyboardHook(object sender, EventArgs e) {
// NOTE: ensure delegate can't be garbage collected
mHookProc = new LowLevelKeyboardProcDelegate(LowLevelKeyboardProc);
// Get handle to main .exe
IntPtr hModule = GetModuleHandle(IntPtr.Zero);
// Hook
intLLKey = SetWindowsHookEx(WH_KEYBOARD_LL, mHookProc, hModule, 0);
if (intLLKey == IntPtr.Zero) {
MessageBox.Show("Failed to set hook, error = " + Marshal.GetLastWin32Error().ToString());
}
}
private void ReleaseKeyboardHook ()
{
intLLKey = UnhookWindowsHookEx ( intLLKey );
}
private void checkBox1_CheckedChanged ( object sender , EventArgs e )
{
if ( checkBox1 . Checked )
KeyboardHook ( this , e );
else
ReleaseKeyboardHook ();
}
}
}
bana vb.ne 2008 e göre bi yanıt lazım yıne saol:crying::crying:
http://www.developerfusion.com/tools/convert/csharp-to-vb/hakanozkoc dedi: ↑bana vb.ne 2008 e göre bi yanıt lazım yıne saol:crying::crying:
burdan vb.net'e çevir. :)