悠哉杂学 - 工具软件
type: channel
link: https://uinit.cn/index.php/category/soft/
description: 工具软件
items: Linux 查看磁盘空间
items: 使用Navicat Keygen激活(破解)Navicat Premium 12
items: 这款网络排查工具，堪称神器！
items: PS2020(Adobe Photoshop 2020简体中文版) 21.0.1 中文免费版
items: 10 个实现炫酷 UI 设计效果的 CSS 生成工具
items: 如何在Linux中使用find根据时间戳查找文件
items: 推荐5 款强大到爆的 JVM 性能调优工具
items: PC微信逆向尝试：破解聊天记录文件！
items: ImageMagick的安装及使用
items: Windows 10自带的过时软件删除工具

Linux 查看磁盘空间
type: item
date: 2021-09-25T11:42:15+08:00
description: Linux 查看磁盘空间可以使用 df 和 du 命令。dfdf 以磁盘分区为单位查看文件系统，可以获取硬盘被占用了多少空间，目前还剩下多少空间等信息。例如，我们使用df -h命令来查看磁盘信息， -h 选项为根据大小适当显示：显示内容参数说明：Filesystem：文件系统Size： 分区大小Used： 已使用容量Avail： 还可以使用的容量Use%： 已用百分比Mounted on： 挂载点相关命令：df -hl：查看磁盘剩余空间df -h：查看每个根路径的分区大小du -sh [目录名]：返回该目录的大小du -sm [文件夹]：返回该文件夹总M数du -h [目录名]：查看指定文件夹下的所有文件大小（包含子文件夹）dudu 的英文原义为 disk usage，含义为显示磁盘空间的使用情况，用于查看当前目录的总大小。例如查看当前目录的大小：# du -sh 605M 显示指定文件所占空间：# du log2012.log 300 log2012.log 方便阅读的格式显示test目录所占空间情况：# du -h test 608K test/test6 308K test/test4 4.0K test/scf/lib 4.0K test/scf/service/deploy/product 4.0K test/scf/service/deploy/info 12K test/scf/service/deploy 16K test/scf/service 4.0K test/scf/doc 4.0K test/scf/bin 32K test/scf 8.0K test/test3 1.3M test du 命令用于查看当前目录的总大小：-s：对每个Names参数只给出占用的数据块总数。-a：递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s，也不指定-a，则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。-b：以字节为单位列出磁盘空间使用情况（系统默认以k字节为单位）。-k：以1024字节为单位列出磁盘空间使用情况。-c：最后再加上一个总计（系统默认设置）。-l：计算所有的文件大小，对硬链接文件，则计算多次。-x：跳过在不同文件系统上的目录不予统计。-h：以K，M，G为单位，提高信息的可读性。

使用Navicat Keygen激活(破解)Navicat Premium 12
type: item
date: 2021-08-26T12:55:00+08:00
description: 1、到Navicat官网使用版本进行安装，具体操作不再详述。Navcat官网下载，或者直接在本文末下载（已包含Keygen）2、到GitHub下载DoubleLabyrinth大神发布的Navicat Keygen，具体操作不再详述。Navicat Keygen下载地址：https://github.com/DoubleLabyrinth/navicat-keygen/releases，对应的中文使用说明链接：https://github.com/DoubleLabyrinth/navicat-keygen/blob/windows/doc/how-to-use.windows.zh-CN.md 可以直接参照此说明进行操作，忽略后文；3、打开cmd，cd到navicat-keygen-for-x64目录；4、输入命令：navicat-patcher.exe "C:Program FilesPremiumSoftNavicat Premium 12" 回车执行，此处默认安装Navicat Premium文件夹为C:Program FilesPremiumSoftNavicat Premium 12，注意含空格的路径需要使用半角双引号包起来；5、回车确认，等待执行完成，如下图；6、此时在目录内可以看到生成的RegPrivateKey.pem文件；7、继续在cmd中输入命令：navicat-keygen.exe -text RegPrivateKey.pem 并执行；8、选择1(Premium)然后回车；9、选择1(中文)然后回车；10、选择产品版本12，然后回车；11、生成了产品序列号，将序列号填入注册页面；12、在点击激活之前，断开本地电脑互联网链接(重要)；13、此时点击激活，会出现激活服务器不可用的提示，然后选择手动激活；14、当出现如下界面时，到cmd继续操作；15、分别输入Name和Organization并回车，演示为随意填写；16、在request code后面将注册界面的请求码复制过来，回车确认，再回车执行，执行完成后得到红框中的激活码；17、将激活码复制到注册界面的激活码文本框，点击确认，完成激活，整个操作结束。18、激动人心的时刻。感谢大神提供的工具，谢谢！附下载地址：[scode type="blue"]链接：https://pan.baidu.com/s/1jwmQoiCDGxHinAqLZTwqEw 提取码：itt0[/scode]

这款网络排查工具，堪称神器！
type: item
date: 2021-08-04T15:09:20+08:00
description: 常用的 ping，tracert，nslookup 一般用来判断主机的网络连通性，其实 Linux 下有一个更好用的网络联通性判断工具，它可以结合ping nslookup tracert 来判断网络的相关特性，这个命令就是 mtr。mtr 全称 my traceroute，是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具。[scode type="yellow"]traceroute默认使用UDP数据包探测，而mtr默认使用ICMP报文探测，ICMP在某些路由节点的优先级要比其他数据包低，所以测试得到的数据可能低于实际情况。[/scode]安装方法1.Windows系统可以直接在https://cdn.ipip.net/17mon/besttrace.exe下载BestTrace工具并安装。也可以在https://github.com/oott123/WinMTR/releases GitHub上下载MTR专用工具，该工具为免安装，下载后可以直接使用。2.Linux可以直接运行命令进行安装。# Debian/Ubuntu 系统 apt install mtr # RedHat/CentOS 系统 yum install mtr 3.Apple客户端可以在App store搜索Best NetTools下载安装4.Android客户端：可以在Google Play上下载TracePing，但是由于国内Google Play无法访问，笔者自行下载下来，可以直接访问 https://dwz.cn/KCdNPH4c 下载TracePing。使用MTR使用非常简单，查看本机到 qq.com 的路由以及连接情况直接运行如下命令：mtr qq.com MTR qq.com 测试界面具体输出的参数含义为：第一列是IP地址丢包率：Loss已发送的包数：Snt最后一个包的延时：Last平均延时：Avg最低延时：Best最差延时：Wrst方差（稳定性）：StDev参数说明r or --report 使用 mtr -r qq.com 来打印报告，如果不使用 -r or --report 参数 mtr 会不断动态运行。使用 report 选项， mtr 会向 qq.com 主机发送 10 个 ICMP 包，然后直接输出结果。通常情况下 mtr 需要几秒钟时间来输出报告。mtr 报告由一系列跳数组成，每一跳意味着数据包通过节点或者路由器来达到目的主机。一般情况下 mtr 前几跳都是本地 ISP，后几跳属于服务商比如 腾讯数据中心，中间跳数则是中间节点，如果发现前几跳异常，需要联系本地 ISP 服务提供上，相反如果后几跳出现问题，则需要联系服务提供商，中间几跳出现问题，则需要联系运营商进行处理默认使用 -r 参数来生成报告，只会发送10个数据包，如果想要自定义数据包数量，可以使用 -c 参数-s or --packetsize 使用 -s 来指定ping数据包的大小mtr -s 100 qq.com 100 bytes 数据包会用来发送，测试，如果设置为负数，则每一次发送的数据包的大小都会是一个随机数。-c指定发送数量mtr -c 100 qq.com -n不进行主机解释使用 -n 选项来让 mtr 只输出 IP，而不对主机 host name 进行解释mtr -n qq.com MTR结果分析当我们分析 MTR 报告时候，最好找出每一跳的任何问题。除了可以查看两个服务器之间的路径之外，MTR 在它的七列数据中提供了很多有价值的数据统计报告。Loss% 列展示了数据包在每一跳的丢失率。Snt 列记录的多少个数据包被送出。使用 –report 参数默认会送出10个数据包。如果使用 –report-cycles=[number-of-packets] 选项，MTR 就会按照 [number-of-packets] 指定的数量发出 ICMP 数据包。Last, Avg, Best 和 Wrst 列都标识数据包往返的时间，使用的是毫秒（ ms ）单位表示。Last 表示最后一个数据包所用的时间， Avg 表示评价时间， Best 和 Wrst 表示最小和最大时间。在大多数情况下，平均时间（ Avg）列需要我们特别注意。最后一列 StDev 提供了数据包在每个主机的标准偏差。如果标准偏差越高，说明数据包在这个节点的延时越不相同。标准偏差会让您了解到平均延时是否是真的延时时间的中心点，或者测量数据受到某些问题的干扰。例如，如果标准偏差很大，说明数据包的延迟是不确定的。一些数据包延迟很小（例如：25ms），另一些数据包延迟很大（例如：350ms）。当10个数据包全部发出后，得到的平均延迟可能是正常的，但是平均延迟是不能很好的反应实际情况的。如…

PS2020(Adobe Photoshop 2020简体中文版) 21.0.1 中文免费版
type: item
date: 2021-07-27T14:35:00+08:00
description: [scode type="blue"]本软件为内置破解，安装完成即可使用，无需其他破解激活操作！本软件在win10 64系统测试通过！[/scode]PhotoShop 2020中文破解版是一款非常好用的专业图像处理软件，PhotoSho p2020对于图片的处理能力已经不需要多少，摄像，摄影，媒体和视频从事人员的专业装机的必备选择。不仅对于专业的摄影者有用，快来下载使用2020最新版吧！PS 2020安装教程1、下载软件包并解压，断开网络，以管理员身份运行set-up.exe2、选择语言和安装位置3、等待产品安装4、安装完成，点击关闭PS2020功能1、增强的文件浏览器在photoshop8.0中，文件浏览器担当着数字图像处理中心的作用。现在，借助于标记、关键字和可编辑的元数据，您可以使用文件浏览器快速组织和找到需要的图像资源。不必先在Photoshop中打开图像文件就可以对一组图像执行批处理过程。2、轻松地自定键盘快捷键为菜单项、工具和调板命令创建、编辑并存储多个键盘快捷键组合，这样您就可很方便地使用最常用的功能。3、快速创建、查看和编辑自定文件信息使用文件浏览器可以通过可编辑的元数据快速搜索文件，而不必打开每一个文件。使用“文件简介对话框中的自定面板和字段完全自定图像元数据，并使用文件浏览器一次编辑一幅或多幅图像的元数据。4、创建幻灯片放映和 PDF 演示文稿轻松地将多个文件合并成一个多页 Adobe PDF 文档，并带有可选的页面转换效果和安全功能。5、协作使用 Web 照片画廊使用专业设计的 Web 照片画廊模板，可以包括对客户反馈的支持而不需要额外的 Web 编码。6、跟踪编辑历史记录在外部的日志文件以及附加到各个文件上的元数据中存储编辑历史记录。7、轻松地访问和使用多个滤镜新增的滤镜库将photoshop8.0滤镜集中在一个易于使用的对话框中。现在，您可以一次访问、控制和应用多个滤镜。利用新的更大的预览效果图，可以更轻松地规划堆叠的滤镜效果。（请参阅使用“滤镜库。）8、使用增强的脚本功能使用自定或新增的内置脚本来自动完成重复性任务，例如，将图层输出到文件中或将图层复合存储为 Adobe PDF文件的不同页面，从而节省时间。请参阅 Photoshop CS/Scripting Guide 文件夹中提供的文档。9、自定义帮助菜单通过从“帮助菜单中选取新的操作方法主题来使用它们。 或者，创建您自己的操作方法主题，并让它显示在“帮助菜单中。[scode type="blue"]下载地址，评论可见，失效请联系。[/scode]

10 个实现炫酷 UI 设计效果的 CSS 生成工具
type: item
date: 2021-07-09T13:56:00+08:00
description: 根据设计领域的最新趋势，推荐10个值得关注的CSS生成工具，以帮助你构建漂亮炫酷实用的UI界面。这些工具将有助于提升设计人员和前端开发人员的工作。1、Neumorphism地址：https://neumorphism.io/它创造了一种全新的UI风格。来自世界各地的设计师已经在Dribbble和Behance上看到了引人注目的中性设计。但是这个工具，可以直接在线调试UI风格，并直接生成CSS代码。2、带有渐变的图标地址：https://www.iconshock.com/svg-icons/在设计的时候，我们都注重简约。不过，有时我们喜欢添加一些渐变效果，这样会显得图标层次更加丰富一些，而这个工具，就可以帮助我们提升工作效率，哪怕你没有设计能力，你也可以设计出漂亮的图标。而这些精美的图标和大量渐变可为你提供创作灵感。3、Interactions地址：https://easings.co/在一系列界面上测试常见的缓动曲线。或生成自己的自定义贝塞尔曲线。没有比这更顺畅的交互和动画效果了。 我经常与开发人员合作，向他发送在此生成器中设置的交互。这将使你的数字产品保持美观和正常工作。在这里您可以计算出交互作用，例如：图片轮播侧面菜单滚动底部菜单模态4、大型数据库地址：https://bansal.io/pattern-css仅用CSS库就可以完成美丽图案填充空背景效果。 在此页面上，你可以为你的数字产品制定理想的背景。你也可以将其用作物品和照片的装饰。样式截图效果如下：5、自定义形状分隔线地址：https://www.shapedivider.app/划分布局和形状已经变得非常时尚。使用此工具，你可以创建可响应的波形和自定义形状分隔线。6、动画地址：https://animista.net/庞大的动画库。在这里，你将找到可用于组件，照片和文本的基本，以及更高级的动画。7、Maskclip-path属性允许你通过将元素裁剪为基本形状（圆形，椭圆形，多边形或插图）或SVG源来在CSS中制作复杂的形状。CSS动画和过渡可以使用两个或多个具有相同点数的剪切路径形状。8、动画按钮地址：https://tympanus.net/Development/MagneticButtons/index.html有一些有趣的悬停动画的磁性按钮。设计按钮时，请记住，还可以选择对它们进行动画处理。但是，要小心，它并不适合所有地方。这些按钮的主要思想是它们具有磁性并跟随鼠标指针。除此之外，还有一些有趣的悬停动画可以玩。要探索的一件非常不错的事情是附加元素（例如阴影或另一条线）的运动。通过不同地移动按钮元素而创建的视差效果，使动画具有很好的扭曲效果。9、背景图案地址：https://www.magicpattern.design/tools/css-backgrounds你可以在项目中使用漂亮的纯CSS背景图案。在创造页面上，你可以找到非常不同的码型生成器。但是，请记住，其中一些需要高级套餐。10、SVG波浪地址：https://svgwave.in/最后一个工具是波浪效果生成器。它使用简单，可以制作多个图层并对其进行修改。[scode type="share"]转自：高级前端进阶译文：小爱原文链接：https://mattkarski.medium.com/10-amazing-css-generators-for-ui-design-1f790791c4e7[/scode]

如何在Linux中使用find根据时间戳查找文件
type: item
date: 2021-07-08T17:04:19+08:00
description: Linux中的find命令用于根据不同的参数搜索文件和文件夹。这些参数可以是文件名，大小，文件类型等。这样的参数之一就是文件的时间戳。在Linux（以及所有基于Unix的文件系统）中，每个文件都有3个时间戳记：上次修改时间上次访问时间上次状态更改时间（即，当更改文件的元数据（如权限）时）让我们看看如何使用find来基于每个时间戳来搜索文件。在Linux中查找文件时间戳首先，我们可以在Linux中运行“stat ”命令来获取文件的所有这些时间戳。例如，对于名称为“nginx-1.20.1.tar.gz”的文件，运行：[root@siyueCloud siyue]# stat nginx-1.20.1.tar.gz 根据时间戳查找文件现在，要基于时间戳查找文件，我们使用手册页中'-newerXY'的find参数。[root@siyueCloud siyue]# man find 因此，在参数中'-newerXY'，我们可以将X作为a，c或m分别用于最后访问，最后状态更改和最后修改时间，将Y用作t，以便我们可以将下一个参数作为时间戳字符串。注意：在基于Unix的文件系统中，不保留文件的创建时间概括地说，要运行的命令如下所示：find <directory_path> -newer<a/m/c>t ‘<timestamp>’ 在这里，时间戳的格式应为：'YYYY-MM-DD HH:MM:SS'。让我们在一个只有几个文件的文件夹中尝试这个方法，在指定的时间之后只有两个文件被访问、修改和状态更改。[root@siyueCloud siyue]# find . -newerat '2021-07-08 08:00' [root@siyueCloud siyue]# find . -newerct '2021-07-08 08:00' [root@siyueCloud siyue]# find . -newermt '2021-07-08 08:00' 如果两个文件的时间戳确实大于指定的时间，请使用“ stat”进行验证。[root@siyueCloud siyue]# stat nginx-1.20.1.tar.gz php-8.0.7.tar.gz 总结我们已经学习了如何使用命令find的参数'-newerXY'来根据时间戳搜索文件。请注意，您也可以将另一个文件用作参考时间戳，而不用显式指定时间戳，在这种情况下，可以跳过参数中的“ t”。

推荐5 款强大到爆的 JVM 性能调优工具
type: item
date: 2021-07-03T23:21:00+08:00
description: 现实企业级Java应用开发、维护中，有时候我们会碰到下面这些问题：OutOfMemoryError，内存不足内存泄露线程死锁锁争用（Lock Contention）Java进程消耗CPU过高......这些问题在日常开发、维护中可能被很多人忽视（比如有的人遇到上面的问题只是重启服务器或者调大内存，而不会深究问题根源），但能够理解并解决这些问题是Java程序员进阶的必备要求。本文将对一些常用的JVM性能调优监控工具进行介绍，希望能起抛砖引玉之用。一、 jps(Java Virtual Machine Process Status Tool) ：基础工具jps主要用来输出JVM中运行的进程状态信息。语法格式如下：jps [options] [hostid] 如果不指定hostid就默认为当前主机或服务器。命令行参数选项说明如下：-q 不输出类名、Jar名和传入main方法的参数 -m 输出传入main方法的参数 -l 输出main类或Jar的全限名 -v 输出传入JVM的参数 比如下面：root@ubuntu:/# jps -m -l 2458 org.artifactory.standalone.main.Main /usr/local/artifactory-2.2.5/etc/jetty.xml 29920 com.sun.tools.hat.Main -port 9998 /tmp/dump.dat 3149 org.apache.catalina.startup.Bootstrap start 30972 sun.tools.jps.Jps -m -l 8247 org.apache.catalina.startup.Bootstrap start 25687 com.sun.tools.hat.Main -port 9999 dump.dat 21711 mrf-center.jar 二、 jstackjstack主要用来查看某个Java进程内的线程堆栈信息。语法格式如下：jstack [option] pid jstack [option] executable core jstack [option] [server-id@]remote-hostname-or-ip 命令行参数选项说明如下：-l long listings，会打印出额外的锁信息，在发生死锁时可以用jstack -l pid来观察锁持有情况-m mixed mode，不仅会输出Java堆栈信息，还会输出C/C++堆栈信息（比如Native方法） jstack可以定位到线程堆栈，根据堆栈信息我们可以定位到具体代码，所以它在JVM性能调优中使用得非常多。下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息，用到的命令有ps、top、printf、jstack、grep。第一步先找出Java进程ID，我部署在服务器上的Java应用名称为mrf-center：root@ubuntu:/# ps -ef | grep mrf-center | grep -v grep root 21711 1 1 14:47 pts/3 00:02:10 java -jar mrf-center.jar 得到进程ID为21711，第二步找出该进程内最耗费CPU的线程，可以使用ps -Lfp pid或者ps -mp pid -o THREAD, tid, time或者top -Hp pid，我这里用第三个，输出如下：TIME列就是各个Java线程耗费的CPU时间，CPU时间最长的是线程ID为21742的线程，用printf "%x " 21742 得到21742的十六进制值为54ee，下面会用到。OK，下一步终于轮到jstack上场了，它用来输出进程21711的堆栈信息，然后根据线程ID的十六进制值grep，如下：root@ubuntu:/# jstack 21711 | grep 54ee "PollIntervalRetrySchedulerThread" prio=10 tid=0x00007f950043e000 nid=0x54ee in Object.wait() [0x00007f94c6eda000] 可以看到CPU消耗在PollIntervalRetrySchedulerThread这个类的Object.wait()，我找了下我的代码，定位到下面的代码：// Idle wait getLog().info("Thread [" + getName() + "] is idle waiting..."); schedulerThreadState = PollTaskSchedulerThreadState.IdleWaiting;…

PC微信逆向尝试：破解聊天记录文件！
type: item
date: 2021-07-02T11:43:00+08:00
description: [scode type="share"]本文转载于：newx，学习一下。[/scode]在电子取证过程中，也会遇到提取PC版微信数据的情况，看雪、52破解和CSDN等网上的PC版微信数据库破解文章实在是太简略了，大多数只有结果没有过程。经过反复试验终于成功解密了数据库，现在把详细过程记录下来，希望大家不要继续在已经解决的问题上过度浪费时间，以便更投入地研究尚未解决的问题。通过查阅资料得知，与安卓手机版微信的7位密码不同，PC版微信的密码是32字节（64位），加密算法没有说明，但是可以通过OllyDbg工具从内存中获取到这个密码，然后通过一段C++代码进行解密。首先下载OllyDbg 2.01汉化版，我用的版本如下图所示：运行OllyDbg，然后运行PC版微信（需要下载客户端的，不是网页版）。先不要点击登录按钮。切换到Ollydbg界面：点击文件菜单，选择“附加”，在弹出的对话框中找到名称为WeChat的进程，其窗口名称为“登录”。然后点击“附加”。附加成功后OllyDbg开始加载，成功加载后可以看到最上面OllyDbg后面有WeChat.exe的字样：在查看菜单中选择“可执行模块”：找到名称为WeChatWin的模块，双击选中。为了方便观察，在窗口菜单中选择水平平铺。在CPU窗口标题栏可以看到“模块WeChatWin”字样。在插件中选择“StrFinder字符查找”中的“查找ASCII字符串”（注意如果下载的OllyDbg版本不对，可能没有相关插件，因此一定要找对版本），要稍微等一会儿，会出现搜索结果的窗口。在此窗口点击鼠标右键，选择“Find”，在搜索框中输入“DBFactory::encryptDB”。会自动定位在第一处，但我们需要的是第二处，即“encryptDB %s DBKey can’t be null”下面这一处。可以用鼠标点击滚动条向下，找到第二处，用鼠标双击此处。在CPU窗口中可以看到已经定位到了相应的位置。用鼠标点击滚动条向下翻。下面第六行应该是TEST EDX,EDX，就是用来比对密码的汇编语言代码。在最前面地址位置（本文中是0F9712BA）双击设置断点（设置断点成功则地址会被标红，而且可以在断点窗口中看到设置成功的断点）点击“运行”按钮（或者在调试菜单中选择“运行”），这时寄存器窗口中的EDX的值应该是00000000。切换到微信登录页面，点击登录，然后到手机端确认登录。这是OllyDbg界面中的数据不断滚动，直到EDX不再为全0并且各个窗口内容停止滚动为止。在EDX的值上面点击鼠标右键，在弹出的菜单里面选择“数据窗口中跟随”，则数据窗口中显示的就是EDX的内容。图示中从0B946A80（这个数值是变化的，不但每台电脑不同，每次调试也可能完全不同）到0B946A9F共32个字节就是微信的加密密码，本图中就是：“53E9BFB23B724195A2BC6EB5BFEB0610DC2164756B9B4279BA32157639A40BB1” 一共32个字节，共64位。得到这个之后，就可以关闭OllyDbg了，微信也会自动被关闭。接下来就是解密过程。在看雪、52破解等多个论坛中都有相关的C++源码，开始企图使用Dev-C++或者C-Free等轻量级IDE进行编译，也使用过Visual C++ 6.0绿色精简版，结果多次尝试出现各种错误，反复失败，最终不得已使用Visual Studio，并对代码进行了一定的修正，终于调试成功。正好Visual Studio 2019刚刚发布直接到官方网站下载了社区版。根据查到的资料，需要先安装openssl，为了省事直接下载了最新的Win64OpenSSL-1_1_1b，安装后发现各种报错，继续查找资料发现原来sqlcipher使用的是低版本的openssl，之后找到了一个Win64OpenSSL-1_0_2r也报错，最后发现还是官方这个直接解压缩的版本靠谱：https://www.openssl.org/source/openssl-1.0.2r.tar.gz把压缩包直接解压到任意目录，比如c:openssl-1.0.2r启动Visual Studio 2019社区版（估计Visual Studio 2008以后的都应该可以，懒得找就直接官网下载最新的吧）在启动界面右下方选择“创建新项目”滚动下拉条，在窗口中选择C++控制台应用：给项目随便起个名字，选择保存位置：然后点击“创建”，即可完成新项目创建。生成默认的Hello World代码：先要做好项目的基础配置，之前调试失败主要问题就出在这里了。在项目菜单中最下面选择项目属性“dewechat属性”（这个跟设置的项目名称一致）对话框最左上角的配置后面，可以选择配置的是Debug模式还是Release模式（Release模…

ImageMagick的安装及使用
type: item
date: 2021-07-01T12:04:00+08:00
description: 一、什么是Imagemagick？ImageMagick是一款免费开源的图片编辑软件。既可以通过命令行使用，也可以通过C/C++、Perl、Java、PHP、Python或Ruby调用库编程来完成。ImageMagic的主要精力集中在性能，减少bug以及提供稳定的API和ABI上。二、下载和安装这里以Windows为例使用16-bit在处理图片时比8-bit慢15%至50%，内存也为2倍。比如处理一张1024x768像素的图片8-bit要使用3.6M内存，16-bit要使用7.2M内存。这里我们选择下载官方推荐的文件，也就是第一个：ImageMagick-7.1.0-2-Q16-HDRI-x64-dll.exe然后安装：使用 magick --version 查看是否安装成功：三、使用如果很多子命令不能直接使用，则可以把他们当做magick的子命令使用，如：1、转换格式magick ImageMagick.jpg ImageMagick.png 表示把ImageMagick.jpg这个图片另存一份为ImageMagick.png，同时修改了图片名称和格式。2、合成gif这里把上面的安装截图拼成一个gif动图看看：magick ImageMagick-install-1.jpg ImageMagick-install-2.jpg ImageMagick-install-3.jpg ImageMagick-install.gif 3、调整图片大小按比例改变magick ImageMagick.png -resize 200% ImageMagick-2.png magick convert ImageMagick.png -resize 200% ImageMagick-2.png 改变前的文件大小：改变后的文件大小：下面的一些方法留着大家自己试试，这里就不传结果图片了。比如，图片宽扩展为原来的2倍，高缩小为原来的一半magick convert ImageMagick.png -resize 200x50% ImageMagick-3.png magick convert ImageMagick.png -resize 200%x50% ImageMagick-4.png 宽调整为100，高按原来图片宽高比例跟着调整convert -resize 100 ImageMagick.png ImageMagick-5.png 高调整为200，宽按原来图片宽高比例跟着调整convert -resize x200 ImageMagick.png ImageMagick-6.png 4、移除图片内嵌的所有配置文件magick convert -strip ImageMagick.jpg 5、裁剪图片crop参数可以把一副图像分成若干块大小一样的图片magick ImageMagick.jpg -crop 500x500 ImageMagick-7.jpg 例如，原图片尺寸为1920x1200，所以可以分割出12块图片，注意如果尺寸不是目标图片的整数倍，那么右边缘和下边缘的一部分图片就用实际尺寸在原始图像上裁剪一张指定尺寸的小图magick ImageMagick.jpg -crop 600x450+300+600 ImageMagick-8.jpg 600x450是宽乘高，+300+600是横纵坐标6、图片取反magick convert ImageMagick.jpg -negate ImageMagick-canny.jpg 7、压缩图片将图片质量降为原来的10%（即压缩掉了90%），取值范围1 ( 最低的图像质量和最高压缩率) 到100 ( 最高的图像质量和最低压缩率)，默认值根据输出格式有75、92、100，选项适用于JPEG / MIFF / PNG.magick convert -quality 80 ImageMagick.jpg ImageMagick-9.jpg 实例：生成缩略图:-resize，定义输出的缩略图尺寸；-quality 70，降低缩略图的质量为70%；-strip：让缩略图移除图片内嵌的所有配置文件，注释等信息，以减小文件大小。magick convert -resize 100x200 -quality 70 -strip ImageMagick.jpg ImageMagick-10.jpg 8、给图片加边框设置边框颜色为蓝色（也可以用rgb(0,0,255)或者rgb(0%,0%,100%)代替），宽的边框和高的边框分别为宽的5%、高的5%，也就是说，图片的高和宽都增大了10%magick ImageMagick.jpg -bordercolor blue -border 5% ImageMagick…

Windows 10自带的过时软件删除工具
type: item
date: 2021-06-24T13:24:00+08:00
description: Windows 10附带捆绑了许多过时的软件，即使我们系统重装，这些自带软件都是无法避免的，有一个名为Windows 10 Debloater的开源工具，它需要运行PowerShell脚本，但提供了图形界面，删除这些软件非常方便。目前，Windows10Debloater在Github上已经标星 6K，累计分支 737 个。（Github地址：https://github.com/Sycnex/Windows10Debloater）下面就和大家介绍一下Windows10Debloater的使用方法：- 步骤1、下载并解压Windows 10 Debloater首先你需要在Github上下载该脚本，如下，点击【下载】按钮之后，单击选择【下载Zip】现在，不出意外的话，你现在的下载目录里已经有一个名为Windows10Debloater-master.zip的ZIP文件。然后你还需要将它解压，解压后得到如下文件夹：- 步骤2、使用PowerShell运行Windows10DebloaterGUI.ps1打开Windows10Debloater-master文件夹，右键单击名为Windows10DebloaterGUI.ps1的文件，选择【使用Powershell运行】：接下来会跳出一个脚本运行警告，你需要选择【是】，也就是输入【Y】允许工具继续运行。- 步骤3、从Windows 10 PC上删除所有过时的软件完成以上操作后，你就会看到以下窗口，单击【Remove All Bloatware】然后系统就会立即开始卸载在PC或设备上找到的bloatware应用程序。你还可以从后台的PowerShell窗口，查看脚本运行的速度。最后我们可以看到Windows 10 Debloater会删除以下应用。当然，并非所有人都想删除这些软件，有一些你可能还想留着，Windows 10 Debloater是允许你还原删除的软件，你只需要重新运行，单击【Revert Changes】按钮即可：需要提醒你的是，虽然你不能从用户界面选择哪些应用程序要删除，哪些应用程序要保留，但是你可以打开编辑应用程序的脚本文件夹中的Debloat Windows文件，并从列表中删除你想保留的应用程序。