本帖最后由 hoochanlon 于 2023-2-4 20:27 编辑
编写脚本前的想法
自我需求分析
我们基本上对PDF软件使用需求还挺高的,找网页下载、激活一套下来都还挺麻烦,安装包普遍都很大,所以目光就看中了xchange PDF,顺便做个自动化脚本省心省事。关于xchange PDFv8、v9的信息我也找了不少资料,现在觉得一些破解弄替换dll啥的,从长期向折腾破解来说,确实比网上找各种序列号来激活要省一些心力。
我个人对软件使用体验上,激活后功能能正常使用就行,不求最新,稳当就好;看官网不打算维护v8了,又看了一些国内外站点直接发license被ban教训。所以我就想了加密再解密的法子。算是防君子不防小人吧😂。测试了下,发现该license能离线激活,本打算加一条防火墙规则,后来一想算了,可能大家某些功能还需要联网的。写hosts又太麻烦点,所以还是畅所欲言,在发帖的下一楼回一个吧,毕竟操作写一点说明进去,全写一块文章太长了。
看了下有关xchange PDF基本都是放在“软件区”,但我这主要是靠脚本工作的,放在软件区又不太合适...福利分享呢,这又算不上吧...那还是放这里吧。
简单选型
我目的及想法很简单:下载、安装、懒得去粘贴注册码,直接ctrl+c到软件激活。这些事就让机器做吧,自己去搞这搞那,我是觉得麻烦...
一开始还想弄个python来自动化,点击鼠标操作去实现,稍一琢磨不太对劲,一来软件还要有接口给你调的、二来确定坐标什么的,编写及调试,个人是觉得工作量太大了,分享给他人用也未必讨喜。比方说人家正在忙活别的,你突然弹出个窗口自动点击,搞得一惊一乍的,这影响确实不好...
像脚本,网上单一功能的调试、玩具代码啥的都有很多,这就极大方便了我做参考、调试,还能根据我的想法集成到一块,做成一个实用型的工具,感觉有点像变魔术...在编写脚本的过程中,我发现批处理感觉少了点功能,Powershell命令和批处理也不太兼容,两者命令转来转去,很不方便,索性直接powershell。
正题
以管理员权限运行powershell,一条指令起飞。(利用Git仓存放代码,编写下载执行脚本指令,存到备忘录、社交聊天收藏功能里面去,用的时候拿出来,复制粘贴。)
curl https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/xchange_v8_active.ps1 -Outfile xchange_v8_active.ps1 | powershell -c xchange_v8_active.ps1
附效果图两份:
因为我是GB2312编码的,在raw.githubusercontent查看会成乱码,直接在 https://github.com/hoochanlon/ihs-simple/blob/main/xchange_v8_active.ps1 看就好了,方便讨论直接附源码:
$setsume = "
`n
==ROFL:ROFL:ROFL:ROFL== #-----------------------------------简单说明----------------------
_^___
L __/ [] \ 1. v8在2022.7.31维护到期,但可永久激活,不能升级 。
LOL===__ \ 2. v9不再支持国内激活,OCR略有提升,详见:www.tracker-software.com/sales-are-suspended
L \________] 3. v8版本官网下载地址:https://downloads.pdf-xchange.com/PDFXVE8.zip
I I
--------/ #-------------------------------------------------------------------
`n
"
echo $setsume
echo “正在从官网下载文件:xchange PDF Editor(Version 8)”
curl https://downloads.pdf-xchange.com/PDFXVE8.zip -OutFile ${Env:\HOMEPATH}\downloads\PDFXVE8.zip
echo "自动化解压与安装软件,并生成软件注册码。"
Expand-Archive ${Env:\HOMEPATH}/downloads/PDFXVE8.zip -DestinationPath ${Env:\HOMEPATH}\downloads\ -Force
$xchangepdf_okey_v8=[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("UABFAFAAOAAwAC0AcgBjADMAeQBNAGIAUgBZADgAagBtAHIAWAA1AHIAYgBwAEYAbwBmADMAegBYAFEALwAwADMASgBNAEoAWAArADkAMQB2AE8ANABtAEYAKwByAHMAZgBRADEAMQBCADMAbQBHAE0ARQBiAEYAVQA1AHcAaABwAHIAMQBBAHcAYwAKAFUAdQB0AHMARwBwAG0AYwB3ADUAaQBsADUATQBlAGsAKwBZAE8AZABpAG8AWABzADkAeQA1AHcASgBXAEMAcABRAGUARQByAFQAcABpAEoAegBzAHAARABmAEwAawBXADYAYQBlAFQAVwBlAEoAUwBCAFIAOABQAFUAdgBxADYAegBuAHcAcQB0ADkAVwBsADkATABlADMAaABuAGsAbQAKAFcAYwAzAEUATQBSAEYAZgBUAHQAZABLAEkAMQBZAHoAWgBzAHIAVAAyAEQAUABYADAARwAyAHkAagB0AHcAVwBoADAAVQA4AFYAYgBtAE0ASQBWAEsAWQBtAGQASgBqADAAVgA3AEcAVgBnAFIATwBNAG8ARQA5AHcAVABMADUAVAB2AHMAQQBOAEYAaQBwAGcAOQBwAG8ATgBlAG8AcQAKAEsAOQA2AHYASgBiAHYATgB4AGsANgBvAEIAQQBmADMAVQB4AHYAbgB0AEUAdQB3AFUATgA4ADkAMABRAGMAQgBRAHgAeABnADcAbwB6AHQAeABCAFoAQwA5AEMAdQBUAGIAVABWAFMAUwA2AGQAaABoAFMAUAA0AHAAQgB0AG0ALwAxAEEARABPAGgAMgBnAE0AMAA1ADgAbQBmADgAQwAKAEQAYQAvAE8AWABkAHIAegA1AHoAbwBGAGgAZgBsAE4AVwBjAEwAbQB0AEEANQBJAEwARQBuADYAYwBzAGQAdgBuAEcAdQBHAEgAWQAxAGMAZAByAG0AMAByAEYALwBDAE0AWABJAEsAbgBFAGkAbQBIAGUAWQBwADYAagBEAG4AegBUADkATQAxAFQANABYADQASgBiAHYAUgB3AD0A"))
echo $xchangepdf_okey_v8 > ${Env:\HOMEPATH}\downloads\xchangepdf_v8.lic
Start-Process ${Env:\HOMEPATH}'\downloads\PDFXVE8.exe' /S -NoNewWindow -Wait -PassThru
Set-Clipboard -Value $xchangepdf_okey_v8
echo “license已写入粘贴板,打开软件复制进去即可,后续也可在软件解压目录中查看。”
# 补充:这一个是脚本的自我删除来实现无残留的。
remove-item $MyInvocation.MyCommand.Path -force
#------------------------------------------------------------------------------------------------------
# 下载方式
# * https://blog.csdn.net/EadderYin/article/details/120573622
# * https://learn.microsoft.com/zh-cn/powershell/module/Microsoft.PowerShell.Utility/Invoke-WebRequest
# 解压
# * https://blog.csdn.net/m0_60558800/article/details/123759719
# 静默安装
# * https://www.likecs.com/ask-6192544.html
# 静默卸载
# * https://qastack.cn/programming/113542/how-can-i-uninstall-an-application-using-powershell
# * https://www.pstips.net/powershell-uninstall-software.html
# 加载网页文本乱码问题
# * http://www.bathome.net/redirect.php?tid=58406&goto=lastpost
#------debug-----
# 卸载
# 根据名称:(Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -match "PDF-XChange Editor" }).uninstall()
# 根据注册ID:(Get-WmiObject -Class Win32_Product | Where-Object {$_.IdentifyingNumber -eq "{E05F4C70-890B-429C-B24D-36AB434F4991}" }).uninstall()
#-----------------
#------------------------------------------------------------------------------------------------------
|