<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
  <title>蜗牛大锅的博客</title>
  <link>http://threescard</link>
  <description>蜗牛大锅的博客</description>
  <copyright>蜗牛大锅的博客2013-2026</copyright>
  <lastBuildDate>2026-03-02 23:03:00</lastBuildDate>
  
    <item>
    <title>SDD规范驱动编程 扩展工作流程</title>
    <description><![CDATA[  <p><strong><span style="font-size:16px;">一、SDD规范驱动编程</span></strong></p>
<p>1、openspec：<a href="https://github.com/Fission-AI/OpenSpec" target="_blank">https://github.com/Fission-AI/OpenSpec</a>，比较简单，推荐使用；</p>
<p>2、speckit：<a href="https://github.com/github/spec-kit" target="_blank">https://github.com/github/spec-kit</a>，交付文件较多，适合大项目；</p>
<p>3、openspec安装：<span>npm install -g @fission-ai/openspec@latest</span></p>
<p><span>4、openspec配置：setx OPENSPEC_TELEMETRY 0</span></p>
<p><span><br />
</span></p>
<p>帮助文档：</p>
<p>1、终端命令：<a href="https://github.com/Fission-AI/OpenSpec/blob/main/docs/cli.md" target="_blank">https://github.com/Fission-AI/OpenSpec/blob/main/docs/cli.md</a></p>
<p>2、插件命令：<a href="https://github.com/Fission-AI/OpenSpec/blob/main/docs/commands.md" target="_blank">https://github.com/Fission-AI/OpenSpec/blob/main/docs/commands.md</a></p>
<p><span>3、入门帮助：<a href="https://github.com/Fission-AI/OpenSpec/blob/main/docs/getting-started.md" target="_blank">https://github.com/Fission-AI/OpenSpec/blob/main/docs/getting-started.md</a></span></p>
<p><span><span>4、工作流程：</span><a href="https://github.com/Fission-AI/OpenSpec/blob/main/docs/workflows.md" target="_blank">https://github.com/Fission-AI/OpenSpec/blob/main/docs/workflows.md</a><br />
</span></p>
<p><span>5、详细帮助：<a href="https://github.com/Fission-AI/OpenSpec/blob/main/docs/opsx.md" target="_blank">https://github.com/Fission-AI/OpenSpec/blob/main/docs/opsx.md</a></span></p>
<p><br />
</p>
<p>常用命令：</p>
<p>1、初始化项目：openspec init</p>
<p>2、更新项目插件：openspec update</p>
<p>3、查看变更列表：openspec list</p>
<p>4、查看变更详情：openspec view</p>
<p>5、查看变更内容：openspec show</p>
<p>6、验证变更内容：openspec validate</p>
<p><br />
</p>
<p><span>初始化项目：</span></p>
<p>cd project<br />
openspec init</p>
<p><span>openspec\</span><span>config.yaml</span>：</p>
<p>context: |<br />
&nbsp; 语言：中文（简体）<br />
&nbsp; 所有产出物必须用简体中文撰写。</p>
<p><br />
</p>
<p>核心流程：<span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);"></span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);"><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">1、/opsx:explore [topic]</span><br />
</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">2、/opsx:propose [change-name-or-description]</span><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);"></span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">3、/opsx:apply [change-name]</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">4、/opsx:archive [change-name]</span><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);"></span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);"><br />
</span></p>
<p><span style="font-size:16px;"><strong>二、扩展工作流程</strong></span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">1、扩展工作流程是全局配置，所有项目生效；</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">2、扩展工作流程：openspec config profile<br />
3、更新项目插件：openspec update</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);"><br />
</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">扩展流程：</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">1、/opsx:new [change-name]</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">2、/opsx:continue [change-name]</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">3、/opsx:ff [change-name]</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);"></span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">4、/opsx:apply [change-name]</span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">5、/opsx:verify <span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">[change-name]</span></span></p>
<p><span style="color:#1F2328;font-family:ui-monospace, SFMono-Regular, &quot;font-size:13.6px;background-color:rgba(129, 139, 152, 0.12);">6、/opsx:archive [change-name]</span></p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=386</link>
    <category>人工智能</category>
    <pubDate>2026-03-02 23:03:00 +0800</pubDate>
  </item>
    <item>
    <title>claude-api使用介绍 claude-agent-sdk使用介绍</title>
    <description><![CDATA[  <p><strong><span style="font-size:16px;">一、claude-api使用介绍</span></strong></p>
<p>1、消息接口：<a href="https://platform.claude.com/docs/en/api/python/messages" target="_blank">https://platform.claude.com/docs/en/api/python/messages</a></p>
<p>2、</p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=385</link>
    <category>人工智能</category>
    <pubDate>2026-02-18 21:18:00 +0800</pubDate>
  </item>
    <item>
    <title>搜索引擎技巧 网站强制更新 分页原理 实体编码 验证码作用 识别验证码</title>
    <description><![CDATA[  <p><span style="font-size:16px;font-weight:700;">一、搜索引擎技巧</span></p>
<p>1、<span>搜索</span>指定站点site:domain 关键字，<span>搜索</span>指定文件类型filetype:pdf 关键字；</p>
<p>2、robots.txt文件用于告诉搜索引擎可以访问哪些文件，不可以访问哪些文件；</p>
<p><br />
</p>
<p><strong><span style="font-size:16px;">二、网站强制更新</span></strong></p>
<p>1、前端页面编码当前服务版本；</p>
<p>2、后端提供接口获取当前服务版本；</p>
<p>3、比对前端版本和后端版本，不一致则强制更新windows.location.reload(true)；</p>
<p><br />
</p>
<p><span style="font-weight:700;"><span style="font-size:16px;">三、分页原理</span></span></p>
<p>1、首页查询：查询数据总量和首页数据；</p>
<p>2、换页查询：基于前一页的数据索引查询换页数据；</p>
<p>3、分页排序：可以后端全局排序，可以前端局部排序；</p>
<p><br />
</p>
<p><span style="font-weight:700;"><span style="font-size:16px;">四、实体编码</span></span></p>
<p>1、实体编码用于输出某些无法做为普通文本显示的字符；</p>
<p>2、实体编码支持实体名称、十进制实体编号、十六进制实体编号；</p>
<p>3、比如双引号可以编码：&amp;quot; &amp;#34; &amp;#x22;</p>
<p>4、BurpSuite编解码工具支持实体编码转换；</p>
<p><span>5、</span><span>org.springframework.web.util.</span><span>HtmlUtils</span><span>支持实体编码转换；</span></p>
<p><br />
</p>
<p>实体编码：</p>
<p><span>1、&lt;：&amp;lt;</span><br />
<span>2、&gt;：&amp;gt;</span><br />
<span>3、&amp;：&amp;amp;</span></p>
<p>4、空格：&amp;nbsp;<br />
5、双引号：&amp;quot;<br />
6、单引号：&amp;apos;</p>
<p><br />
</p>
<p><span style="font-size:16px;font-weight:700;">五、验证码作用</span></p>
<p>验证码作用：</p>
<p>1、验证码可以在真正操作之前进行一次校验，防止暴力攻击比较有效；</p>
<p>2、如果验证码能够破解，但比较困难，可以<span>在验证码验证失败时刷新；</span></p>
<p><span>3、如果验证码非常容易破解，这个时候只能借助频控防止暴力攻击；</span></p>
<p><br />
</p>
<p>验证码原理：</p>
<p>1、后台生成4位随机码，包含字母和数字，并写入会话；</p>
<p>2、使用随机码生成图片返回给前端展示，需要使用彩色图片；</p>
<p>3、验证成功之后验证码失效，验证失败之后验证码仍然有效，频繁失效验证码会导致性能问题；</p>
<p><br />
</p>
<p><strong><span style="font-size:16px;">六、</span></strong><strong><span style="font-size:16px;">tesseract<span style="font-weight:700;"><span style="font-size:16px;">识别</span></span>验证码</span></strong></p>
<p>1、官方网址：<a href="https://github.com/tesseract-ocr/tesseract" target="_blank">https://github.com/tesseract-ocr/tesseract</a></p>
<p>2、win命令行：<a href="https://github.com/UB-Mannheim/tesseract/wiki" target="_blank">https://github.com/UB-Mannheim/tesseract/wiki</a></p>
<p>3、win图形界面：<a href="https://github.com/manisandro/gImageReader" target="_blank">https://github.com/manisandro/gImageReader</a></p>
<p>4、<span>识别</span>文字：tesseract imagename -，输出到命令行</p>
<p><span>5、<span>识别</span><span>文字：</span>tesseract imagename&nbsp;</span><span>outputbase，输出到文件</span><span></span></p>
<p><span><br />
</span></p>
<p><strong><span style="font-size:16px;">七、ddddocr识别验证码</span></strong></p>
<p>1、官网地址：<a href="https://github.com/sml2h3/ddddocr" target="_blank">https://github.com/sml2h3/ddddocr</a></p>
<p>2、包含两套模型，默认使用旧模型，通过<span>beta=True切换到新模型；</span></p>
<p><span>3、ocr.set_ranges(int|str)设置识别字符集，int是内置字符集，str是自定义字符集；</span></p>
<p><br />
</p>
<p>识别示例：</p>
<p>import ddddocr<br />
ocr = ddddocr.DdddOcr(beta=True)<br />
image = open("example.jpg", "rb").read()<br />
result = ocr.classification(image)<br />
print(result)</p>
<p><br />
</p>
<p>限定识别字符集：</p>
<p>import ddddocr<br />
ocr = ddddocr.DdddOcr(beta=True)<br />
ocr.set_ranges('ABCDEFG')<br />
image = open("example.jpg", "rb").read()<br />
result = ocr.classification(image, probability=True)<br />
s = ''<br />
for i in result['probability']:<br />
&nbsp; &nbsp; s += result['charsets'][i.index(max(i))]<br />
print(s)</p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=384</link>
    <category>WEB前端</category>
    <pubDate>2020-03-05 20:50:00 +0800</pubDate>
  </item>
    <item>
    <title>claude工具扩展 hook使用介绍</title>
    <description><![CDATA[  <p><strong><span style="font-size:16px;">一、hook使用介绍</span></strong></p>
<p>1、入门指引：<a href="https://code.claude.com/docs/zh-CN/hooks-guide" target="_blank">https://code.claude.com/docs/zh-CN/hooks-guide</a></p>
<p>2、使用参考：<a href="https://code.claude.com/docs/zh-CN/hooks" target="_blank">https://code.claude.com/docs/zh-CN/hooks</a></p>
<p>3、</p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=383</link>
    <category>人工智能</category>
    <pubDate>2026-02-15 19:37:00 +0800</pubDate>
  </item>
    <item>
    <title>claude工具扩展 mcp使用介绍 chrome-devtools-mcp使用介绍</title>
    <description><![CDATA[  <p><strong><span style="font-size:16px;">一、mcp使用介绍</span></strong></p>
<p>1、官方帮助：<a href="https://code.claude.com/docs/zh-CN/mcp" target="_blank">https://code.claude.com/docs/zh-CN/mcp</a></p>
<p>2、列出mcp：claude mcp list</p>
<p>3、查询mcp：claude mcp get <span>&lt;name&gt;</span></p>
<p>4、增加http服务器：claude mcp add --transport http &lt;name&gt; &lt;url&gt;</p>
<p>5、<span>增加</span>sse<span>服务器</span>：claude mcp add --transport sse &lt;name&gt; &lt;url&gt;</p>
<p>6、<span>增加</span>stdio<span>服务器</span>：claude mcp add [options] &lt;name&gt; "--" &lt;command&gt; [args...]</p>
<p>7、<span>增加</span><span>stdio</span><span>服务器：</span>windows上面nxp命令需要使用cmd /c执行；</p>
<p>8、自身作为mcp：claude mcp serve</p>
<p><br />
</p>
<p>mcp配置：</p>
<p>1、安装范围：本地范围，-s local，存储在~/.claude.json，项目内使用，默认安装范围；</p>
<p>2、<span>安装范围：</span>项目范围，-s project，存储在$project/.mcp.json，项目内使用，提交到仓库；</p>
<p><span>3、<span>安装范围：</span>用户范围，-s user，</span><span>存储在</span><span>~/.claude.json，所有项目使用；</span></p>
<p><span>4、安装范围：同名服务的优先级，本地范围 &gt; 项目范围 &gt; 用户范围；</span></p>
<p><span>5、本地禁用：/mcp进行禁用，</span><span>存储在</span><span>~/.claude.json，项目内禁用；</span></p>
<p><span>6、MCP_TIMEOUT：服务启动超时时间设置；</span></p>
<p><span>7、MAX_MCP_OUTPUT_TOKENS：单次请求最大输出令牌；</span></p>
<p><span><br />
</span></p>
<p><strong><span style="font-size:16px;">二、</span></strong><span style="font-size:16px;"><strong>chrome-devtools-mcp使用介绍</strong></span></p>
<p><span>1、代码仓库：<a href="https://github.com/ChromeDevTools/chrome-devtools-mcp" target="_blank">https://github.com/ChromeDevTools/chrome-devtools-mcp</a><br />
</span></p>
<p><span>2、使用帮助：<a href="https://www.npmjs.com/package/chrome-devtools-mcp" target="_blank">https://www.npmjs.com/package/chrome-devtools-mcp</a></span></p>
<p><span>3、<span>puppeteer仓库</span>：<a href="https://github.com/puppeteer/puppeteer" target="_blank">https://github.com/puppeteer/puppeteer</a></span></p>
<p><span>4、<span>puppeteer帮助：</span><a href="https://pptr.dev/category/introduction" target="_blank">https://pptr.dev/category/introduction</a></span></p>
<p><span>5、功能介绍：操控chrome，支持自动化、深入测试、<span>分析</span>性能；</span></p>
<p><span></span></p>
<p>6、实现原理：使用puppeteer自动化，使用devtools分析性能；</p>
<p>7、实现原理：snapshot工具读取网页结构，生成a11y tree，标识网页每个元素，用于后续自动化操作；</p>
<p><span>8、安装mcp：claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest</span></p>
<p><span><br />
</span></p>
<p><span><span>命令参数：</span></span></p>
<p>1、--autoConnect，自动连接已开启调试的浏览器；<br />
2、--browserUrl，自动连接已开启调试的远程浏览器；</p>
<p>3、--wsEndpoint，自动连接已开启调试的远程浏览器；</p>
<p>4、--headless，无头模式，没有用户界面的模式；</p>
<p><span>5、--isolated，隔离模式，使用临时的用户数据目录，浏览器退出时自动清理；</span></p>
<p>6、--userDataDir，用户数据目录，默认位于%USERPROFILE%\.cache\chrome-devtools-mcp\chrome-profile</p>
<p><br />
</p>
<p><span>工具介绍：</span></p>
<p>1、navigate_page，跳转到一个网址；</p>
<p>2、close_page，关闭一个指定的页面；</p>
<p><span>3、list_pages，列出目前打开的页面；</span></p>
<p>4、wait_for(text, timeout)，等待页面出现指定的文字；</p>
<p>5、evaluate_script(function, args)，当前页面执行脚本；</p>
<p>6、get_network_request(reqid)，查询一个网络请求，返回内容：请求头、请求体、返回头、返回体；</p>
<p><span>7、</span><span>list_network_requests(resourceTypes)，列出页面产生的所有网络请求，默认返回所有资源请求；</span></p>
<p><span><br />
</span></p>
<p><span>常用资源类型：</span></p>
<p>["document", "script",<br />
&nbsp;"xhr","fetch","other",<br />
&nbsp;"eventsource", "websocket"]</p>
<p><br />
</p>
<p><span>chrome通信协议：</span></p>
<p><span><span>1、CDP：Chrome DevTools Protocol，基于WebSocket的JSON-RPC协议；</span></span></p>
<p><span><span><span><span>2、CDP：</span><span>puppeteer和devtools使用CDP与浏览器通信，puppeteer简化了使用CDP</span><span>；</span></span></span></span></p>
<p><span><span><span><span></span></span></span></span></p>
<p>3、CDP：--remote-debugging-port<span>传输层</span>使用TCP，<span>--remote-debugging-pipe<span>传输层</span>使用管道；</span></p>
<p><span></span></p>
<p><span>4、扩展API：Chrome Extension API，浏览器的内部组件，运行在浏览器内部，效率非常高；</span></p>
<p>5、扩展API：扩展程序使用Chrome Extension API与浏览器通信，其核心是chrome.runtime；</p>
<p><span>6、Electron：Node.js + Chromium，<span>前者是主进程</span>，后者<span>是渲染进程，渲染进程实现UI渲染和交互；</span></span></p>
<p><span>7、<span>Electron：主进程和渲染进程之间使用IPC机制通信；</span></span></p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=382</link>
    <category>人工智能</category>
    <pubDate>2026-02-01 16:43:00 +0800</pubDate>
  </item>
    <item>
    <title>ClassLoader使用介绍 获取调用堆栈 打印异常栈</title>
    <description><![CDATA[  <p><strong><span style="font-size:16px;">一、ClassLoader使用介绍</span></strong></p>
<p>1、BootstrapClassLoader，用于加载核心类库，类库位于<span>%JRE_HOME%\lib，环境变量是sun.boot.class.path</span></p>
<p>2、ExtClassLoader，用于加载扩展类库，类库位于%JRE_HOME%\lib\ext，<span>环境变量是</span>java.ext.dirs</p>
<p>3、App<span>ClassLoader</span>，<span>用于</span>加载应用类，环境变量是java.class.path</p>
<p>4、LaunchedURLClassLoader，用于加载springboot的应用类</p>
<p>5、类加载器继承：<span>ExtClassLoader -&gt;&nbsp;URLClassLoader -&gt; SecureClassLoader -&gt; ClassLoader</span></p>
<p><span><span>6、类加载器继承：</span><span><span>App</span><span>ClassLoader -</span>&gt;&nbsp;URLClassLoader -&gt;&nbsp;SecureClassLoader -&gt;&nbsp;ClassLoader</span></span></p>
<p><span><span><br />
</span></span></p>
<p><span><span>父加载器：<br />
</span></span></p>
<p><span>1、<span>ClassLoader包含一个成员</span>parent，每个类加载器包含一个父加载器；</span></p>
<p><span><span>2、<span>ExtClassLoader的父加载器为空；</span></span></span></p>
<p><span><span>3、App</span><span>ClassLoader的父加载器是ExtClassLoader</span>；</span></p>
<p><span>4、自定义类加载器的父加载器默认是<span>App</span><span>ClassLoader；</span></span></p>
<p><span><br />
</span></p>
<p><span>类加载机制：</span></p>
<p><span>1、loadClass：调用this.findLoadedClass，调用parent.loadClass，调用this.findClass()</span></p>
<p><span>2、类查找方向：<span>App</span><span>ClassLoader -&gt;&nbsp;<span>ExtClassLoader -&gt;&nbsp;<span>BootstrapClassLoader</span></span></span></span></p>
<p><span>3、类加载方向：<span>BootstrapClassLoader -&gt;&nbsp;<span>ExtClassLoader -&gt;&nbsp;<span>App</span><span>ClassLoader&nbsp;</span></span></span></span></p>
<p><span><span><span><span><br />
</span></span></span></span></p>
<p><span><span><span><span>工具函数：</span></span></span></span></p>
<p><span><span><span><span></span></span></span></span></p>
<p>1、ClassLoader.getSystemClassLoader()，获取虚拟机的类加载器，默认是AppClassLoader；</p>
<p>2、Thread.currentThread().getContextClassLoader()，获取线程的类加载器，默认是AppClassLoader；</p>
<p>3、ClassLoader.loadClass(className)，使用类加载器加载类，不进行静态初始化；</p>
<p><span>4、Class.forName(className)，使用虚拟机的类加载器加载类，进行静态初始化；</span></p>
<p><span><br />
</span></p>
<p>获取调用类：哪个类调用了<span>getCallerClass</span></p>
<p>StackWalker.Option option = StackWalker.Option.RETAIN_CLASS_REFERENCE;<br />
StackWalker walker = StackWalker.getInstance(option);<br />
Class cls = walker.getCallerClass();</p>
<p><br />
</p>
<p><strong><span style="font-size:16px;">二、获取调用堆栈</span></strong></p>
<p><span>推荐方法：</span></p>
<p>List&lt;StackWalker.StackFrame&gt; stackFrames = stackWalker.walk(<br />
&nbsp; &nbsp; frames -&gt; frames.collect(Collectors.toList()));</p>
<p><br />
</p>
<p>其他方法：</p>
<p>1、Thread.currentThread().getStackTrace()，返回<span>StackTraceElement[]</span><br />
2、new Throwable().getStackTrace()，返回<span>StackTraceElement[]</span><br />
3、Thread.dumpStack()，返回void</p>
<p><br />
</p>
<p><span style="font-weight:700;"><span style="font-size:16px;">三、打印异常栈</span></span></p>
<p><span><span> </span>public static void printStackTraces(StackTraceElement[] stacks) {</span><br />
for (StackTraceElement stack : stacks) {<br />
String info = String.format("%s:%s:%s",<br />
stack.getClassName(), stack.getMethodName(), stack.getLineNumber());<br />
System.out.println(info);<br />
}<br />
}<br />
<br />
public static void getStackTraces() {<br />
try {<br />
throw new Exception("MyException");<br />
} catch (Exception e) {<br />
System.out.println(e.getMessage());<br />
System.out.println(e.getCause());<br />
StackTraceElement[] stacks = e.getStackTrace();<br />
printStackTraces(stacks);<br />
}<br />
<span><span> </span>}</span></p>
<p><br />
</p>
<p>输出：</p>
<p>MyException<br />
null<br />
logdemo.LogDemo:getStackTraces:15<br />
logdemo.LogDemo:main:25</p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=381</link>
    <category>JAVA语言</category>
    <pubDate>2026-02-27 22:22:00 +0800</pubDate>
  </item>
    <item>
    <title>claude使用介绍 claude命令介绍 headless使用介绍</title>
    <description><![CDATA[  <p><span style="font-weight:700;font-size:16px;font-family:微软雅黑;">一、claude使用介绍</span></p>
<p style="font-family:微软雅黑;">1、claude使用帮助：<a href="https://code.claude.com/docs/zh-CN/overview" target="_blank">https://code.claude.com/docs/zh-CN/overview</a></p>
<p style="font-family:微软雅黑;">2、claude命令帮助：<a href="https://code.claude.com/docs/zh-CN/cli-reference" target="_blank">https://code.claude.com/docs/zh-CN/cli-reference</a></p>
<p style="font-family:微软雅黑;">3、<span style="font-family:微软雅黑;">claude交互帮助：</span><a href="https://code.claude.com/docs/zh-CN/interactive-mode" target="_blank">https://code.claude.com/docs/zh-CN/interactive-mode</a></p>
<p style="font-family:微软雅黑;"><br />
</p>
<p style="font-family:微软雅黑;">安装claude-code：</p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">1、安装git：</span><a href="https://git-scm.com/install/windows" target="_blank">https://git-scm.com/install/windows</a></p>
<p style="font-family:微软雅黑;">2、安装<span style="font-family:微软雅黑;">claude</span>-code：npm install -g @anthropic-ai/claude-code</p>
<p style="font-family:微软雅黑;">3、配置<span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude</span>-code：<a href="/data/download/ai/aicoder/settings.json" target="_blank">settings.json</a></span></p>
<p style="font-family:微软雅黑;">4、<span style="font-family:微软雅黑;">配置</span><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude</span>-code：</span><span style="font-family:微软雅黑;">DASHSCOPE_API_KEY替换为真实的apikey</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">5、<span style="font-family:微软雅黑;">配置</span><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude</span>-code：</span><span style="font-family:微软雅黑;">%USERPROFILE%\.claude放置文件</span>settings.json</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">6、<span style="font-family:微软雅黑;">配置</span><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude</span>-code：<span style="font-family:微软雅黑;">%USERPROFILE%\.claude.json添加配置"hasCompletedOnboarding": true</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><br />
</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"></span></span></span></p>
<p style="font-family:微软雅黑;">claude-code系统提示词：</p>
<p style="font-family:微软雅黑;">1、替换提示词(不推荐)：--system-prompt，支持交互模式和打印模式；</p>
<p style="font-family:微软雅黑;">2、替换提示词(不推荐)：--system-prompt-file，仅支持打印模式；</p>
<p style="font-family:微软雅黑;">3、新增提示词(推荐)：--append-system-prompt，支持交互模式和打印模式；</p>
<p style="font-family:微软雅黑;">4、新增提示词(推荐)：--append-system-prompt-file，仅支持打印模式；</p>
<p><br />
</p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude-code提问技巧：</span></span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">1、建议让claude先学习已有代码；</span><br />
</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">2、请求需要具体，提供具体的上下文内容；</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">3、使用分步说明，将复杂任务分解为步骤；</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">4、流程步骤：探索、规划、实现、提交；</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><br />
</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude-code使用技巧：</span><br />
</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"></span></span></span></p>
<p style="font-family:微软雅黑;">1、tab，<span style="font-family:微软雅黑;">补全</span>命令；</p>
<p style="font-family:微软雅黑;">2、esc+esc，清除输入；</p>
<p style="font-family:微软雅黑;">3、CTRL+L，清除输入；</p>
<p style="font-family:微软雅黑;">4、CTRL+G，打开文本编辑器；</p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">5、/clear，清除屏幕内容；</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">6、?，查看所有键盘快捷键；</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">7、/，查看所有斜杠命令；</span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">8、/help，查看可用命令；</span></p>
<p style="font-family:微软雅黑;"><br />
</p>
<p style="font-family:微软雅黑;"><strong><span style="font-size:16px;">二、claude命令介绍</span></strong></p>
<p style="font-family:微软雅黑;">claude-code配置管理：</p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">1、/config，查看和修改自身配置；</span></p>
<p style="font-family:微软雅黑;">2、/doctor，诊断和验证自身状态；</p>
<p style="font-family:微软雅黑;">3、/status，显示当前状态；</p>
<p style="font-family:微软雅黑;">4、/stats，显示使用情况；</p>
<p style="font-family:微软雅黑;"><br />
</p>
<p style="font-family:微软雅黑;">claude-code配置设置：</p>
<p style="font-family:微软雅黑;">1、配置设置：<a href="https://code.claude.com/docs/zh-CN/settings" target="_blank">https://code.claude.com/docs/zh-CN/settings</a></p>
<p style="font-family:微软雅黑;">3、<span style="font-family:微软雅黑;">模型设置：</span><a href="https://code.claude.com/docs/zh-CN/model-config" target="_blank">https://code.claude.com/docs/zh-CN/model-config</a></p>
<p style="font-family:微软雅黑;">4、配置优先级：Managed &gt;&nbsp;命令行参数 &gt; Local &gt; Project &gt; User</p>
<p style="font-family:微软雅黑;">5、用户设置：~/.claude/settings.json&nbsp;</p>
<p style="font-family:微软雅黑;">6、项目设置：.claude/settings.json</p>
<p style="font-family:微软雅黑;">7、本地设置：.claude/settings.local.json</p>
<p style="font-family:微软雅黑;">08、输出影响：/model设置模型和努力级别</p>
<p style="font-family:微软雅黑;">09、输出影响：/config设置thinkingMode</p>
<p style="font-family:微软雅黑;">10、输出影响：<span style="font-family:微软雅黑;">/config设置</span>outputStyle&nbsp;</p>
<p style="font-family:微软雅黑;"><br />
</p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude-code权限设置：</span></p>
<p style="font-family:微软雅黑;">1、配置设置：<a href="https://code.claude.com/docs/zh-CN/settings" target="_blank">https://code.claude.com/docs/zh-CN/settings</a></p>
<p style="font-family:微软雅黑;">2、权限设置：<a href="https://code.claude.com/docs/zh-CN/permissions" target="_blank">https://code.claude.com/docs/zh-CN/permissions</a></p>
<p style="font-family:微软雅黑;">3、权限评估优先级：deny &gt; ask &gt; allow &gt;&nbsp;<span style="color:#111827;font-family:&quot;background-color:rgba(238, 238, 238, 0.5);">defaultMode</span></p>
<p style="font-family:微软雅黑;">4、跳过权限评估：--dangerously-skip-permissions</p>
<p style="font-family:微软雅黑;">5、Bash命令评估允许或禁止之后，项目永久有效，无需用户再次确认；</p>
<p style="font-family:微软雅黑;">6、Edit/Write评估允许或禁止之后，会话期间有效，除非配置设置了询问；</p>
<p style="font-family:微软雅黑;">7、限制命令参数的bash很脆弱，很容易绕过限制；</p>
<p style="font-family:微软雅黑;">8、限制访问url，建议使用WebFetch替代curl和wget；</p>
<p style="font-family:微软雅黑;">9、限制访问url，可以使用hook，可以在CLAUDE.md增加访问规则；</p>
<p style="font-family:微软雅黑;"><br />
</p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude-code常用命令：</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">1、claude -c，恢复上一次会话；</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">2、claude -r，恢复指定的会话；</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">3、/context，</span>上下文使用情况；<br />
</span></span></span></span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">4、/memory，编辑长期记忆；</span><br />
</span></span></span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">5、/init，建立项目长期记忆；</span></span></span></span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">6、/plan，进入规划模式，生成执行计划；</span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">7、/rewind，<span style="font-family:微软雅黑;">出错时使用，</span>回滚</span><span style="font-family:微软雅黑;">会话</span><span style="font-family:微软雅黑;">和</span><span style="font-family:微软雅黑;">代码；</span><br />
</span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">8、/todos，计划工作列表，等待大模型执行；</span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">9、/tasks，后台任务列表，</span></span>bash命令可以后台执行；</p>
<p style="font-family:微软雅黑;"><br />
</p>
<p style="font-family:微软雅黑;">claude-code回滚机制：</p>
<p style="font-family:微软雅黑;">1、每个用户的请求都会创建一个新的checkpoint；</p>
<p style="font-family:微软雅黑;">2、checkpoint在本地持久存储，30天之后自动清理；</p>
<p style="font-family:微软雅黑;">3、<span style="font-family:微软雅黑;">c</span><span style="font-family:微软雅黑;">heckpoint用于尝试不同的方案，而不会丢失起点；</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">4、<span style="font-family:微软雅黑;">c</span><span style="font-family:微软雅黑;">heckpoint用于从错误中进行恢复，可以快速恢复；</span></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">5、不能跟踪bash命令的修改，不能跟踪外部的修改；</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><br />
</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><strong><span style="font-size:16px;">三、headless</span></strong><strong><span style="font-size:16px;">使用介绍</span></strong></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">1、使用帮助：<a href="https://code.claude.com/docs/zh-CN/headless" target="_blank">https://code.claude.com/docs/zh-CN/headless</a></span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">2、--output-format json，输出<span style="font-family:微软雅黑;">结果</span>为json</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">3、--json-schema schema，输出结果的schema</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">4、</span><span style="font-family:微软雅黑;">--output-format stream-json</span><span style="font-family:微软雅黑;">，输出结果为流式json</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><br />
</span></p>
<p style="font-family:微软雅黑;">输出结果为json：</p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude -p "获取目录下文件列表，无需递归" --output-format json\<br />
&nbsp;--json-schema '{"type":"object","properties":{"files":{"type":"array","items":{"type":"string"}}},"required":["files"]}'\<br />
&nbsp;| jq '{type,subtype,is_error,num_turns,result}, .structured_output'<br />
</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><br />
</span></p>
<p style="font-family:微软雅黑;">输出结果为流式json：</p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">claude -p "获取目录下文件列表，无需递归" --output-format stream-json --verbose --include-partial-messages\<br />
&nbsp;| jq -rj 'select(.type == "stream_event" and .event.delta.type? == "text_delta") | .event.delta.text'\<br />
&nbsp;| iconv -f UTF-8 -t UTF-8<br />
</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;"><br />
</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">恢复指定会话：</span></p>
<p style="font-family:微软雅黑;"><span style="font-family:微软雅黑;">session_id=$(claude -p "Start a review" --output-format json | jq -r '.session_id')<br />
claude -p "Continue that review" --resume "$session_id"<br />
</span></p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=380</link>
    <category>人工智能</category>
    <pubDate>2026-01-12 21:12:00 +0800</pubDate>
  </item>
    <item>
    <title>模型调用</title>
    <description><![CDATA[  <p><span style="font-weight:700;font-size:16px;font-family:微软雅黑;">一、模型调用</span></p>
<p>1、阿里云预算管理：<a href="https://billing-cost.console.aliyun.com/expense-manage/expense-budget/list" target="_blank">https://billing-cost.console.aliyun.com/expense-manage/expense-budget/list</a></p>
<p>2、<span>阿里云访问控制：</span><a href="https://ram.console.aliyun.com/overview?activeTab=overview" target="_blank">https://ram.console.aliyun.com/overview?activeTab=overview</a></p>
<p>3、apikey管理：<a href="https://bailian.console.aliyun.com/cn-beijing?tab=model#/api-key" target="_blank">https://bailian.console.aliyun.com/cn-beijing?tab=model#/api-key</a></p>
<p>4、token统计：<a href="https://bailian.console.aliyun.com/cn-beijing?tab=model#/model-usage/usage-statistics" target="_blank">https://bailian.console.aliyun.com/cn-beijing?tab=model#/model-usage/usage-statistics</a></p>
<p><span><span>5、模型列表：<a href="https://help.aliyun.com/zh/model-studio/models" target="_blank">https://help.aliyun.com/zh/model-studio/models</a></span><span></span><br />
</span></p>
<p><span>6、计费说明：</span><a href="https://help.aliyun.com/zh/model-studio/model-pricing" target="_blank">https://help.aliyun.com/zh/model-studio/model-pricing</a></p>
<p><span>7、调用示例：</span><span><a href="https://help.aliyun.com/zh/model-studio/first-api-call-to-qwen" target="_blank">https://help.aliyun.com/zh/model-studio/first-api-call-to-qwen</a></span></p>
<p>8、错误处理：<a href="https://help.aliyun.com/zh/model-studio/error-code" target="_blank">https://help.aliyun.com/zh/model-studio/error-code</a></p>
<p><br />
</p>
<p>智谱模型：</p>
<p><span>1、apikey管理：</span><a href="https://bigmodel.cn/usercenter/proj-mgmt/apikeys" target="_blank">https://bigmodel.cn/usercenter/proj-mgmt/apikeys</a></p>
<p><span>2、token统计：</span><a href="https://bigmodel.cn/usercenter/glm-coding/usage" target="_blank">https://bigmodel.cn/usercenter/glm-coding/usage</a></p>
<p>3、模型列表：<a href="https://bigmodel.cn/usercenter/glm-coding/my-plan" target="_blank">https://bigmodel.cn/usercenter/glm-coding/my-plan</a></p>
<p><br />
</p>
<p>模型版本：</p>
<p>1、Base，基座模型，预训练出来的大模型；</p>
<p>2、Chat，聊天模型，侧重于和人类的交流，<span>基座模型之上</span>加上监督微调和强化学习；</p>
<p>3、Instruct，指令模型，侧重于根据指令完成任务，<span>基座模型之上</span><span>加上监督微调和强化学习；</span></p>
<p><span><span>4、AWQ，一种模型量化方法，通过减少浮点数精度，</span><span>提升模型执行速度，<span>减少模型体积</span>；</span><span></span><br />
</span></p>
<p><span>5、Distill，知识蒸馏技术提取的小模型，<span>提升模型执行速度</span>，减少模型资源消耗；</span></p>
<p><span><br />
</span></p>
<p><span>模型指标：</span></p>
<p><span>1、TPM，Tokens Per Minute，每分钟允许的token数量；</span></p>
<p><span>2、RPM，Requests Per Minute，<span>每分钟允许的请求数量；</span><span></span></span></p>
<p><span><span>3、TTFT，</span><span>Time To First Token，<span>发送</span>请求到收到第一个输出token的时间，<span>P99指99%的请求</span></span>；<br />
</span></p>
<p><span>4、TPOT，Time Per Output Token，平均每个输出token的生成时间，<span>P99指99%的请求</span></span>；</p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=379</link>
    <category>人工智能</category>
    <pubDate>2025-12-21 22:30:00 +0800</pubDate>
  </item>
    <item>
    <title>python序列化</title>
    <description><![CDATA[  <p><strong><span style="font-size:16px;">一、python序列化</span></strong></p>
<p>1、python序列化使用内置的pickle，<span>对象</span>可以序列化为字节或文件；</p>
<p>2、仅仅序列化json数据，或者限制反序列化类型，避免反序列化漏洞；</p>
<p><br />
</p>
<p>序列化示例：</p>
<p>data = {'name':'Alice', 'age':25, 'city':'New York'}<br />
#dump to json<br />
data_json = json.dumps(data)<br />
data = json.loads(data_json)<br />
#dump to byte<br />
data_bytes = pickle.dumps(data)<br />
data = pickle.loads(data_bytes)<br />
#dump to file<br />
with open('data.pickle', 'wb') as file:<br />
&nbsp; &nbsp; pickle.dump(data, file)<br />
with open('data.pickle', 'rb') as file:<br />
&nbsp; &nbsp; data = pickle.load(file)</p>
<p><br />
</p>
<p>解析序列化数据：</p>
<p>data = {'name':'Alice', 'age':25, 'city':'New York'}<br />
data_bytes = pickle.dumps(data)<br />
data = pickle.loads(data_bytes)<br />
pickletools.dis(data_bytes)</p>
<p><br />
</p>
<p>恶意反序列化：</p>
<p>class Malicious:<br />
&nbsp; &nbsp; def __reduce__(self):<br />
&nbsp; &nbsp; &nbsp; &nbsp; return (os.system, ('ls -al',))<br />
malicious_data = pickle.dumps(Malicious())<br />
pickle.loads(malicious_data)</p>
<p><br />
</p>
<p>反序列化类型限制：</p>
<p>permitTypes = {"str", "list", "dict", "set", "int", "float", "bool"}<br />
class RestrictedUnpickler(pickle.Unpickler):<br />
&nbsp; &nbsp; def find_class(self, module, name):<br />
&nbsp; &nbsp; &nbsp; &nbsp; if module == "builtins" and name in permitTypes:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return pickle.Unpickler.find_class(self, module, name)<br />
&nbsp; &nbsp; &nbsp; &nbsp; raise pickle.UnpicklingError(f"global {module}.{name} is forbidden")<br />
def restricted_loads(s):<br />
&nbsp; &nbsp; return RestrictedUnpickler(io.BytesIO(s)).load()</p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=378</link>
    <category>Python语言</category>
    <pubDate>2024-09-09 22:59:00 +0800</pubDate>
  </item>
    <item>
    <title>办公软件技巧</title>
    <description><![CDATA[  <p><span style="font-weight:700;"><span style="font-size:16px;">一、办公软件技巧</span></span></p>
<p>1、WORD粘贴选项：文件-选项-高级，配置是否显示， 显示容易产生遮挡；</p>
<p>2、演示者视图：自动扩展屏幕，演讲者可以看见备注和下一页幻灯片；</p>
<p>3、激光笔：Ctrl+鼠标左键，屏幕上面显示红点，笔记本和投屏同时显示；</p>
<p>4、演讲技巧：如果内容简单使用复制屏幕，如果内容复杂使用扩展屏幕；</p>
<p>5、投屏设置：Win+P，复制屏幕或扩展屏幕；</p>
<p><br />
</p>
<p>PPT编辑技巧：</p>
<p>1、PPT控件选中：如果控件无法选中，设置形状格式，调整控件大小或位置；</p>
<p>2、PPT自定义形状：插入形状，编辑顶点，可以增加顶点，可以删除顶点；</p>
<p>3、PPT动画设置：设置出现效果，设置开始时间，通过移动调整出现顺序；</p>
<p>4、PPT母版板式：母版是幻灯片元素布局，板式是幻灯片模板，幻灯片基于板式，板式基于母版；</p>
<p>5、PPT重设幻灯片：幻灯片占位符的位置、大小、格式重设为默认值；</p>
<p><br />
</p>
<p>VBA使用技巧：打开Office软件，然后使用快捷键Alt+F11，单行注释使用单引号。</p>
<p>Sub MyScript()<br />
Set ws = ThisWorkbook.Worksheets("mysheet")<br />
Set b1 = ws.Range("B1")<br />
Set c1 = ws.Range("C1")<br />
c1.value = b1.value<br />
value = c1.value<br />
MsgBox (value)<br />
End Sub</p>]]></description>
    <link>http://threescard/index.php?m=blog&amp;f=view&amp;id=377</link>
    <category>Windows</category>
    <pubDate>2025-01-19 23:01:00 +0800</pubDate>
  </item>
  </channel>
</rss>
