好大的CSDN,
好简单的代码,
难道就没有人知道吗?
高手们!

解决方案 »

  1.   

    没有试试用key_borad_ll这个钩子?根本不用写dll就可以用了
      

  2.   

    在调用 fclose() 之前,调用 fflush() 函数试试!
      

  3.   

    fclose紧接着fprintf执行.最后执行messagebox
      

  4.   

    GZ
    I have also ....
      

  5.   

    是不是Win2k都有这个问题?sunyuzhe114(阿哲):
    我的程序打算在Win9X下也可以用,
    所以key_borad_ll可能无法考虑。
      

  6.   

    全局钩子是要有程序来调用才行的,你光有个DLL有什么用啊!推荐你看看delphi的帮助文件中的win32 programmer reference 中的hook一节!
    你若让系统自动加载你的DLL,必须要先设置才行,具体怎么做我也记不得了,看看吧!
      

  7.   

    我以前写过一个,MOUSE,和KEY 全局钩子,要别的程序来调用.
    不过这个网上有很多啊,你可以找一下,要是想要源程序,可以来找我,[email protected]
    QQ 1271891
      

  8.   

    那么用 SetWindowsHookEx(WH_JOURNALRECORD, 
    LowLevelKeyboardProc,  AfxGetApp()->m_hInstance, 0);
    }
    我觉得写钩子用日志钩子好多了,不用写dll,就可以了
      

  9.   

    你是白费气力了,在用在DLL中,如果当前任务不是主任务时,FILE结构是不会有作用的。
    要么把消息发到主进程,由主进程来存文件。
      

  10.   

    呼,问题终于解决了!!!
    原先之所以出现问题是由于设置写入文件时使用的是相对路径:
    if ((fp = fopen("keyfile.txt", "a+")) == NULL)
       ……而写入文件的位置似乎和当前的应用程序有关,后来我发现了两个keyfile.txt,一个是当前目录下的,还有一个是E盘(我的WIN2K安在E盘)的根目录下面!以前我查看的时候都是只查当前目录的,没想到那家伙又在其它地方放了火,咳!!!
    把文件路径改成绝对路径,如"c:\\keyfile.txt"就OK了!
    晕~~
    弄了半天,原来是这么个小错误~
    麻烦各位了。
    仍然要十分感谢大家的关注!
    发分了。