Mause ve Klavye kitleme yada Windowsu Kitleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Re: Mause ve Klavye kitleme yada Windowsu Kitleme

Mesaj gönderen haydarxxx »

Yeni sorun :) Win kitlendi ama form daki timerlarda çalışmıyor geri sayım saniyem var örneğin 180sn sonra windows kapıtılacak şeklinde.Yada Flash disk tekrar takıldığında projenin çalışması lazım bunları timerdan kontrol ediyorum :( bu bir akıllı tahta uygulaması olacak flash diskle tahta devrede flas disk çekilince tahta kitlenecek 180 sn sonrada da kapanacak.Aradaki win kitleme hem açılışta hem kapanışta pc ayarlarına yada tahta kullanımını yasaklaması mantığı olacak.Sadece klavye ve mause kitlesek :((
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Re: Mause ve Klavye kitleme yada Windowsu Kitleme

Mesaj gönderen haydarxxx »

Kod: Tümünü seç

 procedure hideTaskbar;
var wndHandle : THandle;
    wndClass : array[0..50] of Char;
begin
 StrPCopy(@wndClass[0], 'Shell_TrayWnd');
 wndHandle := FindWindow(@wndClass[0], nil);
 ShowWindow(wndHandle, SW_HIDE); // This hides the taskbar
end;

function MouseHook(code: Integer; wp: wParam; lp: lParam): LRESULT; stdcall;
 begin
  result:=1;
end;


function LLKeyHookFunc(HookCode: Integer; KeyCode: wParam; kStrokeInfo: lParam): LResult; stdcall;
 begin
     result:=1;
 end;

 procedure KeybdHook;
 const
   WH_KEYBOARD_LL = 13;
 begin
   KH := SetWindowsHookEx(WH_KEYBOARD_LL, @LLKeyHookFunc, hInstance, 0);
 end;// 
form2 de mause ve görev çubuğu kitleniyor.Bu kod ile

Açmak için 2.bir forma

Kod: Tümünü seç

 procedure showTaskbar;
var wndHandle : THandle;
    wndClass : array[0..50] of Char;
begin
 StrPCopy(@wndClass[0], 'Shell_TrayWnd');
 wndHandle := FindWindow(@wndClass[0], nil);
 ShowWindow(wndHandle, SW_RESTORE); // This restores the taskbar
end;


function MouseHook(code: Integer; wp: wParam; lp: lParam): LRESULT; stdcall;
begin
     result:=0;

end;

function LLKeyHookFunc(HookCode: Integer; KeyCode: wParam; kStrokeInfo: lParam): LResult; stdcall;
 begin
     result:=0;
 end;

 procedure KeybdHook;
 const
   WH_KEYBOARD_LL = 13;
 begin
   KH := SetWindowsHookEx(WH_KEYBOARD_LL, @LLKeyHookFunc, hInstance, 0);
 end;




procedure TForm1.FormCreate(Sender: TObject);
begin
   Application.ShowMainForm:= False;
  ShowWindow(Application.handle, SW_HIDE);
   ShowCursor(true);
   MH := SetWindowsHookEx(WH_MOUSE_LL, @MouseHook, hInstance, 0);
   KeybdHook;
   showtaskbar;
end;
Form2 ekranı yani proje exe açılışında mause ve görev çubuğu win kitleniyor.Form üzerindeki bileşenler çalışıyor.Form1 de mause yi açmak için form1 in FormCreate sini çağırarak mauseyi aç nasıl dedirtiriz form2 ye.Böylece form ekranda iken mause kitli olacak usb takıldığında form1 (mause açma) aplication şeklinde çalışacak


Başka bir şekli ile Anaform(form2 mause kitli olarak gelen) usb takıldığında ki bu usb kısmı tamam form2 yi kapatarak form1 deki kodları çalıştıracak(form1 mause kilidi açılıyor).Usb çıkartıldığında tekrar form2 ana ekrana geri dönecek.mauseyi kitleyecek.Bu iki kodu kitleyen form açan form şeklinde düşündüm ama bu iki kodda tek formda olabilir belki mausenin 1 ve 0 olamama durumu tek formdada olabilir belki ama procedure çakışması olur.

İstediğim kodlar bunlardı fakat kontrol edemiyorum.Birinden diğerine geçemiyorum.Aç kapa aç kapa gibi :(
Cevapla