我想通过程序(VC)实现将一个文件加密,之后手动打开文件时会弹出一个解密对话框,该如何实现呢?重点是弹出对话框,加密解密已基本实现。(手里没有分了,如果是为了分就算了吧,喜欢编程的搞研究的过来讨论一下吧)谢谢!

解决方案 »

  1.   

    添加一个对话框资源,用向导生成一个CDialog的子类,比如CPassDialog,然后在你需要弹出的地方:
    CPassDialog dlg;
    dlg.DoModal();
      

  2.   

    1如果你加密的文件,可以被任意拿到其他同OS的机器上,并且不安装你的程序的话
    你需要修改这个文件,例如TXT文件加密为EXE文件,这样,执行EXE的时候先要求用户输入密码等信息,然后
    解出TXT文件,2如果是要启动程序的话
    (1)HOOKAPI
    (2)文件关连...
      

  3.   


    首先谢谢你们的回答,请问q1q2q3q4ln你说的第一种情况,难道真的没有一种可以不改变文件类型就可以将它加密的方法吗,还有你说的这种情况该如何实现呢?要是实在不行的话,就要研究一下文件关联了,不知道这个难度大不大
      

  4.   

    这里面有一个问题
    一般文件不是可执行体
    如果你是想加密任何格式的文件
    那但就文件本身如果他的格式不可识别双击它能打开的只有系统的打开文件对话框
    如果你加密后还保存文件扩展名
    比如加密txt还是txt那记事本打开后肯定是乱码
    如果你想干预打开文件的行为
    要么修改加密后的文件扩展名然后通过文件关联关联到一个你自己写的揭秘程序上
    要么写个系统服务截获打开文件的消息自行处理
    当然也可以像4楼说的
    把你的加密文件封装到一个exe的资源里
    然后运行这个exe就释放出解密后的文件
    至于资源操作你可以参考这篇文章
    http://blog.csdn.net/xianglitian/archive/2010/05/23/5618817.aspx
      

  5.   


    谢谢你的回答,我是个菜鸟,有些地方确实不太懂,不过正在学习中,对于你和四楼都提到了将加密文件封装到一个exe的资源里,然后运行这个exe就释放出解密后的文件,不知道这个难度和通过文件关联关联到一个我自己写的解密程序上哪个难度更大一些,对于我这种初学者更适合用哪种方法解决这个问题(我个人感觉关联文件是不是更简单一些)?
      

  6.   

    如果你就是处理一个文件
    封装exe更好些
    如果你想做成一个一般应用
    还是应该关联文件
    至于难度和你认为的正好相反