Add files via upload

This commit is contained in:
zsyg
2025-07-20 13:21:19 +08:00
committed by GitHub
parent 4c13fe0008
commit f4f4d86faa
8 changed files with 136 additions and 125 deletions

View File

@@ -15,6 +15,7 @@ namespace AppStore
private Label nameLabel; private Label nameLabel;
private Panel namePanel; private Panel namePanel;
private Button downloadBtn; private Button downloadBtn;
private ToolTip? toolTip;
private Color borderColor = SystemColors.ControlDark; private Color borderColor = SystemColors.ControlDark;
private static readonly ConcurrentDictionary<string, System.Drawing.Drawing2D.GraphicsPath> PathCache = private static readonly ConcurrentDictionary<string, System.Drawing.Drawing2D.GraphicsPath> PathCache =
new ConcurrentDictionary<string, System.Drawing.Drawing2D.GraphicsPath>(); new ConcurrentDictionary<string, System.Drawing.Drawing2D.GraphicsPath>();
@@ -22,6 +23,7 @@ namespace AppStore
public string AppName { get; set; } = string.Empty; public string AppName { get; set; } = string.Empty;
public Image AppIcon { get; set; } = SystemIcons.Application.ToBitmap(); public Image AppIcon { get; set; } = SystemIcons.Application.ToBitmap();
public string DownloadUrl { get; set; } = string.Empty; public string DownloadUrl { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public bool ShowDownloadButton { get; set; } = true; public bool ShowDownloadButton { get; set; } = true;
public AppCard() public AppCard()
@@ -126,6 +128,13 @@ namespace AppStore
this.Controls.Add(namePanel); this.Controls.Add(namePanel);
} }
// 初始化ToolTip控件
toolTip = new ToolTip();
toolTip.AutoPopDelay = 5000;
toolTip.InitialDelay = 500;
toolTip.ReshowDelay = 500;
toolTip.ShowAlways = true;
// 下载按钮 - 添加null检查 // 下载按钮 - 添加null检查
if (downloadBtn != null) if (downloadBtn != null)
{ {
@@ -144,6 +153,10 @@ namespace AppStore
if (downloadBtn != null) if (downloadBtn != null)
{ {
downloadBtn.BackColor = Color.FromArgb(0, 150, 255); downloadBtn.BackColor = Color.FromArgb(0, 150, 255);
if (!string.IsNullOrEmpty(Description))
{
toolTip.SetToolTip(downloadBtn, Description);
}
} }
}; };
@@ -373,7 +386,7 @@ namespace AppStore
try try
{ {
var safePath = path ?? CalculatePathFallback(Width, Height, 10); var safePath = path ?? CalculatePathFallback(Width, Height, 10);
// 更严格的null检查包括路径和控件状态 // 更严格的null检查,包括路径和控件状态
if (safePath != null && if (safePath != null &&
safePath.PointCount > 0 && safePath.PointCount > 0 &&
this.IsHandleCreated && this.IsHandleCreated &&
@@ -450,7 +463,7 @@ namespace AppStore
try try
{ {
// 更严格的null检查 // 更严格的null检查
// 更严格的null检查包括DownloadManager.Instance和其方法 // 更严格的null检查,包括DownloadManager.Instance和其方法
// 全面的null和状态检查 // 全面的null和状态检查
var downloadManager = DownloadManager.Instance; var downloadManager = DownloadManager.Instance;
if (sender == null || e == null || if (sender == null || e == null ||

View File

@@ -59,7 +59,7 @@ namespace AppStore
} }
catch catch
{ {
// 忽略所有异常使用默认值 // 忽略所有异常,使用默认值
} }
return result; return result;
@@ -115,7 +115,7 @@ namespace AppStore
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
"Downloads"); "Downloads");
Logger.LogError($"下载路径{downloadsDir}不可用将使用默认路径: {defaultPath}", ex); Logger.LogError($"下载路径{downloadsDir}不可用,将使用默认路径: {defaultPath}", ex);
downloadsDir = defaultPath; downloadsDir = defaultPath;
Directory.CreateDirectory(downloadsDir); Directory.CreateDirectory(downloadsDir);
} }

230
README.md
View File

@@ -1,116 +1,114 @@
# Kortapp-z - Windows应用商店 --主张软件开源、免费拒绝广告 # Kortapp-z - Windows应用商店 --主张软件开源、免费,拒绝广告
小立一个flag从不接受广告不停更新 小立一个flag从不接受广告,不停更新
## 项目开源行为 ## 项目开源行为
1. 项目代码开源允许任何人使用、修改、分发、商用但必须注明原作者。 1. 项目代码开源,允许任何人使用、修改、分发、商用,但必须注明原作者。
2. 项目图标、截图等资源开源允许任何人使用、修改、分发、商用但必须注明原作者。 2. 项目图标、截图等资源开源,允许任何人使用、修改、分发、商用,但必须注明原作者。
3. 项目的任何衍生品包括但不限于网站、APP、插件等必须遵循以上开源协议。 3. 项目的任何衍生品包括但不限于网站、APP、插件等必须遵循以上开源协议。
4. 项目不接受任何形式的广告不得在任何地方投放广告。 4. 项目不接受任何形式的广告,不得在任何地方投放广告。
5. 项目不接受任何形式的捐赠、赞助 5. 项目不接受任何形式的捐赠、赞助
6. 项目可以进行PR欢迎任何形式的PR不提交issue也可以 6. 项目可以进行PR,欢迎任何形式的PR,不提交issue也可以
7. 本项目可以PR一些你自己的项目如果star数量不到1k都会被删除 7. 本项目可以PR一些你自己的项目,如果star数量不到1k,都会被删除
## 项目简介 ## 项目简介
一个简单的Windows应用商店应用提供软件下载和管理功能。 一个简单的Windows应用商店应用,提供软件下载和管理功能。
提供软件管理、下载管理、内置工具使用等功能 提供软件管理、下载管理、内置工具使用等功能
## 功能特点 ## 功能特点
- 简洁的软件下载界面 - 简洁的软件下载界面
- 下载进度管理 - 下载进度管理
- 支持后台下载 - 支持后台下载
- 美观的应用卡片展示 - 美观的应用卡片展示
- 功能化、结构化的代码处理 - 功能化、结构化的代码处理
## 构建与打包 ## 构建与打包
### 系统要求 ### 系统要求
- .NET 8.0 SDK - .NET 8.0 SDK
- Windows 10/11 - Windows 10/11
### 打包指令 ### 打包指令
#### 32位版本 #### 32位版本
```bash ```bash
dotnet publish AppStore.csproj -c Release -r win-x86 --self-contained false /p:Optimize=true /p:DebugType=None dotnet publish AppStore.csproj -c Release -r win-x86 --self-contained false /p:Optimize=true /p:DebugType=None
``` ```
#### 64位版本 #### 64位版本
```bash ```bash
dotnet publish AppStore.csproj -c Release -r win-x64 --self-contained false /p:Optimize=true /p:DebugType=None dotnet publish AppStore.csproj -c Release -r win-x64 --self-contained false /p:Optimize=true /p:DebugType=None
``` ```
打包后的可执行文件将包含指定的应用程序图标输出路径为: 打包后的可执行文件将包含指定的应用程序图标,输出路径为:
``` ```
bin\Release\net8.0-windows\[platform]\publish bin\Release\net8.0-windows\[platform]\publish
``` ```
### 高级选项 ### 高级选项
- 使用`--self-contained false`生成框架依赖包(默认) - 使用`--self-contained false`生成框架依赖包(默认)
- 使用`/p:Optimize=true`启用代码优化(默认) - 使用`/p:Optimize=true`启用代码优化(默认)
- 使用`/p:DebugType=None`禁用调试符号生成(默认) - 使用`/p:DebugType=None`禁用调试符号生成(默认)
- 添加`-p:PublishTrimmed=true`可减小包体积(实验性) - 添加`-p:PublishTrimmed=true`可减小包体积(实验性)
## 项目结构 ## 项目结构
``` ```
kortapp-z/ kortapp-z/
├── MainForm.cs # 主窗体逻辑 ├── MainForm.cs # 主窗体逻辑
├── DownloadManager.cs # 下载管理 ├── DownloadManager.cs # 下载管理
├── AppCard.cs # 应用卡片控件 ├── AppCard.cs # 应用卡片控件
├── DownloadItem.cs # 下载项控件 ├── DownloadItem.cs # 下载项控件
├── img/ # 图片资源 ├── img/ # 图片资源
│ ├── ico/ # 图标文件 │ ├── ico/ # 图标文件
│ └── png/ # 应用截图 │ └── png/ # 应用截图
└── resource/ # 资源文件 └── resource/ # 资源文件
└── aria2c.exe # 下载工具 └── aria2c.exe # 下载工具
``` ```
## 运行要求 ## 运行要求
- .NET 8.0运行时(如果使用框架依赖发布) - .NET 8.0运行时(如果使用框架依赖发布)
- Windows 10或更高版本 - Windows 10或更高版本
## 许可证 ## 许可证
MIT License MIT License
Copyright (c) 2025 zsyg Copyright (c) 2025 zsyg
## 其他网站 ## 其他网站
gitee镜像仓库:https://gitee.com/chr_super/kortapp-z (目前已经停止维护) gitee镜像仓库:https://gitee.com/chr_super/kortapp-z (目前已经停止维护)
sourceforge镜像仓库https://sourceforge.net/projects/kortapp-z/仅镜像releases
## 维护
## 维护 由于gitee我没怎么用,而且操作麻烦,gitee镜像将不会继续同步,有懂得人可以帮我搞下镜像吗,qq 3872006562,也可以b站直接私信,我会在readme中鸣谢的,谢谢各位
由于和Daye发生了矛盾,所以windowscleaner将永远不上架,我要自己努力
由于gitee我没怎么用而且操作麻烦gitee镜像将不会继续同步有懂得人可以帮我搞下镜像吗qq 3872006562也可以b站直接私信我会在readme中鸣谢的谢谢各位 提示:由于github上传文件的限制,img/png/NET.png,请改名为.NET.png,否则程序可能出现无法预料的问题
由于和Daye发生了矛盾所以windowscleaner将永远不上架我要自己努力
提示由于github上传文件的限制img/png/NET.png请改名为.NET.png否则程序可能出现无法预料的问题 每一个人都可以通过PR添加属于自己的合法软件
每一个人都可以通过PR添加属于自己的合法软件 作者邮箱:
```
作者邮箱: 3872006562@qq.com
``` ```
3872006562@qq.com
``` 作者qq号:
```
作者qq号: 3872006562
``` ```
3872006562
``` qq群
```
qq群 1043867176
``` ```
1043867176
``` b站账号
```
b站账号 Zayisynth
``` ```
Zayisynth
```

View File

@@ -205,7 +205,7 @@ namespace AppStore
var jsonData = JsonSerializer.Deserialize<JsonElement>(jsonString); var jsonData = JsonSerializer.Deserialize<JsonElement>(jsonString);
string customPath = jsonData.GetProperty("DownloadPath").GetString() ?? ""; string customPath = jsonData.GetProperty("DownloadPath").GetString() ?? "";
// 如果自定义路径有效则显示否则显示默认路径 // 如果自定义路径有效则显示,否则显示默认路径
txtBox.Text = !string.IsNullOrWhiteSpace(customPath) ? customPath : defaultPath; txtBox.Text = !string.IsNullOrWhiteSpace(customPath) ? customPath : defaultPath;
} }
else else

View File

@@ -1,4 +1,4 @@
首先如果希望编译程序那么必须安装.NET8.0 SDK 首先,如果希望编译程序,那么必须安装.NET8.0 SDK
下载链接https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-8.0.411-windows-x64-installer 下载链接https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-8.0.411-windows-x64-installer
使用一下指令编译 使用一下指令编译

View File

@@ -1,4 +1,4 @@
如果希望运行那么必须安装.NET8.0 SDK 如果希望运行,那么必须安装.NET8.0 SDK
下载链接https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-8.0.411-windows-x64-installer 下载链接https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-8.0.411-windows-x64-installer

View File

@@ -32,7 +32,7 @@ namespace AppStore
} }
catch catch
{ {
// 忽略错误使用默认主题 // 忽略错误,使用默认主题
} }
return ThemeMode.Light; return ThemeMode.Light;
} }

View File

@@ -44,7 +44,7 @@ int main() {
} }
} }
} else { } else {
std::cout << "日志目录不存在无需清理" << std::endl; std::cout << "日志目录不存在,无需清理" << std::endl;
return 0; return 0;
} }