如题!请高手赐教!

解决方案 »

  1.   

    调用一个VxD:qmenu.vxd用于屏蔽Ctrl+alt+del.
    var 
    vxdhandle :thandle;
    begin
    vxdhandle :=createfile('\\\\.\\qmenu.vxd',0,0,nil,0,file_flag_overlapped+file_flag_delete_on_close,null);
    end;
    VxdHandle=CreateFile("\\\\.\\QMENU.VXD",0,0,NULL,0,FILE_FLAG_OVERLAPPED|FILE_FLAG_DELETE_ON_CLOSE,NULL);
    就可以了,这句执行后ctrl+atl+del已经失效了
    在退出程序时一定要用CloseHandle(VxdHandle)
    因为程序不会自动关闭VxdHandle
    delphi5下面这样
    var 
    vxdhandle :thandle;
    begin
    vxdhandle :=createfile('\\\\.\\qmenu.vxd',0,0,nil,0,file_flag_overlapped+file_flag_delete_on_close,null);
    end;
      

  2.   

    ... 
    procedure Tform1.OpenVxD;function:
    var 
      HVxDHandle : Thandle;
    begin 
     HVxDHandle := CreateFile  ('\\.\test.VXD',0,0,nil,0,FILE_FLAG_DELETE_ON_CLOSE,0); 
      Result := HVxDHandle < >  INVALID_HANDLE_VALUE; 
    end; 
      

  3.   

    感觉上应该可以像调用DLL一样对VXD使用静态或动态调用...不过前提是VXD导出了该函数:)
      

  4.   

    呵:),
     一楼错了点点,'\\\\.\\'(c的用法)应改掉成 '\\.\'(delphi的),二楼是正确的,不过应注意此形式的只适用可动态加载的驱动程序,对于静态加载的,则是'\\.\test',另应注意,退出时,应使用 CloseHandle(HVxDHandle) 关闭,  呵呵,我是做驱动程序的,有问题可以继续问:)