Compare commits

...

18 Commits

Author SHA1 Message Date
zsyg
c25cd37755 Add files via upload 2025-06-22 12:10:39 +08:00
zsyg
6536e99eec Add files via upload 2025-06-22 12:10:19 +08:00
zsyg
0ac791653e Add files via upload 2025-06-22 12:09:14 +08:00
zsyg
45ca7909fd Add files via upload 2025-06-22 12:08:56 +08:00
zsyg
60b459c74a Create CONTRIBUTING.md 2025-06-22 11:20:48 +08:00
zsyg
295af72e4f Create SECURITY.md 2025-06-22 11:17:44 +08:00
zsyg
474f3ecfbc Update issue templates 2025-06-22 11:14:51 +08:00
zsyg
ab37a33443 Update README.md 2025-06-22 11:09:49 +08:00
zsyg
7f8a12c26a Update README.md 2025-06-22 11:03:21 +08:00
zsyg
0f50193705 Update README.md 2025-06-22 11:02:05 +08:00
zsyg
bc01dad692 Update README.md 2025-06-22 11:00:32 +08:00
zsyg
0b58ee3f2e Update README.md 2025-06-22 10:59:44 +08:00
zsyg
51974beaa8 Add files via upload 2025-06-22 10:41:46 +08:00
zsyg
9faa32e985 Add files via upload 2025-06-22 10:41:33 +08:00
zsyg
197f9ae76f Update README.md 2025-06-22 10:36:29 +08:00
zsyg
7d11096f8a Add files via upload 2025-06-22 10:35:17 +08:00
zsyg
f8d02d44c1 Add files via upload 2025-06-22 10:30:12 +08:00
zsyg
c22b653ce0 Add files via upload 2025-06-22 10:04:45 +08:00
18 changed files with 548 additions and 12 deletions

38
.github/ISSUE_TEMPLATE/bug反馈.md vendored Normal file
View 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
View File

@@ -0,0 +1,10 @@
---
name: 功能建议
about: 给我们一些修改建议
title: ''
labels: ''
assignees: ''
---

View 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.

View File

@@ -50,7 +50,7 @@ namespace AppStore
// 初始化并添加应用信息 // 初始化并添加应用信息
infoLabel = new Label(); infoLabel = new Label();
infoLabel.Text = "kortapp-z\n版本: 1.0.1\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
View File

@@ -0,0 +1,12 @@
# 贡献准则
你可以进行任何(确保安全的前提下)的修改
我会对贡献进行审核,速度很快的
我会定时查看PR
你可以通过Fork到自己的仓库
然后上传软件图标,修改代码
然后提PR
你就可以做出贡献了
当然你也可以进行其他形式的修改
Remeber it!整个世界都在为你而闪耀

View File

@@ -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;
@@ -640,6 +697,12 @@ namespace AppStore
"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",
"https://memreduct.org/files/memreduct-3.5.2-setup.exe", "https://memreduct.org/files/memreduct-3.5.2-setup.exe",

View File

@@ -16,13 +16,8 @@
## 项目简介 ## 项目简介
![image](https://gitee.com/chr_super/kortapp-z/raw/master/img/pngimage.png)
这个图片可能有点问题因为它是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,16 +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否则程序可能出现无法预料的问题
每一个人都可以通过PR添加属于自己的合法软件 每一个人都可以通过PR添加属于自己的合法软件
作者邮箱:
```
3872006562@qq.com
```
作者qq号:
```
3872006562
```
qq群 qq群
``` ```
1043867176 1043867176

7
SECURITY.md Normal file
View File

@@ -0,0 +1,7 @@
# 安全准则
# 安全提醒
应用商店的软件我们无法保证绝对性的安全
在下载和使用、安装之前请为该软件做足充足的功课
如果出现系统无法打开,我们无法负责,只能悲哀

49
docs/about.html Normal file
View File

@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>关于kortapp-z</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>关于kortapp-z</h1>
<p>了解我们的项目和团队</p>
</header>
<main>
<section class="about-project">
<h2>项目简介</h2>
<p>kortapp-z是一个专为Windows系统设计的实用工具集合旨在提供一站式的系统优化和管理解决方案。</p>
<p>项目始于2025年由热爱效率工具的开发者创建。</p>
</section>
<section class="team">
<h2>开发团队</h2>
<p>我们的团队由经验丰富的开发人员组成,专注于创建高质量的系统工具。</p>
<ul>
<li>核心开发者: 1人</li>
<li>UI设计师: 1人</li>
<li>测试工程师: 1人</li>
</ul>
</section>
<section class="contact">
<h2>联系我们</h2>
<p>如有任何问题或建议欢迎通过GitHub提交issue或pull request。</p>
<a href="https://github.com/zs-yg/kortapp-z/issues" target="_blank">提交反馈</a>
</section>
</main>
<footer>
<nav>
<a href="index.html">首页</a>
<a href="features.html">功能</a>
</nav>
<p>&copy; 2025 kortapp-z 团队</p>
</footer>
<script src="script.js"></script>
</body>
</html>

49
docs/features.html Normal file
View File

@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>kortapp-z功能详情</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>kortapp-z功能详情</h1>
<p>探索我们强大的工具集</p>
</header>
<main>
<section class="feature-list">
<h2>核心功能</h2>
<article class="feature">
<h3>应用程序管理</h3>
<p>批量安装、卸载(目前没有)和更新应用程序(目前没有),管理启动项(目前没有)。</p>
<p>优势:集中管理所有应用,节省时间,避免系统臃肿。</p>
</article>
<article class="feature">
<h3>资源监控(之后可能在内置工具里有)</h3>
<p>实时监控CPU、内存、磁盘和网络使用情况。</p>
<p>优势:直观的图表展示,及时发现资源瓶颈。</p>
</article>
<article class="feature">
<h3>文件管理(之后可能在内置工具里有)</h3>
<p>高级文件搜索、批量重命名和快速文件分类。</p>
<p>优势:提升文件管理效率,支持正则表达式搜索。</p>
</article>
</section>
</main>
<footer>
<nav>
<a href="index.html">首页</a>
<a href="about.html">关于</a>
</nav>
<p>&copy; 2025 kortapp-z 团队</p>
</footer>
<script src="script.js"></script>
</body>
</html>

42
docs/index.html Normal file
View File

@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>kortapp-z - Windows实用工具</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>欢迎使用kortapp-z</h1>
<p>您的一站式Windows实用工具</p>
</header>
<main>
<section class="features">
<h2>主要功能</h2>
<ul>
<li>内置工具</li>
<li>应用程序下载</li>
<li>更多实用功能</li>
</ul>
</section>
<section class="github">
<h2>项目GitHub地址</h2>
<p>查看源代码并参与贡献:</p>
<a href="https://github.com/zs-yg/kortapp-z" target="_blank">GitHub仓库</a>
</section>
</main>
<footer>
<nav>
<a href="about.html">关于</a>
<a href="features.html">功能</a>
</nav>
<p>&copy; 2025 zsyg</p>
</footer>
<script src="script.js"></script>
</body>
</html>

31
docs/script.js Normal file
View File

@@ -0,0 +1,31 @@
// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
// 获取当前年份并更新页脚版权信息
const yearElement = document.querySelector('footer p');
if (yearElement) {
const currentYear = new Date().getFullYear();
yearElement.textContent = yearElement.textContent.replace('2025', currentYear);
}
// 为所有导航链接添加点击效果
const navLinks = document.querySelectorAll('nav a');
navLinks.forEach(link => {
link.addEventListener('click', function(e) {
// 可以在这里添加页面切换动画或其他效果
console.log('导航到: ' + this.getAttribute('href'));
});
});
// 功能列表项悬停效果
const featureItems = document.querySelectorAll('.features li');
featureItems.forEach(item => {
item.addEventListener('mouseover', function() {
this.style.transform = 'translateX(5px)';
this.style.transition = 'transform 0.3s ease';
});
item.addEventListener('mouseout', function() {
this.style.transform = '';
});
});
});

71
docs/style.css Normal file
View File

@@ -0,0 +1,71 @@
/* 全局样式 */
body {
font-family: 'Microsoft YaHei', sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
color: #333;
background-color: #f5f5f5;
}
/* 页眉样式 */
header {
background-color: #2c3e50;
color: white;
text-align: center;
padding: 2rem 0;
}
header h1 {
margin: 0;
font-size: 2.5rem;
}
header p {
margin: 0.5rem 0 0;
font-size: 1.2rem;
}
/* 主体内容样式 */
main {
max-width: 1200px;
margin: 2rem auto;
padding: 0 1rem;
}
section {
background: white;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
padding: 2rem;
margin-bottom: 2rem;
}
h2 {
color: #2c3e50;
border-bottom: 2px solid #eee;
padding-bottom: 0.5rem;
}
/* 链接样式 */
a {
color: #3498db;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
/* 页脚样式 */
footer {
text-align: center;
padding: 1rem 0;
background-color: #2c3e50;
color: white;
}
footer nav a {
color: white;
margin: 0 1rem;
}

BIN
img/jpg/Twinkstar.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

BIN
img/jpg/pcl2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
img/png/NET.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 B

BIN
img/resource/png/QRcode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 989 KiB

134
tools/QrCodeGenerator.cs Normal file
View 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);
}
}
}
}
}
}