惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Vulnerabilities – Threatpost
有赞技术团队
有赞技术团队
小众软件
小众软件
O
OpenAI News
C
Cyber Attacks, Cyber Crime and Cyber Security
I
Intezer
NISL@THU
NISL@THU
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
MongoDB | Blog
MongoDB | Blog
阮一峰的网络日志
阮一峰的网络日志
Hacker News: Ask HN
Hacker News: Ask HN
D
Docker
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
C
CERT Recently Published Vulnerability Notes
L
LINUX DO - 最新话题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
Hacker News - Newest:
Hacker News - Newest: "LLM"
G
Google Developers Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Google DeepMind News
Google DeepMind News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
GRAHAM CLULEY
S
Schneier on Security
T
Tor Project blog
Spread Privacy
Spread Privacy
PCI Perspectives
PCI Perspectives
Microsoft Security Blog
Microsoft Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
F
Fortinet All Blogs
L
Lohrmann on Cybersecurity
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
The Exploit Database - CXSecurity.com
TaoSecurity Blog
TaoSecurity Blog
Apple Machine Learning Research
Apple Machine Learning Research
T
Threat Research - Cisco Blogs
T
Troy Hunt's Blog
罗磊的独立博客

博客园 - QQ595076941

批量勾选Portable App Directory窗口中所有复选框 2026年6月25日 电脑文件管理zs 2026年6月12日 KeePass+坚果云WebDAV简易登录器   2026年4月25日 设置显示或者隐藏MasterSeeker和Total Commander主窗口的快捷键的AutoHotkey脚本2026年4月8日 F8我的Excel文件 腾讯文档-AutoHotkey学习导航表.xlsx 2025年12月21日 共享文件夹加密专家(试用版) v6.40 批量设置权限AHK脚本 2025年12月19日 容量为256GB的Innostor银灿科技IS903可启动CD-ROM量产U盘 2025年12月12日 打开我的文件夹 2025年11月21日 防止 FreeFileSync的RealTimeSync.exe实时自动同步程序被意外关闭并保持其进程一直运行 2025年11月19日 REM D:\APP\AutoRun\Program\AutoRun.bat 开机自动启动批处理脚本文件 2025年11月17日 - QQ595076941 Windows电脑软件安装流程  2025年11月1日 安装并设置Windows&火绒安全&驱动总裁&PrimoCache&AutoRun-AHK&7z压缩包自解压制作工具Fc&AcronisTrueImage2021备份系统分区&天天卫士重启还原&2025年10月29日 GoodSync 2025年10月17日 运行npp并打开实时双向同步的今日日记纯文本文档 2025年10月5日 电子文件分类整理与双向同步 2025年10月1日 ##极空间Z4改进建议##我的QQ邮箱地址是595076941@QQ。COM##在论坛搜索两个#号可找到此贴########## 1、 开发能够实时双向同步极空间文件夹的应用套件,在同一台极空间设备上的不同存储池之间实时双向同步文件夹, 极空间文件管理方案 2025年8月18日 Sony索尼WH-1000XM5头戴式降噪蓝牙耳机 2025-07-22 Everything-MD5-DC22-亲测可用-优点-重新打开后会加载原有数据库而不是重新扫描-不依赖运行库-缺点-索引必需扫描完成之后才能搜索-这一点没有MasterSeeker做的好用 2025-05-15 2025-04-22 给 Maye Lite 添加鼠标中键单击激活主窗口的功能 容量为512GB的银灿IS903主控金属外壳可量产三驱动三启动DVD-ROM可启动Windows PE系统安装维护U盘 2025-04-30
7-Zip 单文件自解压绿色便携安装包打包压缩工具_2025年11月15日
QQ595076941 · 2025-11-15 · via 博客园 - QQ595076941

其实所有的单文件自解压绿色便携安装包打包压缩工具都差不多,我之所以选择 7-Zip 而不用 WinRAR 是应为 7-Zip 可以免费使用。我这个打包工具分别用 Delphi 7 、AutoHoteky 、AutoIT 、VC6.0 、VB6.0 、C# 等各种编程语言各自独立编程,独立实现,实现原理差不多,只不过有的要用到外部工具,有的则完全又语言本身纯代码实现,我最喜欢的是Delphi 7 的版本。

网上的压缩打包工具泛滥成灾,为什么我还要另外再手工制作一个呢?主要是为了实现一键打包,重命名、鼠标拖放、单击制作按钮就可以一键生成exe自解压程序包,拖放文件夹识别与路径填写、压缩文件夹、生成自解压命令配置文件、合并自解压模块、自解压命令配置文件和压缩包、替换自解压程序图标,这5个动作都批量自动完成,大量打包时非常方便快捷。

不绿色的应用程序软件可以利用 TotalUninstall 、RegistryChangesView 、InstallRite 2.5c等注册表和文件夹监控监视嗅探工具软件 改造成绿色免安装的应用程序软件。配置不稳定的应用程序软件可以利用BAT批处理脚本、AutoHotkey自动化热键脚本、AutoIT3 、Delphi 7 等编程工具制作成强壮稳定可靠的软件。例如:在部署GoodSync2Go实时单向备份软件和FreeFileSync实时双向同步软件时  可以通过删除配置文件和覆盖复制配置文件和覆盖注册表记录项目来保持配置的稳定性。可以循环监视(SetTimmer  IF Process Exist)来保持程序和服务一直运行。

; //此应用程序大量引用了DeepSeek、DeepSeek Coder、
; ChatGPT、Claude、Gemini、GitHub Copilot、Kimi、
; Tabnine、CodeWhisperer、Amazon CodeWhisperer、
; SourceGraph Cody、Replit AI、文心一言、通义千问、
; 豆包、腾讯元宝等AI编程对话工具,在此对AI开发者和部署者表示感谢。

/* 7-Zip 单文件自解压绿色便携安装包打包压缩工具_2025年11月15日



曾经我女儿问我会不会编程,针对这个问题我今天花费半天左右的时间写了这段代码,算是做一个回答,同时也是便于我今后批量打包绿色便携应用程序软件。



其实所有的单文件自解压绿色便携安装包打包压缩工具都差不多,我之所以选择 7-Zip 而不用 WinRAR 是应为 7-Zip 可以免费使用。我这个打包工具分别用 Delphi 7 、AutoHoteky 、AutoIT 、VC6.0 、VB6.0 、C# 等各种编程语言各自独立编程,独立实现,实现原理差不多,只不过有的要用到外部工具,有的则完全又语言本身纯代码实现,我最喜欢的是Delphi 7 的版本。



网上的压缩打包工具泛滥成灾,为什么我还要另外再手工制作一个呢?主要是为了实现一键打包,重命名、鼠标拖放、单击制作按钮就可以一键生成exe自解压程序包,拖放文件夹识别与路径填写、压缩文件夹、生成自解压命令配置文件、合并自解压模块、自解压命令配置文件和压缩包、替换自解压程序图标,这5个动作都批量自动完成,大量打包时非常方便快捷。



不绿色的应用程序软件可以利用 TotalUninstall 、RegistryChangesView 、InstallRite 2.5c等注册表和文件夹监控监视嗅探工具软件 改造成绿色免安装的应用程序软件。配置不稳定的应用程序软件可以利用BAT批处理脚本、AutoHotkey自动化热键脚本、AutoIT3 、Delphi 7 等编程工具制作成强壮稳定可靠的软件。例如:在部署GoodSync2Go实时单向备份软件和FreeFileSync实时双向同步软件时  可以通过删除配置文件和覆盖复制配置文件和覆盖注册表记录项目来保持配置的稳定性。可以循环监视(SetTimmer  IF Process Exist)来保持程序 */和服务一直运行。

; //此应用程序大量引用了DeepSeek、DeepSeek Coder、
; ChatGPT、Claude、Gemini、GitHub Copilot、Kimi、
; Tabnine、CodeWhisperer、Amazon CodeWhisperer、
; SourceGraph Cody、Replit AI、文心一言、通义千问、
; 豆包、腾讯元宝等AI编程对话工具,在此对AI开发者和部署者表示感谢。

/*函数名: Single
设置互斥体,阻止脚本重复运行
功能与#SingleInstance差不多,只是这玩样可以自定义
另:
经测试发现#SingleInstance只识别脚本文件名,改名可重复运行,
在有热键的脚本里要使用 #SingleInstance,off 关闭此功能.
参数:
给这个脚本设置一个独一无二的识别字符串(指纹?)
返回值: 1 为重复,0为第一次

例子:
Single("7EF47F0D-4D37-542E-5787-90FDD196D04B")
Single("123")
*/
Single(flag) { ;,返回1为重复,返回0为第一个运行
	DllCall("CreateMutex", "Ptr",0, "int",0, "str", "Ahk_Single_" flag)
	return A_LastError=0xB7 ? true : false
}
;=========================
;使用案例,脚本改名都没用,照样只能运行一个.
#SingleInstance,Off ;关闭自带互斥功能
if (Single("56218793")) {  ;独一无二的字符串用于识别脚本,或者称为指纹?
	MsgBox,16,提示,程序已启动!`n请勿重复运行
	ExitApp
}
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
DetectHiddenWindows,On
SetTitleMatchMode,2
;=========================

#NoEnv
#SingleInstance Force
SendMode Input
SetWorkingDir, %A_ScriptDir%

FileCreateDir,%A_ScriptDir%\sfx\

; 创建GUI窗口 - 添加拖放支持
Gui, +Resize +MinSize400x300 +OwnDialogs
Gui, Add, Text, x10 y10 w380 h30, 将文件夹拖放到此窗口进行压缩
Gui, Add, Edit, x10 y40 w380 h50 vFolderPath ReadOnly,
Gui, Add, Button, x150 y250 w100 h30 gStartCompression, 开始压缩
Gui, Add, StatusBar,, 就绪
Gui, Show, w400 h300, 文件夹压缩工具
return

; GUI关闭事件
GuiClose:
	; MsgBox, 窗口已关闭,脚本将退出。
	ExitApp
return

; 拖放支持 - 修复版本
GuiDropFiles:
	; 清除编辑框内容
	GuiControl,, FolderPath,

	; 处理拖放的文件
	loop, Parse, A_GuiEvent, `n
	{
		FileAttrib := FileExist(A_LoopField)
		if InStr(FileAttrib, "D")  ; 如果是文件夹
		{
			SelectedFolder := A_LoopField
			GuiControl,, FolderPath, %SelectedFolder%
SB_SetText("已选择文件夹: " SelectedFolder)
	break
	}
else  ; 如果是文件,获取其所在文件夹
{
	SplitPath, A_LoopField, , ParentFolder
	if FileExist(ParentFolder)
	{
		SelectedFolder := ParentFolder
		GuiControl,, FolderPath, %SelectedFolder%
SB_SetText("已选择文件夹: " SelectedFolder)
	break
	}
}
}
return

; 开始压缩
StartCompression:
	Gui, Submit, NoHide
	GuiControlGet, FolderPath

	if !FolderPath
	{
		MsgBox, 48, 错误, 请先拖放一个文件夹到窗口
		return
	}

	if !FileExist(FolderPath)
	{
		MsgBox, 48, 错误, 文件夹不存在:%FolderPath%
		return
	}

	SevenZipExe=%A_ScriptDir%\7z.exe

	; 压缩文件夹
	CompressFolder(FolderPath, SevenZipExe)


	; 获取文件夹名称
	SplitPath, FolderPath, FolderName

	; 替换exe图标
	ReplaceIconCommandLine(A_ScriptDir . "\sfx\" . FolderName . ".exe",A_ScriptDir . "\sfx\" . FolderName . ".exe",FolderPath . "\" . FolderName . ".ico")

	MsgBox,0,成功,制作已完成,2

	; 删除临时7z压缩包
	if FileExist(A_ScriptDir . "\sfx\" . FolderName . ".7z")
	{
		FileDelete,%A_ScriptDir%\sfx\%FolderName%.7z
	}
	Run,%A_ScriptDir%\sfx\
	ExitApp
return

ReplaceIconCommandLine(sourceExe, targetExe, iconFile) {
	resHacker := "ResourceHacker.exe"

	IfNotExist, %resHacker%
	{
		resHacker := A_ScriptDir . "\ResourceHacker.exe"
		IfNotExist, %resHacker%
		{
			resHacker := "C:\Program Files\Resource Hacker\ResourceHacker.exe"
			IfNotExist, %resHacker%
			{
				MsgBox, 未找到 ResourceHacker.exe`n请下载并放在脚本同目录
				return false
			}
		}
	}

	try {
		command = "%resHacker%" -open "%sourceExe%" -save "%targetExe%" -action addoverwrite -res "%iconFile%" -mask ICONGROUP,MAINICON,
	RunWait, %command%, , Hide
	return true
} catch {
MsgBox, 执行命令时出错
return false
}
}

; 压缩文件夹函数
CompressFolder(FolderPath, SevenZipExe) {
	SB_SetText("正在准备压缩...")

	; 获取文件夹名称
	SplitPath, FolderPath, FolderName

	; 设置输出压缩包路径
	OutputArchive := A_ScriptDir . "\sfx\" . FolderName . ".7z"

	; 如果压缩包已存在,先删除
	; if FileExist(OutputArchive)
	; {
	; FileDelete, %OutputArchive%
	; }

	; 构建7-zip命令
	Command = %SevenZipExe% a -r %OutputArchive% %FolderPath%\

	SB_SetText("正在压缩... 请稍候...")

	; 执行压缩命令
	RunWait, %ComSpec% /c %Command%,,Hide

	; 提取exe图标

	; 获取文件夹名称
	SplitPath, FolderPath, FolderName

	; 如果图标文件已存在,先删除
	if FileExist(FolderPath . "\" . FolderName . ".ico")
	{
		FileDelete,%FolderPath%\%FolderName%.ico
	}


	Run,%A_ScriptDir%\Quick_Any2Ico.exe  %FolderPath%\%FolderName%.exe
	Sleep,500
	;点击控件
	; ControlClick, Button3, Quick Any2Ico
	; ControlClick, Button3,ahk_class QUICK_ANY2ICO
	; ControlSend, Button3,{space}, Quick Any2Ico
	ControlSend, Button3,{Space},ahk_class QUICK_ANY2ICO
	Sleep,2000
	WinClose,Quick Any2Ico ahk_class QUICK_ANY2ICO



	; 构建自解压打包配置文件 7zSFXConfig.txt
	; 配置文件内容
	configContent =
	(
		;!@Install@!UTF-8!
Title="我的应用程序"
		;ExecuteFile="D:\\APP\\%FolderName%\\%FolderName%.exe"
ExecuteFile="D:\\APP\\%FolderName%\\"
ExecuteParameters=""
GUIMode="2"
InstallPath="D:\\APP"
		;!@InstallEnd@!
	)

	; 写入配置文件
	; 如果自解压打包配置文件已存在,先删除
	if FileExist(A_ScriptDir . "\7zSFXConfig.txt")
	{
		FileDelete, %A_ScriptDir%\7zSFXConfig.txt
	}

	; 为了支持中文文件夹目录,在文件末尾处追加(写入)
	; 文本(如果有必要, 首先创建文件).指定编码或编码页,
	; 例如 UTF-8, UTF-16 或 CP936.如果文件包含 UTF-8 或
	; UTF-16 字节顺序标记(BOM), 则忽略此参数和默认编码.
	FileAppend, %configContent%, %A_ScriptDir%\7zSFXConfig.txt, UTF-8

	; 制作自解压包
	Command2 = copy /b %A_ScriptDir%\7zsd_LZMA2.sfx + %A_ScriptDir%\7zSFXConfig.txt + %OutputArchive% %A_ScriptDir%\sfx\%FolderName%.exe
	RunWait, %ComSpec% /c %Command2%,,Hide

}