您好, 下面的例程可以单独完成对 win 键的加解锁, 但我无法将它写位一个服务,请大家指导一下 ,同时对 Gide (天鸿) 朋友说声抱歉:)另 : 写服务程序有哪些特殊要求 ? 谢谢-----------------------------------------------------------
{锁定win键}
function LowLevelKeyboardProc(nCode:integer;WParam:WPARAM;LParam:LPARAM):LRESULT;stdcall;
type
KBDLLHOOKSTRUCT=record
    vkCode:DWORD;
    scanCode:DWORD;
    flags:DWORD;
    time:DWord;
    dwExtraInfo:dword;
end;
var
   fFlag:BOOL;
   p:^KBDLLHOOKSTRUCT;
begin
   result:=0;
   fFlag := false;
   p:=Pointer(LPARAM);
   if (ncode=HC_ACTION) then
   begin
   case wparam of
    WM_KEYDOWN,
    WM_SYSKEYDOWN,
    WM_KEYUP,
    WM_SYSKEYUP:
    fFlag :=(p.vkCode = VK_Lwin) or (p.vkCode = VK_Rwin)or (p.vkCode = VK_apps);
    end;
    end;
    if fFlag = true then
       Result:=1;
    if ncode <> 0 then
       Result := CallNextHookEX(0,ncode,wparam,lparam);
end;const
    WH_KEYBOARD_LL=13;    setwindowshookexw(WH_KEYBOARD_LL,LowlevelKeyboardproc,hinstance,0);{解除锁定(苯办法)}function HLevelKeyboardProc(nCode:integer;WParam:WPARAM;LParam:LPARAM):LRESULT;stdcall;
type
KBDLLHOOKSTRUCT=record
    vkCode:DWORD;
    scanCode:DWORD;
    flags:DWORD;
    time:DWord;
    dwExtraInfo:dword;
end;
var
   fFlag:BOOL;
   p:^KBDLLHOOKSTRUCT;
begin
   result:=0;
   fFlag := false;
   p:=Pointer(LPARAM);
   if (ncode=HC_ACTION) then
   begin
   case wparam of
     WM_KEYDOWN,
     WM_SYSKEYDOWN,
     WM_KEYUP,
     WM_SYSKEYUP:
   end;
   end;
     if ncode <> 0 then
        Result := CallNextHookEX(0,ncode,wparam,lparam);
end;调用同
--------------------------
谢谢 :)

解决方案 »

  1.   

    新建一个service  Application就可以了
      

  2.   

    但我 Install 后在服务列表中找不到它 ?
      

  3.   

    用  程序民+ /install安装的?
    Install 后应该有一个安装成功的提示吧?
      

  4.   

    我在 参数中 写的 Install , 没有看到您说的成功提示 下午我按您说的试一下 ,先谢过 :)
      

  5.   

    编译的时候在命令行参数里加  /install
      

  6.   

    在服务列表中的名字应该是SERVICE1如果你没有改变的话;不是工程名字;
      

  7.   

    哦是这样,都是小弟才疏学浅 snake_eye(★蛇眼★很想再谈一次恋爱) : 只要你不咬我要多少都成:) outer2000(天外流星) : outer老师能否留信箱给我我有一些短信的问题请教您,可以吗 ?
      

  8.   

    我写过一个例子,继龙看看。http://www.playicq.com/datanew/2.rar在DOS命令下打:
    安装服务
    exename -install
    卸载服务
    exename -uninstall
      

  9.   

    :) ,好 , 大哥来了我不怕了:)  怎么这一段老不见你 ? 还以为去伊拉克了:)http://expert.csdn.net/Expert/topic/1585/1585471.xml?temp=.7679712大哥也去灌 :)