<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>龙五的博客</title><link>https://blog.pyle.cc/</link><description></description><item><title>X-WRT 概览页显示 CPU 温度与 WiFi 温度</title><link>https://blog.pyle.cc/uncategorized/x-wrt-luci-cpu-wifi-temperature.html</link><description>&lt;h2&gt;背景&lt;/h2&gt;

&lt;p&gt;X-WRT 26.04（Tenda BE12 Pro，mediatek/filogic，内核 6.18.44）的 LuCI 概览页默认不显示温度。底层数据其实一直存在：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;CPU 温度：&lt;code&gt;/sys/class/thermal/thermal_zone0/temp&lt;/code&gt;（毫摄氏度）&lt;/li&gt;
  &lt;li&gt;WiFi 温度：&lt;code&gt;/sys/class/ieee80211/phy0/hwmon*/temp1_input&lt;/code&gt;（毫摄氏度，2.4G / 5G 各一个）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;目标：在概览页显示一行温度信息，不破坏原有页面结构，固件升级后重新放回文件即可恢复。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2&gt;方案&lt;/h2&gt;

&lt;p&gt;利用 X-WRT 新版 LuCI 概览页的&lt;strong&gt;模块化加载机制&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;主 &lt;code&gt;index.ut&lt;/code&gt;（ucode 模板）渲染时会加载 &lt;code&gt;admin_status/luaindex&lt;/code&gt; 子视图&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;luaindex.htm&lt;/code&gt;（Lua 视图）会扫描 &lt;code&gt;/usr/lib/lua/luci/view/admin_status/index/&lt;/code&gt; 目录，把所有 &lt;code&gt;.htm&lt;/code&gt; 片段 &lt;code&gt;include&lt;/code&gt; 进来&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;我们在这个目录里新建一个片段 &lt;code&gt;99-temperature.htm&lt;/code&gt;，它负责：&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;读 CPU 和 WiFi 温度&lt;/li&gt;
  &lt;li&gt;把值写进 &lt;code&gt;window.__cpuTemp&lt;/code&gt; / &lt;code&gt;window.__wifiTemp&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;在 &lt;code&gt;#view&lt;/code&gt; 容器&lt;strong&gt;外面&lt;/strong&gt;创建一个横条，显示这两个温度&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;关键设计：&lt;strong&gt;横条插在 &lt;code&gt;#view&lt;/code&gt; 外面&lt;/strong&gt;，因为 LuCI 概览页每 5 秒轮询重绘 &lt;code&gt;#view&lt;/code&gt; 内容，插在里面会被冲掉。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2&gt;完整文件&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;/usr/lib/lua/luci/view/admin_status/index/99-temperature.htm&lt;/code&gt;&lt;/p&gt;

&lt;pre style=&quot;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:12px;overflow:auto;font-size:13px;line-height:1.5;&quot;&gt;&lt;code&gt;&amp;lt;%
-- CPU 温度
local f = io.open(&amp;quot;/sys/class/thermal/thermal_zone0/temp&amp;quot;, &amp;quot;r&amp;quot;)
local craw = f and f:read(&amp;quot;*l&amp;quot;) or nil
if f then f:close() end
local ctemp = craw and string.format(&amp;quot;%.1f&amp;quot;, tonumber(craw) / 1000) or &amp;quot;N/A&amp;quot;

-- WiFi 温度：扫所有 /sys/class/ieee80211/phy*/hwmon*/temp1_input
local wlist = {}
local p = io.popen(&amp;quot;ls -d /sys/class/ieee80211/phy*/hwmon*/temp1_input 2&amp;gt;/dev/null&amp;quot;)
if p then
    for path in p:lines() do
        local wf = io.open(path, &amp;quot;r&amp;quot;)
        local wraw = wf and wf:read(&amp;quot;*l&amp;quot;) or nil
        if wf then wf:close() end
        if wraw and tonumber(wraw) then
            wlist[#wlist + 1] = string.format(&amp;quot;%.1f&amp;quot;, tonumber(wraw) / 1000)
        end
    end
    p:close()
end
local wtemp = #wlist &amp;gt; 0 and table.concat(wlist, &amp;quot; / &amp;quot;) or &amp;quot;N/A&amp;quot;
%&amp;gt;
&amp;lt;script&amp;gt;
window.__cpuTemp = &#039;&amp;lt;%=ctemp%&amp;gt; °C&#039;;
window.__wifiTemp = &#039;&amp;lt;%=wtemp%&amp;gt; °C&#039;;

(function() {
    if (!document.body || document.body.getAttribute(&#039;data-page&#039;) !== &#039;admin-status-overview&#039;)
        return;

    function build() {
        var bar = document.getElementById(&#039;cpu-temp-bar&#039;);
        if (!bar) {
            var view = document.getElementById(&#039;view&#039;);
            if (!view || !view.parentNode) return;
            bar = document.createElement(&#039;div&#039;);
            bar.id = &#039;cpu-temp-bar&#039;;
            bar.style.cssText = &#039;margin:8px 0;padding:8px 12px;background:#fff3e0;border:1px solid #ffcc80;border-radius:6px;font-size:14px;&#039;;
            view.parentNode.insertBefore(bar, view);
        }
        bar.textContent = &#039;CPU 温度: &#039; + window.__cpuTemp + &#039;    WiFi 温度: &#039; + window.__wifiTemp;
    }

    setInterval(build, 500);
    build();
})();
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;h2&gt;部署步骤&lt;/h2&gt;

&lt;pre style=&quot;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:12px;overflow:auto;font-size:13px;line-height:1.5;&quot;&gt;&lt;code&gt;# 1. 写入片段文件
cat &amp;gt; /usr/lib/lua/luci/view/admin_status/index/99-temperature.htm &amp;lt;&amp;lt;&#039;EOF&#039;
（上面完整内容）
EOF

# 2. 清 LuCI 模板缓存
rm -rf /tmp/luci-*

# 3. 重启 web 服务
/etc/init.d/uwsgi restart 2&amp;gt;/dev/null
/etc/init.d/uhttpd restart 2&amp;gt;/dev/null&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;浏览器 &lt;strong&gt;Ctrl+F5&lt;/strong&gt; 强刷。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2&gt;效果&lt;/h2&gt;

&lt;p&gt;概览页“状态”标题下方、原来“系统”表格上方，出现一条橙色边框横条：&lt;/p&gt;

&lt;pre style=&quot;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:12px;overflow:auto;font-size:13px;line-height:1.5;&quot;&gt;&lt;code&gt;CPU 温度: 65.7 °C    WiFi 温度: 49.0 / 53.0 °C&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;其中 &lt;code&gt;49.0 / 53.0&lt;/code&gt; 是两个频段（2.4G / 5G）的温度。&lt;/p&gt;

&lt;p&gt;温度值在&lt;strong&gt;页面加载时读一次&lt;/strong&gt;。要看最新值，刷新页面即可。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2&gt;原理&lt;/h2&gt;

&lt;h3&gt;1. 为什么用 &lt;code&gt;admin_status/index/&lt;/code&gt; 目录&lt;/h3&gt;

&lt;p&gt;X-WRT 26.04 的 LuCI 概览页用了&lt;strong&gt;模块化视图&lt;/strong&gt;。&lt;code&gt;/usr/lib/lua/luci/view/admin_status/luaindex.htm&lt;/code&gt; 内容是：&lt;/p&gt;

&lt;pre style=&quot;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:12px;overflow:auto;font-size:13px;line-height:1.5;&quot;&gt;&lt;code&gt;local incdir = util.libpath() .. &amp;quot;/view/admin_status/index/&amp;quot;
if fs.access(incdir) then
    for inc in fs.dir(incdir) do
        if inc:match(&amp;quot;%.htm$&amp;quot;) then
            includes[#includes + 1] = inc:gsub(&amp;quot;%.htm$&amp;quot;, &amp;quot;&amp;quot;)
        end
    end
    for _, inc in luci.util.vspairs(includes) do
        include(&amp;quot;admin_status/index/&amp;quot; .. inc)
    end
end&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;只要目录存在，里面的 &lt;code&gt;.htm&lt;/code&gt; 就会被自动加载。文件名的字母序决定加载顺序，&lt;code&gt;99-&lt;/code&gt; 表示排在最后。&lt;/p&gt;

&lt;h3&gt;2. 为什么插在 &lt;code&gt;#view&lt;/code&gt; 外面&lt;/h3&gt;

&lt;p&gt;概览页的 &lt;code&gt;&amp;lt;div id=&amp;quot;view&amp;quot;&amp;gt;&lt;/code&gt; 每 5 秒被 LuCI 轮询重绘。任何插在它内部的元素，下一轮就会被抹掉。插在它前面或后面（即 &lt;code&gt;#view&lt;/code&gt; 的兄弟节点），就不会被影响。&lt;/p&gt;

&lt;h3&gt;3. 为什么用 &lt;code&gt;setInterval&lt;/code&gt; 而不是一次性插入&lt;/h3&gt;

&lt;p&gt;横条第一次创建后，&lt;code&gt;setInterval&lt;/code&gt; 每 500ms 检查一次 &lt;code&gt;document.getElementById(&#039;cpu-temp-bar&#039;)&lt;/code&gt;，不存在就重建。这样即使页面发生某种重绘，横条也能自动恢复。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2&gt;踩坑记录&lt;/h2&gt;

&lt;table style=&quot;border-collapse:collapse;width:100%;font-size:14px;&quot;&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;border:1px solid #d0d7de;padding:6px 10px;background:#f6f8fa;text-align:left;&quot;&gt;尝试&lt;/th&gt;
      &lt;th style=&quot;border:1px solid #d0d7de;padding:6px 10px;background:#f6f8fa;text-align:left;&quot;&gt;结果&lt;/th&gt;
      &lt;th style=&quot;border:1px solid #d0d7de;padding:6px 10px;background:#f6f8fa;text-align:left;&quot;&gt;原因&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;用 sed 往 &lt;code&gt;index.htm&lt;/code&gt; 插 &lt;code&gt;&amp;lt;tr&amp;gt;&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;失败&lt;/td&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;&lt;code&gt;index.htm&lt;/code&gt; 只是一个“加载器”，实际内容是异步渲染的&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;往 &lt;code&gt;#view&lt;/code&gt; 里的表格插 &lt;code&gt;&amp;lt;tr&amp;gt;&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;显示后被冲掉&lt;/td&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;5 秒轮询会重绘整个 &lt;code&gt;#view&lt;/code&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;用 &lt;code&gt;MutationObserver&lt;/code&gt; + 轮询移动 &lt;code&gt;&amp;lt;tr&amp;gt;&lt;/code&gt;&lt;/td&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;失败&lt;/td&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;&lt;code&gt;.includes&lt;/code&gt; 里的源元素被 LuCI 的 DOM 渲染逻辑清掉，&lt;code&gt;getElementById&lt;/code&gt; 返回 &lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;插在 &lt;code&gt;#view&lt;/code&gt; 外面的横条&lt;/td&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;✅ 成功&lt;/td&gt;
      &lt;td style=&quot;border:1px solid #d0d7de;padding:6px 10px;&quot;&gt;不受 &lt;code&gt;#view&lt;/code&gt; 重绘影响&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;排查过程中最有用的三条 Console 命令：&lt;/p&gt;

&lt;pre style=&quot;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:12px;overflow:auto;font-size:13px;line-height:1.5;&quot;&gt;&lt;code&gt;// 1. 看视图容器是否存在
document.getElementById(&#039;view&#039;) ? &#039;ok&#039; : &#039;missing&#039;

// 2. 看概览页表格结构
document.querySelectorAll(&#039;#view tr&#039;).length

// 3. 看温度行是否被保留
document.getElementById(&#039;cpu-temp-src&#039;) ? &#039;found&#039; : &#039;not found&#039;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;hwmon 路径确认：&lt;/p&gt;

&lt;pre style=&quot;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:12px;overflow:auto;font-size:13px;line-height:1.5;&quot;&gt;&lt;code&gt;cat /sys/class/ieee80211/phy*/hwmon*/temp1_input
# 输出示例：
# 49000
# 53000
# 表示 49.0 °C / 53.0 °C，两个频段&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;h2&gt;备份与恢复&lt;/h2&gt;

&lt;p&gt;备份（修改前做）：&lt;/p&gt;

&lt;pre style=&quot;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:12px;overflow:auto;font-size:13px;line-height:1.5;&quot;&gt;&lt;code&gt;cp /usr/lib/lua/luci/view/admin_status/index/99-temperature.htm /root/99-temperature.htm.bak 2&amp;gt;/dev/null&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;卸载（不想要了）：&lt;/p&gt;

&lt;pre style=&quot;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:12px;overflow:auto;font-size:13px;line-height:1.5;&quot;&gt;&lt;code&gt;rm /usr/lib/lua/luci/view/admin_status/index/99-temperature.htm
rm -rf /tmp/luci-*
/etc/init.d/uwsgi restart 2&amp;gt;/dev/null
/etc/init.d/uhttpd restart 2&amp;gt;/dev/null&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;升级固件后：&lt;code&gt;/usr/lib/lua/luci/view/admin_status/index/&lt;/code&gt; 目录会被重置，把备份的 &lt;code&gt;99-temperature.htm&lt;/code&gt; 放回去，清缓存重启即可。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2&gt;可扩展方向&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;动态刷新&lt;/strong&gt;：当前是页面加载时读一次。若需不刷新页面就自动更新，可以加一个小 cgi 接口（如 &lt;code&gt;/www/cgi-bin/temp&lt;/code&gt;），前端用 &lt;code&gt;fetch&lt;/code&gt; 每几秒请求一次。&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;区分频段&lt;/strong&gt;：如果 hwmon 顺序固定（如 &lt;code&gt;hwmon0&lt;/code&gt; 对应 2.4G、&lt;code&gt;hwmon1&lt;/code&gt; 对应 5G），可以把 &lt;code&gt;49.0 / 53.0&lt;/code&gt; 改成 &lt;code&gt;2.4G 49.0 / 5G 53.0&lt;/code&gt;。&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;显示风扇转速 / 电压&lt;/strong&gt;：如果硬件支持，同样可以读 &lt;code&gt;/sys/class/hwmon/&lt;/code&gt; 下的对应文件。&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Sun, 13 Sep 2026 13:23:33 +0800</pubDate></item><item><title>判断一个 URL（其实是它背后的 HTTP 服务器）是否“支持 keep-alive”</title><link>https://blog.pyle.cc/share/http-keep-alive-test.html</link><description>&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;一行命令：curl 连续发两次请求&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;（最快捷，跨平台）&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#&amp;nbsp;把&amp;nbsp;example.com&amp;nbsp;换成你要测的&amp;nbsp;URLcurl&amp;nbsp;-v&amp;nbsp;--http1.1&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-H&amp;nbsp;&amp;quot;Connection:&amp;nbsp;keep-alive&amp;quot;&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-H&amp;nbsp;&amp;quot;Keep-Alive:&amp;nbsp;timeout=5,&amp;nbsp;max=100&amp;quot;&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-o&amp;nbsp;/dev/null&amp;nbsp;-s&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;https://example.com&amp;nbsp;https://example.com&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;观察输出：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;第一次请求后看 * Connection #0 to host example.com left intact&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;第二次请求若复用同一 Connection #0，且响应头里含&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;Connection: keep-alive&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;就说明支持。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;如果第二次变成 * Found bundle for host: 0x… * Re-using connection #0，也代表复用成功；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;若看到 * Closing connection 0，则服务端不同意 keep-alive。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 25 Dec 2025 17:29:16 +0800</pubDate></item><item><title>Chrome谷歌浏览器禁止空格下翻页但可以暂停和播放视频脚本js</title><link>https://blog.pyle.cc/uncategorized/js-video-pause.html</link><description>&lt;p&gt;前提
播放某些网站的视频的时候(不能网页全屏的视频) 会产生空格下翻页但是不能暂停播放视频，解决方案:下载油猴或者脚本猫把这代码填进去&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;(function()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;use&amp;nbsp;strict&amp;#39;;
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.body.onkeydown&amp;nbsp;=&amp;nbsp;function(event)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;e&amp;nbsp;=&amp;nbsp;window.event&amp;nbsp;||&amp;nbsp;event;
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;检查是否按下空格键
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(e.code&amp;nbsp;===&amp;nbsp;&amp;#39;Space&amp;#39;)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;获取当前焦点元素
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;activeElement&amp;nbsp;=&amp;nbsp;document.activeElement;
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;检查焦点是否在输入框或文本区域
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(activeElement.tagName&amp;nbsp;!==&amp;nbsp;&amp;#39;INPUT&amp;#39;&amp;nbsp;&amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;activeElement.tagName&amp;nbsp;!==&amp;nbsp;&amp;#39;TEXTAREA&amp;#39;)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;阻止空格键的默认行为（下翻页）
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.preventDefault();
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;查找视频元素并切换播放状态
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;video&amp;nbsp;=&amp;nbsp;document.querySelector(&amp;#39;video&amp;#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(video)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(video.paused)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;video.play();&amp;nbsp;//&amp;nbsp;播放视频
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;video.pause();&amp;nbsp;//&amp;nbsp;暂停视频
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};
})();&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;原文地址:&amp;nbsp;&amp;nbsp;https://blog.csdn.net/m0_63920681/article/details/142991359&lt;/p&gt;</description><pubDate>Wed, 17 Sep 2025 11:18:00 +0800</pubDate></item><item><title>如何隐藏Firefox火狐浏览器顶部标签栏</title><link>https://blog.pyle.cc/uncategorized/firefox-hide-title.html</link><description>&lt;p&gt;1.先通过以下火狐官方网址安装一个在侧边栏整理并显示标签页的扩展程序，推荐Tree Style Tab 作者：Piro (piro_or)&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Firefox 附加组件（zh-CN）&lt;/p&gt;&lt;p&gt;addons.mozilla.org/zh-CN/firefox/&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2.插件安装正常没问题再进行下一步&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;3.在地址栏输入about:config回车&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;4.搜索toolkit.legacyUserProfileCustomizations.stylesheets设置为true&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;5.需要使用到userChrome.css文件，使用方法见火狐官方介绍，以下是网址链接&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;How to Create a userChrome.css File&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.userchrome.org/how-create-userchrome-css.html&quot; _src=&quot;http://www.userchrome.org/how-create-userchrome-css.html&quot;&gt;www.userchrome.org/how-create-userchrome-css.html&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://firefoxcss-store.github.io/&quot;&gt;FirefoxCSS Store (firefoxcss-store.github.io)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;6.userChrome.css文件内容如下&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-css&quot;&gt;#main-window:not([drawtitle=&amp;quot;true&amp;quot;]):not([inFullscreen=&amp;quot;true&amp;quot;])&amp;nbsp;



#nav-bar&amp;nbsp;{&amp;nbsp;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-left&amp;nbsp;:&amp;nbsp;30px;&amp;nbsp;&amp;nbsp;/*&amp;nbsp;leftTop&amp;nbsp;drag&amp;nbsp;area&amp;nbsp;*/

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border-right:&amp;nbsp;140px&amp;nbsp;solid&amp;nbsp;var(--toolbar-bgcolor);&amp;nbsp;

}

:root[sizemode=&amp;quot;maximized&amp;quot;]&amp;nbsp;#nav-bar&amp;nbsp;{&amp;nbsp;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-top:&amp;nbsp;10px&amp;nbsp;!important;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*&amp;nbsp;Top&amp;nbsp;drag&amp;nbsp;area&amp;nbsp;*/

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-left&amp;nbsp;:&amp;nbsp;0px&amp;nbsp;!important;&amp;nbsp;&amp;nbsp;/*&amp;nbsp;hidden&amp;nbsp;leftTop&amp;nbsp;drag&amp;nbsp;area&amp;nbsp;in&amp;nbsp;Fullscreen&amp;nbsp;mode*/

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border-right:&amp;nbsp;140px&amp;nbsp;solid&amp;nbsp;var(--toolbar-bgcolor);&amp;nbsp;

}

:root[privatebrowsingmode=&amp;quot;temporary&amp;quot;]&amp;nbsp;#nav-bar&amp;nbsp;{&amp;nbsp;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border-right:&amp;nbsp;180px&amp;nbsp;solid&amp;nbsp;var(--toolbar-bgcolor)&amp;nbsp;!important;&amp;nbsp;

}



/*&amp;nbsp;move&amp;nbsp;down&amp;nbsp;to&amp;nbsp;hidden&amp;nbsp;titlebar&amp;nbsp;*/

#titlebar&amp;nbsp;{

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-bottom:&amp;nbsp;-31px&amp;nbsp;!important;

}



/*&amp;nbsp;move&amp;nbsp;down&amp;nbsp;3&amp;nbsp;button&amp;nbsp;on&amp;nbsp;rightTop&amp;nbsp;*/

.titlebar-buttonbox-container&amp;nbsp;{

&amp;nbsp;&amp;nbsp;margin-bottom:&amp;nbsp;-5px&amp;nbsp;!important;

}

:root[sizemode=&amp;quot;maximized&amp;quot;]&amp;nbsp;.titlebar-buttonbox-container&amp;nbsp;{

&amp;nbsp;&amp;nbsp;margin-bottom:&amp;nbsp;-15px&amp;nbsp;!important;

}



/*&amp;nbsp;move&amp;nbsp;down&amp;nbsp;private&amp;nbsp;icon&amp;nbsp;*/

.private-browsing-indicator&amp;nbsp;{

&amp;nbsp;&amp;nbsp;margin-bottom:&amp;nbsp;-8px&amp;nbsp;!important;

}

:root[sizemode=&amp;quot;maximized&amp;quot;]&amp;nbsp;.private-browsing-indicator&amp;nbsp;{

&amp;nbsp;&amp;nbsp;margin-bottom:&amp;nbsp;-18px&amp;nbsp;!important;

}



/*&amp;nbsp;hidden&amp;nbsp;horizontal&amp;nbsp;tabbar&amp;nbsp;on&amp;nbsp;top&amp;nbsp;*/

#tabbrowser-tabs[orient=&amp;quot;horizontal&amp;quot;]&amp;nbsp;{

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;visibility:&amp;nbsp;collapse&amp;nbsp;!important;

}



#sidebar-box[sidebarcommand=&amp;quot;_0ad88674-2b41-4cfb-99e3-e206c74a0076_-sidebar-action&amp;quot;]&amp;nbsp;

sidebarheader&amp;nbsp;{&amp;nbsp;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;visibility:&amp;nbsp;collapse&amp;nbsp;!important;&amp;nbsp;

}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;7.关闭浏览器所有标签页，再次打开火狐浏览器即可，无需重启电脑&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 09 Oct 2022 08:45:33 +0800</pubDate></item><item><title>OpenVPN客户端添加路由配置(流量分流)</title><link>https://blog.pyle.cc/uncategorized/openvpn-router.html</link><description>&lt;p&gt;因为某些原因需要特定的流量不进VPN隧道或者进VPN隧道转发，我们就可以通过定义路由实现。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;路由控制需要由三个参数进行定义：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;1、route-nopull&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;如果在客户端配置文件中配route-nopull，openvpn连接后将不会在电脑上添加任何路由，所有流量都将本地转发。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2、vpn_gateway&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;如果在客户端配置文件中配vpn_getaway，默认访问网络不走vpn隧道，如果可以通过添加该参数，下发路由，访问目的网络匹配到会自动进入VPN隧道。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;route 10.0.0.0 255.255.255.0&amp;nbsp; vpn_gateway&lt;/p&gt;&lt;p&gt;route 172.16.0.0 255.255.255.0&amp;nbsp; vpn_gateway&lt;/p&gt;&lt;p&gt;3、net_gateway&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;这个参数和 vpn_gateway 相反,表示在默认出去的访问全部走 openvpn 时,强行指定部分IP地址段访问不通过 Openvpn 出去。&lt;/p&gt;&lt;p&gt;max-routes 参数表示可以添加路由的条数,默认只允许添加100条路由,如果少于100条路由可不加这个参数。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;max-routes 1000&lt;/p&gt;&lt;p&gt;route 10.100.0.0 255.255.255.0 net_gateway&lt;/p&gt;&lt;p&gt;配置如下：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;client
dev&amp;nbsp;tun
proto&amp;nbsp;tcp
remote&amp;nbsp;114.112.4.6&amp;nbsp;11194
resolv-retry&amp;nbsp;infinite
nobind
persist-key
persist-tun
remote-cert-tls&amp;nbsp;server
auth&amp;nbsp;SHA512
cipher&amp;nbsp;AES-256-CBC
#ignore-unknown-option&amp;nbsp;block-outside-dns
#block-outside-dns
verb&amp;nbsp;3
route-nopull
route&amp;nbsp;192.168.1.0&amp;nbsp;255.255.255.0&amp;nbsp;vpn_gateway
route&amp;nbsp;xxx.xxx.xxx.0&amp;nbsp;255.255.255.0&amp;nbsp;net_gateway&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sat, 06 Aug 2022 10:27:01 +0800</pubDate></item><item><title>避免在调用进程外Com组件出现“由于另一个程序正在运行...”的方法</title><link>https://blog.pyle.cc/uncategorized/com-ole-error.html</link><description>&lt;p&gt;转载自：http://blog.sina.com.cn/s/blog_8a5f025a01012nm8.html&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;在App::InitInstance函数中加入&lt;/p&gt;&lt;p&gt;BOOL&amp;nbsp;&amp;nbsp;App::InitInstance()&lt;br/&gt;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;CWinAppEx::InitInstance();&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&amp;nbsp;// 初始化 OLE 库&lt;br/&gt;&amp;nbsp;if (!AfxOleInit())&lt;br/&gt;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;AfxMessageBox(IDP_OLE_INIT_FAILED);&lt;br/&gt;&amp;nbsp;&amp;nbsp;return FALSE;&lt;br/&gt;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;//********************************************************************************************&lt;br/&gt;&amp;nbsp;// 避免调用Excel VBA的时候弹出 “由于另一个程序正在运行...”&lt;br/&gt;&amp;nbsp;AfxOleGetMessageFilter()-&amp;gt; EnableBusyDialog(FALSE);&lt;br/&gt;&amp;nbsp;AfxOleGetMessageFilter()-&amp;gt; SetBusyReply(SERVERCALL_RETRYLATER);&lt;br/&gt;&amp;nbsp;AfxOleGetMessageFilter()-&amp;gt; EnableNotRespondingDialog(TRUE);&amp;nbsp;&lt;br/&gt;&amp;nbsp;AfxOleGetMessageFilter()-&amp;gt; SetMessagePendingDelay&amp;nbsp;&amp;nbsp;&amp;nbsp;(-1);&lt;br/&gt;&amp;nbsp;//********************************************************************************************&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sat, 19 Mar 2022 23:32:23 +0800</pubDate></item><item><title>Windows映射WebDAV</title><link>https://blog.pyle.cc/uncategorized/Windows%E6%98%A0%E5%B0%84WebDAV.html</link><description>&lt;p&gt;开启服务&lt;/p&gt;&lt;p&gt;此电脑右键-管理-服务-WebClient 设为自动，停止服务&lt;/p&gt;&lt;p&gt;修改注册表&lt;/p&gt;&lt;p&gt;修改注册表使得WIN同时支持http和https：&lt;/p&gt;&lt;p&gt;定位到&lt;/p&gt;&lt;p&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters&lt;/p&gt;&lt;p&gt;把BasicAuthLevel 值改成2，即同时支持http和https，默认只支持https，然后重启WebClient服务：&lt;/p&gt;&lt;p&gt;磁盘映射&lt;/p&gt;&lt;p&gt;在Windows资源管理器空白处右键，选添加一个网络位置&lt;/p&gt;&lt;p&gt;填写正确的连接加端口号，启用群晖自带DDNS的话，域名就是http://xxx.simple.me:4999在之后的对话框填写用户名密码，即是NAS的登陆用户名和密码。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 25 Feb 2022 16:32:54 +0800</pubDate></item><item><title>Docker下修改文件的几种方法</title><link>https://blog.pyle.cc/uncategorized/Docker-file-edit.html</link><description>&lt;p&gt;一般docker中没有VI或者其它相应的文本编辑器，为了写个东西安装个vi就可以解决问题，除此之外还有别的办法&lt;/p&gt;&lt;p&gt;复制docker中的文件到宿主机，再修改文件，然后将修改后的文件从宿主机复制到容器中；&lt;/p&gt;&lt;p&gt;登陆docker中找到需要编辑的文件的位置&lt;/p&gt;&lt;p&gt;sudo docker ps -a&lt;/p&gt;&lt;p&gt;sudo docker exec -it xxx /bin/bash&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;通过docker cp把这个文件拷贝出来&lt;/p&gt;&lt;p&gt;sudo docker cp xxxx:/etc/mysql/my.cnf /home/tom/&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;再拷贝回去&lt;/p&gt;&lt;p&gt;sudo docker cp&amp;nbsp; /home/tom/my.cnf&amp;nbsp; xxxx:/etc/mysql/&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;注意这个xxxx是docker ps -a 获取的container id&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;注意：文件生效，应该重启容器（未亲自试验）&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sat, 19 Feb 2022 10:26:03 +0800</pubDate></item><item><title>UTC时间时区转换工具下载</title><link>https://blog.pyle.cc/soft/utc_time_convert.html</link><description>&lt;p&gt;
    &lt;img src=&quot;https://blog.pyle.cc/zb_users/upload/2021/02/202102181613659352353149.png&quot; title=&quot;8224102.png&quot; alt=&quot;8224102.png&quot;/&gt;
&lt;/p&gt;
&lt;p&gt;
    &lt;br/&gt;
&lt;/p&gt;
&lt;p&gt;
    时区转换工具,具有简单和高级两种模式
&lt;/p&gt;
&lt;p&gt;
    &lt;br/&gt;
&lt;/p&gt;
&lt;p&gt;
    1.支持毫秒和秒两种精度Unix时间&lt;br/&gt;
&lt;/p&gt;
&lt;p&gt;
    2.支持1900年-9999年所有时间和时区转换
&lt;/p&gt;
&lt;p&gt;
    3.记录转换历史,方便回溯
&lt;/p&gt;
&lt;p&gt;
    4.支持设置备注,方便记忆
&lt;/p&gt;
&lt;p&gt;
    5.软件小巧无需联网,占用资源低
&lt;/p&gt;
&lt;p&gt;
    &lt;br/&gt;
&lt;/p&gt;
&lt;p&gt;
    下载地址:
&lt;/p&gt;
&lt;p style=&quot;line-height: 16px;&quot;&gt;
    &lt;img style=&quot;vertical-align: middle; margin-right: 2px;&quot; src=&quot;https://blog.pyle.cc/zb_system/image/filetype/zip.png&quot;/&gt;&lt;a style=&quot;font-size:12px; color:#0066cc;&quot; href=&quot;https://blog.pyle.cc/zb_users/upload/2021/02/202102181613660036775330.zip&quot; title=&quot;时间转换工具v0.9.zip&quot;&gt;时间转换工具v0.9.zip &lt;br/&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;line-height: 16px;&quot;&gt;
    &lt;img style=&quot;vertical-align: middle; margin-right: 2px;&quot; src=&quot;https://blog.pyle.cc/zb_system/image/filetype/zip.png&quot;/&gt;&lt;a style=&quot;font-size:12px; color:#0066cc;&quot; href=&quot;http://pyle.ys168.com/&quot; target=&quot;_blank&quot; title=&quot;时间转换工具v0.9.zip&quot;&gt;备用下载地址 &lt;br/&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;line-height: 16px;&quot;&gt;
    &lt;br/&gt;
&lt;/p&gt;
&lt;p style=&quot;line-height: 16px;&quot;&gt;
    &lt;br/&gt;
&lt;/p&gt;
&lt;p style=&quot;line-height: 16px;&quot;&gt;
    &lt;br/&gt;
&lt;/p&gt;</description><pubDate>Thu, 18 Feb 2021 22:41:24 +0800</pubDate></item><item><title>Syncthing在Windows10下如何自启动</title><link>https://blog.pyle.cc/uncategorized/syncthing-startup.html</link><description>&lt;ol style=&quot;list-style-type: decimal;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;新建bat文件 startSyncthing.bat&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;@echo&amp;nbsp;off
start&amp;nbsp;/d&amp;nbsp;&amp;quot;K:\program\syncthing&amp;quot;&amp;nbsp;syncthing.exe&amp;nbsp;-no-console&amp;nbsp;-no-browser
exit&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-no-console&amp;nbsp; 为不弹出CMD窗口&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-no-browser 为不弹出浏览器窗口&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;K:\program\syncthing 为syncthing.exe所在路径&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2. 右击左下角windows徽标,点击运行,输入shell:startup,把startSyncthing.bat复制进去&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.好了,现在重启电脑试试吧&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 22 Nov 2020 22:12:19 +0800</pubDate></item></channel></rss>