mirror of
https://github.com/zs-yg/kortapp-z.git
synced 2025-12-07 00:20:43 +08:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c25cd37755 | ||
|
|
6536e99eec | ||
|
|
0ac791653e | ||
|
|
45ca7909fd | ||
|
|
60b459c74a | ||
|
|
295af72e4f | ||
|
|
474f3ecfbc | ||
|
|
ab37a33443 | ||
|
|
7f8a12c26a | ||
|
|
0f50193705 | ||
|
|
bc01dad692 | ||
|
|
0b58ee3f2e |
38
.github/ISSUE_TEMPLATE/bug反馈.md
vendored
Normal file
38
.github/ISSUE_TEMPLATE/bug反馈.md
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
name: Bug反馈
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: zs-yg
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
**Desktop (please complete the following information):**
|
||||||
|
- OS: [e.g. iOS]
|
||||||
|
- Browser [e.g. chrome, safari]
|
||||||
|
- Version [e.g. 22]
|
||||||
|
|
||||||
|
**Smartphone (please complete the following information):**
|
||||||
|
- Device: [e.g. iPhone6]
|
||||||
|
- OS: [e.g. iOS8.1]
|
||||||
|
- Browser [e.g. stock browser, safari]
|
||||||
|
- Version [e.g. 22]
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
||||||
10
.github/ISSUE_TEMPLATE/功能建议.md
vendored
Normal file
10
.github/ISSUE_TEMPLATE/功能建议.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
name: 功能建议
|
||||||
|
about: 给我们一些修改建议
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
20
.github/ISSUE_TEMPLATE/新功能添加请求🥰🥰🥰.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/新功能添加请求🥰🥰🥰.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: "新功能添加请求\U0001F970\U0001F970\U0001F970"
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
@@ -50,7 +50,7 @@ namespace AppStore
|
|||||||
|
|
||||||
// 初始化并添加应用信息
|
// 初始化并添加应用信息
|
||||||
infoLabel = new Label();
|
infoLabel = new Label();
|
||||||
infoLabel.Text = "kortapp-z\n版本: 1.0.2\n作者: zs-yg\n一个简单、开源的应用商店\nkortapp-z是完全免费\n基于.NET8和C++的软件";
|
infoLabel.Text = "kortapp-z\n版本: 1.0.3\n作者: zs-yg\n一个简单、开源的应用商店\nkortapp-z是完全免费\n基于.NET8和C++的软件";
|
||||||
infoLabel.Font = new Font("Microsoft YaHei", 12);
|
infoLabel.Font = new Font("Microsoft YaHei", 12);
|
||||||
infoLabel.AutoSize = false;
|
infoLabel.AutoSize = false;
|
||||||
infoLabel.Width = 300;
|
infoLabel.Width = 300;
|
||||||
|
|||||||
12
CONTRIBUTING.md
Normal file
12
CONTRIBUTING.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# 贡献准则
|
||||||
|
|
||||||
|
你可以进行任何(确保安全的前提下)的修改
|
||||||
|
我会对贡献进行审核,速度很快的
|
||||||
|
我会定时查看PR
|
||||||
|
你可以通过Fork到自己的仓库
|
||||||
|
然后上传软件图标,修改代码
|
||||||
|
然后提PR
|
||||||
|
你就可以做出贡献了
|
||||||
|
当然你也可以进行其他形式的修改
|
||||||
|
|
||||||
|
Remeber it!整个世界都在为你而闪耀
|
||||||
67
MainForm.cs
67
MainForm.cs
@@ -300,6 +300,31 @@ namespace AppStore
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
flowPanel.Controls.Add(cleanerCard);
|
flowPanel.Controls.Add(cleanerCard);
|
||||||
|
|
||||||
|
// 二维码生成卡片
|
||||||
|
var qrCard = new ToolCard();
|
||||||
|
qrCard.ToolName = "二维码生成";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
qrCard.ToolIcon = Image.FromFile("img/resource/png/QRcode.png");
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
qrCard.ToolIcon = SystemIcons.Application.ToBitmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
qrCard.UpdateDisplay();
|
||||||
|
qrCard.ToolCardClicked += (s, e) => {
|
||||||
|
try {
|
||||||
|
var qrForm = new QrCodeGeneratorForm();
|
||||||
|
qrForm.ShowDialog();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
MessageBox.Show($"启动二维码生成工具失败: {ex.Message}", "错误",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
flowPanel.Controls.Add(qrCard);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -362,11 +387,43 @@ namespace AppStore
|
|||||||
{
|
{
|
||||||
contentPanel.Controls.Clear();
|
contentPanel.Controls.Clear();
|
||||||
|
|
||||||
// 同步创建并添加FlowLayoutPanel
|
// 创建应用卡片面板
|
||||||
FlowLayoutPanel flowPanel = new FlowLayoutPanel();
|
FlowLayoutPanel flowPanel = new FlowLayoutPanel();
|
||||||
flowPanel.Dock = DockStyle.Fill;
|
flowPanel.Dock = DockStyle.Fill;
|
||||||
flowPanel.AutoScroll = true;
|
flowPanel.AutoScroll = true;
|
||||||
flowPanel.Padding = new Padding(15, 50, 15, 15);
|
flowPanel.Padding = new Padding(15, 15, 15, 15);
|
||||||
|
flowPanel.WrapContents = true;
|
||||||
|
flowPanel.Margin = new Padding(0);
|
||||||
|
flowPanel.AutoSize = true;
|
||||||
|
flowPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
flowPanel.AutoScrollMinSize = new Size(0, 3350);
|
||||||
|
|
||||||
|
// 创建搜索框
|
||||||
|
TextBox searchBox = new TextBox();
|
||||||
|
searchBox.Width = 300;
|
||||||
|
searchBox.Height = 32;
|
||||||
|
searchBox.Font = new Font("Microsoft YaHei", 10);
|
||||||
|
searchBox.PlaceholderText = "搜索应用...";
|
||||||
|
searchBox.BorderStyle = BorderStyle.FixedSingle;
|
||||||
|
searchBox.BackColor = Color.White;
|
||||||
|
searchBox.ForeColor = Color.FromArgb(64, 64, 64);
|
||||||
|
searchBox.Location = new Point((contentPanel.Width - searchBox.Width) / 2, 20);
|
||||||
|
|
||||||
|
// 响应窗体大小变化
|
||||||
|
contentPanel.Resize += (s, e) => {
|
||||||
|
searchBox.Location = new Point((contentPanel.Width - searchBox.Width) / 2, 20);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 搜索框事件
|
||||||
|
searchBox.TextChanged += (s, e) => {
|
||||||
|
AppSearch.SearchApps(flowPanel, searchBox.Text);
|
||||||
|
};
|
||||||
|
|
||||||
|
contentPanel.Controls.Add(searchBox);
|
||||||
|
contentPanel.Controls.Add(flowPanel);
|
||||||
|
flowPanel.Dock = DockStyle.Fill;
|
||||||
|
flowPanel.AutoScroll = true;
|
||||||
|
flowPanel.Padding = new Padding(15, 60, 15, 15);
|
||||||
flowPanel.WrapContents = true;
|
flowPanel.WrapContents = true;
|
||||||
flowPanel.Margin = new Padding(0);
|
flowPanel.Margin = new Padding(0);
|
||||||
flowPanel.AutoSize = true;
|
flowPanel.AutoSize = true;
|
||||||
@@ -639,6 +696,12 @@ namespace AppStore
|
|||||||
"Firefox",
|
"Firefox",
|
||||||
"https://download-ssl.firefox.com.cn/releases-sha2/full/116.0/zh-CN/Firefox-full-latest-win64.exe",
|
"https://download-ssl.firefox.com.cn/releases-sha2/full/116.0/zh-CN/Firefox-full-latest-win64.exe",
|
||||||
"img/jpg/firefox.jpg"));
|
"img/jpg/firefox.jpg"));
|
||||||
|
|
||||||
|
//这应该是为数不多的国产软件了
|
||||||
|
flowPanel.Controls.Add(CreateAppCard(
|
||||||
|
"星愿浏览器",
|
||||||
|
"https://d1.twinkstar.com/win/Twinkstar_v10.7.1000.2505_Release.exe",
|
||||||
|
"img/jpg/Twinkstar.jpg"));
|
||||||
|
|
||||||
flowPanel.Controls.Add(CreateAppCard(
|
flowPanel.Controls.Add(CreateAppCard(
|
||||||
"Mem Reduct",
|
"Mem Reduct",
|
||||||
|
|||||||
26
README.md
26
README.md
@@ -16,13 +16,8 @@
|
|||||||
|
|
||||||
## 项目简介
|
## 项目简介
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
这个图片可能有点问题,因为它是gitee仓库中的图片
|
|
||||||
这是为了加快图片渲染速度,但是它好像只能渲染一半,在gitee是正常的
|
|
||||||
这个我没什么办法了
|
|
||||||
|
|
||||||
一个简单的Windows应用商店应用,提供软件下载和管理功能。
|
一个简单的Windows应用商店应用,提供软件下载和管理功能。
|
||||||
|
提供软件管理、下载管理、内置工具使用等功能
|
||||||
|
|
||||||
## 功能特点
|
## 功能特点
|
||||||
|
|
||||||
@@ -30,6 +25,7 @@
|
|||||||
- 下载进度管理
|
- 下载进度管理
|
||||||
- 支持后台下载
|
- 支持后台下载
|
||||||
- 美观的应用卡片展示
|
- 美观的应用卡片展示
|
||||||
|
- 功能化、结构化的代码处理
|
||||||
|
|
||||||
## 构建与打包
|
## 构建与打包
|
||||||
|
|
||||||
@@ -61,7 +57,7 @@ bin\Release\net8.0-windows\[platform]\publish
|
|||||||
## 项目结构
|
## 项目结构
|
||||||
|
|
||||||
```
|
```
|
||||||
AppStore/
|
kortapp-z/
|
||||||
├── MainForm.cs # 主窗体逻辑
|
├── MainForm.cs # 主窗体逻辑
|
||||||
├── DownloadManager.cs # 下载管理
|
├── DownloadManager.cs # 下载管理
|
||||||
├── AppCard.cs # 应用卡片控件
|
├── AppCard.cs # 应用卡片控件
|
||||||
@@ -82,18 +78,30 @@ AppStore/
|
|||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2025 kortapp-z项目组
|
Copyright (c) 2025 zsyg
|
||||||
|
|
||||||
## 其他网站
|
## 其他网站
|
||||||
|
|
||||||
gitee镜像仓库:https://gitee.com/chr_super/kortapp-z
|
gitee镜像仓库:https://gitee.com/chr_super/kortapp-z(目前已经停止维护)
|
||||||
|
|
||||||
## 维护
|
## 维护
|
||||||
|
|
||||||
|
由于gitee我没怎么用,而且操作麻烦,gitee镜像将不会继续同步,有懂得人可以帮我搞下镜像吗,qq: 3872006562,也可以b站直接私信,我会在readme中鸣谢的,谢谢各位
|
||||||
|
|
||||||
提示:由于github上传文件的限制,img/png/NET.png,请改名为.NET.png,否则程序可能出现无法预料的问题
|
提示:由于github上传文件的限制,img/png/NET.png,请改名为.NET.png,否则程序可能出现无法预料的问题
|
||||||
|
|
||||||
每一个人都可以通过PR添加属于自己的合法软件
|
每一个人都可以通过PR添加属于自己的合法软件
|
||||||
|
|
||||||
|
作者邮箱:
|
||||||
|
```
|
||||||
|
3872006562@qq.com
|
||||||
|
```
|
||||||
|
|
||||||
|
作者qq号:
|
||||||
|
```
|
||||||
|
3872006562
|
||||||
|
```
|
||||||
|
|
||||||
qq群:
|
qq群:
|
||||||
```
|
```
|
||||||
1043867176
|
1043867176
|
||||||
|
|||||||
7
SECURITY.md
Normal file
7
SECURITY.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# 安全准则
|
||||||
|
|
||||||
|
# 安全提醒
|
||||||
|
|
||||||
|
应用商店的软件我们无法保证绝对性的安全
|
||||||
|
在下载和使用、安装之前请为该软件做足充足的功课
|
||||||
|
如果出现系统无法打开,我们无法负责,只能悲哀
|
||||||
BIN
img/jpg/Twinkstar.jpg
Normal file
BIN
img/jpg/Twinkstar.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 256 KiB |
BIN
img/resource/png/QRcode.png
Normal file
BIN
img/resource/png/QRcode.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 989 KiB |
134
tools/QrCodeGenerator.cs
Normal file
134
tools/QrCodeGenerator.cs
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using ZXing;
|
||||||
|
using ZXing.Common;
|
||||||
|
using ZXing.QrCode;
|
||||||
|
|
||||||
|
namespace AppStore
|
||||||
|
{
|
||||||
|
public class QrCodeGeneratorForm : Form
|
||||||
|
{
|
||||||
|
private TextBox? inputTextBox;
|
||||||
|
private PictureBox? qrCodePictureBox;
|
||||||
|
private Button? generateButton;
|
||||||
|
private Button? saveButton;
|
||||||
|
|
||||||
|
public QrCodeGeneratorForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.Text = "二维码生成器";
|
||||||
|
this.Size = new Size(500, 600);
|
||||||
|
this.StartPosition = FormStartPosition.CenterScreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
// 输入文本框
|
||||||
|
inputTextBox = new TextBox();
|
||||||
|
inputTextBox.Multiline = true;
|
||||||
|
inputTextBox.ScrollBars = ScrollBars.Vertical;
|
||||||
|
inputTextBox.Size = new Size(400, 100);
|
||||||
|
inputTextBox.Location = new Point(50, 30);
|
||||||
|
inputTextBox.PlaceholderText = "请输入要生成二维码的文本内容...";
|
||||||
|
this.Controls.Add(inputTextBox);
|
||||||
|
|
||||||
|
// 生成按钮
|
||||||
|
generateButton = new Button();
|
||||||
|
generateButton.Text = "生成二维码";
|
||||||
|
generateButton.Size = new Size(150, 40);
|
||||||
|
generateButton.Location = new Point(50, 150);
|
||||||
|
generateButton.Click += GenerateButton_Click;
|
||||||
|
this.Controls.Add(generateButton);
|
||||||
|
|
||||||
|
// 二维码显示区域
|
||||||
|
qrCodePictureBox = new PictureBox();
|
||||||
|
qrCodePictureBox.Size = new Size(300, 300);
|
||||||
|
qrCodePictureBox.Location = new Point(100, 220);
|
||||||
|
qrCodePictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
|
||||||
|
qrCodePictureBox.BorderStyle = BorderStyle.FixedSingle;
|
||||||
|
this.Controls.Add(qrCodePictureBox);
|
||||||
|
|
||||||
|
// 保存按钮
|
||||||
|
saveButton = new Button();
|
||||||
|
saveButton.Text = "保存二维码";
|
||||||
|
saveButton.Size = new Size(150, 40);
|
||||||
|
saveButton.Location = new Point(300, 150);
|
||||||
|
saveButton.Click += SaveButton_Click;
|
||||||
|
this.Controls.Add(saveButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void GenerateButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(inputTextBox?.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("请输入要生成二维码的文本内容", "提示",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var writer = new BarcodeWriterPixelData
|
||||||
|
{
|
||||||
|
Format = BarcodeFormat.QR_CODE,
|
||||||
|
Options = new QrCodeEncodingOptions
|
||||||
|
{
|
||||||
|
Width = 300,
|
||||||
|
Height = 300,
|
||||||
|
Margin = 1
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var pixelData = writer.Write(inputTextBox.Text);
|
||||||
|
var bitmap = new Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb);
|
||||||
|
var bitmapData = bitmap.LockBits(new Rectangle(0, 0, pixelData.Width, pixelData.Height),
|
||||||
|
System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0, pixelData.Pixels.Length);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
bitmap.UnlockBits(bitmapData);
|
||||||
|
}
|
||||||
|
qrCodePictureBox!.Image = bitmap;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show($"生成二维码失败: {ex.Message}", "错误",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (qrCodePictureBox?.Image == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("请先生成二维码", "提示",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
using (var saveDialog = new SaveFileDialog())
|
||||||
|
{
|
||||||
|
saveDialog.Filter = "PNG 图片|*.png|JPEG 图片|*.jpg|BMP 图片|*.bmp";
|
||||||
|
saveDialog.Title = "保存二维码图片";
|
||||||
|
if (saveDialog.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
qrCodePictureBox!.Image.Save(saveDialog.FileName);
|
||||||
|
MessageBox.Show("二维码保存成功", "成功",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show($"保存二维码失败: {ex.Message}", "错误",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user