⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 o31.htm

📁 C++ Builder学习中文版,让学者对其有一定的理解.
💻 HTM
字号:
 

<html>

<head>

<title>简单的用户密码管理系统</title>

<meta http-equiv="目录类型" content="文本/html; 字符集=gb2312">

</head>

<body bgcolor="#FFFFFF">

<table width="100%" border="0" height="285">

  <tr> 

    <td height="35"> 

      <div align="center" class="p14"><font color="#000000">简单的用户密码管理系统</font></div>

    </td>

  </tr>

  <tr valign="top"> 

    <td>

      <div align="left"><font color="#000000">一、功能 <br>

        &nbsp;&nbsp;提供软件的一般用户管理系统</font> </div>

      <p><font color="#000000">二、设计思路及程序实现 <br>

        &nbsp;&nbsp;&nbsp; 1.建立的表:以下表在建立时应该先加密码,程序打开时才由程序传递密码。以 <br>  

        避免直接用工具可打开DB文件。 <br>  

        &nbsp; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ① 用户资料表 <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户ID:&nbsp;&nbsp; 用户登录时输入的用户名。   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户姓名:&nbsp; 用户的真实姓名。   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 密码:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        用户密码(在存入前应该进行必要的加密) <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 权限:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        用户级别。 <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有效期开始:该帐号从何时开始有效(下面程序没利用该功能)   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有效期截止:何时该帐号不能用。 <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是否有效:&nbsp; 可以让该用户暂时为不可用。   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 出错次数:&nbsp; 用户连续输错密码次数(当有正确输入时复位)   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 出错限度:&nbsp; 允许输错密码次数,如果超过该限度,该用户置为不可用,必须找管理员为其复位。   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 备注:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        必要的说明。</font>   

      <p><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ② 活动表: <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户ID:&nbsp;&nbsp;   

        记录进入系统的用户ID. <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 活动状态:&nbsp; 该用户是否是当前活动用户。(程序允许A用户进入后,不必   

        <br>  

        退出系统而让B用户进入,A用户被置为非活动用户,当B退出后A被变为活动用户,只 <br>  

        有第一个用户才能退出系统,同时清空活动表)</font>   

      <p><font color="#000000">&nbsp;2. 进入系统的验证</font>   

      <p><font color="#000000">&nbsp;&nbsp;&nbsp; ① 供用户进入系统的密码输入窗口。</font>   

      <p><font color="#000000">&nbsp;&nbsp;&nbsp; ② 当用户输入完成后,首先打开用户资料表,检查该用户是否存在,若不存在,清空用户输入,提示不存在该用户,让用户从新输入,用户名输入错误这里将不作次数限制。</font>   

      <p><font color="#000000">&nbsp;&nbsp;&nbsp; ③ 若存在该用户,接着验证密码,如果正确,根据用户的使用期限,是否有效作判断,并根据结果作出是否允许用户进入系统。如果不允许,给出相应的提示后关闭系统。否则,根据用户的级别置某些功能不能使用,同时在活动表中记录该用户已进   

        <br>  

        入,并复位出错次数字段。 <br>  

        &nbsp; <br>  

        &nbsp;&nbsp;&nbsp; ④ 如果存在该用户,但密码错误,用户资料表中的出错次数加一。让用户从新输入。</font>   

      <p><font color="#000000">&nbsp;&nbsp;&nbsp; ⑤ 实现部分功能的程序 <br>  

        &nbsp;&nbsp;&nbsp; void __fastcall Tpasswdfm::Edit2KeyDown(TObject *Sender,   

        WORD &amp;Key, <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TShiftState Shift) <br>  

        &nbsp;&nbsp;&nbsp; { <br>  

        &nbsp;&nbsp;&nbsp; String userID; <br>  

        &nbsp;&nbsp;&nbsp; bool endflag=0; <br>  

        &nbsp;&nbsp;&nbsp; short cout=0; <br>  

        &nbsp;&nbsp;&nbsp; if(Key==VK_RETURN) <br>  

        &nbsp;&nbsp;&nbsp;&nbsp; { <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; userID=Edit1-&gt;Text; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session-&gt;AddPassword(123456);   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DM1-&gt;PasDTable-&gt;Active=true;   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DM1-&gt;PasDTable-&gt;FindFirst();</font>   

      <p><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while((!DM1-&gt;PasDTable-&gt;Eof)   

        &amp;&amp; (!endflag))//找到用户 <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(DM1-&gt;PasDTable-&gt;FieldByName("用户代码")-&gt;Value==userID)   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { endflag=1;   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else   

        {DM1-&gt;PasDTable-&gt;Next();} <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font>   

      <p><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(endflag)//找到了用户 <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(DM1-&gt;PasDTable-&gt;FieldByName("密码")-&gt;Value==   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        passwdfm-&gt;Edit2-&gt;Text) <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DM1-&gt;PasDTable-&gt;Edit(); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        cout=0; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DM1-&gt;PasDTable-&gt;FieldByName("出错次数")-&gt;Value=cout; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DM1-&gt;PasDTable-&gt;Post(); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        if(DM1-&gt;PasDTable-&gt;FieldByName("权限")-&gt;Value&gt;1) <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        //根据权限设置不可用菜单 <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        { <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        Main-&gt;N5-&gt;Enabled=false; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        } <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        else { <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        Main-&gt;N5-&gt;Enabled=true; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        } <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        Session-&gt;RemovePassword(123456); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DM1-&gt;PasDTable-&gt;Close(); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        passwdfm-&gt;Close();</font>   

      <p><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        Session-&gt;AddPassword(123456);// 用户使用表登记 <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DMPaswd-&gt;ActiveTable-&gt;Active=true; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DMPaswd-&gt;ActiveTable-&gt;FindFirst(); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DMPaswd-&gt;ActiveTable-&gt;Insert(); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DMPaswd-&gt;ActiveTable-&gt;FieldByName <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        ("用户代码")-&gt;Value=userID; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DMPaswd-&gt;ActiveTable-&gt;FieldByName("活动状态")-&gt;Value=true; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DMPaswd-&gt;ActiveTable-&gt;Post(); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        Session-&gt;RemovePassword(123456); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DMPaswd-&gt;ActiveTable-&gt;Close(); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{MessageBox(NULL,"密码出错,累积三次将关闭系统","密码输入信息   

        <br>  

        &nbsp;",MB_OK); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        cout=DM1-&gt;PasDTable-&gt;FieldByName("出错次数")-&gt;Value; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        cout++; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DM1-&gt;PasDTable-&gt;Edit(); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DM1-&gt;PasDTable-&gt;FieldByName("出错次数")-&gt;Value=cout; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        DM1-&gt;PasDTable-&gt;Post();</font>   

      <p><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        if(DM1-&gt;PasDTable-&gt;FieldByName("出错次数")-&gt;Value <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        &lt; DM1-&gt;PasDTable-&gt;FieldByName("出错限制")-&gt;Value) <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        {passwdfm-&gt;Edit1-&gt;Text=""; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        passwdfm-&gt;Edit2-&gt;Text=""; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        passwdfm-&gt;ActiveControl=Edit1; <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        } <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        else <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        { MessageBox(NULL,"登录失败次数超过限额,请与管理员联系", <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        "密码输入信息",MB_OK); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        Application-&gt;Terminate(); <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        } <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        } <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else//无该用户 <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {MessageBox(NULL,"无该用户","密码输入信息",MB_OK);   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; passwdfm-&gt;Edit1-&gt;Text="";   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; passwdfm-&gt;Edit2-&gt;Text="";   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; passwdfm-&gt;ActiveControl=Edit1;   

        <br>  

        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>  

        &nbsp;&nbsp;&nbsp; } <br>  

        &nbsp;}</font>   

      <p><font color="#000000">3、密码修改 <br> 

        &nbsp;&nbsp;&nbsp; 一般用户只能修改自己的密码,当用户选择该功能时,提示用户输入一次旧密码,两次新密码。用户可以按清除键重新输入。当用户输入完成后,先从活动表找出   

        <br>  

        该用户ID,再按ID寻找用户资料表找到该用户,先比较旧密码,错误提示从新修改,正 <br>  

        确则完成修改。</font>   

      <p><font color="#000000">4、超级用户可以设置/修改用户资料表中的所有资料及密码初始化。</font>  

      <p><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   

        (zyqsj)</font>   

      <p> <font color="#000000"> <br> 

        &nbsp;</font>  

      <p> <font color="#000000"> <br> 

      </font> 

      </p> 

     </td> 

  </tr> 

</table> 

<br> 

</body> 

</html> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -