C# winform 怎么设置软件运行时,输入一个命令打开指定窗口。

C# winform 怎么设置软件运行时,输入一个命令打开指定窗口。

意思:这个指定的窗口平时用户是绝对调用不出来的。
只有在主窗体上,用键盘连续输入特定的命令如“Admin000”,才可以打开。
然后在进行窗口上的其他操作。
这个窗口相当于超级控制台。

哪位大师有经验?
给指点一二,或者有代码就更好了。
意思不明白可以好、先回答,在讨论。

没弄过这个,做了个测试,先将form的KeyPreview设置为 True,然后在form的keypress中

string strInput = "";
        DateTime _dt = DateTime.Now;
        Boolean isInput = false;
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!isInput) { _dt = DateTime.Now; isInput = true; }
            DateTime tempDt = DateTime.Now;         //保存按键按下时刻的时间点
            TimeSpan ts = tempDt.Subtract(_dt);     //获取时间间隔
            if (ts.Milliseconds > 500)               //如果时间间隔大于500毫秒,清空
                strInput = e.KeyChar.ToString();
            else
                strInput += e.KeyChar;
            _dt = tempDt;
            //label1.Text = strInput;
            if (strInput == "Admin000")
                MessageBox.Show("YES");//密码正确
        }

追问

哥们好牛叉啊。。。我也单独测试了了一下,没问题。

明天试试移植到我的程序里,不知道那个keypreview是否和我的有冲突。。。

追答

if (!isInput) { _dt = DateTime.Now; isInput = true; } 这行可能有点多余,可以注释掉看看。

追问

      哈哈,牛。注释掉了。木问题


          都17级,国王啦。。。看来兄弟的编程技术真是了得。


    另外在想请教一下,有没有好用的C#防止反编译的软件推荐,谢谢

追答

常见的比如Xenocode Postbuild 2009 for .NET(破解版)

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-09
if(你的输入窗体的密码=="Admin000")//Admin000可来自其它地方并加密 等
{
SingtonOrNot窗体.Show();
}追问

没大明白意思

第2个回答  2013-07-09
为什么要这样做呢? 可以设置限权(角色)呀,通过限权来管控菜单,比如系统设置级别的给Admin,用户级别的给普通用户限权。 当你用户你所说的超级管理员角色进入系统时就把全部菜单(窗体)都显示供你调用操作不就可以了吗!!追问

我的软件没有登陆窗体,不是做的登陆系统。。。所以没有角色之分。

有一些软件,技术员为了调试,就是在终端输入一些制定的指令,就打开超级控制台,看信息了

追答

如果是这样的话,那其他兄弟回答的就是基本思路了,看你怎么进一步的优化出更新好的方法了。

追问

嘿嘿,是的,多谢帮助。现在有答案了。大家共同学习吧

第3个回答  2013-07-09
在主窗体的KeyPress事件里写追问

楼下的代码,是你想要说的意思么?

第4个回答  2013-07-09
窗体的KeyPress事件里,做一个按键的记录呗。。然后每进一个就对比一下追问

应该还要加个时间限制,在一定的时间间隔内连续输入,视为有效输入。。。

追答

那你这样子就复杂了,就是再中跑一个计时器,当一段时间内,没有按键时,清空按键记录

追问

是的,多谢帮助。现在有答案了。大家共同学习吧

相似回答