- *.[改进]项目支持自动打包功能。

### RySmartEditor    V1.0.2501.2701
- *.[改进]FTP上传时限制300毫秒内只能刷新一次UI进度。
### SuperDesign    V3.0.2501.2701
- *.[新增]新增支持在线升级功能。
#### 项目功能->项目管理
- *.[新增]FTP上传文件列表和打包文件列表支持在软件里直接编辑。
- *.[改进]更新dll版本将比对版本号,只更新版本号更新或者更新日期更新的dll。
#### 项目功能->更新日志
- *.[新增]新增支持自动记录过的分组信息,然后可以进行选择快速插入。
- *.[新增]记录使用过的项目信息到总数据库,以方便总览。
- *.[改进]右键插入日志时直接对富文本框进行编辑,而不是替换内容,从而具备撤销功能。
- *.[改进]改进MD日志输出的样式设计。
- *.[修复]修复《确认日志覆盖》窗口里的按钮,随着窗口大小变化,按钮会错乱的BUG。
- *.[修复]修复双击日志列表显示日志时,针对本周的时间显示不正确的BUG。
- *.[修复]修复右键新增日志时,如果没有分组,插入的行可能不正确的BUG。
- *.[修复]修复设为开发日志后,鼠标指针变到文本开头的问题。
#### 网页抓取工具
- *.[新增]新增多个常用UA。
- *.[新增]切换Url时如果存在Cookie和Header时,则提示是否清空。
- *.[新增]保存记录时新增支持保存UA。
- *.[新增]Url列表支持图标展示。
This commit is contained in:
紫林软件 2025-01-27 15:41:37 +08:00
parent 747a97a1c9
commit 1f8c54fe38
47 changed files with 1593 additions and 374 deletions

1
.gitignore vendored
View File

@ -6,3 +6,4 @@ Res/
*.dcu
/Source/.vs
/Bin/Debug/SuperDesign/UserDb/Win.dat
UserDb

Binary file not shown.

View File

@ -5646,12 +5646,42 @@
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RedistCheck.IsInstall_NET35">
<summary>
判断当前系统是否安装了.NET 3.5
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RedistCheck.IsInstall_NET48">
<summary>
判断当前系统是否安装了.NET 4.8
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RedistCheck.IsInstall_NET6">
<summary>
判断当前系统是否安装了.NET 6
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RedistCheck.IsInstall_NET7">
<summary>
判断当前系统是否安装了.NET 7
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RedistCheck.IsInstall_NET8">
<summary>
判断当前系统是否安装了.NET 8
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RedistCheck.IsInstall_NET9">
<summary>
判断当前系统是否安装了.NET 9
</summary>
<returns></returns>
</member>
<member name="T:ryCommon.RyDate">
<summary>
日期时间的操作类
@ -5749,11 +5779,12 @@
<param name="seconds">是否显示秒</param>
<returns></returns>
</member>
<member name="M:ryCommon.RyDate.GetTimeStr(System.Int64)">
<member name="M:ryCommon.RyDate.GetTimeStr(System.Int64,System.Boolean)">
<summary>
将秒数显示成中文表达式
</summary>
<param name="Seconds"></param>
<param name="ShowSeconds">显示秒</param>
<returns></returns>
</member>
<member name="M:ryCommon.RyDate.DateDiff(System.DateTime)">
@ -6148,7 +6179,15 @@
<param name="IEMode">7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式</param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String,System.String)">
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
<param name="Ext">扩展名(如.apk)</param>
<param name="filePath">文件路径</param>
<param name="iconPath">图标路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
@ -6157,8 +6196,9 @@
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
<param name="iconPath">图标路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String)">
<member name="M:ryCommon.RyRegedit.SetFileAssociation(System.String,System.String,System.String,System.String,System.String)">
<summary>
设置文件关联
</summary>
@ -6166,6 +6206,7 @@
<param name="sName">app名称(建议用英文数字)</param>
<param name="AssDes">文件关联描述</param>
<param name="filePath">文件路径</param>
<param name="iconPath">图标路径</param>
</member>
<member name="M:ryCommon.RyRegedit.SetFileAssociationOpenAs(System.String,System.String,System.String,System.String)">
<summary>
@ -20007,6 +20048,11 @@
当文本框为空时,显示的内容。
</summary>
</member>
<member name="P:ryControls.ComboBoxEx2.ToolTipText">
<summary>
鼠标移上时,显示提示
</summary>
</member>
<member name="P:ryControls.ComboBoxEx2.Font">
<summary>
字体
@ -20104,6 +20150,37 @@
使用代码编辑器修改此方法的内容。
</summary>
</member>
<member name="T:ryControls.ComboPopupItem">
<summary>
弹出框项
</summary>
</member>
<member name="P:ryControls.ComboPopupItem.Image">
<summary>
图标
</summary>
</member>
<member name="P:ryControls.ComboPopupItem.Text">
<summary>
文本
</summary>
</member>
<member name="P:ryControls.ComboPopupItem.ValueStr1">
<summary>
值1
</summary>
</member>
<member name="P:ryControls.ComboPopupItem.Tag">
<summary>
Tag
</summary>
</member>
<member name="M:ryControls.ComboPopupItem.ToString">
<summary>
</summary>
<returns></returns>
</member>
<member name="T:ryControls.Controls.ContextMenuStripRichText">
<summary>
@ -20194,9 +20271,19 @@
RichTextBox
</summary>
</member>
<member name="P:ryControls.Controls.RichTextBox2.DetectUrls">
<summary>
获取或设置一个值,该值指示是否将Url作为超链接处理
</summary>
</member>
<member name="P:ryControls.Controls.RichTextBox2.AutoWordSelection">
<summary>
获取或设置一个值,该值指示是否启用自动选择字词
</summary>
</member>
<member name="P:ryControls.Controls.RichTextBox2.WordWrap">
<summary>
是否开启自动换行
是否自动换行
</summary>
</member>
<member name="M:ryControls.Controls.RichTextBox2.OnHandleCreated(System.EventArgs)">

View File

@ -1,9 +0,0 @@
[FileFind]
Exts=PHPÎļþ(*.php;*.html;*.js;*.css;*.htm)
SkipDirName_On=1
SkipDirName_Text=debug;.git
SearchSubDir=1
IgnoreBinExt=1
SearchHiddenDir=1
LimitFileSize_On=1
LimitFileSize_Value=20

Binary file not shown.

View File

@ -1,3 +0,0 @@
<root>
<list id="Setting" Title="提示" Content="当前分数规则不属于当前用户直属的部门,但当前用户的兼职部门&#xD;&#xA;适用于当前规则,是否要继续?" Icon="MessageBoxIcon.Warning" Btn="MessageBoxButtons.YesNo" Default_Btn="MessageBoxDefaultButton.Button2" TopMost="0" />
</root>

View File

@ -1,4 +0,0 @@
[open]
开发辅助工具.Tools.FrmWebGet=1
开发辅助工具.Tools.FrmXpath=1
开发辅助工具.Tools.FrmEncode=1

View File

@ -1,10 +0,0 @@
\r\n
\n
private class SortByDisplayOrder
WOL2
WOL
开机
port
fun
京东
支付宝

View File

@ -1,6 +0,0 @@
,
WOL
WOL2
ss2
ss
2

View File

@ -0,0 +1,4 @@
<root>
<list id="LastUpdateTime" Value="2025/1/27 15:19:32" />
<list id="UpdateAfterTime" Value="0" />
</root>

Binary file not shown.

View File

@ -1,20 +1,49 @@
### 2025-01-15 星期三更新
## :date:2025-01-27 星期一更新
----
### RySmartEditor V1.0.2501.2701
#### SuperDesign V3.0.2501.1501
- :100:[改进]FTP上传时限制300毫秒内只能刷新一次UI进度。
### SuperDesign V3.0.2501.2701
- :cactus:[新增]新增支持在线升级功能。
#### 项目功能->项目管理
- :cactus:[新增]FTP上传文件列表和打包文件列表支持在软件里直接编辑。
- :100:[改进]更新dll版本将比对版本号,只更新版本号更新或者更新日期更新的dll。
#### 项目功能->更新日志
- *.[新增]发布日志时自动填写到MD文件里的更新日志将自动携带表情信息。
- *.[修复]修复更新日志为空时右键添加日志报错的BUG。
- *.[修复]修复当存在分组时,右键菜单插入日志可能填入的位置不对的BUG。
- :cactus:[新增]新增支持自动记录过的分组信息,然后可以进行选择快速插入。
- :cactus:[新增]记录使用过的项目信息到总数据库,以方便总览。
- :100:[改进]右键插入日志时直接对富文本框进行编辑,而不是替换内容,从而具备撤销功能。
- :100:[改进]改进MD日志输出的样式设计。
- :lady_beetle:[修复]修复《确认日志覆盖》窗口里的按钮,随着窗口大小变化,按钮会错乱的BUG。
- :lady_beetle:[修复]修复双击日志列表显示日志时,针对本周的时间显示不正确的BUG。
- :lady_beetle:[修复]修复右键新增日志时,如果没有分组插入的行可能不正确的BUG。
- :lady_beetle:[修复]修复设为开发日志后,鼠标指针变到文本开头的问题。
### 2025-01-14 星期二更新
#### 网页抓取工具
----
- :cactus:[新增]新增多个常用UA。
- :cactus:[新增]切换Url时如果存在Cookie和Header时,则提示是否清空。
- :cactus:[新增]保存记录时新增支持保存UA。
- :cactus:[新增]Url列表支持图标展示。
#### SuperDesign V3.0.2501.1401
## :date:2025-01-15 星期三更新
### SuperDesign V3.0.2501.1501
#### 项目功能->更新日志
- :cactus:[新增]发布日志时自动填写到MD文件里的更新日志将自动携带表情信息。
- :lady_beetle:[修复]修复更新日志为空时右键添加日志报错的BUG。
- :lady_beetle:[修复]修复当存在分组时,右键菜单插入日志可能填入的位置不对的BUG。
## :date:2025-01-14 星期二更新
### SuperDesign V3.0.2501.1401
#### 项目功能
@ -22,21 +51,19 @@
- :cactus:[新增]更新日志新增支持显示距离最近一次更新的用时。
- :butterfly:[改进]优化双击更新日志时的日志展示。
- :100:[改进]优化双击更新日志时的日志展示。
- :butterfly:[改进]右键插入更新日志时,支持识别分组并插入。
- :100:[改进]右键插入更新日志时,支持识别分组并插入。
- :lady_beetle:[修复]修复更新日志如果包含####,生成的MD日志格式不正确的BUG。
#### 网页抓取工具
#### 网页抓取工具
- :cactus:[新增]新增提交时间显示。
### 2025-01-13 星期一更新
## :date:2025-01-13 星期一更新
----
#### SuperDesign V3.0.2501.1302
### SuperDesign V3.0.2501.1302
#### 项目功能
@ -46,26 +73,22 @@
- *.[修复]修复项目窗口里的文件夹标签页列表视图没对齐的BUG。
- *.[修复]修复更新日志页面发布日志后会导致周期信息无法显示的BUG。
### 2025-01-13 星期一更新
## :date:2025-01-13 星期一更新
------
#### SuperDesign V3.0.2501.1301
### SuperDesign V3.0.2501.1301
- *.[新增]更新日志新增支持显示开发周期。
- *.[改进]上传项目到服务端判断本地根目录默认为输出目录,不存在才为毕方输出目录。
- *.[改进]更新日志右键菜单新增日志时自动按位置插入到指定行。
- *.[改进]当日志里包含[开发]时,就不会发布到Html日志里。
### 2025-01-08 星期三更新
## :date:2025-01-08 星期三更新
------
#### RySmartEditor V1.0.2501.0801
### RySmartEditor V1.0.2501.0801
- *.[改进]复制文件到其它站点同位置功能支持复制文件夹。
#### SuperDesign V3.0.2501.0801
### SuperDesign V3.0.2501.0801
- *.[新增]支持直接设置主项目的功能。
@ -79,11 +102,9 @@
- *.[修复]修复打开Git时无法粘贴更新日志的BUG。
### 2024-12-21 星期六更新
## :date:2024-12-21 星期六更新
------
#### SuperDesign V3.0.2412.2101
### SuperDesign V3.0.2412.2101
- *.[新增]新增支持多选更新日志列表,合并生成Html日志。
- *.[改进]支持设置解决方案中的哪些项目日志不显示在Html日志列表里。
@ -92,11 +113,9 @@
- *.[修复]修复创建项目时引用的RaUI项目文件无法转换成RaUI.dll的BUG。
- *.[修复]修复连续快速打开项目,会导致软件多开的BUG。
### 2024-12-20 星期五更新
## :date:2024-12-20 星期五更新
------
#### SuperDesign V3.0.2412.2003
### SuperDesign V3.0.2412.2003
- *.[新增]新增支持更新日志发布时自动调用起TortoiseGit。
- *.[新增]版本列表新增支持设置正式版本。
@ -104,11 +123,9 @@
- *.[改进]点击发布日志按钮弹出确认框,避免误点击。
- *.[改进]更新版本列表的更新时间支持昨天、今天的简短显示。
### 2024-12-20 星期五更新
## :date:2024-12-20 星期五更新
------
#### SuperDesign V3.0.2412.2002
### SuperDesign V3.0.2412.2002
- *.[新增]新增对.NET5以上项目文件的版本修改支持。
- *.[新增]新增支持双击历史更新记录,查看具体更新日志。
@ -116,20 +133,16 @@
- *.[改进]当窗口失去焦点时,自动保存更新日志。
- *.[改进]对于同个项目,只允许打开一个实例的开发辅助工具。
### 2024-12-20 星期五更新
## :date:2024-12-20 星期五更新
------
#### SuperDesign V3.0.2412.2001
### SuperDesign V3.0.2412.2001
- *.[新增]新增程序更新日志设置和自动发布功能。
- *.[修复]修复Post数据格式不正确时双击文本框会导致软件闪退的BUG。
### 2024-02-22更新
## :date:2024-02-22更新
-------
#### RySmartEditor V3.0.2402.2201
### RySmartEditor V3.0.2402.2201
- *.[修复]修复文件查找功能,双击找到的内容,定位内容时可能被滚动条遮挡的问题。
@ -138,155 +151,121 @@
- *.[修复]点开查找功能,有时不能搜索当前目录的BUG。
- *.[修复]修复查找文件时使用内置的文件类型不能搜索的BUG。
#### SuperDesign V3.0.2402.2201
### SuperDesign V3.0.2402.2201
- *.[新增]全新的Json编辑器,支持在网页抓取工具中编辑Json的值。
### 2023-02-21更新
## :date:2023-02-21更新
-------
#### SuperDesign V3.0.2302.2101
### SuperDesign V3.0.2302.2101
- *.[新增]全新文本编辑器,支持高亮、FTP查看和编辑、目录浏览历史版本等众多功能。
### 2023-01-21更新
## :date:2023-01-21更新
------
#### SuperDesign V2.0.2301.2101
### SuperDesign V2.0.2301.2101
- *.[新增]新增API编辑器,自动保存和快速插入修改参数。
- *.[改进]使用新款高亮编辑器。
### 2021-09-03更新
## :date:2021-09-03更新
------
#### SuperDesign V2.0.2109.0301
### SuperDesign V2.0.2109.0301
- *.[改进]全新网页抓取工具,对历史记录支持编辑和收藏。
- *.[改进]修复网页抓取工具报《未能为 SSL/TLS 安全通道建立信任关系》错的BUG。
### 2021-09-02更新
## :date:2021-09-02更新
------
#### SuperDesign V2.0.2109.0202
### SuperDesign V2.0.2109.0202
- *.[改进]网页获取工具的地址下拉提示使用新版objectlistview控件。
### 2021-09-02更新
## :date:2021-09-02更新
------
#### SuperDesign V2.0.2109.0201
### SuperDesign V2.0.2109.0201
- *.[改进]新增对新版公用库的支持,将RyWeb等合并到一个库里。
### 2021-05-17更新
## :date:2021-05-17更新
------
#### SuperDesign V2.0.2105.1701
### SuperDesign V2.0.2105.1701
- *.[新增]新增对新版SQLite库文件的更新支持。
- *.[新增]新增支持x64。
### 2021-02-28更新
## :date:2021-02-28更新
------
#### SuperDesign V2.0.2102.2801
### SuperDesign V2.0.2102.2801
- *.[新增]支持毕方3.0标准。
- *.[新增]支持查看和修改项目信息。
- *.[新增]支持修改C#编译选项,按条件编译。
- *.[新增]RyProject新增支持获取项目版本信息函数。
### 2021-02-22更新
## :date:2021-02-22更新
------
#### SuperDesign V2.0.2102.2201
### SuperDesign V2.0.2102.2201
- *.[修复]修复打包时自定义路径里的文件无法更新的BUG。
### 2021-02-13更新
## :date:2021-02-13更新
------
#### SuperDesign V2.0.2102.0101
### SuperDesign V2.0.2102.0101
*.[更换]更换高亮控件。
*.[新增]打包时可以依据项目来决定是否混淆。
### 2020-12-17更新
## :date:2020-12-17更新
------
#### SuperDesign V2.0.2012.1701
### SuperDesign V2.0.2012.1701
- *.[改进]当以json模式post数据时,自动转码json中的中文。
- *.[改进]修复json查看器括号折叠不正确的BUG。
### 2020-12-15更新
## :date:2020-12-15更新
------
#### SuperDesign V2.0.2012.1501
### SuperDesign V2.0.2012.1501
- *.[修复]修复部分情况下打包时无法识别软件路径从而无法识别版本号的BUG。
### 2020-12-10更新
------
## :date:2020-12-10更新
#### SuperDesign V2.0.2012.1001
### SuperDesign V2.0.2012.1001
- *.[新增]新增变量设置。
- *.[新增]Publish.set的copy方法支持变量。
### 2020-12-09更新
------
## :date:2020-12-09更新
##### SuperDesign V2.0.2012.0901
### SuperDesign V2.0.2012.0901
- *.[新增]网页抓取工具和Json工具里支持代码折叠功能。
### 2020-12-07更新
## :date:2020-12-07更新
------
##### SuperDesign V2.0.2012.0701
### SuperDesign V2.0.2012.0701
- *.[修复]修复网页获取抓取工具Head设置不当会导致进度卡死的BUG。
### 2020-11-28更新
## :date:2020-11-28更新
------
##### SuperDesign V2.0.2011.2801
### SuperDesign V2.0.2011.2801
- *.[改进]更新日志和自述文件名更符合git备份规范。
### 2019-12-13更新
## :date:2019-12-13更新
------
##### SupperDesign V2.0.1911.2801
### SupperDesign V2.0.1911.2801
- 暂无
### 2019-09-19更新
## :date:2019-09-19更新
------
##### SupperDesign V2.0.1909.1901
### SupperDesign V2.0.1909.1901
- *.[新增]支持多项目。
- *.[新增]支持文件关联。

View File

@ -1,10 +1,8 @@
# 开发辅助工具
---
##### 开发辅助工具是一款专为开发人员设计的工具,内置了多种开发人员常见工具。
支持OS:Windows 支持框架:.NET 4.6.2 [更新日志](CHANGELOG.md)
支持OS:Windows | 支持框架:.NET 4.6.2 | [更新日志](CHANGELOG.md)
---

View File

@ -224,7 +224,7 @@ namespace 开发辅助工具.Manager.FTP
}));
}
}
private DateTime dt_last = DateTime.MinValue;
private void Ftp_FileTransferProgress(object sender, FTPop.FileTransferProgressEventArgs e)
{
if (IsExit) { e.Cancel = true; }
@ -232,7 +232,15 @@ namespace 开发辅助工具.Manager.FTP
{
try
{
progressBar1.Value = (e.FileProgress * 100).ToInt();
if(dt_last<DateTime.Now.AddMilliseconds(-300))
{
dt_last = DateTime.Now;
}
else
{
return;
}
progressBar1.Value = (e.FileProgress * 100).ToInt();
}
catch { }
}));

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.2501.0801")]
[assembly: AssemblyFileVersion("1.0.2501.0801")]
[assembly: AssemblyVersion("1.0.2501.2701")]
[assembly: AssemblyFileVersion("1.0.2501.2701")]

View File

@ -137,6 +137,12 @@ namespace 开发辅助工具
db.ExecuteNonQuery("DELETE FROM Urls WHERE id IN (SELECT id FROM Urls ORDER BY ClickCount desc,editTime desc LIMIT 1000,50) and editTime<=@editTime and IsFav<>1", mySQL);
}
db.Free();
LiveUpdate.RyUpdate update = new LiveUpdate.RyUpdate("http://gs2.3h3.com:8081/OnlineUpgrade/SuperDesign.json");
//update.OnUpdateCancel += Update_OnUpdateCancel;
//update.OnNoUpdate += Update_OnNoUpdate;
//update.OnAppExit += Update_OnAppExit;
update.ParentForm = this;
update.CheckUpdate();
}
private void BtnTools_Click(object sender, EventArgs e)

View File

@ -14,12 +14,11 @@ namespace SuperDesign.Manager
{
public static string GetMdLogText(JArray jarr, DateTime dt,bool UseEmoji=false)
{
string log_text = "### " + DateTime.Now.ToString("yyyy-MM-dd dddd") + "更新";
log_text += "\r\n----";
string log_text = "## :date:" + DateTime.Now.ToString("yyyy-MM-dd dddd") + "更新";
for (int i = 0; i < jarr.Count; i++)
{
var item = jarr[i];
log_text += "\r\n\r\n#### " + item.GetJsonValue("ProjectName", "").Trim() + " V" + item.GetJsonValue("VerStr", "");
log_text += "\r\n\r\n### " + item.GetJsonValue("ProjectName", "").Trim() + " V" + item.GetJsonValue("VerStr", "");
var logs = item.GetJsonValue("LogText", "").Replace("\r", "\n").Replace("\n\n", "\n").Split('\n');
for (int m = 0; m < logs.Length; m++)
{
@ -29,34 +28,32 @@ namespace SuperDesign.Manager
{
log_item = "- " + log_item;
}
else if (log_item.StartsWith("["))
{
log_item = "- *." + log_item;
}
if (UseEmoji)
{
var type_item = logs[m].GetStr("- *.[", "]");
var is_kf = log_item.IndexOfEx("[开发]") > 0;
var type_item = log_item.GetStr("- *.[", "]");
if (type_item == "修复")
{
log_item = log_item.Replace("*.[" + type_item + "]", ":lady_beetle:[" + type_item + "]");
log_item = log_item.Replace("*.[" + type_item + "]", ":lady_beetle:"+(is_kf? ":secret:" : "")+"[" + type_item + "]");
}
else if (type_item == "改进")
{
log_item = log_item.Replace("*.[" + type_item + "]", ":butterfly:[" + type_item + "]");
log_item = log_item.Replace("*.[" + type_item + "]", ":100:"+(is_kf? ":secret:" : "")+"[" + type_item + "]");
}
else if (type_item == "新增")
{
log_item = log_item.Replace("*.[" + type_item + "]", ":cactus:[" + type_item + "]");
log_item = log_item.Replace("*.[" + type_item + "]", ":cactus:"+(is_kf? ":secret:" : "")+"[" + type_item + "]");
}
else if (type_item == "删除")
{
log_item = log_item.Replace("*.[" + type_item + "]", ":x:"+(is_kf? ":secret:" : "")+"[" + type_item + "]");
}
}
if (log_item.StartsWith("- *."))
{
log_text += "\r\n" + log_item;
}
else if (log_item.StartsWith("#### "))
{
log_text += "\r\n" + log_item;
}
else
{
log_text += "\r\n- *." + log_item;
}
log_text += "\r\n" + log_item.Trim();
}
}
return log_text;

View File

@ -161,6 +161,7 @@ namespace 开发辅助工具.Manager
mySQL.AddField("Cookie", "");
mySQL.AddField("Postdata", "");
mySQL.AddField("Method", "");
mySQL.AddField("UserAgent", "");
mySQL.AddField("Header", "");
mySQL.AddField("Referer", "");
mySQL.AddField("ContentType", "");

View File

@ -71,25 +71,28 @@ namespace 开发辅助工具.Manager
db.Free();
}
/// <summary>
/// 通过dll名称来寻找dll路径
/// 通过dll路径来寻找dll路径
/// </summary>
/// <param name="dll_name"></param>
/// <param name="dll_full_path"></param>
/// <returns></returns>
public string GetDllPath(string dll_name)
public string GetDllPath(string dll_full_path)
{
return GetDllPath("", dll_name);
return GetDllPath("", dll_full_path);
}
/// <summary>
/// 通过dll名称来寻找dll路径
/// </summary>
/// <param name="dll_foldername">为空则表示根目录下查找,否则查找子目录</param>
/// <param name="dll_name"></param>
/// <param name="dll_full_path"></param>
/// <returns></returns>
public string GetDllPath(string dll_foldername,string dll_name)
public string GetDllPath(string dll_foldername,string dll_full_path)
{
var dll_name = System.IO.Path.GetFileName(dll_full_path);
var path_list = ReferenceDllPath.Replace("\r", "").Split('\n');
var find = false;
//var find = false;
var result = "";
var Min_Ver = RySoft.GetVersionStr(dll_full_path);
var Min_dt=RyFiles.GetFileDate(dll_full_path);
#region dll,使dll
for (int m = 0; m < path_list.Length; m++)
{
@ -102,12 +105,38 @@ namespace 开发辅助工具.Manager
{
if (System.IO.Path.GetFileName(files[z]).ToLower() == dll_name.ToLower())
{
var dll_ver = RySoft.GetVersionStr(files[z]);
var compareVer = RySoft.CompareVer(Min_Ver, dll_ver);
if (compareVer < 0)//引用位置版本比较老,直接忽略
{
continue;
}
else if (compareVer == 0)//引用位置版本一致,则看更新时间
{
var file_dt=RyFiles.GetFileDate(files[z]);
if (file_dt.LastWriteTime <= Min_dt.LastWriteTime)
{
continue;
}
else
{
Min_dt=file_dt;
}
}
else if(compareVer==-1000)
{
continue;
}
else
{
Min_dt = RyFiles.GetFileDate(files[z]);
}
result = files[z];
find = true;
break;
Min_Ver=dll_ver;
//find = true;
}
}
if (find) { break; }
//if (find) { break; }
}
#endregion
return result;
@ -179,7 +208,7 @@ namespace 开发辅助工具.Manager
for (int i = 0; i < files.Length; i++)
{
string filename = System.IO.Path.GetFileName(files[i]);
var dllpath = GetDllPath(foldername,filename);
var dllpath = GetDllPath(foldername, files[i]);
if (dllpath.Length>0)
{
if (filename.ToLower() == "System.Data.SQLite.dll".ToLower())
@ -266,7 +295,7 @@ namespace 开发辅助工具.Manager
if (iPos > 0)
{
var Reference_Name = HintPath.Substring(iPos + 1);//引用的dll名称
var dll_path = GetDllPath(Reference_Name);
var dll_path = GetDllPath(OutputPath + Reference_Name);
if (dll_path.Length>0)
{
if (CopyDllToBin)
@ -305,7 +334,7 @@ namespace 开发辅助工具.Manager
{ dll_name = "ryUpdate.dll"; }
if (dll_name != "")
{
var dll_path = GetDllPath(dll_name);
var dll_path = GetDllPath(OutputPath + dll_name);
if (dll_path != "")
{
if (CopyDllToBin)
@ -660,6 +689,11 @@ namespace 开发辅助工具.Manager
{
ouput_folder = bf_folder + "\\Bin\\" + com_mode;
}
if (!System.IO.Directory.Exists(ouput_folder))
{
ShowState("打包失败,生成目录不存在。");
return;
}
var file_ver = "";
if (System.IO.File.Exists(ouput_folder + "\\" + eng_name + ".exe"))
{

View File

@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.0.2501.1501")]
[assembly: AssemblyFileVersion("3.0.2501.1501")]
[assembly: AssemblyVersion("3.0.2501.2701")]
[assembly: AssemblyFileVersion("3.0.2501.2701")]

View File

@ -120,6 +120,16 @@ namespace SuperDesign.Properties {
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap iphone {
get {
object obj = ResourceManager.GetObject("iphone", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
@ -159,5 +169,45 @@ namespace SuperDesign.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap windows {
get {
object obj = ResourceManager.GetObject("windows", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap {
get {
object obj = ResourceManager.GetObject("安卓", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap {
get {
object obj = ResourceManager.GetObject("微信", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap 鸿os {
get {
object obj = ResourceManager.GetObject("鸿蒙os", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -136,6 +136,9 @@
<data name="GoToPreviousMessage" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\gotopreviousmessage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="iphone" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\iphone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="LineColorHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\linecolorhs.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -148,4 +151,16 @@
<data name="plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="windows" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\windows.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="安卓" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\安卓.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="微信" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\微信.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="鸿蒙os" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\鸿蒙os.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

(image error) Size: 558 B

Binary file not shown.

After

(image error) Size: 305 B

Binary file not shown.

After

(image error) Size: 545 B

Binary file not shown.

After

(image error) Size: 712 B

Binary file not shown.

After

(image error) Size: 784 B

View File

@ -325,12 +325,24 @@
<Compile Include="Manager\FrmToolsSearch.Designer.cs">
<DependentUpon>FrmToolsSearch.cs</DependentUpon>
</Compile>
<Compile Include="Tools\UpLog\FrmSaveContent.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Tools\UpLog\FrmSaveContent.Designer.cs">
<DependentUpon>FrmSaveContent.cs</DependentUpon>
</Compile>
<Compile Include="Tools\UpLog\FrmCompareLog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Tools\UpLog\FrmCompareLog.Designer.cs">
<DependentUpon>FrmCompareLog.cs</DependentUpon>
</Compile>
<Compile Include="Tools\UpLog\FrmGroupSelected.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Tools\UpLog\FrmGroupSelected.Designer.cs">
<DependentUpon>FrmGroupSelected.cs</DependentUpon>
</Compile>
<Compile Include="Tools\UpLog\FrmPublishLogs.cs">
<SubType>Form</SubType>
</Compile>
@ -456,9 +468,15 @@
<EmbeddedResource Include="Manager\FrmToolsSearch.resx">
<DependentUpon>FrmToolsSearch.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Tools\UpLog\FrmSaveContent.resx">
<DependentUpon>FrmSaveContent.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Tools\UpLog\FrmCompareLog.resx">
<DependentUpon>FrmCompareLog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Tools\UpLog\FrmGroupSelected.resx">
<DependentUpon>FrmGroupSelected.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Tools\UpLog\FrmPublishLogs.resx">
<DependentUpon>FrmPublishLogs.cs</DependentUpon>
</EmbeddedResource>
@ -485,6 +503,11 @@
</ItemGroup>
<ItemGroup>
<Content Include="gaim_48px_29650_easyicon.net.ico" />
<None Include="Resources\windows.png" />
<None Include="Resources\安卓.png" />
<None Include="Resources\iphone.png" />
<None Include="Resources\鸿蒙os.png" />
<None Include="Resources\微信.png" />
<None Include="Resources\主要特点.png" />
<None Include="Resources\plus.png" />
<None Include="Resources\ok.png" />

View File

@ -53,6 +53,8 @@
this.RbPersonal = new System.Windows.Forms.RadioButton();
this.RbGeneral = new System.Windows.Forms.RadioButton();
this.BtnUploadProject = new ryControls.ButtonEx();
this.BtnFtpFiles = new ryControls.ButtonEx();
this.BtnPackFileList = new ryControls.ButtonEx();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.ChkPackByLite = new System.Windows.Forms.CheckBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
@ -78,6 +80,7 @@
this.BtnSave2 = new ryControls.ButtonEx();
this.panel1 = new System.Windows.Forms.Panel();
this.tabPage4 = new System.Windows.Forms.TabPage();
this.LblUseTime = new System.Windows.Forms.Label();
this.ChkUpdateVerByPublish = new System.Windows.Forms.CheckBox();
this.BtnSubmitGit = new ryControls.ButtonEx();
this.tabControl1 = new System.Windows.Forms.TabControl();
@ -90,7 +93,6 @@
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.Html日志ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.BtnPublishLogs = new ryControls.ButtonEx();
this.LblUseTime = new System.Windows.Forms.Label();
this.timer1 = new System.Windows.Forms.Timer(this.components);
((System.ComponentModel.ISupportInitialize)(this.table1)).BeginInit();
this.groupBox1.SuspendLayout();
@ -160,7 +162,7 @@
this.table1.Location = new System.Drawing.Point(3, 3);
this.table1.Name = "table1";
this.table1.NoItemsText = "当前列表没有任何项";
this.table1.Size = new System.Drawing.Size(915, 371);
this.table1.Size = new System.Drawing.Size(915, 461);
this.table1.TabIndex = 20;
this.table1.TableModel = this.tableModel1;
this.table1.Text = "table1";
@ -358,6 +360,34 @@
this.BtnUploadProject.UseVisualStyleBackColor = true;
this.BtnUploadProject.Click += new System.EventHandler(this.BtnUploadProject_Click);
//
// BtnFtpFiles
//
this.BtnFtpFiles.BaseColor = System.Drawing.Color.SteelBlue;
this.BtnFtpFiles.ColorGradient = true;
this.BtnFtpFiles.Location = new System.Drawing.Point(147, 95);
this.BtnFtpFiles.Name = "BtnFtpFiles";
this.BtnFtpFiles.Size = new System.Drawing.Size(126, 34);
this.BtnFtpFiles.TabIndex = 34;
this.BtnFtpFiles.Text = "FTP上传列表设置";
this.toolTip1.SetToolTip(this.BtnFtpFiles, "一键混淆并打包当前项目生成的文件。");
this.BtnFtpFiles.UseDefSkin = false;
this.BtnFtpFiles.UseVisualStyleBackColor = true;
this.BtnFtpFiles.Click += new System.EventHandler(this.BtnFtpFiles_Click);
//
// BtnPackFileList
//
this.BtnPackFileList.BaseColor = System.Drawing.Color.SteelBlue;
this.BtnPackFileList.ColorGradient = true;
this.BtnPackFileList.Location = new System.Drawing.Point(279, 95);
this.BtnPackFileList.Name = "BtnPackFileList";
this.BtnPackFileList.Size = new System.Drawing.Size(126, 34);
this.BtnPackFileList.TabIndex = 35;
this.BtnPackFileList.Text = "打包文件列表设置";
this.toolTip1.SetToolTip(this.BtnPackFileList, "一键混淆并打包当前项目生成的文件。");
this.BtnPackFileList.UseDefSkin = false;
this.BtnPackFileList.UseVisualStyleBackColor = true;
this.BtnPackFileList.Click += new System.EventHandler(this.BtnPackFileList_Click);
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
@ -420,7 +450,7 @@
this.chromeTabControl1.SelectedIndex = 0;
this.chromeTabControl1.ShowAddButton = false;
this.chromeTabControl1.ShowCloseButton = false;
this.chromeTabControl1.Size = new System.Drawing.Size(923, 410);
this.chromeTabControl1.Size = new System.Drawing.Size(923, 500);
this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.chromeTabControl1.TabContextMenuStrip = null;
this.chromeTabControl1.TabIndex = 29;
@ -432,13 +462,15 @@
this.tabPage2.Location = new System.Drawing.Point(1, 29);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(921, 380);
this.tabPage2.Size = new System.Drawing.Size(921, 470);
this.tabPage2.TabIndex = 0;
this.tabPage2.Text = "文件夹";
this.tabPage2.UseVisualStyleBackColor = true;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.BtnPackFileList);
this.tabPage1.Controls.Add(this.BtnFtpFiles);
this.tabPage1.Controls.Add(this.ChkIsMain);
this.tabPage1.Controls.Add(this.BtnUploadProject);
this.tabPage1.Controls.Add(this.TxtUploadName);
@ -458,7 +490,7 @@
this.tabPage1.Location = new System.Drawing.Point(1, 29);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(921, 380);
this.tabPage1.Size = new System.Drawing.Size(921, 470);
this.tabPage1.TabIndex = 1;
this.tabPage1.Text = "项目信息";
this.tabPage1.UseVisualStyleBackColor = true;
@ -541,7 +573,7 @@
this.BtnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.BtnSave.BaseColor = System.Drawing.Color.Green;
this.BtnSave.ColorGradient = true;
this.BtnSave.Location = new System.Drawing.Point(798, 340);
this.BtnSave.Location = new System.Drawing.Point(814, 430);
this.BtnSave.Name = "BtnSave";
this.BtnSave.Size = new System.Drawing.Size(99, 34);
this.BtnSave.TabIndex = 27;
@ -692,7 +724,7 @@
this.tabPage3.Location = new System.Drawing.Point(1, 29);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(921, 380);
this.tabPage3.Size = new System.Drawing.Size(921, 470);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "C#编译选项";
this.tabPage3.UseVisualStyleBackColor = true;
@ -702,7 +734,7 @@
this.BtnSave2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.BtnSave2.BaseColor = System.Drawing.Color.Green;
this.BtnSave2.ColorGradient = true;
this.BtnSave2.Location = new System.Drawing.Point(798, 340);
this.BtnSave2.Location = new System.Drawing.Point(798, 430);
this.BtnSave2.Name = "BtnSave2";
this.BtnSave2.Size = new System.Drawing.Size(99, 34);
this.BtnSave2.TabIndex = 28;
@ -733,11 +765,21 @@
this.tabPage4.Location = new System.Drawing.Point(1, 29);
this.tabPage4.Name = "tabPage4";
this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
this.tabPage4.Size = new System.Drawing.Size(921, 380);
this.tabPage4.Size = new System.Drawing.Size(921, 470);
this.tabPage4.TabIndex = 3;
this.tabPage4.Text = "更新日志";
this.tabPage4.UseVisualStyleBackColor = true;
//
// LblUseTime
//
this.LblUseTime.AutoSize = true;
this.LblUseTime.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.LblUseTime.Location = new System.Drawing.Point(6, 13);
this.LblUseTime.Name = "LblUseTime";
this.LblUseTime.Size = new System.Drawing.Size(150, 17);
this.LblUseTime.TabIndex = 15;
this.LblUseTime.Text = "距离上次更新已经过去:0分";
//
// ChkUpdateVerByPublish
//
this.ChkUpdateVerByPublish.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@ -773,7 +815,7 @@
this.tabControl1.Location = new System.Drawing.Point(354, 39);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(561, 335);
this.tabControl1.Size = new System.Drawing.Size(561, 425);
this.tabControl1.TabIndex = 12;
//
// BtnSaveLog
@ -806,7 +848,7 @@
this.LvUpdateLogList.HideSelection = false;
this.LvUpdateLogList.Location = new System.Drawing.Point(3, 39);
this.LvUpdateLogList.Name = "LvUpdateLogList";
this.LvUpdateLogList.Size = new System.Drawing.Size(345, 335);
this.LvUpdateLogList.Size = new System.Drawing.Size(345, 425);
this.LvUpdateLogList.TabIndex = 10;
this.LvUpdateLogList.UseCompatibleStateImageBehavior = false;
this.LvUpdateLogList.View = System.Windows.Forms.View.Details;
@ -864,16 +906,6 @@
this.BtnPublishLogs.UseVisualStyleBackColor = true;
this.BtnPublishLogs.Click += new System.EventHandler(this.BtnPublishLogs_Click);
//
// LblUseTime
//
this.LblUseTime.AutoSize = true;
this.LblUseTime.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.LblUseTime.Location = new System.Drawing.Point(6, 13);
this.LblUseTime.Name = "LblUseTime";
this.LblUseTime.Size = new System.Drawing.Size(150, 17);
this.LblUseTime.TabIndex = 15;
this.LblUseTime.Text = "距离上次更新已经过去:0分";
//
// timer1
//
this.timer1.Enabled = true;
@ -884,7 +916,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(929, 622);
this.ClientSize = new System.Drawing.Size(929, 706);
this.CloseButton = false;
this.CloseButtonVisible = false;
this.Controls.Add(this.chromeTabControl1);
@ -985,5 +1017,7 @@
private BrightIdeasSoftware.OLVColumn OlvTime;
private System.Windows.Forms.Label LblUseTime;
private System.Windows.Forms.Timer timer1;
private ryControls.ButtonEx BtnFtpFiles;
private ryControls.ButtonEx BtnPackFileList;
}
}

View File

@ -13,17 +13,14 @@ using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;
using WeifenLuo.WinFormsUI.Docking;
using .Manager;
using static ScintillaNETV2.Style;
namespace .Tools
{
@ -844,8 +841,9 @@ namespace 开发辅助工具.Tools
var _path = GetBFFolderPath();
if (_path.Length > 0)
{
IDbInterface db_global = new SQLiteDataProvider();
IDbInterface db = new SQLiteDataProvider();
if (db.ConnDb(_path + "\\Res\\Setting\\UpdateLogs.dat") == 1)
if (db.ConnDb(_path + "\\Res\\Setting\\UpdateLogs.dat") == 1 && db_global.ConnDb(Application.StartupPath + "\\UserDb\\Project.dat") == 1)
{
if (clean)
{
@ -871,6 +869,21 @@ namespace 开发辅助工具.Tools
else
{
#region
JObject jo_group;
try
{
var ds_group = db.ReadData("select * from Settings where Name='GroupList'");
if (ds_group.HaveData())
{
jo_group = JObject.Parse(ds_group.GetRow(0)["Value"].ToString());
}
else
{
jo_group = new JObject();
}
ds_group?.Dispose();
}
catch { jo_group = new JObject(); }
for (int i = 0; i < tabControl1.TabPages.Count; i++)
{
var tab = tabControl1.TabPages[i];
@ -900,6 +913,7 @@ namespace 开发辅助工具.Tools
}
}
else { continue; }
RyQuickSQL mySQL = new RyQuickSQL("ProjectNowLogs");
mySQL.AddField("Name", p_item.ProjectName);
mySQL.AddField("ChsName", txt.Text);
@ -919,9 +933,23 @@ namespace 开发辅助工具.Tools
dict[item.GetJsonValue("text", "")] = item.GetJsonValue("time", 0L);
}
var lines = rich.Lines;
var jarr_group = jo_group.GetJsonValue("group_"+p_item.ProjectName,new JArray());
for (int j = 0; j < lines.Length; j++)
{
if (lines[j].Length == 0) { continue; }
if (lines[j].StartsWith("#### "))
{
var group_name = lines[j].Substring(5).Trim();
if(!jarr_group.Any(x=>x.GetJsonValue("text","")== group_name))
{
JObject _item_group = new JObject
{
["text"] = group_name,
["time"] = DateTime.Now.ToInt64()
};
jarr_group.Add(_item_group);
}
}
if (!dict.ContainsKey(lines[j]))
{
JObject jo = new JObject
@ -933,6 +961,7 @@ namespace 开发辅助工具.Tools
dict[lines[j]] = DateTime.Now.ToInt64();
}
}
jo_group["group_" + p_item.ProjectName] = jarr_group;
mySQL.AddField("ValueTime", JSON_ValueTime.ToString());
if (ds.HaveData())
{
@ -970,10 +999,33 @@ namespace 开发辅助工具.Tools
dict_changed[p_item.ProjectName] = false;
}
ds?.Dispose();
RyQuickSQL mySQL_project = new RyQuickSQL("Projects");
mySQL_project.AddField("ProjectName", p_item.ProjectName);
mySQL_project.AddField("FolderName", System.IO.Path.GetDirectoryName(_path));//
mySQL_project.AddField("BfFolder", _path);//
mySQL_project.AddField("ProjectPath", p_item.ProjectPath);
mySQL_project.AddField("SaveTime", DateTime.Now.ToInt64());
mySQL_project.AddField("editTime", DateTime.Now.ToInt64());
if (db.Update(mySQL_project, "ProjectName=@ProjectName and FolderName=@FolderName") == 0)
{
//mySQL_project.AddField("VerUpdateTime", DateTime.Now.ToInt64());//
//mySQL_project.AddField("VerStr", Version);
mySQL_project.AddField("addTime", DateTime.Now.ToInt64());
db.Insert(mySQL_project);
}
p_item.LastSave = DateTime.Now;
}
}
}
RyQuickSQL MySQL_Setting = new RyQuickSQL("Settings");
MySQL_Setting.AddField("Name", "GroupList");
MySQL_Setting.AddField("Value", jo_group.ToString());
MySQL_Setting.AddField("EditTime", DateTime.Now);
if (db.Update(MySQL_Setting, "Name=@Name") == 0)
{
MySQL_Setting.AddField("AddTime", DateTime.Now);
db.Insert(MySQL_Setting);
}
db.Free();
return true;
#endregion
@ -1043,8 +1095,9 @@ namespace 开发辅助工具.Tools
var _path = GetBFFolderPath();
if (_path.Length > 0)
{
IDbInterface db_global = new SQLiteDataProvider();
IDbInterface db = new SQLiteDataProvider();
if (db.ConnDb(_path + "\\Res\\Setting\\UpdateLogs.dat") == 1)
if (db.ConnDb(_path + "\\Res\\Setting\\UpdateLogs.dat") == 1 && db_global.ConnDb(Application.StartupPath + "\\UserDb\\Project.dat") == 1)
{
Ini ini = new Ini(_path+ "\\查看项目.ryp");
var Main_Project = ini.ReadIni("project", "MainProject", "");
@ -1154,6 +1207,20 @@ namespace 开发辅助工具.Tools
{
jarr.Add(jo_item);
}
RyQuickSQL mySQL_project = new RyQuickSQL("Projects");
mySQL_project.AddField("ProjectName", p_item.ProjectName);
mySQL_project.AddField("VerUpdateTime", DateTime.Now.ToInt64());//
mySQL_project.AddField("VerStr", Version);
mySQL_project.AddField("FolderName", System.IO.Path.GetDirectoryName(_path));//
mySQL_project.AddField("BfFolder", _path);
mySQL_project.AddField("ProjectPath", p_item.ProjectPath);
mySQL_project.AddField("SaveTime", DateTime.Now.ToInt64());
mySQL_project.AddField("editTime", DateTime.Now.ToInt64());
if (db.Update(mySQL_project, "ProjectName=@ProjectName and FolderName=@FolderName") == 0)
{
mySQL_project.AddField("addTime", DateTime.Now.ToInt64());
db.Insert(mySQL_project);
}
index++;
}
}
@ -1321,8 +1388,30 @@ namespace 开发辅助工具.Tools
var _path = GetBFFolderPath();
if (_path.Length > 0)
{
string ftp_setting_path = _path + "\\FTPUploadData.jryp";
if(System.IO.File.Exists(ftp_setting_path))
{
BtnUploadProject.Enabled = true;
}
else { BtnUploadProject.Enabled = false; }
Ini ini = new Ini(_path + "\\查看项目.ryp");
var Main_Project = ini.ReadIni("project", "MainProject", "");
IDbInterface db_global = new SQLiteDataProvider();
if (db_global.ConnDb(Application.StartupPath + "\\UserDb\\Project.dat") == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Projects");
mySQL.AddField("ProjectName", "");
mySQL.AddField("VerUpdateTime", 0L);//版本更新时间
mySQL.AddField("VerStr", "");//版本
mySQL.AddField("FolderName", "");//
mySQL.AddField("BfFolder", "");//
mySQL.AddField("ProjectPath", "");
mySQL.AddField("SaveTime", DateTime.Now.ToInt64());
mySQL.AddField("editTime", DateTime.Now.ToInt64());
mySQL.AddField("addTime", DateTime.Now.ToInt64());
db_global.CreateDb(mySQL);
}
db_global.Free();
IDbInterface db = new SQLiteDataProvider();
if (db.ConnDb(_path + "\\Res\\Setting\\UpdateLogs.dat") == 1)
{
@ -1354,6 +1443,7 @@ namespace 开发辅助工具.Tools
mySQL.AddField("Name", "");
mySQL.AddField("Value", "");//值
mySQL.AddField("addTime", DateTime.Now);
mySQL.AddField("EditTime", DateTime.Now);
if (db.CreateDb(mySQL) == 1)
{
db.ExecuteNonQuery("CREATE INDEX index_Name ON Settings(Name); ");
@ -1498,11 +1588,50 @@ namespace 开发辅助工具.Tools
var iPos2 = txt.IndexOf("]", iPos);
if((iPos2-5)>=iPos)
{
txt = txt.Substring(0, iPos)+ txt.Substring(iPos, iPos2- iPos+1)+"[开发]"+txt.Substring(iPos2+1);
rich.SelectionStart = iPos2+1;
rich.SelectionLength = 0;
rich.SelectedText = "[开发]";
//txt = txt.Substring(0, iPos)+ txt.Substring(iPos, iPos2- iPos+1)+"[开发]"+txt.Substring(iPos2+1);
}
rich.Text = txt;
//rich.Text = txt;
//rich.SelectionStart = iPos2 + 5;
}
};
rich.AddMenu("插入更新分组", "log_group").Click += delegate (object s4, EventArgs e4)
{
FrmGroupSelected frm = new FrmGroupSelected();
frm.DbPath = _path + "\\Res\\Setting\\UpdateLogs.dat";
frm.ProjectName = p_name;
if(frm.ShowDialog()==DialogResult.OK)
{
var lines = rich.Lines;
var line_index = rich.GetLineFromCharIndex(rich.SelectionStart);
if (line_index < 0) { line_index = 0; }
if (lines[line_index].Trim().Length==0)
{
var iPos = rich.GetFirstCharIndexFromLine(line_index);
rich.SelectionStart = iPos;
rich.SelectionLength = 0;
rich.SelectedText = "#### " + frm.SelectedGroupName;
//lines[line_index] = "#### " + frm.SelectedGroupName;
//rich.Lines = lines;
}
else if (lines[line_index].Trim()=="####")
{
var iPos = rich.GetFirstCharIndexFromLine(line_index);
rich.SelectionStart = iPos;
rich.SelectionLength = lines[line_index].Length;
rich.SelectedText = "#### " + frm.SelectedGroupName;
//lines[line_index] = "#### " + frm.SelectedGroupName;
//rich.Lines = lines;
}
else
{
MessageBox.Show("请选择空行或者格式正确的行", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
frm.Dispose();
};
void AddUpLog(string name)
{
var lines = rich.Lines.ToList<string>();
@ -1512,13 +1641,18 @@ namespace 开发辅助工具.Tools
{
if (lines.Count > 0)
{
var have = false;
for (int j = line_index; j >= 0; j--)
{
if (lines[j].StartsWith("#### "))
{
line_index = j + 1; break;
line_index = j + 1; have = true; break;
}
}
if(!have)
{
line_index = 0;
}
}
}
var find_line = -1;
@ -1541,8 +1675,12 @@ namespace 开发辅助工具.Tools
{
if (find_line >= 0)
{
lines.Insert(find_line+1, "*.[" + name + "]");
find_line++;
rich.SelectionStart = rich.GetFirstCharIndexFromLine(find_line);
rich.SelectionLength = 0;
rich.SelectedText = "*.[" + name + "]\n";
rich.SelectionStart--;
//lines.Insert(find_line, "*.[" + name + "]");
match = true;
break;
}
@ -1550,50 +1688,68 @@ namespace 开发辅助工具.Tools
}
if(find_line>=0 && !match)
{
lines.Add("*.[" + name + "]");
rich.SelectionStart =rich.Text.Length;
rich.SelectionLength = 0;
rich.SelectedText = "\n*.[" + name + "]";
//lines.Add("*.[" + name + "]");
find_line++;
}
if(find_line == -1)
{
if (name == "新增")
{
lines.Insert(0, "*.[" + name + "]");
find_line = 0;
rich.SelectionStart = rich.GetFirstCharIndexFromLine(line_index);
rich.SelectionLength = 0;
rich.SelectedText = "*.[" + name + "]\n";
rich.SelectionStart--;
//lines.Insert(line_index, "*.[" + name + "]");
find_line = line_index;
}
else if (name == "改进")
{
if (dict_line.ContainsKey("新增"))
{
lines.Insert(dict_line["新增"]+1, "*.[" + name + "]");
rich.SelectionStart = rich.GetFirstCharIndexFromLine(dict_line["新增"] + 1);
rich.SelectionLength = 0;
rich.SelectedText = "*.[" + name + "]\n";
rich.SelectionStart--;
//lines.Insert(dict_line["新增"]+1, "*.[" + name + "]");
find_line = dict_line["新增"]+1;
}
else
{
lines.Insert(0, "*.[" + name + "]");
find_line = 0;
rich.SelectionStart = rich.GetFirstCharIndexFromLine(line_index);
rich.SelectionLength = 0;
rich.SelectedText = "*.[" + name + "]\n";
rich.SelectionStart--;
//lines.Insert(line_index, "*.[" + name + "]");
find_line = line_index;
}
}
else
{
lines.Add("*.[" + name + "]");
rich.SelectionStart = rich.Text.Length;
rich.SelectionLength = 0;
rich.SelectedText = "\n*.[" + name + "]";
//lines.Add("*.[" + name + "]");
find_line = lines.Count - 1;
}
}
var txt = "";
var SelectionStart = -1;
for (int t = 0; t < lines.Count; t++)
{
if (lines[t].Length == 0) { continue; }
if (txt.Length > 0) { txt += "\n"; }
txt += lines[t];
if(find_line==t)
{
SelectionStart = txt.Length;
}
}
rich.Text = txt;
rich.SelectionStart= SelectionStart;
rich.SelectionLength = 0;
//var txt = "";
//var SelectionStart = -1;
//for (int t = 0; t < lines.Count; t++)
//{
// if (lines[t].Length == 0) { continue; }
// if (txt.Length > 0) { txt += "\n"; }
// txt += lines[t];
// if(find_line==t)
// {
// SelectionStart = txt.Length;
// }
//}
//rich.Text = txt;
//rich.SelectionStart= SelectionStart;
//rich.SelectionLength = 0;
}
var ds_now_up = db.ReadData("select * from ProjectNowLogs where Name='" + p_name + "'");
if (ds_now_up.HaveData())
@ -1746,7 +1902,10 @@ namespace 开发辅助工具.Tools
foreach (var item in main_info_all)
{
var main_info = item.Value;
log_text += "\r\n<h4>" + System.Web.HttpUtility.HtmlEncode(item.Key) + "</h4>";
if (item.Key.Length > 0)
{
log_text += "\r\n<h4>" + System.Web.HttpUtility.HtmlEncode(item.Key) + "</h4>";
}
for (int i = 0; i < main_info.AddInfo.Count; i++)
{
log_text += "\r\n<p>" + System.Web.HttpUtility.HtmlEncode(main_info.AddInfo[i]) + "</p>";
@ -1777,7 +1936,10 @@ namespace 开发辅助工具.Tools
foreach (var item2 in main_info_all)
{
var main_info = item2.Value;
log_text += "\r\n<h4>" + System.Web.HttpUtility.HtmlEncode(item2.Key) + "</h4>";
if (item2.Key.Length > 0)
{
log_text += "\r\n<h4>" + System.Web.HttpUtility.HtmlEncode(item2.Key) + "</h4>";
}
for (int i = 0; i < main_info.AddInfo.Count; i++)
{
log_text += "\r\n<p>" + System.Web.HttpUtility.HtmlEncode(main_info.AddInfo[i]) + "</p>";
@ -1823,6 +1985,41 @@ namespace 开发辅助工具.Tools
}
}
}
private void BtnFtpFiles_Click(object sender, EventArgs e)
{
var _path = GetBFFolderPath();
if (_path.Length > 0)
{
var txt = RyFiles.ReadAllText(_path+ "\\FTPUploadData.jryp");
FrmSaveContent frm=new FrmSaveContent();
frm.Text = "FTP上传文件列表";
frm.Rich1.Text = txt;
if(frm.ShowDialog()==DialogResult.OK)
{
RyFiles.WriteAllText(_path + "\\FTPUploadData.jryp", frm.Rich1.Text);
BtnUploadProject.Enabled = true;
}
frm.Dispose();
}
}
private void BtnPackFileList_Click(object sender, EventArgs e)
{
var _path = GetBFFolderPath();
if (_path.Length > 0)
{
var txt = RyFiles.ReadAllText(_path + "\\Publish\\Publish.set");
FrmSaveContent frm = new FrmSaveContent();
frm.Text = "打包文件列表";
frm.Rich1.Text = txt;
if (frm.ShowDialog() == DialogResult.OK)
{
RyFiles.WriteAllText(_path + "\\Publish\\Publish.set", frm.Rich1.Text);
}
frm.Dispose();
}
}
}
class UpLogItem
{

View File

@ -86,11 +86,11 @@
this.objectListView2 = new BrightIdeasSoftware.FastObjectListView();
this.OlvUrl = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.OlvName = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.BtnMore = new ryControls.SuperPictureBox();
this.MenuMore = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.BtnSetting = new ryControls.SuperPictureBox();
this.BtnShare = new ryControls.SuperPictureBox();
this.BtnSetting = new ryControls.SuperPictureBox();
this.BtnMore = new ryControls.SuperPictureBox();
this.RbHead = new System.Windows.Forms.RadioButton();
this.MenuSetting = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -114,9 +114,9 @@
this.groupBox1.SuspendLayout();
this.contextMenuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.objectListView2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.BtnMore)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.BtnSetting)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.BtnShare)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.BtnSetting)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.BtnMore)).BeginInit();
this.MenuSetting.SuspendLayout();
this.SuspendLayout();
//
@ -161,8 +161,8 @@
//
// RichHtml
//
this.RichHtml.BackColor = System.Drawing.Color.White;
this.RichHtml.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichHtml.DetectUrls = false;
this.RichHtml.Dock = System.Windows.Forms.DockStyle.Fill;
this.RichHtml.EmptyText = "";
this.RichHtml.Font = new System.Drawing.Font("Courier New", 10F);
@ -216,8 +216,8 @@
//
// RichCookie
//
this.RichCookie.BackColor = System.Drawing.Color.White;
this.RichCookie.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichCookie.DetectUrls = false;
this.RichCookie.Dock = System.Windows.Forms.DockStyle.Fill;
this.RichCookie.EmptyText = "";
this.RichCookie.Font = new System.Drawing.Font("Courier New", 10F);
@ -244,8 +244,8 @@
//
// RichStatus
//
this.RichStatus.BackColor = System.Drawing.Color.White;
this.RichStatus.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichStatus.DetectUrls = false;
this.RichStatus.Dock = System.Windows.Forms.DockStyle.Fill;
this.RichStatus.EmptyText = "";
this.RichStatus.Font = new System.Drawing.Font("Courier New", 10F);
@ -272,8 +272,8 @@
//
// RichHeader
//
this.RichHeader.BackColor = System.Drawing.Color.White;
this.RichHeader.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichHeader.DetectUrls = false;
this.RichHeader.Dock = System.Windows.Forms.DockStyle.Fill;
this.RichHeader.EmptyText = "";
this.RichHeader.Font = new System.Drawing.Font("Courier New", 10F);
@ -285,7 +285,6 @@
this.RichHeader.Size = new System.Drawing.Size(882, 300);
this.RichHeader.TabIndex = 6;
this.RichHeader.Text = "";
this.RichHeader.WordWrap = true;
//
// tabPreview
//
@ -340,11 +339,11 @@
this.label1.BackColor = System.Drawing.Color.White;
this.label1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.ForeColor = System.Drawing.Color.Gray;
this.label1.Location = new System.Drawing.Point(314, 39);
this.label1.Location = new System.Drawing.Point(292, 39);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(189, 14);
this.label1.Size = new System.Drawing.Size(238, 14);
this.label1.TabIndex = 4;
this.label1.Text = "当前模式下无法修改Post数据";
this.label1.Text = "当前模式下Post数据不生效,无法修改";
this.label1.Visible = false;
//
// TxtPost
@ -387,7 +386,6 @@
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtCookie.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtCookie.DetectUrls = false;
this.TxtCookie.EmptyText = "请填写请求时要发送的Cookie";
this.TxtCookie.Font = new System.Drawing.Font("Courier New", 10F);
this.TxtCookie.ForeColor = System.Drawing.Color.Black;
@ -418,7 +416,6 @@
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtInputHeader.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.TxtInputHeader.DetectUrls = false;
this.TxtInputHeader.EmptyText = "请填写请求时要发送的Header";
this.TxtInputHeader.Font = new System.Drawing.Font("Courier New", 10F);
this.TxtInputHeader.ForeColor = System.Drawing.Color.Black;
@ -466,8 +463,9 @@
this.CbbContentType.Name = "CbbContentType";
this.CbbContentType.SelectedIndex = -1;
this.CbbContentType.SelectedItem = null;
this.CbbContentType.Size = new System.Drawing.Size(205, 23);
this.CbbContentType.Size = new System.Drawing.Size(218, 23);
this.CbbContentType.TabIndex = 304;
this.CbbContentType.ToolTipText = "";
//
// CbbUserAgent
//
@ -476,18 +474,17 @@
this.CbbUserAgent.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244)))));
this.CbbUserAgent.ButtonRoundBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244)))));
this.CbbUserAgent.EmptyText = "";
this.CbbUserAgent.Items.Add("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
this.CbbUserAgent.Items.Add("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0");
this.CbbUserAgent.Items.Add("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT6.0)");
this.CbbUserAgent.Items.Add("Opera/9.27 (Windows NT 5.2; U; zh-cn)");
this.CbbUserAgent.Location = new System.Drawing.Point(360, 18);
this.CbbUserAgent.Location = new System.Drawing.Point(374, 18);
this.CbbUserAgent.MaxPopupHeight = 0;
this.CbbUserAgent.MaxPopupWidth = 0;
this.CbbUserAgent.Name = "CbbUserAgent";
this.CbbUserAgent.SelectedIndex = -1;
this.CbbUserAgent.SelectedItem = null;
this.CbbUserAgent.Size = new System.Drawing.Size(520, 23);
this.CbbUserAgent.Size = new System.Drawing.Size(506, 23);
this.CbbUserAgent.TabIndex = 303;
this.toolTip1.SetToolTip(this.CbbUserAgent, "assdddddd");
this.CbbUserAgent.ToolTipText = "";
this.CbbUserAgent.SelectedIndexChanged += new System.EventHandler(this.CbbUserAgent_SelectedIndexChanged);
//
// CbbReferer
//
@ -496,7 +493,7 @@
this.CbbReferer.BackColor = System.Drawing.Color.White;
this.CbbReferer.EmptyText = "引用页(可选)";
this.CbbReferer.ImeMode = System.Windows.Forms.ImeMode.Close;
this.CbbReferer.Location = new System.Drawing.Point(360, 46);
this.CbbReferer.Location = new System.Drawing.Point(374, 46);
this.CbbReferer.LongTime = 2000;
this.CbbReferer.MaxLength = 999999999;
this.CbbReferer.MaxUndoRedoSteps = 50;
@ -508,7 +505,7 @@
this.CbbReferer.SelectedText = "";
this.CbbReferer.SelectionLength = 0;
this.CbbReferer.SelectionStart = 0;
this.CbbReferer.Size = new System.Drawing.Size(520, 23);
this.CbbReferer.Size = new System.Drawing.Size(506, 23);
this.CbbReferer.TabIndex = 302;
this.CbbReferer.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.CbbReferer.ToolTip = "";
@ -531,7 +528,7 @@
this.CbbIp.SelectedText = "";
this.CbbIp.SelectionLength = 0;
this.CbbIp.SelectionStart = 0;
this.CbbIp.Size = new System.Drawing.Size(205, 23);
this.CbbIp.Size = new System.Drawing.Size(218, 23);
this.CbbIp.TabIndex = 301;
this.CbbIp.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.CbbIp.ToolTip = "";
@ -549,7 +546,7 @@
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(297, 24);
this.label7.Location = new System.Drawing.Point(310, 24);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(59, 12);
this.label7.TabIndex = 2;
@ -558,7 +555,7 @@
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(299, 50);
this.label11.Location = new System.Drawing.Point(312, 50);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(47, 12);
this.label11.TabIndex = 0;
@ -876,26 +873,31 @@
this.OlvName.Text = "名称";
this.OlvName.Width = 200;
//
// BtnMore
//
this.BtnMore.Cursor = System.Windows.Forms.Cursors.Hand;
this.BtnMore.Image = ((System.Drawing.Image)(resources.GetObject("BtnMore.Image")));
this.BtnMore.ImageDomain = null;
this.BtnMore.ImageResFolder = null;
this.BtnMore.Location = new System.Drawing.Point(556, 8);
this.BtnMore.Name = "BtnMore";
this.BtnMore.Size = new System.Drawing.Size(20, 18);
this.BtnMore.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.BtnMore.TabIndex = 114;
this.BtnMore.TabStop = false;
this.toolTip1.SetToolTip(this.BtnMore, "更多选项");
this.BtnMore.Click += new System.EventHandler(this.BtnMore_Click);
//
// MenuMore
//
this.MenuMore.Name = "MenuMore";
this.MenuMore.Size = new System.Drawing.Size(61, 4);
//
// toolTip1
//
this.toolTip1.ShowAlways = true;
this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;
//
// BtnShare
//
this.BtnShare.Cursor = System.Windows.Forms.Cursors.Hand;
this.BtnShare.Image = ((System.Drawing.Image)(resources.GetObject("BtnShare.Image")));
this.BtnShare.ImageDomain = null;
this.BtnShare.ImageResFolder = null;
this.BtnShare.Location = new System.Drawing.Point(849, 11);
this.BtnShare.Name = "BtnShare";
this.BtnShare.Size = new System.Drawing.Size(20, 18);
this.BtnShare.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.BtnShare.TabIndex = 117;
this.BtnShare.TabStop = false;
this.toolTip1.SetToolTip(this.BtnShare, "分享当前页面数据给别人");
this.BtnShare.Click += new System.EventHandler(this.BtnShare_Click);
//
// BtnSetting
//
this.BtnSetting.Cursor = System.Windows.Forms.Cursors.Hand;
@ -911,20 +913,20 @@
this.toolTip1.SetToolTip(this.BtnSetting, "更多选项");
this.BtnSetting.Click += new System.EventHandler(this.BtnSetting_Click);
//
// BtnShare
// BtnMore
//
this.BtnShare.Cursor = System.Windows.Forms.Cursors.Hand;
this.BtnShare.Image = ((System.Drawing.Image)(resources.GetObject("BtnShare.Image")));
this.BtnShare.ImageDomain = null;
this.BtnShare.ImageResFolder = null;
this.BtnShare.Location = new System.Drawing.Point(849, 11);
this.BtnShare.Name = "BtnShare";
this.BtnShare.Size = new System.Drawing.Size(20, 18);
this.BtnShare.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.BtnShare.TabIndex = 117;
this.BtnShare.TabStop = false;
this.toolTip1.SetToolTip(this.BtnShare, "分享当前页面数据给别人");
this.BtnShare.Click += new System.EventHandler(this.BtnShare_Click);
this.BtnMore.Cursor = System.Windows.Forms.Cursors.Hand;
this.BtnMore.Image = ((System.Drawing.Image)(resources.GetObject("BtnMore.Image")));
this.BtnMore.ImageDomain = null;
this.BtnMore.ImageResFolder = null;
this.BtnMore.Location = new System.Drawing.Point(556, 8);
this.BtnMore.Name = "BtnMore";
this.BtnMore.Size = new System.Drawing.Size(20, 18);
this.BtnMore.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.BtnMore.TabIndex = 114;
this.BtnMore.TabStop = false;
this.toolTip1.SetToolTip(this.BtnMore, "更多选项");
this.BtnMore.Click += new System.EventHandler(this.BtnMore_Click);
//
// RbHead
//
@ -1000,14 +1002,8 @@
this.Controls.Add(this.RbGet);
this.Controls.Add(this.label2);
this.Controls.Add(this.objectListView2);
this.DockAreas = ((WeifenLuo.WinFormsUI.Docking.DockAreas)((((((WeifenLuo.WinFormsUI.Docking.DockAreas.Float | WeifenLuo.WinFormsUI.Docking.DockAreas.DockLeft)
| WeifenLuo.WinFormsUI.Docking.DockAreas.DockRight)
| WeifenLuo.WinFormsUI.Docking.DockAreas.DockTop)
| WeifenLuo.WinFormsUI.Docking.DockAreas.DockBottom)
| WeifenLuo.WinFormsUI.Docking.DockAreas.Document)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmWebGet";
this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.Unknown;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
this.TabPageContextMenuStrip = this.menuRight1;
this.Text = "网页抓取工具";
@ -1033,9 +1029,9 @@
this.groupBox1.PerformLayout();
this.contextMenuStrip1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.objectListView2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.BtnMore)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.BtnSetting)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.BtnShare)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.BtnSetting)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.BtnMore)).EndInit();
this.MenuSetting.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();

View File

@ -32,6 +32,7 @@ using SuperDesign.Manager;
using SuperDesign.Tools;
using ScintillaNETV2.Highlight;
using System.Runtime.InteropServices;
using WinShell;
namespace .Tools
{
@ -43,6 +44,7 @@ namespace 开发辅助工具.Tools
LoadPram();
tabControl2.SelectedTab = tabPage12;
OlvUrl.AspectGetter = delegate (object x) { return ((UrlInfo)x)?.Url; };
OlvUrl.Renderer = new UrlRenderer();
OlvName.AspectGetter = delegate (object x) {
var item = (UrlInfo)x;
if (item==null || item.Des.Length == 0)
@ -56,6 +58,40 @@ namespace 开发辅助工具.Tools
objectListView2.FormatRow += ObjectListView2_FormatRow;
}
class UrlRenderer : BaseRenderer
{
public UrlRenderer()
{
UseGdiTextRendering = false;
}
//
// 摘要:
// Draw the flags
//
// 参数:
// g:
//
// r:
public override void Render(Graphics g, Rectangle r)
{
DrawBackground(g, r);
if (!(base.Aspect is IConvertible convertible))
{
return;
}
r = ApplyCellPadding(r);
if (base.RowObject is UrlInfo item1)
{
var start_x = 0;
if(item1.Icon!=null)
{
start_x += DrawImage2(g, r, start_x,new Bitmap(item1.Icon));
}
start_x += DrawText2(g, r, start_x,item1.Url);
}
}
}
private DescribedTaskRenderer CreateDescribedTaskRenderer()
{
@ -95,18 +131,34 @@ namespace 开发辅助工具.Tools
private void LoadPram()
{
CbbContentType.SelectedIndex = 0;
CbbUserAgent.SelectedIndex = 0;
CbbEncoding.SelectedIndex = 0;
CbbTimeout.SelectedIndex = CbbTimeout.Items.Count-2;
CbbWriteTimeout.SelectedIndex = CbbWriteTimeout.Items.Count - 2;
CbbUserAgent.Items.AddRange(new UserAgentInfo[]{
new UserAgentInfo() { name = "QQ浏览器极速模式", useragent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6776.400 QQBrowser/10.3.2601.400" },
new UserAgentInfo() { name = "360浏览器极速模式", useragent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" },
new UserAgentInfo() { name = "QQ浏览器手机版", useragent = "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36" },
new UserAgentInfo() { name = "微信", useragent = "Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380" },
new UserAgentInfo() { name = "iPhone", useragent = "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3" },
new UserAgentInfo() { name = "安卓", useragent = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03S) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19" },
CbbUserAgent.Items.AddRange(new ComboPopupItem[]{
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.windows,Text = "Edge浏览器", ValueStr1 = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.windows,Text = "Chrome浏览器", ValueStr1 = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.windows,Text = "Firefox浏览器", ValueStr1 = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.windows,Text = "Opera浏览器", ValueStr1 = "Opera/9.27 (Windows NT 5.2; U; zh-cn)" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.windows,Text = "IE7浏览器", ValueStr1 = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT6.0)" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.windows,Text = "IE9浏览器", ValueStr1 = "Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0;" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.windows,Text = "QQ浏览器极速模式", ValueStr1 = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6776.400 QQBrowser/10.3.2601.400" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.windows,Text = "360浏览器极速模式", ValueStr1 = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources., Text = "华为浏览器安卓手机版", ValueStr1 = "Mozilla/5.0 (Linux; Android 12; HarmonyOS; NAM-AL00; HMSCore 6.14.0.302) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.196 HuaweiBrowser/15.0.7.301 Mobile Safari/537.36" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.,Text = "UC浏览器安卓手机版", ValueStr1 = "Mozilla/5.0 (Linux; U; Android 12; zh-CN; NAM-AL00 Build/HUAWEINAM-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.4.2.1293 Mobile Safari/537.36" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.,Text = "QQ浏览器安卓手机版", ValueStr1 = "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.,Text = "360浏览器安卓手机版", ValueStr1 = "Mozilla/5.0 (Linux; Android 12; NAM-AL00 Build/HUAWEINAM-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.145 Mobile Safari/537.36" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.,Text = "安卓", ValueStr1 = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03S) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.鸿os, Text = "Harmony OS NEXT 华为浏览器", ValueStr1 = "Mozilla/5.0 (Phone; OpenHarmony 5.0)AppleWebKit/537.36 (KHTML, like Gecko)Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile HuaweiBrowser/5.0.3.351" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.鸿os, Text = "Harmony OS NEXT UC浏览器", ValueStr1 = "Mozilla/5.0 (Phone; OpenHarmony 5.0)AppleWebKit/537.36 (KHTML, like Gecko)Chrome/114.0.0.0 ArkWeb/4.1.6.1 UCBrowser/1.1.6.0 Mobile Safari/537.36" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.鸿os, Text = "Harmony OS NEXT QQ浏览器", ValueStr1 = "Mozilla/5.0 (Phone; Android 14;OpenHarmony 5.0) AppleWebKit/537.36(KHTML, like Gecko) Version/4.0 Chrome/ 114.0.0.0 ArkWeb/4.1.6.1 Mobile Safari/537.36qbyouthfynohead/15.0" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.鸿os, Text = "Harmony OS NEXT 360浏览器", ValueStr1 = "Mozilla/5.0 (Phone; OpenHarmony 5.0;HarmonyOS 5.0) AppleWebKit/537.36(KHTML,like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile Browser/harmony360Browser/1.0.0" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.,Text = "微信", ValueStr1 = "Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.iphone, Text = "iPhone", ValueStr1 = "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.iphone, Text = "Safari Mac浏览器", ValueStr1 = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Safari/605.1.15" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.iphone, Text = "Edge浏览器 Mac版", ValueStr1 = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0" },
new ComboPopupItem() {Image=SuperDesign.Properties.Resources.iphone, Text = "Chrome浏览器 Mac版", ValueStr1 = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" },
});
CbbUserAgent.SelectedIndex = 0;
TxtPost.AddSeparatorMenu();
TxtPost.AddMenu("将选定项进行Url编码(UTF8)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
@ -273,9 +325,9 @@ namespace 开发辅助工具.Tools
}
if (CbbUserAgent.SelectedIndex != -1)
{
if (CbbUserAgent.SelectedItem is UserAgentInfo info)
if (CbbUserAgent.SelectedItem is ComboPopupItem info)
{
item.UserAgent = info.useragent;
item.UserAgent = info.ValueStr1;
}
}
if (!string.IsNullOrEmpty(this.CbbIp.Text.Trim()))
@ -314,6 +366,15 @@ namespace 开发辅助工具.Tools
{
uri = new Uri(item.URL);
var host = uri.Host.ToLower();
if(!System.IO.File.Exists(Application.StartupPath+ "\\SysDb\\webicons\\"+host+".png") &&
!System.IO.File.Exists(Application.StartupPath + "\\UserDb\\webicons\\" + host + ".ico"))
{
var img = RyImage.LoadPic(uri.Scheme+"://"+uri.Host+ "/favicon.ico");
if(img!=null)
{
img.Save(Application.StartupPath + "\\UserDb\\webicons\\" + host + ".ico");
}
}
if (host.IndexOfEx("www.87g") == 0 || host.IndexOfEx("www.3h3") == 0
|| host.IndexOfEx("www.downxia") == 0 || host.IndexOfEx("www.downbank") == 0 || host.IndexOfEx("www.downxing") == 0 || host.IndexOfEx("downwn.com") == 0)
{
@ -441,7 +502,7 @@ namespace 开发辅助工具.Tools
db.Free();
}
}
catch { }
catch(Exception ex) { MessageBox.Show(ex.Message); }
}
this.Invoke(new Action(() =>
{
@ -763,6 +824,7 @@ namespace 开发辅助工具.Tools
method= RbGet.Checked ? "get" : "post";
}
mySQL.AddField("Method", method);
mySQL.AddField("UserAgent", CbbUserAgent.Text);
mySQL.AddField("Referer", CbbReferer.Text);
mySQL.AddField("ContentType", CbbContentType.Text);
mySQL.AddField("Encoding", CbbEncoding.Text);
@ -813,6 +875,7 @@ namespace 开发辅助工具.Tools
db.Free();
}
bool proc_use = false;
private bool IsAddNewUrl = false;
private void ClickItem(bool run = false)
{
if (objectListView2.SelectedObject!=null)
@ -835,6 +898,7 @@ namespace 开发辅助工具.Tools
SetValueByRich(TxtCookie,"Cookie");
SetValueByHightlight(TxtPost, "Postdata");
SetValueByRich(TxtInputHeader, "Header");
SetValue2(CbbUserAgent, "UserAgent");
SetValue(CbbReferer, "Referer");
SetValue2(CbbContentType, "ContentType");
SetValue3(CbbEncoding, "Encoding");
@ -861,7 +925,26 @@ namespace 开发辅助工具.Tools
}
void SetValue2(ryControls.ComboBoxEx2 cbb, string Field)
{
if (row[Field].ToString().Length>0) { cbb.Text = row[Field].ToString(); }
if (row[Field].ToString().Length>0)
{
var have = false;
for (int i = 0; i < cbb.Items.Count; i++)
{
if(cbb.Items[i] is ComboPopupItem item2)
{
if(item2.ValueStr1== row[Field].ToString())
{
cbb.SelectedIndex = i;
have = true;
break;
}
}
}
if (!have)
{
cbb.Text = row[Field].ToString();
}
}
}
void SetValue3(ryControls.RyComboBox cbb, string Field)
{
@ -875,6 +958,7 @@ namespace 开发辅助工具.Tools
db.Free();
}
TxtUrl.Text = url;
IsAddNewUrl = false;
if (TxtCookie.Text != "") { tabPage2.Text = "Cookie(有数据)"; }
else { tabPage2.Text = "Cookie"; }
if (TxtInputHeader.Text != "") { tabPage7.Text = "Header(有数据)"; }
@ -916,12 +1000,38 @@ namespace 开发辅助工具.Tools
{
db.AddParameter("SearchText", "%" + TxtUrl.Text + "%");
db.AddParameter("today",DateTime.Now.Date);
Dictionary<string, Image> dict_icon = new Dictionary<string, Image>();
DataSet ds2 = db.ReadData("select * from Urls" + sql_where + " and editTime>=@today order by IsFav desc,editTime desc", db.GetParameter());
for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
{
DataRow row = ds2.Tables[0].Rows[i];
DateTime editTime = row["editTime"].ToDateTime();
Image icon = null;
try
{
var uri = new Uri(row["Url"].ToString());
if(dict_icon.ContainsKey(uri.Host))
{
icon=dict_icon[uri.Host];
}
else
{
if (System.IO.File.Exists(Application.StartupPath + "\\SysDb\\webicons\\" + uri.Host + ".png"))
{
icon = RyImage.LoadPic(Application.StartupPath + "\\SysDb\\webicons\\" + uri.Host + ".png");
}
else if (System.IO.File.Exists(Application.StartupPath + "\\UserDb\\webicons\\" + uri.Host + ".ico"))
{
icon = RyImage.LoadPic(Application.StartupPath + "\\UserDb\\webicons\\" + uri.Host + ".ico");
}
else if (System.IO.File.Exists(Application.StartupPath + "\\UserDb\\webicons\\" + uri.Host + ".png"))
{
icon = RyImage.LoadPic(Application.StartupPath + "\\UserDb\\webicons\\" + uri.Host + ".png");
}
dict_icon[uri.Host] = icon;
}
}
catch { }
var item = new UrlInfo()
{
Id = row["id"].ToInt(),
@ -929,7 +1039,8 @@ namespace 开发辅助工具.Tools
Des = row["Des"].ToString(),
Url = row["Url"].ToString(),
ClickCount = row["ClickCount"].ToInt(),
Fav = row["IsFav"].ToInt() == 1
Fav = row["IsFav"].ToInt() == 1,
Icon=icon
};
if (editTime >= DateTime.Now.AddMinutes(-10))
{
@ -946,11 +1057,40 @@ namespace 开发辅助工具.Tools
{
DataRow row = ds.Tables[0].Rows[i];
DateTime editTime = row["editTime"].ToDateTime();
var item = new UrlInfo() { Id = row["id"].ToInt(), Name = row["Name"].ToString(),
Image icon = null;
try
{
var uri = new Uri(row["Url"].ToString());
if (dict_icon.ContainsKey(uri.Host))
{
icon = dict_icon[uri.Host];
}
else
{
if (System.IO.File.Exists(Application.StartupPath + "\\SysDb\\webicons\\" + uri.Host + ".png"))
{
icon = RyImage.LoadPic(Application.StartupPath + "\\SysDb\\webicons\\" + uri.Host + ".png");
}
else if (System.IO.File.Exists(Application.StartupPath + "\\UserDb\\webicons\\" + uri.Host + ".ico"))
{
icon = RyImage.LoadPic(Application.StartupPath + "\\UserDb\\webicons\\" + uri.Host + ".ico");
}
else if (System.IO.File.Exists(Application.StartupPath + "\\UserDb\\webicons\\" + uri.Host + ".png"))
{
icon = RyImage.LoadPic(Application.StartupPath + "\\UserDb\\webicons\\" + uri.Host + ".png");
}
dict_icon[uri.Host] = icon;
}
}
catch { }
var item = new UrlInfo() {
Id = row["id"].ToInt(), Name = row["Name"].ToString(),
Des = row["Des"].ToString(),
Url = row["Url"].ToString(),
ClickCount = row["ClickCount"].ToInt(),
Fav = row["IsFav"].ToInt()==1 };
Fav = row["IsFav"].ToInt()==1,
Icon=icon
};
if (editTime >= DateTime.Now.AddMinutes(-10))
{
list.Insert(0,item);
@ -966,6 +1106,7 @@ namespace 开发辅助工具.Tools
objectListView2.Visible = list.Count != 0;
objectListView2.BringToFront();
}
IsAddNewUrl = true;
#endregion
}
@ -989,6 +1130,38 @@ namespace 开发辅助工具.Tools
private void TxtUrl_Leave(object sender, EventArgs e)
{
if (IsAddNewUrl && !objectListView2.Visible)
{
if (TxtCookie.Text.Length > 0 && TxtInputHeader.Text.Length > 0)
{
if (MessageBox.Show("你修改了新Url,是否要清空Cookie和Header", "询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
TxtCookie.Text = "";
TxtInputHeader.Text = "";
}
}
else if (TxtCookie.Text.Length > 0)
{
if (MessageBox.Show("你修改了新Url,是否要清空Cookie", "询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
TxtCookie.Text = "";
}
}
else if (TxtInputHeader.Text.Length > 0)
{
if (MessageBox.Show("你修改了新Url,是否要清空Header", "询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
TxtInputHeader.Text = "";
}
}
if (CbbReferer.Text.Length > 0)
{
if (MessageBox.Show("你修改了新Url,是否要清空引用页?", "询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
CbbReferer.Text = "";
}
}
}
if (!objectListView2.Focused)
{
objectListView2.Visible = false;
@ -1429,9 +1602,9 @@ namespace 开发辅助工具.Tools
};
if (CbbUserAgent.SelectedIndex != -1)
{
if (CbbUserAgent.SelectedItem is UserAgentInfo info2)
if (CbbUserAgent.SelectedItem is ComboPopupItem info2)
{
item.UserAgent = info2.useragent;
item.UserAgent = info2.ValueStr1;
}
}
if (!string.IsNullOrEmpty(this.CbbIp.Text.Trim()))
@ -1653,6 +1826,7 @@ namespace 开发辅助工具.Tools
else if (Method == "head") { RbHead.Checked = true; }
else { RbGet.Checked = true; }
TxtUrl.Text = json_set.GetJsonValue("Url", "");
IsAddNewUrl = false;
CbbEncoding.Text = json_set.GetJsonValue("Encoding", "");
CbbTimeout.Text = json_set.GetJsonValue("Timeout", "");
CbbWriteTimeout.Text = json_set.GetJsonValue("WriteTimeout", "");
@ -1781,6 +1955,25 @@ namespace 开发辅助工具.Tools
highlightEditor1.SetHightlightText(curl, "bat");
tabControl2.SelectedTab = tabPage12;
}
private void CbbUserAgent_SelectedIndexChanged(object sender, EventArgs e)
{
if (CbbUserAgent.SelectedIndex != -1)
{
if (CbbUserAgent.SelectedItem is ComboPopupItem info2)
{
CbbUserAgent.ToolTipText= info2.ValueStr1;
}
else
{
CbbUserAgent.ToolTipText = CbbUserAgent.Text;
}
}
else
{
CbbUserAgent.ToolTipText = CbbUserAgent.Text;
}
}
}
public class UrlInfo
{
@ -1793,14 +1986,6 @@ namespace 开发辅助工具.Tools
/// 是否收藏
/// </summary>
public bool Fav { get; set; } = false;
}
public class UserAgentInfo
{
public string name = "";
public string useragent = "";
public override string ToString()
{
return name;
}
public Image Icon { get; set; } = null;
}
}

View File

@ -117,33 +117,33 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>423, 17</value>
</metadata>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>141, 17</value>
</metadata>
<metadata name="menuRight1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BtnMore.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAeFJREFUWEe9
ldErBFEYxefVX+BlX7Rzv+8iSma+a1OS8qCUB3lUnjz4J0SUEomIUkoRf5EHpZQHpTwo5UHRLDszzt7d
vbPu7K+mdr85954zs7NzgiAIguFqLQzD8WryuWwGBkw/sxmtVGp99UEYmiEm+UoOIlnHBT7RKlrMvOK1
+jC58sawzBDMZoGUfGY+Zjk9mZiWGUIrmWeSj8zD3KCmtBBE0RwreU/3ZrlCTYrvEIPKzDLJW27PS9Q0
4SsEs8wwyWu2j7lATUv+G2JQxVNM8pLb4xw1Hek2BHM0SUqes3XxGWqcKRpCqQnDJE/pGiUnqCmMawhm
iZjlMac7Qk3XdAoRhtEYkzxkV24O8ue90CqE1rURIrlvzDXJHq71hi0Ek7lLZxzv4hondBhNJwfObWCI
7LbLDmptJOWnVbySDrQWym5fvPFH3QIMQSTbqLHBLEuplzKr9SG2IbNs4UIbaQhlNvGcjbz5T+g2beh6
O/Hf0Ao0d2rDrh8ooMm8SBtqkn3UFKHJvMs2PESNC2j+rzZkMseoaQeae2lDZjlFjQ0099qGna4EzUtq
Q/tviealtiE+zWjeqza8TuZo3tM2ZJLbP989vbzaYgnxe9vdXt9ewBCubeiVom1YCq5t2I5vVLR22kys
XlkAAAAASUVORK5CYII=
</value>
</data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>423, 17</value>
</metadata>
<metadata name="MenuMore.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>306, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BtnShare.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAglJREFUaEPt
mettwzAMhD1KR8koziQdpSMEcAbwKB6lBcU8HIqUdBKlGEU+gH/aUrqjaVp2p+nDh07M1+9pXn6m87JN
5+W3IDbOuXzJpcYyX0+KuPIgE61UF4E2l4JqopVwJdFCkGsppC42uTTMvZBQS56XVRGDB1w5hX0nFJnw
qr6HeCJu5TVtwr5xabKc5J+7QsLmZX70PU8+rRsSJmLHvhWVBMHQiL7HppsYYYCuJIuO98FCMdHbgN4S
LSFM9DJArSLX9IyHiR4G/KuuxcqbeRrgkTxQfNjUyQCLRycLHjQMXjd2MjCi8qomDwP14tdQ0RC3h5m1
Fg0FlVYDVr4WLHaOZ/kObb3kiUBL4KS8gZJzFFc3IUAg9WRzZQJiwLrcD+GJSlvs9WTFE7UG7ENg4uBV
AOsBDpK1BrSRmcspgU+nheKJGgNx7wMV86bKwEvO7qn4DmoMHEY8gRp4tk/7C7wLsIH7lGiYNCU8XzUz
9xZqgH+XWbQR+XyxtAQQA+ElXPm5J/GEu+nxOAuZizhi6rH2NhM0A537nkD0BOCEzsB64ITOwHrghM7A
euCEzsB64ITOwHrghM7AeqwvaNHni0FY31BtA+abFcUaEkeFPEK8GkgcX7S3q6NFEnYfJx0lSF+W416F
wveOUd82saB7MNH7GtxO7zdS1DYpwr+FlEnRNTKfHf8bf6XooWOz/B1WAAAAAElFTkSuQmCC
</value>
</data>
<data name="BtnSetting.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAj9JREFUWEft
@ -159,18 +159,18 @@
zn1q0AY31aIeqje67w35nxkHkkdnx0z/8z/OP/FHzL6w8yGpAAAAAElFTkSuQmCC
</value>
</data>
<data name="BtnShare.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="BtnMore.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAglJREFUaEPt
mettwzAMhD1KR8koziQdpSMEcAbwKB6lBcU8HIqUdBKlGEU+gH/aUrqjaVp2p+nDh07M1+9pXn6m87JN
5+W3IDbOuXzJpcYyX0+KuPIgE61UF4E2l4JqopVwJdFCkGsppC42uTTMvZBQS56XVRGDB1w5hX0nFJnw
qr6HeCJu5TVtwr5xabKc5J+7QsLmZX70PU8+rRsSJmLHvhWVBMHQiL7HppsYYYCuJIuO98FCMdHbgN4S
LSFM9DJArSLX9IyHiR4G/KuuxcqbeRrgkTxQfNjUyQCLRycLHjQMXjd2MjCi8qomDwP14tdQ0RC3h5m1
Fg0FlVYDVr4WLHaOZ/kObb3kiUBL4KS8gZJzFFc3IUAg9WRzZQJiwLrcD+GJSlvs9WTFE7UG7ENg4uBV
AOsBDpK1BrSRmcspgU+nheKJGgNx7wMV86bKwEvO7qn4DmoMHEY8gRp4tk/7C7wLsIH7lGiYNCU8XzUz
9xZqgH+XWbQR+XyxtAQQA+ElXPm5J/GEu+nxOAuZizhi6rH2NhM0A537nkD0BOCEzsB64ITOwHrghM7A
euCEzsB64ITOwHrghM7AeqwvaNHni0FY31BtA+abFcUaEkeFPEK8GkgcX7S3q6NFEnYfJx0lSF+W416F
wveOUd82saB7MNH7GtxO7zdS1DYpwr+FlEnRNTKfHf8bf6XooWOz/B1WAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAeFJREFUWEe9
ldErBFEYxefVX+BlX7Rzv+8iSma+a1OS8qCUB3lUnjz4J0SUEomIUkoRf5EHpZQHpTwo5UHRLDszzt7d
vbPu7K+mdr85954zs7NzgiAIguFqLQzD8WryuWwGBkw/sxmtVGp99UEYmiEm+UoOIlnHBT7RKlrMvOK1
+jC58sawzBDMZoGUfGY+Zjk9mZiWGUIrmWeSj8zD3KCmtBBE0RwreU/3ZrlCTYrvEIPKzDLJW27PS9Q0
4SsEs8wwyWu2j7lATUv+G2JQxVNM8pLb4xw1Hek2BHM0SUqes3XxGWqcKRpCqQnDJE/pGiUnqCmMawhm
iZjlMac7Qk3XdAoRhtEYkzxkV24O8ue90CqE1rURIrlvzDXJHq71hi0Ek7lLZxzv4hondBhNJwfObWCI
7LbLDmptJOWnVbySDrQWym5fvPFH3QIMQSTbqLHBLEuplzKr9SG2IbNs4UIbaQhlNvGcjbz5T+g2beh6
O/Hf0Ao0d2rDrh8ooMm8SBtqkn3UFKHJvMs2PESNC2j+rzZkMseoaQeae2lDZjlFjQ0099qGna4EzUtq
Q/tviealtiE+zWjeqza8TuZo3tM2ZJLbP989vbzaYgnxe9vdXt9ewBCubeiVom1YCq5t2I5vVLR22kys
XlkAAAAASUVORK5CYII=
</value>
</data>
<metadata name="MenuSetting.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -48,6 +48,7 @@
this.Rich1.Size = new System.Drawing.Size(356, 497);
this.Rich1.TabIndex = 0;
this.Rich1.Text = "";
this.Rich1.WordWrap = true;
//
// Rich2
//
@ -60,10 +61,10 @@
this.Rich2.Size = new System.Drawing.Size(356, 497);
this.Rich2.TabIndex = 1;
this.Rich2.Text = "";
this.Rich2.WordWrap = true;
//
// BtnSubmit
//
this.BtnSubmit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BtnSubmit.BaseColor = System.Drawing.Color.Green;
this.BtnSubmit.ColorGradient = true;
this.BtnSubmit.Location = new System.Drawing.Point(2, 5);
@ -77,7 +78,6 @@
//
// BtnCancel
//
this.BtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BtnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.BtnCancel.ColorGradient = true;
this.BtnCancel.Location = new System.Drawing.Point(83, 5);

View File

@ -0,0 +1,100 @@
namespace SuperDesign.Tools.UpLog
{
partial class FrmGroupSelected
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmGroupSelected));
this.objectListView1 = new BrightIdeasSoftware.ObjectListView();
this.OlvGroup = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.BtnDel = new ryControls.ButtonEx();
((System.ComponentModel.ISupportInitialize)(this.objectListView1)).BeginInit();
this.SuspendLayout();
//
// objectListView1
//
this.objectListView1.AllColumns.Add(this.OlvGroup);
this.objectListView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.objectListView1.CellEditUseWholeCell = false;
this.objectListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.OlvGroup});
this.objectListView1.Cursor = System.Windows.Forms.Cursors.Default;
this.objectListView1.FullRowSelect = true;
this.objectListView1.HideSelection = false;
this.objectListView1.Location = new System.Drawing.Point(12, 42);
this.objectListView1.Name = "objectListView1";
this.objectListView1.Size = new System.Drawing.Size(636, 504);
this.objectListView1.TabIndex = 0;
this.objectListView1.UseCompatibleStateImageBehavior = false;
this.objectListView1.View = System.Windows.Forms.View.Details;
this.objectListView1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.ObjectListView1_MouseDoubleClick);
//
// OlvGroup
//
this.OlvGroup.Text = "分组";
this.OlvGroup.Width = 300;
//
// BtnDel
//
this.BtnDel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BtnDel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.BtnDel.ColorGradient = true;
this.BtnDel.Location = new System.Drawing.Point(573, 3);
this.BtnDel.Name = "BtnDel";
this.BtnDel.Size = new System.Drawing.Size(75, 33);
this.BtnDel.TabIndex = 12;
this.BtnDel.Text = "删除";
this.BtnDel.UseDefSkin = false;
this.BtnDel.UseVisualStyleBackColor = true;
this.BtnDel.Click += new System.EventHandler(this.BtnDel_Click);
//
// FrmGroupSelected
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(660, 558);
this.Controls.Add(this.BtnDel);
this.Controls.Add(this.objectListView1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmGroupSelected";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "分组";
this.Load += new System.EventHandler(this.FrmGroupSelected_Load);
((System.ComponentModel.ISupportInitialize)(this.objectListView1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private BrightIdeasSoftware.ObjectListView objectListView1;
private BrightIdeasSoftware.OLVColumn OlvGroup;
private ryControls.ButtonEx BtnDel;
}
}

View File

@ -0,0 +1,128 @@
using Newtonsoft.Json.Linq;
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SuperDesign.Tools.UpLog
{
public partial class FrmGroupSelected : Form
{
public FrmGroupSelected()
{
InitializeComponent();
OlvGroup.AspectGetter = delegate (object x) { return ((GroupInfo)x).GroupName; };
}
public string ProjectName { get; set; }
public string DbPath { get; set; }
public string SelectedGroupName { get; private set; } = "";
class GroupInfo
{
public string GroupName { get; set; }
public long Time { get; set; }
}
private void ObjectListView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (objectListView1.SelectedObject == null) { return; }
var item = (GroupInfo)objectListView1.SelectedObject;
SelectedGroupName = item.GroupName;
DialogResult = DialogResult.OK;
}
private void FrmGroupSelected_Load(object sender, EventArgs e)
{
IDbInterface db = new SQLiteDataProvider();
if (db.ConnDb(DbPath) == 1)
{
JObject jo_group;
try
{
var ds_group = db.ReadData("select * from Settings where Name='GroupList'");
if (ds_group.HaveData())
{
jo_group = JObject.Parse(ds_group.GetRow(0)["Value"].ToString());
}
else
{
jo_group = new JObject();
}
ds_group?.Dispose();
}
catch { jo_group = new JObject(); }
var jarr_group = jo_group.GetJsonValue("group_" +ProjectName, new JArray());
List<GroupInfo> list = new List<GroupInfo>();
for (int i = 0; i < jarr_group.Count; i++)
{
list.Add(new GroupInfo()
{
GroupName = jarr_group[i].GetJsonValue("text",""),
Time = jarr_group[i].GetJsonValue("time", 0L),
});
}
objectListView1.AddObjects(list);
}
db.Free();
}
private void BtnDel_Click(object sender, EventArgs e)
{
if (objectListView1.SelectedObject == null) {
MessageBox.Show("请选择分组。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (MessageBox.Show("是否确认要删除该分组?", "询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) != DialogResult.OK)
{
return;
}
var item = (GroupInfo)objectListView1.SelectedObject;
IDbInterface db = new SQLiteDataProvider();
if (db.ConnDb(DbPath) == 1)
{
JObject jo_group;
try
{
var ds_group = db.ReadData("select * from Settings where Name='GroupList'");
if (ds_group.HaveData())
{
jo_group = JObject.Parse(ds_group.GetRow(0)["Value"].ToString());
}
else
{
jo_group = new JObject();
}
ds_group?.Dispose();
}
catch { jo_group = new JObject(); }
var jarr_group = jo_group.GetJsonValue("group_" + ProjectName, new JArray());
for (int i = 0; i < jarr_group.Count; i++)
{
if(jarr_group[i].GetJsonValue("text", "")==item.GroupName)
{
jarr_group[i].Remove();
objectListView1.RemoveObject(item);
break;
}
}
jo_group["group_" + ProjectName] = jarr_group;
RyQuickSQL MySQL_Setting = new RyQuickSQL("Settings");
MySQL_Setting.AddField("Name", "GroupList");
MySQL_Setting.AddField("Value", jo_group.ToString());
MySQL_Setting.AddField("EditTime", DateTime.Now);
if (db.Update(MySQL_Setting, "Name=@Name") == 0)
{
MySQL_Setting.AddField("AddTime", DateTime.Now);
db.Insert(MySQL_Setting);
}
}
db.Free();
}
}
}

View File

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAAAIAAxAgAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAgAAAAIAgGAAAAc3p69AAAAARn
QU1BAACxjwv8YQUAAAHoSURBVFhHxVZLTsMwEO1ROEgXPQqLInEAVmx6hNwAH6EiLCoWkEWFIkGlsi0b
Lyp1AwuKaMVH7UNj7MoeJ46bNPCkJ7XJeN6zPfak06mJpI9BcgIkJ5D0m79vDZYwZ7tGtLAsEOY8rJGk
j16kMCeNOeb5opGc4qimMCetSI/nL4UWzgoSNWXYiBYWBQMPTeEYUcLlld0mBWl3WlruWMr/NiD+cu9d
8ruixernzNTel4Euj5aMhI9hPnRdaSOtXESOFv3JU2R5CuQphP3SOqJ1jHhXsdK6wkBrZUorTyH1A0Op
goqNcJEies2ICTtaZMDMnnNfI/sIG4qYIGXETsy2po4weE5TC8ILDBgpwt7CHIsZurN7TL2BASMxM368
Rb5+w5k9zgEtK4AMGh8rjGgQT+QY+WVZDSlObzD/WiMxeQHIyQhdR9hcPHeXGH9/IreDV0uMKQlPXEUa
876EsHJhs8H86WF3ye26IT/jkoxQsBm43WL++oxhjBGKodiAsKNV2g0vzjGfXGPIjbws1JLzu4Mo6V2k
sGFWdbaVEUpC28GNUI3QjGsIE4VXhKG2bBkJIkK4ohtWtGXLyM5M5Iy9phRElRFjhsifNxLmaNCWvW5Y
G3o1Yo14veFgqPg+aE+YwzJCNdJI+AcH16VD0jG8swAAAABJRU5ErkJggg==
</value>
</data>
</root>

View File

@ -0,0 +1,102 @@
namespace SuperDesign.Tools.UpLog
{
partial class FrmSaveContent
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmSaveContent));
this.Rich1 = new ryControls.Controls.RichTextBox2();
this.BtnSave = new ryControls.ButtonEx();
this.BtnCancel = new ryControls.ButtonEx();
this.SuspendLayout();
//
// Rich1
//
this.Rich1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.Rich1.DetectUrls = false;
this.Rich1.EmptyText = "";
this.Rich1.Font = new System.Drawing.Font("Courier New", 10F);
this.Rich1.Location = new System.Drawing.Point(1, 44);
this.Rich1.Name = "Rich1";
this.Rich1.OnlyInputText = true;
this.Rich1.Size = new System.Drawing.Size(786, 515);
this.Rich1.TabIndex = 0;
this.Rich1.Text = "";
this.Rich1.WordWrap = true;
//
// BtnSave
//
this.BtnSave.BaseColor = System.Drawing.Color.Green;
this.BtnSave.ColorGradient = true;
this.BtnSave.Location = new System.Drawing.Point(2, 5);
this.BtnSave.Name = "BtnSave";
this.BtnSave.Size = new System.Drawing.Size(75, 33);
this.BtnSave.TabIndex = 10;
this.BtnSave.Text = "保存";
this.BtnSave.UseDefSkin = false;
this.BtnSave.UseVisualStyleBackColor = true;
this.BtnSave.Click += new System.EventHandler(this.BtnSubmit_Click);
//
// BtnCancel
//
this.BtnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.BtnCancel.ColorGradient = true;
this.BtnCancel.Location = new System.Drawing.Point(83, 5);
this.BtnCancel.Name = "BtnCancel";
this.BtnCancel.Size = new System.Drawing.Size(75, 33);
this.BtnCancel.TabIndex = 11;
this.BtnCancel.Text = "取消";
this.BtnCancel.UseDefSkin = false;
this.BtnCancel.UseVisualStyleBackColor = true;
this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
//
// FrmSaveContent
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(790, 563);
this.Controls.Add(this.BtnCancel);
this.Controls.Add(this.BtnSave);
this.Controls.Add(this.Rich1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmSaveContent";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "内容设置";
this.Load += new System.EventHandler(this.FrmCompareLog_Load);
this.Resize += new System.EventHandler(this.FrmCompareLog_Resize);
this.ResumeLayout(false);
}
#endregion
private ryControls.ButtonEx BtnSave;
private ryControls.ButtonEx BtnCancel;
public ryControls.Controls.RichTextBox2 Rich1;
}
}

View File

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SuperDesign.Tools.UpLog
{
public partial class FrmSaveContent : Form
{
public FrmSaveContent()
{
InitializeComponent();
}
private void FrmCompareLog_Resize(object sender, EventArgs e)
{
}
private void FrmCompareLog_Load(object sender, EventArgs e)
{
}
private void BtnSubmit_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}
private void BtnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
}
}

View File

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAAAIADGAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAgAAAAIAgGAAAAc3p69AAAAARn
QU1BAACxjwv8YQUAAAF9SURBVFhHY2CAgsOP/zscevR//qFH/+8fevT//9rTr/5L6oRSjNVss/5P33Ll
P8hMqNn7QXbB7AWDQ4/+J0AVwDFIE8gAoZRXFGE5cxQHwPHhh//rkX2OoQCkCaRZMPc/RRiXA0B4//3/
CiDfg4IdQ5JcB/hO+v9/6Yn///XrCTsAFB0gB6ALUuQAGDh8iygH/KeZA0BgZDvg4dsBcgAoAYJAxzYI
X9GSTAeACiJQISIcewXDEkIYlgNAekFlCcgsdPMJOgCES6bu/y9tmgUuUNAtIYRBemQdGv5HFkzFMJdo
B4BcntSw6r+yddZ/ZZcGkjDI54QsJ+gAGAY5pGnefpIwuhm4MFEOoCUedcCoA0YdMOoAgg5Yf+/T/9IL
Z0nGHVdvgvWim4eOCTrA/8Tm/xr7Z5GFrQ8vxzAPHQ9+B4CCERSc6EFMDKZKFNAagxwA7ooNEL4PcgDW
jgmd8H5Y12xAQgHeSQV1FNEl6YATUHrI0JDYT4fQmI/cPQcAn3IBrGGmgNcAAAAASUVORK5CYII=
</value>
</data>
</root>

View File

@ -99,7 +99,7 @@ namespace SuperDesign.Tools
DateTime retStartDay = DateTime.Now.Date.AddDays(-(index - 1));
if(dt >= retStartDay && dt < retStartDay.AddDays(7))
{
dt_str = "本" + dt.ToString("dd HH:mm");
dt_str = "本" + dt.ToString("ddd HH:mm");
}
}
line += "<span color='red'>" + System.Web.HttpUtility.HtmlEncode("=>" + dt_str) + "</span>";

View File

@ -1,9 +1,10 @@
[project]
name=开发辅助工具
engname=SupperDesign
engname=SuperDesign
usqver=3.0
proglang=c#
progID=39871d4b-1b46-4e3c-9c45-8fda3613d857
confuse=0
ftpid=1
ftp_remote_dir=/OnlineUpgrade
confuse=0
ftpid=1
ftp_remote_dir=/OnlineUpgrade
UploadName=SuperDesign