先去MS那里下载一个PlaformSDK,那里面有Gina的例子;
你没必要写完整的Gina,可以把大部分控制传递给MSGina.dll我也一直想写一个Gina,只是我的系统是NTFS的,所以一直不敢;
建议你在FAT的2000系统上调试,调试成功后能不能把工程给在下一个?

解决方案 »

  1.   

    MSDN里面有GINA例子,而且我也能够在2000下面把CTRL_ALT_DEL
    给屏蔽掉,使他不起作用,但是我找不到不使用CTRL_ALT_DEL
    作为SAS的例子,不知道怎样应用而已。
      

  2.   

    我写的gina是利用指纹机验证进行win的登陆的
    可是不太好用,,我就没做了很久以前的事的。。
    现在正做rm播放器呢。
      

  3.   

    1、
    #define WLX_SAS_TYPE_MYSAS 130
    这样就定义了,只要大于127就可以,127以内是系统保留的消息2、WlxSasNotify是在GINA内调用的,调用他的目的是告诉NT的WINLOGON.EXE系统又发生了一个事件,操作系统在三种不同的状态要有不同的处理程序。分别是:WlxLoggedOutSAS——还没登录的时候
    WlxLoggedOnSAS——登录成功了的时候
    WlxWkstaLockedSAS——桌面被锁定的时候发消息的程序:
    WlxFuncs->WlxSasNotify(hGlobalWlx, WLX_SAS_TYPE_MYSAS);若有不懂可和我联系,我将尽力,[email protected]
      

  4.   

    定义了自己的SAS
    #define WLX_SAS_TYPE_MYSAS 130
    然后怎么和设备联系起来?
    什么时候在什么地方调用WlxSasNotify?
      

  5.   

    和设备联系的程序要自己写啊,要么用WINDOWS的驱动接口,要么直接操作,那是另外的话题了。比如,你串口有一个输入的时候,你要锁定桌面:1、你检测到串口有一个输入,则调用WlxSasNotify
    WlxFuncs->WlxSasNotify(hGlobalWlx, WLX_SAS_TYPE_MYSAS);2、在回调函数WlxLoggedOnSAS上写锁定桌面的程序:
    switch (dwSasType)
    {
    case  WLX_SAS_TYPE_MYSAS:
        return (WLX_SAS_ACTION_LOCK_WKSTA);
    default:
        return (WLX_SAS_ACTION_NONE);
    }
    这样桌面就锁定了,程序都是自己写的,GINA只是给了一个接口机制而已。
      

  6.   

    我知道设备的程序要写啊,
    我可以通过设备的动态库来操作它,
    但是应该写在那里呢?在gina里面么?
    里面只有一个c文件,添加对话框都不可以。
    不好意思,我比较笨。:)
      

  7.   

    你的来信收到了,我还是在这里和你聊吧。象你这种情况,建议用一个线程来检测USB,这个检测的程序肯定是在GINA里写的,
    GINA只是一个框架,你想添加什么都可以,没什么办不了的:)当然包括添加对话框啊,不过这得用SDK编程了,因它是一个纯WIN32程序。
    GINA不是有对话框吗?你照着它来就行了。
      

  8.   

    我建立了一个gina,大部分函数是导入的windows默认的。
    出现两个问题:
    1。在WlxInitialize里面我无法自己初始化,只能用默认的初始化
       如果我自己写代码初始化的话,就会非法操作,不能启动。
    2。用默认函数初始化以后,建立新的线程进行监控,成功,但是不能调用
       WlxSasNotify,否则会出错,重启。load你在上面写的:WlxFuncs->WlxSasNotify(hGlobalWlx, WLX_SAS_TYPE_MYSAS);里面,wlxFuncs怎么得到?我用了全局变量保存
    默认函数初始化以后的pWlxContext,但是似乎不对。
    请load指教。谢谢。
      

  9.   

    "自己初始化"是个什么概念?WlxInitialize里是可以运行自己的程序的,一般都在这里读注册表,初始化硬件接口。若非法操作,应看看程序有无BUG,比如指针初始化什么的,还有,MSDN提供的GINA例子编译是UNICODE的,有些地方要注意字符转换。WlxFuncs我也是用全局保存的,没有你说的问题出现。
      

  10.   

    自己初始化就是自己写WlxInitialize全部代码,不用LoadLibrary进来的。:)
    初始化里面有这么一句pgContext->pWlxFuncs->WlxUseCtrlAltDel(hWlx);
    用来说明用默认的SAS。我是不是应该自己初始化改这个地方?给我你保存WlxFuncs的代码段看看可否?还有WlxInitialize的代码。
    万分感谢。
      

  11.   

    发过来吧,或许能帮你![email protected]
      

  12.   

    你会错我意思了,我是说把你的代码给我看。:)
    我已经基本搞定了,实现了拔下KEY的时候对windows操作。
    现在要实现再插上去的时候怎么做比较好。
    还有真正的用KEY登陆,不让windows验证用户名密码。
    对你的帮助表示感谢。我结贴了。