win7 de klevye kitleme??

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

win7 de klevye kitleme??

Mesaj gönderen forumsad »

xp de çalışan klevya mause kitleme kodları delphide işe yaramıyor

yardımcı olabilecek var mı?

tşk..

Kod: Tümünü seç

function FunctionDetect(LibName, FuncName: string; var LibPointer: Pointer): Boolean;
var
  LibHandle: THandle;
begin
  Result     := False;
  LibPointer := nil;
  if LoadLibrary(PChar(LibName)) = 0 then Exit;
  LibHandle := GetModuleHandle(PChar(LibName));
  if LibHandle <> 0 then
  begin
    LibPointer := GetProcAddress(LibHandle, PChar(FuncName));
    if LibPointer <> nil then Result := True;
  end;
end;

 

procedure TForm1.Button1Click(Sender: TObject);

var
  xBlockInput: function (Block: BOOL): BOOL; stdcall;
  begin
    if FunctionDetect(’USER32.DLL’, ’BlockInput’, @xBlockInput) then
    begin
      xBlockInput(True);  // klavye ve mouse yi iptal et
      Sleep(10000);         // 10 saniye bekle
      xBlockInput(False); // klavye ve mouse yi aktif et

end;
end;
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: win7 de klevye kitleme??

Mesaj gönderen SimaWB »

BlockInput fonksiyonu Windows 7'de de çalışıyor.
Kullanıcı yetkisiyle alakalı bir sorununuz olabilir. Admin olarak çalıştırdığınızdan emin olun.
There's no place like 127.0.0.1
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: win7 de klevye kitleme??

Mesaj gönderen forumsad »

teşekkürler hocam yetkileri genişletmeyi deneyim bakalım ne olacak
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: win7 de klevye kitleme??

Mesaj gönderen forumsad »

USER32.DLL
hocam bu dll e kullanıcı izni vermediğimden olabilirmi
vermeye çalışıyorum olmuyor
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: win7 de klevye kitleme??

Mesaj gönderen forumsad »

win7 de izin olayları insanı sinir ediyor dediğiniz gibi sorun izinlerden kaynaklı imiş aşağıdaki kod sağlıklı bir şekilde çalıştı

teşekkürler

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject) ;
 
   function FuncAvail(dllName, funcName: string; var p: pointer): boolean;
   var
     lib: THandle;
   begin
     result := false;
     p := nil;
     if LoadLibrary(PChar(dllName)) = 0 then exit;
     lib := GetModuleHandle(PChar(dllName)) ;
     if lib <> 0 then
     begin
      p := GetProcAddress(lib, PChar(funcName)) ;
      if p <> nil then Result := true;
     end;
   end;
 
   var
     BlockInput : function(Block: BOOL): BOOL; stdcall;
 
   begin
    if FuncAvail('USER32.DLL', 'BlockInput', @BlockInput) then
    begin
     ShowMessage('Your Mouse and Keyboard will be blocked for 5 seconds!') ;
     BlockInput(true) ;
     Sleep(5000) ;
     BlockInput(false) ;
    end;
   end;

Cevapla