现在想要的流程是这样的,没有输入合法的授权码之前打开系统会弹出此窗体提示用户输入,而当用户输入合法的授权码之后打开系统就不要再弹出了。怎么些这样的代码?请高手给点思路或是具体代码。谢谢。

解决方案 »

  1.   

    将授权码写入 注册表 
     
    using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Text; 
    using System.Windows.Forms; 
    using Microsoft.Win32; 
    namespace WindowsApplication1 

        public partial class 注册表修改 : Form 
        { 
            public 注册表修改() 
            { 
                InitializeComponent(); 
            } 
            private void button1_Click(object sender, EventArgs e) 
            { 
                RegistryKey swr = Registry.LocalMachine.CreateSubKey("SOFTWARE");//注册表中的这个SOFTWARE注册文件 
                RegistryKey r = swr.CreateSubKey("注册表操作练习");//在SOFTWARE这个文件下打开或传建注册表操作练习 
                r.SetValue("路径", Application.StartupPath, RegistryValueKind.String);//在注册注册表操作练习中写入传建”路径“放入值,值类型是字符串 
            } 
        } 
     
      

  2.   


    我的授权码生成是用CPU序列号通过简单算法生成并保存在XML文件里,请问如果是这样,怎么操作呢?
    是C/S结构。谢谢
      

  3.   

    那就是 XML读写了 
    思路是没次登录都去读取xml的值
    看又没有值或是值与CPU序列号是否相同关键就是xml读写
    xml操作http://www.cnblogs.com/surfsky/archive/2007/03/13/673625.html
      

  4.   


    再问下,怎么做到没有登陆就去直接读取XML的值呢?
    可不可以在输入授权码的窗体设置一个变量或是什么标记,如果曾经输入过正确的授权码就给个标记,然后以后启动系统就判断这个标记?不知道可行不?
    请指导。
      

  5.   


    再问下,怎么做到没有登陆就去直接读取XML的值呢?
    在登陆窗体前有个比登陆还先出来的窗体没,有的话可以在这个窗体里设置。没有就写在登陆窗体的Load事件中处理也
    是可以的可不可以在输入授权码的窗体设置一个变量或是什么标记,如果曾经输入过正确的授权码就给个标记,然后以后启动系统就判断这个标记?不知道可行不…
    这样设置个变量每次启动程序变量就变成初始值了无意义,还是得读写XMl通够XML中的值来判断是否可以让他登录
      

  6.   

    每次登陆的时候都判断一下,看生成的码和XML里面保存的是否一致,不一致就弹出让他输入
    这样可以防止程序拷贝
      

  7.   


    非常感谢。再问:按照您这样说,每次启动都得在LOAD事件去判断是否经过授权,似乎感觉麻烦一些,而且当用户输入合法的一个授权码之后,下次再登陆是否也需要用户再输入授权码?如果是,那样感觉很麻烦。
      

  8.   

    非常感谢。再问:按照您这样说,每次启动都得在LOAD事件去判断是否经过授权,似乎感觉麻烦一些,而且当用户输入合法的一个授权码之后,下次再登陆是否也需要用户再输入授权码?如果是,那样感觉很麻烦。不是的 第一次验证后没授权码时就给用户输入,输入后的授权码写入XML中
    下次启动时读取xml中的授权码 有就不用在输入了。