国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

通過api和鍵盤鉤子徹底屏蔽任務條和開始菜單

2019-11-18 18:04:35
字體:
來源:轉載
供稿:網友
 

在一些碰到過的多媒體軟件編制過程中通常需要徹底屏蔽任務條,通常的辦法是調用ShowWindow(h,SW_hide)來隱藏任務條,但是不能屏蔽開始菜單,通過鍵盤的win功能鍵還是可以打開開始菜單,所以配合鍵盤鉤子,來屏蔽開始菜單。



library HIDE;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your   Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes,
  windows,
  messages;

var
hHk :HHOOK;
type
  PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
  KBDLLHOOKSTRUCT = record
    vkCode: D
Word;
    ScanCode: DWORD;
    Flags: DWORD;
    Time: DWORD;
    dwExtraInfo: DWORD;
  end;
{$R *.res}
function ycxsks( yc:Boolean): Boolean;stdcall; //隱藏-顯示任務條
var
h:THandle;
begin
if yc = True then
  begin
    h:=FindWindow('Shell_TrayWnd',nil);
    ShowWindow(h,SW_hide); //隱藏任務條
  end
else
  begin
    h:=FindWindow('Shell_TrayWnd',nil);
    ShowWindow(h,SW_SHOW); //顯示任務條
  end;
Result:=true;
end;

function keyHookProc(nCode: Integer;WParam: WPARAM;LParam: LPARAM): LRESULT;stdcall;
//調用鍵盤鉤子,屏蔽左右win功能鍵
var
p: PKBDLLHOOKSTRUCT;
y: integer;
begin
if nCode<0 then
  Result:= CallNextHookEx(hHk,nCode,WParam,LParam)
else
  begin
    y := 0;
    case WParam of
    WM_KEYDOWN,WM_SYSKEYDOWN: //按鍵后判斷所按鍵
      begin
        p:=PKBDLLHOOKSTRUCT(Lparam); 
        if p^.vkCode = VK_LWIN then
          y := 1;
        if p^.vkCode = VK_RWIN then
          y := 1;
      end;
    WM_KEYUP,WM_SYSKEYUP: //松開按鍵后判斷所按鍵
      begin
        p:=PKBDLLHOOKSTRUCT(Lparam);
        if p^.vkCode = VK_LWIN then
          y := 1;
        if p^.vkCode = VK_RWIN then
          y := 1;
      end;
    end;
    if y=1 then
      Result:=1 //如果為WIN功能鍵則屏蔽
    else
      Result:= CallNextHookEx(hHk,nCode,WParam,LParam); //其他鍵放下一個鉤子
  end
end;

function Enablehide:Boolean;stdcall;export; //外部調用
begin
if hHk = 0 then
  begin
    hHk := SetWindowsHookEx(13,@keyHookProc,HInstance,0);
    Result := True;
  end
else
  Result := False;
ycxsks(true);
end;

function Disablehide:Boolean; stdcall; export; //外部調用
begin
if hHk <> 0 then
  begin
    UnHookWindowsHookEx(hHk);
    hHk := 0;
    Result := True;
  end
else
  Result := False;
ycxsks(False);
end;

exports
Enablehide,
Disablehide;
end.


上一篇:保存頁面為MHT的代碼

下一篇:讓Fastreport3.x支持中文PDF的輸出

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 河源市| 广丰县| 寿宁县| 利辛县| 锡林浩特市| 武平县| 东兴市| 林口县| 峨山| 南城县| 云安县| 江城| 长垣县| 福建省| 工布江达县| 潜山县| 商都县| 宁夏| 全州县| 夏津县| 南宫市| 青冈县| 沾益县| 连城县| 台前县| 谷城县| 井研县| 海晏县| 四平市| 武穴市| 阜阳市| 宁河县| 滦平县| 会泽县| 五河县| 望谟县| 温宿县| 宣化县| 绥芬河市| 长葛市| 舟山市|