Compare commits

...

7 Commits

Author SHA1 Message Date
鑫Intel
b4830786a0 ### 2022-05-26更新
------
#### MyDbV4    V3.0.2205.2601
- *.[新增]新增BigFileOp类,支持对大文件和批量文件操作处理。
- *.[改进]RyFiles类的部分函数更换为BigFileOp类底层操作。
2022-05-26 17:12:53 +08:00
鑫Intel
f7c882194c ### 2022-05-09更新
------
#### MyDbV4    V3.0.2205.0901
- *.[改进]RyForm类的Show函数针对窗体最小化或不在屏幕内的情况做出优化。
- *.[改进]OpenFile函数在打开文件夹时,会调用默认资源管理器打开,而不再限定为系统。

#### ryControls    V3.0.2205.0901
- *.[改进]GMForm窗体在最大化时不可移动窗体。
- *.[改进]改进ObjectListview列表中的按钮显示效果。
2022-05-09 16:59:46 +08:00
鑫Intel
cf9b35d77e ### 2022-05-07更新
------
#### MyDbV4    V3.0.2205.0701
- *.[新增]新增多个注册表操作相关函数。
2022-05-07 09:51:33 +08:00
鑫Intel
bfb3e7a2b3 ### 2022-03-11更新
------
#### MyDbV4    V3.0.2203.1101
- *.[改进]ryQuickSQL中的int和long类型直接转变为数值,而不是参数变量。
- *.[修复]ryQuickSQL中的GetUpdateSQL函数会将《计算参数》进行更新的BUG。
2022-03-11 11:14:16 +08:00
鑫Intel
00c9dec061 ### 2022-03-01更新
------
#### MyDbV4    V3.0.2203.0101
- *.[新增]新增IsInTime和IsInDay扩展函数。
- *.[改进]完善部分注释,更加易懂。
- *.[改进]HttpServer类新增默认对postdata内容进行解析。
- *.[修复]修复PinYin类对《鑫》字转换错误的BUG。

#### MyDb_MySQLV4    V3.0.2203.0101
- *.[改进]MySQL的连接字符串自动追加Allow User Variables=True;
2022-03-01 17:01:48 +08:00
鑫Intel
6342b9db9d ### 2022-02-21更新
------
#### MyDbV4    V3.0.2202.2101
- *.[新增]新增HttpServer类,可以非常方便的建立http服务器。
2022-02-21 17:17:02 +08:00
鑫Intel
4282403900 ### 2022-02-20更新
------
#### MyDbV4    V3.0.2202.2001
- *.[新增]WebDecode类新增UrlToData和GetParam函数。
- *.[新增]VarExtension类新增针对GetParam的扩展方法。
- *.[改进]WebDecode类的IsUrlSafeChar和IntToHex函数改为私有方法。
2022-02-20 17:00:39 +08:00
72 changed files with 2889 additions and 554 deletions

4
.gitignore vendored
View File

@ -4,3 +4,7 @@ Res/
*.pdb
**/dcu
*.dcu
/Source/.vs/公用控件组V4/v17/*.suo
/Source/.vs/公用控件组V4/FileContentIndex/*.vsidx
/Source/.vs
.vs

View File

@ -1197,6 +1197,14 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Decimal,System.String)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
</summary>
<param name="input"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Double)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
@ -1204,6 +1212,14 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Double,System.String)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
</summary>
<param name="input"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToInt(System.Object)">
<summary>
将指定类型转换成整型
@ -1262,23 +1278,61 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInTime(System.DateTime,System.Int32,System.Int32)">
<summary>
判断时间是否在指定时间上
</summary>
<param name="input"></param>
<param name="Hour"></param>
<param name="Minute"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInTime(System.DateTime,System.Int32,System.Int32,System.Int32)">
<summary>
判断时间是否在指定时间上
</summary>
<param name="input"></param>
<param name="Hour"></param>
<param name="Minute"></param>
<param name="Second"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInDay(System.DateTime,System.Int32,System.Int32)">
<summary>
判断时间是否在指定日期
</summary>
<param name="input"></param>
<param name="Month"></param>
<param name="Day"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInDay(System.DateTime,System.Int32,System.Int32,System.Int32)">
<summary>
判断时间是否在指定日期
</summary>
<param name="input"></param>
<param name="Year"></param>
<param name="Month"></param>
<param name="Day"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateTimeStr(System.DateTime)">
<summary>
转换DateTime类型到日期时间字符串
转换DateTime类型到日期时间字符串(例如 2000-01-01 08:08:08)
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateStr(System.DateTime)">
<summary>
转换DateTime类型到日期字符串
转换DateTime类型到日期字符串(例如 2000-01-01)
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateWeekStr(System.DateTime)">
<summary>
转换DateTime类型到日期星期字符串
转换DateTime类型到日期星期字符串(例如 2000-01-01 星期六)
</summary>
<param name="input"></param>
<returns></returns>
@ -1449,6 +1503,68 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.String)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Int32)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Int64)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Decimal)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Double)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Boolean)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="T:ryCommon.RySoft">
<summary>
文件信息
@ -1498,6 +1614,88 @@
</summary>
<returns></returns>
</member>
<member name="T:ryCommon.BigFileOp">
<summary>
大文件与批量文件操作类,支持中途取消操作,本类需要实例化操作
</summary>
</member>
<member name="T:ryCommon.BigFileOp.TranProgressHandler">
<summary>
传输进度
</summary>
<param name="curValue">当前传输完成的值</param>
<param name="totalValue">全部值,为-1表示无法获取</param>
<param name="percent">当前传输的百分比,为-1表示无法获取</param>
</member>
<member name="E:ryCommon.BigFileOp.OnProgress">
<summary>
传输进度
</summary>
</member>
<member name="E:ryCommon.BigFileOp.OnCanel">
<summary>
取消事件
</summary>
</member>
<member name="M:ryCommon.BigFileOp.CopyBigFile(System.String,System.String)">
<summary>
大文件按流复制文件,支持自动创建目标文件夹。 true复制成功 false复制失败
</summary>
<param name="soucrePath">原始文件路径</param>
<param name="targetPath">复制目标文件路径</param>
<returns></returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolder(System.String,System.String)">
<summary>
复制文件夹到目标文件夹,不支持进度事件,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolderByProgress(System.String,System.String)">
<summary>
复制文件夹到目标文件夹,支持进度事件,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolder(System.String,System.String,System.Int32,System.Int32,System.Int32@)">
<summary>
复制文件夹到目标文件夹,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<param name="StartCount">初始的文件数量</param>
<param name="TotalCount">总数量,如果不计算,则使用-1</param>
<param name="Count">操作的数量,包含成功的和失败的</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.GetFilesCount(System.String)">
<summary>
获取文件夹中的文件数量
</summary>
<param name="Dir">文件夹路径</param>
<returns>返回文件数量,中途取消则返回-1</returns>
</member>
<member name="M:ryCommon.BigFileOp.GetFolderSize(System.String)">
<summary>
获取文件夹的大小
</summary>
<param name="Dir">文件夹路径</param>
<returns>返回文件数量,中途取消则返回-1</returns>
</member>
<member name="M:ryCommon.BigFileOp.AddFileToFolder(System.String,System.String,System.Boolean,System.Boolean@)">
<summary>
添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径)
</summary>
<param name="filepath">要添加的文件路径</param>
<param name="toFolder">要添加到的文件夹</param>
<param name="RenameByTime">是否根据时间进行重命名</param>
<param name="OK">返回是否成功执行</param>
<returns>成功执行则返回路径,否则返回空</returns>
</member>
<member name="T:ryCommon.Hosts">
<summary>
Hosts操作类
@ -1876,11 +2074,11 @@
</member>
<member name="M:ryCommon.RyFiles.CopyFolder(System.String,System.String)">
<summary>
复制文件夹到目标文件夹
复制文件夹到目标文件夹(从3.0.2205.2601版本起已更换实现底层)
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回移动操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.RyFiles.ReNameFile(System.String,System.String,System.Boolean,System.String@)">
<summary>
@ -3042,6 +3240,12 @@
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RyForm.GetForegroundWindow">
<summary>
获取当前前台的窗口句柄
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RyForm.SetActiveWindow(System.IntPtr)">
<summary>
设置为当前活动窗口
@ -3122,6 +3326,59 @@
<param name="Path"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.DelKey(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String)">
<summary>
删除注册表键(如果存在子键,子键将一并被删除)
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="KeyName"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.DelValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String)">
<summary>
删除注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.GetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.String)">
<summary>
获取注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.String)">
<summary>
设置注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="Value"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.UInt32)">
<summary>
设置注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="Value"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetAutoRun(System.Boolean,System.String,System.String)">
<summary>
设置是否开机启动
@ -8488,6 +8745,120 @@
CookieCollection格式的Cookie集合同时也返回String类型的cookie
</summary>
</member>
<member name="T:RyWeb.HttpServer">
<summary>
Http服务器类
</summary>
</member>
<member name="T:RyWeb.HttpServer.HttpRequestHandler">
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="E:RyWeb.HttpServer.OnHandleGETRequest">
<summary>
当收到Get事件时激发
</summary>
</member>
<member name="E:RyWeb.HttpServer.OnHandlePOSTRequest">
<summary>
当收到Post事件时激发
</summary>
</member>
<member name="P:RyWeb.HttpServer.ListenerHost">
<summary>
监听的主机,默认是localhost
</summary>
</member>
<member name="P:RyWeb.HttpServer.ErrorMessage">
<summary>
最后一次错误信息
</summary>
</member>
<member name="M:RyWeb.HttpServer.#ctor(System.Int32)">
<summary>
在此端口建立Http服务类
</summary>
<param name="port">端口号</param>
</member>
<member name="M:RyWeb.HttpServer.IsRunning">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:RyWeb.HttpServer.Start">
<summary>
开始服务
</summary>
</member>
<member name="M:RyWeb.HttpServer.Exit">
<summary>
退出服务
</summary>
</member>
<member name="M:RyWeb.HttpServer.Finalize">
<summary>
</summary>
</member>
<member name="T:RyWeb.HttpRequest">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.Url">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.PostDataStr">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.PostData">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.String)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.Int32)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.Boolean)">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.UrlReferrer">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.ReturnHtml">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.StatusCode">
<summary>
</summary>
</member>
<member name="T:RyWeb.QuickWeb">
<summary>
@ -8729,6 +9100,24 @@
<param name="str"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlToData(System.String)">
<summary>
将url里的字段分解成表单字典
</summary>
<param name="url"></param>
<returns></returns>
<exception cref="T:System.ArgumentNullException"></exception>
<exception cref="T:System.FormatException"></exception>
</member>
<member name="M:RyWeb.WebDecode.GetParam(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.String)">
<summary>
根据表单字段名获取值
</summary>
<param name="decoded"></param>
<param name="name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="T:rySafe.AES">
<summary>
AES加密解密类

View File

@ -1,2 +1,2 @@
[Money_Op]
hwnd=921334
hwnd=4207474

View File

@ -1,4 +1,4 @@
<root>
<list id="LastUpdateTime" Value="2022/1/27 15:20:41" />
<list id="LastUpdateTime" Value="2022/5/8 9:12:56" />
<list id="UpdateAfterTime" Value="0" />
</root>

View File

@ -8697,6 +8697,11 @@
标题栏图标尺寸
</summary>
</member>
<member name="P:MGdu.WinFormUI.GMForm.GMFormIcon">
<summary>
窗体图标,如果设置本项,将不使用Icon属性
</summary>
</member>
<member name="P:MGdu.WinFormUI.GMForm.IconLeftMargin">
<summary>
标题栏图标与窗体左边框的距离
@ -16148,6 +16153,11 @@
将给定对象的文本和HTML表示复制到剪贴板上。
</summary>
</member>
<member name="M:BrightIdeasSoftware.ObjectListView.CopyObjectsToClipboard">
<summary>
将所有对象的文本和HTML表示复制到剪贴板上。
</summary>
</member>
<member name="M:BrightIdeasSoftware.ObjectListView.ObjectsToHtml(System.Collections.IList)">
<summary>
返回给定对象的html表示形式

View File

@ -1197,6 +1197,14 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Decimal,System.String)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
</summary>
<param name="input"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Double)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
@ -1204,6 +1212,14 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Double,System.String)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
</summary>
<param name="input"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToInt(System.Object)">
<summary>
将指定类型转换成整型
@ -1262,23 +1278,61 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInTime(System.DateTime,System.Int32,System.Int32)">
<summary>
判断时间是否在指定时间上
</summary>
<param name="input"></param>
<param name="Hour"></param>
<param name="Minute"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInTime(System.DateTime,System.Int32,System.Int32,System.Int32)">
<summary>
判断时间是否在指定时间上
</summary>
<param name="input"></param>
<param name="Hour"></param>
<param name="Minute"></param>
<param name="Second"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInDay(System.DateTime,System.Int32,System.Int32)">
<summary>
判断时间是否在指定日期
</summary>
<param name="input"></param>
<param name="Month"></param>
<param name="Day"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInDay(System.DateTime,System.Int32,System.Int32,System.Int32)">
<summary>
判断时间是否在指定日期
</summary>
<param name="input"></param>
<param name="Year"></param>
<param name="Month"></param>
<param name="Day"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateTimeStr(System.DateTime)">
<summary>
转换DateTime类型到日期时间字符串
转换DateTime类型到日期时间字符串(例如 2000-01-01 08:08:08)
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateStr(System.DateTime)">
<summary>
转换DateTime类型到日期字符串
转换DateTime类型到日期字符串(例如 2000-01-01)
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateWeekStr(System.DateTime)">
<summary>
转换DateTime类型到日期星期字符串
转换DateTime类型到日期星期字符串(例如 2000-01-01 星期六)
</summary>
<param name="input"></param>
<returns></returns>
@ -1449,6 +1503,68 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.String)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Int32)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Int64)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Decimal)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Double)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Boolean)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="T:ryCommon.RySoft">
<summary>
文件信息
@ -1498,6 +1614,88 @@
</summary>
<returns></returns>
</member>
<member name="T:ryCommon.BigFileOp">
<summary>
大文件与批量文件操作类,支持中途取消操作,本类需要实例化操作
</summary>
</member>
<member name="T:ryCommon.BigFileOp.TranProgressHandler">
<summary>
传输进度
</summary>
<param name="curValue">当前传输完成的值</param>
<param name="totalValue">全部值,为-1表示无法获取</param>
<param name="percent">当前传输的百分比,为-1表示无法获取</param>
</member>
<member name="E:ryCommon.BigFileOp.OnProgress">
<summary>
传输进度
</summary>
</member>
<member name="E:ryCommon.BigFileOp.OnCanel">
<summary>
取消事件
</summary>
</member>
<member name="M:ryCommon.BigFileOp.CopyBigFile(System.String,System.String)">
<summary>
大文件按流复制文件,支持自动创建目标文件夹。 true复制成功 false复制失败
</summary>
<param name="soucrePath">原始文件路径</param>
<param name="targetPath">复制目标文件路径</param>
<returns></returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolder(System.String,System.String)">
<summary>
复制文件夹到目标文件夹,不支持进度事件,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolderByProgress(System.String,System.String)">
<summary>
复制文件夹到目标文件夹,支持进度事件,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolder(System.String,System.String,System.Int32,System.Int32,System.Int32@)">
<summary>
复制文件夹到目标文件夹,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<param name="StartCount">初始的文件数量</param>
<param name="TotalCount">总数量,如果不计算,则使用-1</param>
<param name="Count">操作的数量,包含成功的和失败的</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.GetFilesCount(System.String)">
<summary>
获取文件夹中的文件数量
</summary>
<param name="Dir">文件夹路径</param>
<returns>返回文件数量,中途取消则返回-1</returns>
</member>
<member name="M:ryCommon.BigFileOp.GetFolderSize(System.String)">
<summary>
获取文件夹的大小
</summary>
<param name="Dir">文件夹路径</param>
<returns>返回文件数量,中途取消则返回-1</returns>
</member>
<member name="M:ryCommon.BigFileOp.AddFileToFolder(System.String,System.String,System.Boolean,System.Boolean@)">
<summary>
添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径)
</summary>
<param name="filepath">要添加的文件路径</param>
<param name="toFolder">要添加到的文件夹</param>
<param name="RenameByTime">是否根据时间进行重命名</param>
<param name="OK">返回是否成功执行</param>
<returns>成功执行则返回路径,否则返回空</returns>
</member>
<member name="T:ryCommon.Hosts">
<summary>
Hosts操作类
@ -1876,11 +2074,11 @@
</member>
<member name="M:ryCommon.RyFiles.CopyFolder(System.String,System.String)">
<summary>
复制文件夹到目标文件夹
复制文件夹到目标文件夹(从3.0.2205.2601版本起已更换实现底层)
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回移动操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.RyFiles.ReNameFile(System.String,System.String,System.Boolean,System.String@)">
<summary>
@ -3042,6 +3240,12 @@
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RyForm.GetForegroundWindow">
<summary>
获取当前前台的窗口句柄
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RyForm.SetActiveWindow(System.IntPtr)">
<summary>
设置为当前活动窗口
@ -3122,6 +3326,59 @@
<param name="Path"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.DelKey(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String)">
<summary>
删除注册表键(如果存在子键,子键将一并被删除)
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="KeyName"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.DelValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String)">
<summary>
删除注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.GetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.String)">
<summary>
获取注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.String)">
<summary>
设置注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="Value"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.UInt32)">
<summary>
设置注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="Value"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetAutoRun(System.Boolean,System.String,System.String)">
<summary>
设置是否开机启动
@ -8488,6 +8745,120 @@
CookieCollection格式的Cookie集合同时也返回String类型的cookie
</summary>
</member>
<member name="T:RyWeb.HttpServer">
<summary>
Http服务器类
</summary>
</member>
<member name="T:RyWeb.HttpServer.HttpRequestHandler">
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="E:RyWeb.HttpServer.OnHandleGETRequest">
<summary>
当收到Get事件时激发
</summary>
</member>
<member name="E:RyWeb.HttpServer.OnHandlePOSTRequest">
<summary>
当收到Post事件时激发
</summary>
</member>
<member name="P:RyWeb.HttpServer.ListenerHost">
<summary>
监听的主机,默认是localhost
</summary>
</member>
<member name="P:RyWeb.HttpServer.ErrorMessage">
<summary>
最后一次错误信息
</summary>
</member>
<member name="M:RyWeb.HttpServer.#ctor(System.Int32)">
<summary>
在此端口建立Http服务类
</summary>
<param name="port">端口号</param>
</member>
<member name="M:RyWeb.HttpServer.IsRunning">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:RyWeb.HttpServer.Start">
<summary>
开始服务
</summary>
</member>
<member name="M:RyWeb.HttpServer.Exit">
<summary>
退出服务
</summary>
</member>
<member name="M:RyWeb.HttpServer.Finalize">
<summary>
</summary>
</member>
<member name="T:RyWeb.HttpRequest">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.Url">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.PostDataStr">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.PostData">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.String)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.Int32)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.Boolean)">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.UrlReferrer">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.ReturnHtml">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.StatusCode">
<summary>
</summary>
</member>
<member name="T:RyWeb.QuickWeb">
<summary>
@ -8729,6 +9100,24 @@
<param name="str"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlToData(System.String)">
<summary>
将url里的字段分解成表单字典
</summary>
<param name="url"></param>
<returns></returns>
<exception cref="T:System.ArgumentNullException"></exception>
<exception cref="T:System.FormatException"></exception>
</member>
<member name="M:RyWeb.WebDecode.GetParam(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.String)">
<summary>
根据表单字段名获取值
</summary>
<param name="decoded"></param>
<param name="name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="T:rySafe.AES">
<summary>
AES加密解密类

View File

@ -8697,6 +8697,11 @@
标题栏图标尺寸
</summary>
</member>
<member name="P:MGdu.WinFormUI.GMForm.GMFormIcon">
<summary>
窗体图标,如果设置本项,将不使用Icon属性
</summary>
</member>
<member name="P:MGdu.WinFormUI.GMForm.IconLeftMargin">
<summary>
标题栏图标与窗体左边框的距离
@ -16148,6 +16153,11 @@
将给定对象的文本和HTML表示复制到剪贴板上。
</summary>
</member>
<member name="M:BrightIdeasSoftware.ObjectListView.CopyObjectsToClipboard">
<summary>
将所有对象的文本和HTML表示复制到剪贴板上。
</summary>
</member>
<member name="M:BrightIdeasSoftware.ObjectListView.ObjectsToHtml(System.Collections.IList)">
<summary>
返回给定对象的html表示形式

View File

@ -1197,6 +1197,14 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Decimal,System.String)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
</summary>
<param name="input"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Double)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
@ -1204,6 +1212,14 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Double,System.String)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
</summary>
<param name="input"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToInt(System.Object)">
<summary>
将指定类型转换成整型
@ -1262,23 +1278,61 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInTime(System.DateTime,System.Int32,System.Int32)">
<summary>
判断时间是否在指定时间上
</summary>
<param name="input"></param>
<param name="Hour"></param>
<param name="Minute"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInTime(System.DateTime,System.Int32,System.Int32,System.Int32)">
<summary>
判断时间是否在指定时间上
</summary>
<param name="input"></param>
<param name="Hour"></param>
<param name="Minute"></param>
<param name="Second"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInDay(System.DateTime,System.Int32,System.Int32)">
<summary>
判断时间是否在指定日期
</summary>
<param name="input"></param>
<param name="Month"></param>
<param name="Day"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInDay(System.DateTime,System.Int32,System.Int32,System.Int32)">
<summary>
判断时间是否在指定日期
</summary>
<param name="input"></param>
<param name="Year"></param>
<param name="Month"></param>
<param name="Day"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateTimeStr(System.DateTime)">
<summary>
转换DateTime类型到日期时间字符串
转换DateTime类型到日期时间字符串(例如 2000-01-01 08:08:08)
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateStr(System.DateTime)">
<summary>
转换DateTime类型到日期字符串
转换DateTime类型到日期字符串(例如 2000-01-01)
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateWeekStr(System.DateTime)">
<summary>
转换DateTime类型到日期星期字符串
转换DateTime类型到日期星期字符串(例如 2000-01-01 星期六)
</summary>
<param name="input"></param>
<returns></returns>
@ -1449,6 +1503,68 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.String)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Int32)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Int64)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Decimal)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Double)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Boolean)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="T:ryCommon.RySoft">
<summary>
文件信息
@ -1498,6 +1614,88 @@
</summary>
<returns></returns>
</member>
<member name="T:ryCommon.BigFileOp">
<summary>
大文件与批量文件操作类,支持中途取消操作,本类需要实例化操作
</summary>
</member>
<member name="T:ryCommon.BigFileOp.TranProgressHandler">
<summary>
传输进度
</summary>
<param name="curValue">当前传输完成的值</param>
<param name="totalValue">全部值,为-1表示无法获取</param>
<param name="percent">当前传输的百分比,为-1表示无法获取</param>
</member>
<member name="E:ryCommon.BigFileOp.OnProgress">
<summary>
传输进度
</summary>
</member>
<member name="E:ryCommon.BigFileOp.OnCanel">
<summary>
取消事件
</summary>
</member>
<member name="M:ryCommon.BigFileOp.CopyBigFile(System.String,System.String)">
<summary>
大文件按流复制文件,支持自动创建目标文件夹。 true复制成功 false复制失败
</summary>
<param name="soucrePath">原始文件路径</param>
<param name="targetPath">复制目标文件路径</param>
<returns></returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolder(System.String,System.String)">
<summary>
复制文件夹到目标文件夹,不支持进度事件,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolderByProgress(System.String,System.String)">
<summary>
复制文件夹到目标文件夹,支持进度事件,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolder(System.String,System.String,System.Int32,System.Int32,System.Int32@)">
<summary>
复制文件夹到目标文件夹,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<param name="StartCount">初始的文件数量</param>
<param name="TotalCount">总数量,如果不计算,则使用-1</param>
<param name="Count">操作的数量,包含成功的和失败的</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.GetFilesCount(System.String)">
<summary>
获取文件夹中的文件数量
</summary>
<param name="Dir">文件夹路径</param>
<returns>返回文件数量,中途取消则返回-1</returns>
</member>
<member name="M:ryCommon.BigFileOp.GetFolderSize(System.String)">
<summary>
获取文件夹的大小
</summary>
<param name="Dir">文件夹路径</param>
<returns>返回文件数量,中途取消则返回-1</returns>
</member>
<member name="M:ryCommon.BigFileOp.AddFileToFolder(System.String,System.String,System.Boolean,System.Boolean@)">
<summary>
添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径)
</summary>
<param name="filepath">要添加的文件路径</param>
<param name="toFolder">要添加到的文件夹</param>
<param name="RenameByTime">是否根据时间进行重命名</param>
<param name="OK">返回是否成功执行</param>
<returns>成功执行则返回路径,否则返回空</returns>
</member>
<member name="T:ryCommon.Hosts">
<summary>
Hosts操作类
@ -1876,11 +2074,11 @@
</member>
<member name="M:ryCommon.RyFiles.CopyFolder(System.String,System.String)">
<summary>
复制文件夹到目标文件夹
复制文件夹到目标文件夹(从3.0.2205.2601版本起已更换实现底层)
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回移动操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.RyFiles.ReNameFile(System.String,System.String,System.Boolean,System.String@)">
<summary>
@ -3042,6 +3240,12 @@
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RyForm.GetForegroundWindow">
<summary>
获取当前前台的窗口句柄
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RyForm.SetActiveWindow(System.IntPtr)">
<summary>
设置为当前活动窗口
@ -3122,6 +3326,59 @@
<param name="Path"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.DelKey(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String)">
<summary>
删除注册表键(如果存在子键,子键将一并被删除)
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="KeyName"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.DelValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String)">
<summary>
删除注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.GetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.String)">
<summary>
获取注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.String)">
<summary>
设置注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="Value"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.UInt32)">
<summary>
设置注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="Value"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetAutoRun(System.Boolean,System.String,System.String)">
<summary>
设置是否开机启动
@ -8461,6 +8718,120 @@
CookieCollection格式的Cookie集合同时也返回String类型的cookie
</summary>
</member>
<member name="T:RyWeb.HttpServer">
<summary>
Http服务器类
</summary>
</member>
<member name="T:RyWeb.HttpServer.HttpRequestHandler">
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="E:RyWeb.HttpServer.OnHandleGETRequest">
<summary>
当收到Get事件时激发
</summary>
</member>
<member name="E:RyWeb.HttpServer.OnHandlePOSTRequest">
<summary>
当收到Post事件时激发
</summary>
</member>
<member name="P:RyWeb.HttpServer.ListenerHost">
<summary>
监听的主机,默认是localhost
</summary>
</member>
<member name="P:RyWeb.HttpServer.ErrorMessage">
<summary>
最后一次错误信息
</summary>
</member>
<member name="M:RyWeb.HttpServer.#ctor(System.Int32)">
<summary>
在此端口建立Http服务类
</summary>
<param name="port">端口号</param>
</member>
<member name="M:RyWeb.HttpServer.IsRunning">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:RyWeb.HttpServer.Start">
<summary>
开始服务
</summary>
</member>
<member name="M:RyWeb.HttpServer.Exit">
<summary>
退出服务
</summary>
</member>
<member name="M:RyWeb.HttpServer.Finalize">
<summary>
</summary>
</member>
<member name="T:RyWeb.HttpRequest">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.Url">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.PostDataStr">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.PostData">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.String)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.Int32)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.Boolean)">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.UrlReferrer">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.ReturnHtml">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.StatusCode">
<summary>
</summary>
</member>
<member name="T:RyWeb.QuickWeb">
<summary>
@ -8702,6 +9073,24 @@
<param name="str"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlToData(System.String)">
<summary>
将url里的字段分解成表单字典
</summary>
<param name="url"></param>
<returns></returns>
<exception cref="T:System.ArgumentNullException"></exception>
<exception cref="T:System.FormatException"></exception>
</member>
<member name="M:RyWeb.WebDecode.GetParam(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.String)">
<summary>
根据表单字段名获取值
</summary>
<param name="decoded"></param>
<param name="name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="T:rySafe.AES">
<summary>
AES加密解密类

View File

@ -8697,6 +8697,11 @@
标题栏图标尺寸
</summary>
</member>
<member name="P:MGdu.WinFormUI.GMForm.GMFormIcon">
<summary>
窗体图标,如果设置本项,将不使用Icon属性
</summary>
</member>
<member name="P:MGdu.WinFormUI.GMForm.IconLeftMargin">
<summary>
标题栏图标与窗体左边框的距离
@ -16148,6 +16153,11 @@
将给定对象的文本和HTML表示复制到剪贴板上。
</summary>
</member>
<member name="M:BrightIdeasSoftware.ObjectListView.CopyObjectsToClipboard">
<summary>
将所有对象的文本和HTML表示复制到剪贴板上。
</summary>
</member>
<member name="M:BrightIdeasSoftware.ObjectListView.ObjectsToHtml(System.Collections.IList)">
<summary>
返回给定对象的html表示形式

View File

@ -1197,6 +1197,14 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Decimal,System.String)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
</summary>
<param name="input"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Double)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
@ -1204,6 +1212,14 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToNString(System.Double,System.String)">
<summary>
将数字转换成字符串,小数点末尾后面不包含0
</summary>
<param name="input"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToInt(System.Object)">
<summary>
将指定类型转换成整型
@ -1262,23 +1278,61 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInTime(System.DateTime,System.Int32,System.Int32)">
<summary>
判断时间是否在指定时间上
</summary>
<param name="input"></param>
<param name="Hour"></param>
<param name="Minute"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInTime(System.DateTime,System.Int32,System.Int32,System.Int32)">
<summary>
判断时间是否在指定时间上
</summary>
<param name="input"></param>
<param name="Hour"></param>
<param name="Minute"></param>
<param name="Second"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInDay(System.DateTime,System.Int32,System.Int32)">
<summary>
判断时间是否在指定日期
</summary>
<param name="input"></param>
<param name="Month"></param>
<param name="Day"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.IsInDay(System.DateTime,System.Int32,System.Int32,System.Int32)">
<summary>
判断时间是否在指定日期
</summary>
<param name="input"></param>
<param name="Year"></param>
<param name="Month"></param>
<param name="Day"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateTimeStr(System.DateTime)">
<summary>
转换DateTime类型到日期时间字符串
转换DateTime类型到日期时间字符串(例如 2000-01-01 08:08:08)
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateStr(System.DateTime)">
<summary>
转换DateTime类型到日期字符串
转换DateTime类型到日期字符串(例如 2000-01-01)
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.ToDateWeekStr(System.DateTime)">
<summary>
转换DateTime类型到日期星期字符串
转换DateTime类型到日期星期字符串(例如 2000-01-01 星期六)
</summary>
<param name="input"></param>
<returns></returns>
@ -1449,6 +1503,68 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.String)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Int32)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Int64)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Decimal)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Double)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.VarExtension.Get(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.Boolean)">
<summary>
根据表单字段名,获取对应的值
</summary>
<param name="input"></param>
<param name="Name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="T:ryCommon.RySoft">
<summary>
文件信息
@ -1498,6 +1614,88 @@
</summary>
<returns></returns>
</member>
<member name="T:ryCommon.BigFileOp">
<summary>
大文件与批量文件操作类,支持中途取消操作,本类需要实例化操作
</summary>
</member>
<member name="T:ryCommon.BigFileOp.TranProgressHandler">
<summary>
传输进度
</summary>
<param name="curValue">当前传输完成的值</param>
<param name="totalValue">全部值,为-1表示无法获取</param>
<param name="percent">当前传输的百分比,为-1表示无法获取</param>
</member>
<member name="E:ryCommon.BigFileOp.OnProgress">
<summary>
传输进度
</summary>
</member>
<member name="E:ryCommon.BigFileOp.OnCanel">
<summary>
取消事件
</summary>
</member>
<member name="M:ryCommon.BigFileOp.CopyBigFile(System.String,System.String)">
<summary>
大文件按流复制文件,支持自动创建目标文件夹。 true复制成功 false复制失败
</summary>
<param name="soucrePath">原始文件路径</param>
<param name="targetPath">复制目标文件路径</param>
<returns></returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolder(System.String,System.String)">
<summary>
复制文件夹到目标文件夹,不支持进度事件,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolderByProgress(System.String,System.String)">
<summary>
复制文件夹到目标文件夹,支持进度事件,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.CopyFolder(System.String,System.String,System.Int32,System.Int32,System.Int32@)">
<summary>
复制文件夹到目标文件夹,支持中途取消
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<param name="StartCount">初始的文件数量</param>
<param name="TotalCount">总数量,如果不计算,则使用-1</param>
<param name="Count">操作的数量,包含成功的和失败的</param>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.BigFileOp.GetFilesCount(System.String)">
<summary>
获取文件夹中的文件数量
</summary>
<param name="Dir">文件夹路径</param>
<returns>返回文件数量,中途取消则返回-1</returns>
</member>
<member name="M:ryCommon.BigFileOp.GetFolderSize(System.String)">
<summary>
获取文件夹的大小
</summary>
<param name="Dir">文件夹路径</param>
<returns>返回文件数量,中途取消则返回-1</returns>
</member>
<member name="M:ryCommon.BigFileOp.AddFileToFolder(System.String,System.String,System.Boolean,System.Boolean@)">
<summary>
添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径)
</summary>
<param name="filepath">要添加的文件路径</param>
<param name="toFolder">要添加到的文件夹</param>
<param name="RenameByTime">是否根据时间进行重命名</param>
<param name="OK">返回是否成功执行</param>
<returns>成功执行则返回路径,否则返回空</returns>
</member>
<member name="T:ryCommon.Hosts">
<summary>
Hosts操作类
@ -1876,11 +2074,11 @@
</member>
<member name="M:ryCommon.RyFiles.CopyFolder(System.String,System.String)">
<summary>
复制文件夹到目标文件夹
复制文件夹到目标文件夹(从3.0.2205.2601版本起已更换实现底层)
</summary>
<param name="fromDir">源文件夹</param>
<param name="ToDir">目标文件夹</param>
<returns>返回移动操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
<returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
</member>
<member name="M:ryCommon.RyFiles.ReNameFile(System.String,System.String,System.Boolean,System.String@)">
<summary>
@ -3042,6 +3240,12 @@
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RyForm.GetForegroundWindow">
<summary>
获取当前前台的窗口句柄
</summary>
<returns></returns>
</member>
<member name="M:ryCommon.RyForm.SetActiveWindow(System.IntPtr)">
<summary>
设置为当前活动窗口
@ -3122,6 +3326,59 @@
<param name="Path"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.DelKey(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String)">
<summary>
删除注册表键(如果存在子键,子键将一并被删除)
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="KeyName"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.DelValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String)">
<summary>
删除注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.GetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.String)">
<summary>
获取注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.String)">
<summary>
设置注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="Value"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetValue(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView,System.String,System.String,System.UInt32)">
<summary>
设置注册表键值
</summary>
<param name="_RegRoot"></param>
<param name="_UseSystemBit"></param>
<param name="Path"></param>
<param name="ValueName"></param>
<param name="Value"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyRegedit.SetAutoRun(System.Boolean,System.String,System.String)">
<summary>
设置是否开机启动
@ -8461,6 +8718,120 @@
CookieCollection格式的Cookie集合同时也返回String类型的cookie
</summary>
</member>
<member name="T:RyWeb.HttpServer">
<summary>
Http服务器类
</summary>
</member>
<member name="T:RyWeb.HttpServer.HttpRequestHandler">
<summary>
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="E:RyWeb.HttpServer.OnHandleGETRequest">
<summary>
当收到Get事件时激发
</summary>
</member>
<member name="E:RyWeb.HttpServer.OnHandlePOSTRequest">
<summary>
当收到Post事件时激发
</summary>
</member>
<member name="P:RyWeb.HttpServer.ListenerHost">
<summary>
监听的主机,默认是localhost
</summary>
</member>
<member name="P:RyWeb.HttpServer.ErrorMessage">
<summary>
最后一次错误信息
</summary>
</member>
<member name="M:RyWeb.HttpServer.#ctor(System.Int32)">
<summary>
在此端口建立Http服务类
</summary>
<param name="port">端口号</param>
</member>
<member name="M:RyWeb.HttpServer.IsRunning">
<summary>
</summary>
<returns></returns>
</member>
<member name="M:RyWeb.HttpServer.Start">
<summary>
开始服务
</summary>
</member>
<member name="M:RyWeb.HttpServer.Exit">
<summary>
退出服务
</summary>
</member>
<member name="M:RyWeb.HttpServer.Finalize">
<summary>
</summary>
</member>
<member name="T:RyWeb.HttpRequest">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.Url">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.PostDataStr">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.PostData">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.String)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.Int32)">
<summary>
</summary>
</member>
<member name="M:RyWeb.HttpRequest.GetPostData(System.String,System.Boolean)">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.UrlReferrer">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.ReturnHtml">
<summary>
</summary>
</member>
<member name="P:RyWeb.HttpRequest.StatusCode">
<summary>
</summary>
</member>
<member name="T:RyWeb.QuickWeb">
<summary>
@ -8702,6 +9073,24 @@
<param name="str"></param>
<returns></returns>
</member>
<member name="M:RyWeb.WebDecode.UrlToData(System.String)">
<summary>
将url里的字段分解成表单字典
</summary>
<param name="url"></param>
<returns></returns>
<exception cref="T:System.ArgumentNullException"></exception>
<exception cref="T:System.FormatException"></exception>
</member>
<member name="M:RyWeb.WebDecode.GetParam(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}}},System.String,System.String)">
<summary>
根据表单字段名获取值
</summary>
<param name="decoded"></param>
<param name="name"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="T:rySafe.AES">
<summary>
AES加密解密类

View File

@ -8697,6 +8697,11 @@
标题栏图标尺寸
</summary>
</member>
<member name="P:MGdu.WinFormUI.GMForm.GMFormIcon">
<summary>
窗体图标,如果设置本项,将不使用Icon属性
</summary>
</member>
<member name="P:MGdu.WinFormUI.GMForm.IconLeftMargin">
<summary>
标题栏图标与窗体左边框的距离
@ -16148,6 +16153,11 @@
将给定对象的文本和HTML表示复制到剪贴板上。
</summary>
</member>
<member name="M:BrightIdeasSoftware.ObjectListView.CopyObjectsToClipboard">
<summary>
将所有对象的文本和HTML表示复制到剪贴板上。
</summary>
</member>
<member name="M:BrightIdeasSoftware.ObjectListView.ObjectsToHtml(System.Collections.IList)">
<summary>
返回给定对象的html表示形式

View File

@ -1,4 +1,55 @@
### 2022-02-09更新
### 2022-05-26更新
------
#### MyDbV4 V3.0.2205.2601
- *.[新增]新增BigFileOp类,支持对大文件和批量文件操作处理。
- *.[改进]RyFiles类的部分函数更换为BigFileOp类底层操作。
### 2022-05-09更新
------
#### MyDbV4 V3.0.2205.0901
- *.[改进]RyForm类的Show函数针对窗体最小化或不在屏幕内的情况做出优化。
- *.[改进]OpenFile函数在打开文件夹时,会调用默认资源管理器打开,而不再限定为系统。
#### ryControls V3.0.2205.0901
- *.[改进]GMForm窗体在最大化时不可移动窗体。
- *.[改进]改进ObjectListview列表中的按钮显示效果。
### 2022-05-07更新
------
#### MyDbV4 V3.0.2205.0701
- *.[新增]新增多个注册表操作相关函数。
### 2022-03-11更新
------
#### MyDbV4 V3.0.2203.1101
- *.[改进]ryQuickSQL中的int和long类型直接转变为数值,而不是参数变量。
- *.[修复]ryQuickSQL中的GetUpdateSQL函数会将《计算参数》进行更新的BUG。
### 2022-03-01更新
------
#### MyDbV4 V3.0.2203.0101
- *.[新增]新增IsInTime和IsInDay扩展函数。
- *.[改进]完善部分注释,更加易懂。
- *.[改进]HttpServer类新增默认对postdata内容进行解析。
- *.[修复]修复PinYin类对《鑫》字转换错误的BUG。
#### MyDb_MySQLV4 V3.0.2203.0101
- *.[改进]MySQL的连接字符串自动追加Allow User Variables=True;
### 2022-02-21更新
------
#### MyDbV4 V3.0.2202.2101
- *.[新增]新增HttpServer类,可以非常方便的建立http服务器。
### 2022-02-20更新
------
#### MyDbV4 V3.0.2202.2001
- *.[新增]WebDecode类新增UrlToData和GetParam函数。
- *.[新增]VarExtension类新增针对GetParam的扩展方法。
- *.[改进]WebDecode类的IsUrlSafeChar和IntToHex函数改为私有方法。
### 2022-02-09更新
------
#### MyDbV4 V3.0.2202.0901
- *.[改进]新增ToNString扩展函数,支持将数字转换成小数点末尾不带0的字符串。

View File

@ -1,51 +0,0 @@
{
"Version": 1,
"ProjectMap": {
"9df20d86-a56e-4cf6-a3d8-f30421297b1b": {
"ProjectGuid": "9df20d86-a56e-4cf6-a3d8-f30421297b1b",
"DisplayName": "MyDbV4",
"ColorIndex": 0
},
"11a63e24-0257-4c54-a109-f1a609a52a62": {
"ProjectGuid": "11a63e24-0257-4c54-a109-f1a609a52a62",
"DisplayName": "ryUpdateV4",
"ColorIndex": 1
},
"9eca3a84-8545-4c4d-84d6-d23e3bdf2d90": {
"ProjectGuid": "9eca3a84-8545-4c4d-84d6-d23e3bdf2d90",
"DisplayName": "ryControlsV4",
"ColorIndex": 2
},
"dc9fdb61-fedd-4795-afdc-8376ab781c56": {
"ProjectGuid": "dc9fdb61-fedd-4795-afdc-8376ab781c56",
"DisplayName": "Itrycn_Project2",
"ColorIndex": 3
},
"6b969ce8-d723-4b2c-a8fd-fad2fb28ff01": {
"ProjectGuid": "6b969ce8-d723-4b2c-a8fd-fad2fb28ff01",
"DisplayName": "MyDb_SQLiteV4",
"ColorIndex": 4
},
"de092c43-1ab5-4229-8ec8-35c9936c4331": {
"ProjectGuid": "de092c43-1ab5-4229-8ec8-35c9936c4331",
"DisplayName": "MyDb_MySQLV4",
"ColorIndex": 5
},
"b6784652-825a-482c-8a21-08e2539af2bf": {
"ProjectGuid": "b6784652-825a-482c-8a21-08e2539af2bf",
"DisplayName": "RyPrint",
"ColorIndex": 6
},
"a2fe74e1-b743-11d0-ae1a-00a0c90fffc3": {
"ProjectGuid": "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3",
"DisplayName": "杂项文件",
"ColorIndex": -1
},
"62b5c3e8-4af1-4a7f-a40b-a6186f83dbd2": {
"ProjectGuid": "62b5c3e8-4af1-4a7f-a40b-a6186f83dbd2",
"DisplayName": "Itrycn_Project",
"ColorIndex": 7
}
},
"NextColorIndex": 8
}

View File

@ -215,6 +215,7 @@
this.Controls.Add(this.chromeTabControl1);
this.Location = new System.Drawing.Point(0, 0);
this.Name = "FrmStart";
this.Resizable = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "FrmStart";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmStart_FormClosing);

View File

@ -93,7 +93,6 @@ namespace Itrycn_Project2
{
Application.Exit();
}
private void FrmStart_Shown(object sender, EventArgs e)
{
ryCommon.Ini ini = new Ini(Soft_ConstInfo.UserDataFolder + "\\Win.dat");
@ -181,6 +180,7 @@ namespace Itrycn_Project2
private void FrmStart_Load(object sender, EventArgs e)
{
ryCommon.PinYin.Convert("李凤鑫");
Public_Config.LoadSetting();
//Itrycn_Project.Itrycn_Db.CreateTable();
//var dbver = Itrycn_Db.GetDbVer();

View File

@ -31,101 +31,30 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
this.MenuTray = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.退ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.chromeTabControl1 = new ryControls.ChromeTabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.BtnScan = new ryControls.ButtonEx();
this.LvCbResult = new BrightIdeasSoftware.FastObjectListView();
this.OlvGameName = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.OlvFileName = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.OlvAddTime = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.TabLogs = new System.Windows.Forms.TabPage();
this.LvLogs = new BrightIdeasSoftware.FastObjectListView();
this.OlvLog = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.OlvLogText = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.OlvLogTime = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.TsState = new System.Windows.Forms.ToolStripStatusLabel();
this.MenuLogs = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MenuTray.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.TsState = new System.Windows.Forms.ToolStripStatusLabel();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.chromeTabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.LvCbResult)).BeginInit();
this.TabLogs.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.LvLogs)).BeginInit();
this.statusStrip1.SuspendLayout();
this.MenuLogs.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.SuspendLayout();
//
// notifyIcon1
//
this.notifyIcon1.ContextMenuStrip = this.MenuTray;
this.notifyIcon1.Visible = true;
this.notifyIcon1.DoubleClick += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// MenuTray
//
this.MenuTray.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem,
this.退ToolStripMenuItem});
this.MenuTray.Name = "MenuTray";
this.MenuTray.Size = new System.Drawing.Size(137, 48);
//
// 显示主窗体ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "显示主窗体ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.ToolStripMenuItem.Text = "显示主窗体";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 退出软件ToolStripMenuItem
//
this.退ToolStripMenuItem.Name = "退出软件ToolStripMenuItem";
this.退ToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.退ToolStripMenuItem.Text = "退出软件";
this.退ToolStripMenuItem.Click += new System.EventHandler(this.退ToolStripMenuItem_Click);
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(1, 27);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(802, 25);
this.menuStrip1.TabIndex = 2;
this.menuStrip1.Text = "menuStrip1";
//
// 关于ToolStripMenuItem
//
this.ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem,
this.ToolStripMenuItem});
this.ToolStripMenuItem.Name = "关于ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(44, 21);
this.ToolStripMenuItem.Text = "关于";
//
// 打开官网ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "打开官网ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.ToolStripMenuItem.Text = "打开官网";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 捐助ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "捐助ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(136, 22);
this.ToolStripMenuItem.Text = "关于和捐助";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// chromeTabControl1
//
this.chromeTabControl1.AllowDragTab = false;
@ -137,12 +66,12 @@
this.chromeTabControl1.Controls.Add(this.TabLogs);
this.chromeTabControl1.Cursor = System.Windows.Forms.Cursors.Default;
this.chromeTabControl1.ItemSize = new System.Drawing.Size(100, 25);
this.chromeTabControl1.Location = new System.Drawing.Point(1, 55);
this.chromeTabControl1.Location = new System.Drawing.Point(1, 30);
this.chromeTabControl1.Name = "chromeTabControl1";
this.chromeTabControl1.SelectedIndex = 0;
this.chromeTabControl1.ShowAddButton = false;
this.chromeTabControl1.ShowCloseButton = false;
this.chromeTabControl1.Size = new System.Drawing.Size(802, 513);
this.chromeTabControl1.Size = new System.Drawing.Size(802, 538);
this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.chromeTabControl1.TabContextMenuStrip = null;
this.chromeTabControl1.TabIndex = 0;
@ -155,7 +84,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(800, 483);
this.tabPage1.Size = new System.Drawing.Size(800, 508);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "首页";
this.tabPage1.UseVisualStyleBackColor = true;
@ -174,7 +103,6 @@
// LvCbResult
//
this.LvCbResult.AllColumns.Add(this.OlvGameName);
this.LvCbResult.AllColumns.Add(this.OlvFileName);
this.LvCbResult.AllColumns.Add(this.OlvAddTime);
this.LvCbResult.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
@ -182,7 +110,6 @@
this.LvCbResult.CellEditUseWholeCell = false;
this.LvCbResult.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.OlvGameName,
this.OlvFileName,
this.OlvAddTime});
this.LvCbResult.Cursor = System.Windows.Forms.Cursors.Default;
this.LvCbResult.EmptyListMsg = "当前列表没有任何项";
@ -193,7 +120,7 @@
this.LvCbResult.RowHeight = 25;
this.LvCbResult.ShowGroups = false;
this.LvCbResult.ShowItemToolTips = true;
this.LvCbResult.Size = new System.Drawing.Size(794, 433);
this.LvCbResult.Size = new System.Drawing.Size(794, 458);
this.LvCbResult.TabIndex = 84;
this.LvCbResult.UseCompatibleStateImageBehavior = false;
this.LvCbResult.UseFiltering = true;
@ -205,11 +132,6 @@
this.OlvGameName.Text = "游戏名";
this.OlvGameName.Width = 200;
//
// OlvFileName
//
this.OlvFileName.Text = "文件名";
this.OlvFileName.Width = 180;
//
// OlvAddTime
//
this.OlvAddTime.Text = "提交时间";
@ -221,22 +143,23 @@
this.TabLogs.Location = new System.Drawing.Point(1, 29);
this.TabLogs.Name = "TabLogs";
this.TabLogs.Padding = new System.Windows.Forms.Padding(3);
this.TabLogs.Size = new System.Drawing.Size(800, 464);
this.TabLogs.Size = new System.Drawing.Size(800, 508);
this.TabLogs.TabIndex = 1;
this.TabLogs.Text = "日志";
this.TabLogs.UseVisualStyleBackColor = true;
//
// LvLogs
//
this.LvLogs.AllColumns.Add(this.OlvLog);
this.LvLogs.AllColumns.Add(this.OlvLogTime);
this.LvLogs.AllColumns.Add(this.OlvLogText);
this.LvLogs.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.LvLogs.CellEditUseWholeCell = false;
this.LvLogs.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.OlvLog,
this.OlvLogTime});
this.OlvLogTime,
this.OlvLogText});
this.LvLogs.ContextMenuStrip = this.MenuLogs;
this.LvLogs.Cursor = System.Windows.Forms.Cursors.Default;
this.LvLogs.EmptyListMsg = "当前列表没有任何项";
this.LvLogs.FullRowSelect = true;
@ -246,23 +169,39 @@
this.LvLogs.RowHeight = 25;
this.LvLogs.ShowGroups = false;
this.LvLogs.ShowItemToolTips = true;
this.LvLogs.Size = new System.Drawing.Size(794, 458);
this.LvLogs.Size = new System.Drawing.Size(794, 483);
this.LvLogs.TabIndex = 85;
this.LvLogs.UseCompatibleStateImageBehavior = false;
this.LvLogs.UseFiltering = true;
this.LvLogs.View = System.Windows.Forms.View.Details;
this.LvLogs.VirtualMode = true;
//
// OlvLog
// OlvLogText
//
this.OlvLog.Text = "日志";
this.OlvLog.Width = 400;
this.OlvLogText.DisplayIndex = 0;
this.OlvLogText.Text = "日志";
this.OlvLogText.Width = 400;
//
// OlvLogTime
//
this.OlvLogTime.Text = "日志时间";
this.OlvLogTime.Width = 180;
//
// MenuLogs
//
this.MenuLogs.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem,
this.ToolStripMenuItem});
this.MenuLogs.Name = "MenuLogs";
this.MenuLogs.Size = new System.Drawing.Size(149, 48);
//
// 复制日志信息ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "复制日志信息ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(148, 22);
this.ToolStripMenuItem.Text = "复制日志信息";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// statusStrip1
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -279,19 +218,12 @@
this.TsState.Size = new System.Drawing.Size(83, 17);
this.TsState.Text = "状态:准备就绪";
//
// MenuLogs
// 导出日志ToolStripMenuItem
//
this.MenuLogs.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem});
this.MenuLogs.Name = "MenuLogs";
this.MenuLogs.Size = new System.Drawing.Size(149, 26);
//
// 复制日志信息ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "复制日志信息ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(148, 22);
this.ToolStripMenuItem.Text = "复制日志信息";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
this.ToolStripMenuItem.Name = "导出日志ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.ToolStripMenuItem.Text = "导出日志";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// FrmScan
//
@ -299,25 +231,22 @@
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(804, 596);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.menuStrip1);
this.Controls.Add(this.chromeTabControl1);
this.Location = new System.Drawing.Point(0, 0);
this.Name = "FrmScan";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "扫描";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmStart_FormClosing);
this.Load += new System.EventHandler(this.FrmStart_Load);
this.Shown += new System.EventHandler(this.FrmStart_Shown);
this.MenuTray.ResumeLayout(false);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.chromeTabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.LvCbResult)).EndInit();
this.TabLogs.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.LvLogs)).EndInit();
this.MenuLogs.ResumeLayout(false);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.MenuLogs.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@ -327,26 +256,18 @@
private ryControls.ChromeTabControl chromeTabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.NotifyIcon notifyIcon1;
private System.Windows.Forms.ContextMenuStrip MenuTray;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 退ToolStripMenuItem;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private BrightIdeasSoftware.FastObjectListView LvCbResult;
private BrightIdeasSoftware.OLVColumn OlvGameName;
private BrightIdeasSoftware.OLVColumn OlvFileName;
private BrightIdeasSoftware.OLVColumn OlvAddTime;
private ryControls.ButtonEx BtnScan;
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel TsState;
private System.Windows.Forms.TabPage TabLogs;
private BrightIdeasSoftware.FastObjectListView LvLogs;
private BrightIdeasSoftware.OLVColumn OlvLog;
private BrightIdeasSoftware.OLVColumn OlvLogText;
private BrightIdeasSoftware.OLVColumn OlvLogTime;
private System.Windows.Forms.ContextMenuStrip MenuLogs;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
}
}

View File

@ -14,136 +14,86 @@ namespace Itrycn_Project2
{
public partial class FrmScan : RySkins.SKinForm
{
string[] prog_args;
public FrmScan(string[] args)
/// <summary>
/// 最大日志数量
/// </summary>
private int MaxLogsCount { get; set; } = 1000;
public FrmScan()
{
InitializeComponent();
prog_args = args;
//配置软件信息
notifyIcon1.Text = Soft_ConstInfo.Soft_Title;
Text = Soft_ConstInfo.Soft_Title + " V" + RySoft.VersionStr;
if (!Soft_ConstInfo.ShowTray) { notifyIcon1.Visible = false; }
if (!Soft_ConstInfo.DonateVisabled) { ToolStripMenuItem.Text = "关于"; }
if (Soft_ConstInfo.Soft_Url.Length == 0) { ToolStripMenuItem.PerformClick(); }
notifyIcon1.Icon = Icon;
OlvLog.AspectName = "LogText";
OlvLogTime.AspectName = "LogTime";
OlvGameName.AspectGetter = delegate (object x) { return ((ItemInfo)x).Name; };
OlvAddTime.AspectGetter = delegate (object x) { return ((ItemInfo)x).AddTime.ToDateTimeStr(); };
OlvLogTime.AspectGetter = delegate (object x) { return ((LogInfo)x).LogTime.ToDateTimeStr(); };
OlvLogText.AspectGetter = delegate (object x) { return ((LogInfo)x).LogText; };
LvLogs.FormatRow += delegate (object x, BrightIdeasSoftware.FormatRowEventArgs e) {
LogInfo item = (LogInfo)e.Model;
if (item.Color != Color.Black)
{
e.Item.ForeColor = item.Color;
}
};
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
var topmost = this.TopMost;
this.TopMost = true;
this.Show();
this.TopMost = topmost;
}
private void 退ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void FrmStart_Shown(object sender, EventArgs e)
{
ryCommon.Ini ini = new Ini(Soft_ConstInfo.UserDataFolder + "\\Win.dat");
ini.WriteIni(Soft_ConstInfo.Soft_Id, "hwnd", Handle.ToInt32());
if (prog_args.Length >= 1)
{
//如果是自启动,并且开启了右下角托盘图标,则隐藏自身。
if (prog_args[0] == Soft_ConstInfo.Soft_Pram && Soft_ConstInfo.ShowTray)
this.Hide();
}
}
private void FrmStart_FormClosing(object sender, FormClosingEventArgs e)
{
if (Soft_ConstInfo.ShowTray && Public_Config.HideByCloseBtn && e.CloseReason== CloseReason.UserClosing)
{
e.Cancel = true;
this.Hide();
notifyIcon1.ShowBalloonTip(3000, Soft_ConstInfo.Soft_Title, "软件已经最小化到此处,请右击托盘图标进行关闭。", ToolTipIcon.Info);
return;
}
if (!Soft_MemInfo.IsCanCloseForm)
{
e.Cancel = true;
MessageBox.Show("当前还有操作正在运行,请稍后关闭软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
protected override void WndProc(ref System.Windows.Forms.Message msg)
{
switch (msg.Msg)
{
case 17189: //处理消息
{
#region
switch (msg.WParam.ToInt32())
{
case 100://
#region
if ((int)msg.LParam.ToInt32() == 100)
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.Top = (Screen.PrimaryScreen.WorkingArea.Height - this.Height) / 2;
this.Left = (Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2;
//RyForm.SetActiveWindow(Handle);
RyForm.BringToTop(Handle);
ToolStripMenuItem.PerformClick();
this.BringToFront();
this.Select();
this.Focus();
RyForm.BringToTop(Handle);
}
#endregion
break;
}
#endregion
}
break;
default:
base.WndProc(ref msg);//调用基类函数处理非自定义消息。
break;
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (Soft_ConstInfo.DonateVisabled)
{
FrmAbout frm = new FrmAbout();
frm.ShowDialog();
frm.Dispose();
}
else
{
RySkins.Msg.ShowMsg(Soft_ConstInfo.AboutText.Replace("#softname#", Soft_ConstInfo.Soft_Title).Replace("#ver#", "V" + RySoft.VersionStr), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
ryCommon.RyFiles.OpenUrl(Soft_ConstInfo.Soft_Url);
}
private void FrmStart_Load(object sender, EventArgs e)
{
//Itrycn_Project.Itrycn_Db.CreateTable();
LiveUpdate.RyUpdate update = new LiveUpdate.RyUpdate(Soft_ConstInfo.Update_Url);
update.CheckUpdate();
}
/// <summary>
/// 添加日志
/// </summary>
/// <param name="text"></param>
private void AddLogs(string text)
/// <param name="log"></param>
public void AddLog(string log)
{
AddLog(log, "", Color.Black);
}
/// <summary>
/// 添加日志
/// </summary>
/// <param name="log"></param>
/// <param name="color"></param>
public void AddLog(string log, Color color)
{
AddLog(log, "", color);
}
/// <summary>
/// 添加日志
/// </summary>
/// <param name="log"></param>
/// <param name="tag"></param>
/// <param name="color"></param>
public void AddLog(string log, string tag, Color color)
{
try
{
this.Invoke(new Action(() =>
{
var count = LvLogs.GetItemCount();
if (count > MaxLogsCount)
{
LvLogs.RemoveObject(LvLogs.GetModelObject(count - 1));
}
LvLogs.InsertObjects(0, new LogInfo[] { new LogInfo() { LogTime = DateTime.Now, LogText = log, LogTag = tag, Color = color } });
OlvLogTime.Text = "时间(" + LvLogs.GetItemCount() + ")";
}));
}
catch { }
}
/// <summary>
/// 显示状态
/// </summary>
/// <param name="state"></param>
private void ShowState(string state)
{
this.Invoke(new Action(() =>
{
LvLogs.AddObject(new LogInfo() { LogText = text, LogTime = DateTime.Now.ToString("yyyy-MM-dd dddd HH:mm:ss") });
TabLogs.Text = "日志("+LvLogs.GetItemCount()+")";
TsState.Text = "状态:" + state;
}));
}
bool IsRunning = false;
@ -152,7 +102,6 @@ namespace Itrycn_Project2
{
if (IsRunning) { IsExit = true; return; }
IsRunning = true;
Soft_MemInfo.IsCanCloseForm = false;
BtnScan.Text = "停止";
LvCbResult.ClearObjects();
LvLogs.ClearObjects();
@ -163,13 +112,13 @@ namespace Itrycn_Project2
th.Start();
void Start()
{
List<ItemInfo> list = new List<ItemInfo>();
//RyWeb.QuickWeb ry3h3 = new RyWeb.QuickWeb();
//将扫描的代码写在下面
//↑将扫描的代码写在上面
IsExit = false;
IsRunning = false;
Soft_MemInfo.IsCanCloseForm = true;
this.Invoke(new Action(() =>
{
//LvCbResult.AddObjects(list);
@ -190,8 +139,31 @@ namespace Itrycn_Project2
/// </summary>
class LogInfo
{
/// <summary>
/// 日志时间
/// </summary>
public DateTime LogTime { get; set; } = DateTime.Now;
/// <summary>
/// 日志内容
/// </summary>
public string LogText { get; set; }
public string LogTime { get; set; }
/// <summary>
/// 日志Tag
/// </summary>
public string LogTag { get; set; }
/// <summary>
/// 日志文字颜色
/// </summary>
public Color Color { get; set; } = Color.Black;
}
class ItemInfo
{
public string Name { get; set; } = "";
public DateTime AddTime { get; set; }
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
LvLogs.CopyObjectsToClipboard();
}
}
}

View File

@ -117,20 +117,11 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="notifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="MenuTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>135, 17</value>
</metadata>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>246, 17</value>
<metadata name="MenuLogs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>144, 19</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>366, 17</value>
</metadata>
<metadata name="MenuLogs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>487, 17</value>
<value>23, 19</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>54</value>

View File

@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Itrycn_Project")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@ -125,6 +125,8 @@ namespace ryCommon
// 修正部分文字
if (chrAsc == -9254) // 修正“圳”字
pyString += "Zhen";
else if (chrAsc == -2354) // 修正“鑫”字
pyString += "Xin";
else
{
for (int i = (pyValue.Length - 1); i >= 0; i--)
@ -237,6 +239,8 @@ namespace ryCommon
// 修正部分文字
if (chrAsc == -9254) // 修正“圳”字
pyString += "z";
else if (chrAsc == -2354) // 修正“鑫”字
pyString += "x";
else
{
for (int i = (pyValue.Length - 1); i >= 0; i--)

View File

@ -202,10 +202,21 @@ namespace ryCommon
/// <returns></returns>
static public string ToNString(this decimal input)
{
var str= input.ToString();
if (str.IndexOfEx(".") >= 0) {
str= str.TrimEnd('0');
if(str.EndsWith("."))
return ToNString(input,"");
}
/// <summary>
/// 将数字转换成字符串,小数点末尾后面不包含0
/// </summary>
/// <param name="input"></param>
/// <param name="format"></param>
/// <returns></returns>
static public string ToNString(this decimal input,string format)
{
var str = format.Length==0? input.ToString(): input.ToString(format);
if (str.IndexOfEx(".") >= 0)
{
str = str.TrimEnd('0');
if (str.EndsWith("."))
{
str = str.Substring(0, str.Length - 1);
}
@ -219,7 +230,17 @@ namespace ryCommon
/// <returns></returns>
static public string ToNString(this double input)
{
var str = input.ToString();
return ToNString(input, "");
}
/// <summary>
/// 将数字转换成字符串,小数点末尾后面不包含0
/// </summary>
/// <param name="input"></param>
/// <param name="format"></param>
/// <returns></returns>
static public string ToNString(this double input,string format)
{
var str = format.Length == 0 ? input.ToString() : input.ToString(format);
if (str.IndexOfEx(".") >= 0)
{
str = str.TrimEnd('0');
@ -336,7 +357,61 @@ namespace ryCommon
catch { return 0d; }
}
/// <summary>
/// 转换DateTime类型到日期时间字符串
/// 判断时间是否在指定时间上
/// </summary>
/// <param name="input"></param>
/// <param name="Hour"></param>
/// <param name="Minute"></param>
/// <returns></returns>
static public bool IsInTime(this DateTime input,int Hour,int Minute)
{
if(input == null) { return false; }
if(input.Hour==Hour && input.Minute == Minute) { return true; }
return false;
}
/// <summary>
/// 判断时间是否在指定时间上
/// </summary>
/// <param name="input"></param>
/// <param name="Hour"></param>
/// <param name="Minute"></param>
/// <param name="Second"></param>
/// <returns></returns>
static public bool IsInTime(this DateTime input, int Hour, int Minute,int Second)
{
if (input == null) { return false; }
if (input.Hour == Hour && input.Minute == Minute && input.Second== Second) { return true; }
return false;
}
/// <summary>
/// 判断时间是否在指定日期
/// </summary>
/// <param name="input"></param>
/// <param name="Month"></param>
/// <param name="Day"></param>
/// <returns></returns>
static public bool IsInDay(this DateTime input, int Month, int Day)
{
if (input == null) { return false; }
if (input.Month == Month && input.Day == Day) { return true; }
return false;
}
/// <summary>
/// 判断时间是否在指定日期
/// </summary>
/// <param name="input"></param>
/// <param name="Year"></param>
/// <param name="Month"></param>
/// <param name="Day"></param>
/// <returns></returns>
static public bool IsInDay(this DateTime input,int Year, int Month, int Day)
{
if (input == null) { return false; }
if (input.Year == Year && input.Month == Month && input.Day == Day) { return true; }
return false;
}
/// <summary>
/// 转换DateTime类型到日期时间字符串(例如 2000-01-01 08:08:08)
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
@ -345,7 +420,7 @@ namespace ryCommon
return input.ToString("yyyy-MM-dd HH:mm:ss");
}
/// <summary>
/// 转换DateTime类型到日期字符串
/// 转换DateTime类型到日期字符串(例如 2000-01-01)
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
@ -354,7 +429,7 @@ namespace ryCommon
return input.ToString("yyyy-MM-dd");
}
/// <summary>
/// 转换DateTime类型到日期星期字符串
/// 转换DateTime类型到日期星期字符串(例如 2000-01-01 星期六)
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
@ -673,5 +748,86 @@ namespace ryCommon
}
catch { return false; }
}
/// <summary>
/// 根据表单字段名,获取对应的值
/// </summary>
/// <param name="input"></param>
/// <param name="Name"></param>
/// <param name="defValue"></param>
/// <returns></returns>
static public string Get(this Tuple<string, IEnumerable<KeyValuePair<string, string>>> input,string Name,string defValue)
{
if (input == null) { return defValue; }
try
{
return RyWeb.WebDecode.GetParam(input, Name, defValue);
}
catch { return defValue; }
}
/// <summary>
/// 根据表单字段名,获取对应的值
/// </summary>
/// <param name="input"></param>
/// <param name="Name"></param>
/// <returns></returns>
static public string Get(this Tuple<string, IEnumerable<KeyValuePair<string, string>>> input, string Name)
{
return input.Get(Name, "");
}
/// <summary>
/// 根据表单字段名,获取对应的值
/// </summary>
/// <param name="input"></param>
/// <param name="Name"></param>
/// <param name="defValue"></param>
/// <returns></returns>
static public int Get(this Tuple<string, IEnumerable<KeyValuePair<string, string>>> input, string Name,int defValue)
{
return input.Get(Name, defValue.ToString()).ToInt();
}
/// <summary>
/// 根据表单字段名,获取对应的值
/// </summary>
/// <param name="input"></param>
/// <param name="Name"></param>
/// <param name="defValue"></param>
/// <returns></returns>
static public long Get(this Tuple<string, IEnumerable<KeyValuePair<string, string>>> input, string Name, long defValue)
{
return input.Get(Name, defValue.ToString()).ToInt64();
}
/// <summary>
/// 根据表单字段名,获取对应的值
/// </summary>
/// <param name="input"></param>
/// <param name="Name"></param>
/// <param name="defValue"></param>
/// <returns></returns>
static public decimal Get(this Tuple<string, IEnumerable<KeyValuePair<string, string>>> input, string Name, decimal defValue)
{
return input.Get(Name, defValue.ToString()).ToDecimal();
}
/// <summary>
/// 根据表单字段名,获取对应的值
/// </summary>
/// <param name="input"></param>
/// <param name="Name"></param>
/// <param name="defValue"></param>
/// <returns></returns>
static public double Get(this Tuple<string, IEnumerable<KeyValuePair<string, string>>> input, string Name, double defValue)
{
return input.Get(Name, defValue.ToString()).ToDouble();
}
/// <summary>
/// 根据表单字段名,获取对应的值
/// </summary>
/// <param name="input"></param>
/// <param name="Name"></param>
/// <param name="defValue"></param>
/// <returns></returns>
static public bool Get(this Tuple<string, IEnumerable<KeyValuePair<string, string>>> input, string Name, bool defValue)
{
return input.Get(Name, defValue.ToString()).ToBool();
}
}
}

View File

@ -0,0 +1,296 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
namespace ryCommon
{
/// <summary>
/// 大文件与批量文件操作类,支持中途取消操作,本类需要实例化操作
/// </summary>
public class BigFileOp
{
/// <summary>
/// 传输进度
/// </summary>
/// <param name="curValue">当前传输完成的值</param>
/// <param name="totalValue">全部值,为-1表示无法获取</param>
/// <param name="percent">当前传输的百分比,为-1表示无法获取</param>
public delegate void TranProgressHandler(long curValue, long totalValue, double percent);
/// <summary>
/// 传输进度
/// </summary>
public static event TranProgressHandler OnProgress;
/// <summary>
/// 取消事件
/// </summary>
public static event CancelEventHandler OnCanel;
/// <summary>
/// 大文件按流复制文件,支持自动创建目标文件夹。 true复制成功 false复制失败
/// </summary>
/// <param name="soucrePath">原始文件路径</param>
/// <param name="targetPath">复制目标文件路径</param>
/// <returns></returns>
public bool CopyBigFile(string soucrePath, string targetPath)
{
try
{
var TranSize = 1024 * 1024 * 2;//每次读取2M
//读取复制文件流
using (FileStream fsRead = new FileStream(soucrePath, FileMode.Open, FileAccess.Read))
{
if (RyFiles.DeleteFile(targetPath) != 0)
{
return false;
}
RyFiles.CreateDirectory(System.IO.Path.GetDirectoryName(targetPath));
OnProgress?.Invoke(0, fsRead.Length, 0);
var totalSize = fsRead.Length;
//写入文件复制流
using (FileStream fsWrite = new FileStream(targetPath, FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] buffer = new byte[TranSize];
var curSize = 0L;
CancelEventArgs e1 = new CancelEventArgs();
//可能文件比较大要循环读取每次读取2M
while (true)
{
if (OnCanel != null)
{
OnCanel?.Invoke(this, e1);
if (e1.Cancel) {
fsWrite.Close();
RyFiles.DeleteFile(targetPath);
break;
}
}
//每次读取的数据 n是每次读取到的实际数据大小
int n = fsRead.Read(buffer, 0, buffer.Count());
//如果n=0说明读取的数据为空已经读取到最后了跳出循环
if (n == 0)
{
break;
}
curSize += n;
OnProgress?.Invoke(curSize, totalSize, totalSize == 0 ? 0 : curSize / (double)totalSize);
//写入每次读取的实际数据大小
fsWrite.Write(buffer, 0, n);
}
}
OnProgress?.Invoke(totalSize, totalSize, 100);
if (!System.IO.File.Exists(targetPath))
{
return false;
}
}
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 复制文件夹到目标文件夹,不支持进度事件,支持中途取消
/// </summary>
/// <param name="fromDir">源文件夹</param>
/// <param name="ToDir">目标文件夹</param>
/// <returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
public int CopyFolder(string fromDir, string ToDir)
{
return CopyFolder(fromDir,ToDir,0,-1,out _);
}
/// <summary>
/// 复制文件夹到目标文件夹,支持进度事件,支持中途取消
/// </summary>
/// <param name="fromDir">源文件夹</param>
/// <param name="ToDir">目标文件夹</param>
/// <returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
public int CopyFolderByProgress(string fromDir, string ToDir)
{
var FileCount = GetFilesCount(fromDir);
return CopyFolder(fromDir, ToDir, 0, FileCount, out _);
}
/// <summary>
/// 复制文件夹到目标文件夹,支持中途取消
/// </summary>
/// <param name="fromDir">源文件夹</param>
/// <param name="ToDir">目标文件夹</param>
/// <param name="StartCount">初始的文件数量</param>
/// <param name="TotalCount">总数量,如果不计算,则使用-1</param>
/// <param name="Count">操作的数量,包含成功的和失败的</param>
/// <returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
private int CopyFolder(string fromDir, string ToDir,int StartCount,int TotalCount, out int Count)
{
Count = StartCount;
var _fromDir = fromDir.TrimEnd('\\');
var _ToDir = ToDir.TrimEnd('\\');
if (!Directory.Exists(_fromDir)) { return 1; }
var files = Directory.GetFiles(fromDir);
var error = 0;
CancelEventArgs e1 = new CancelEventArgs();
foreach (var file in files)
{
if (OnCanel != null)
{
OnCanel?.Invoke(this, e1);
if (e1.Cancel) { break; }
}
if (!CopyBigFile(file, _ToDir + "\\" + Path.GetFileName(file)))
{
error++;
}
Count++;
var percent = 0d;
if (TotalCount>0) { percent = Count / (double)TotalCount; }
else if (TotalCount == -1) { percent = -1; }
OnProgress?.Invoke(Count, TotalCount, percent);
}
var dirs = Directory.GetDirectories(_fromDir);
foreach (var dir in dirs)
{
int result = CopyFolder(dir, _ToDir + "\\" + Path.GetFileName(dir), Count, TotalCount, out var _Count);
Count += _Count;
if (OnCanel != null)
{
OnCanel?.Invoke(this, e1);
if (e1.Cancel) { break; }
}
if (result > 0)
{
error++;
}
else if (result < 0)
{
error+=-result;
}
}
return -error;
}
/// <summary>
/// 获取文件夹中的文件数量
/// </summary>
/// <param name="Dir">文件夹路径</param>
/// <returns>返回文件数量,中途取消则返回-1</returns>
public int GetFilesCount(string Dir)
{
var _fromDir = Dir.TrimEnd('\\');
if (!Directory.Exists(_fromDir)) { return 0; }
var files = Directory.GetFiles(_fromDir);
var count = 0;
CancelEventArgs e1 = new CancelEventArgs();
count += files.Length;
var dirs = Directory.GetDirectories(_fromDir);
foreach (var dir in dirs)
{
if (OnCanel != null)
{
OnCanel?.Invoke(this, e1);
if (e1.Cancel) { count = -1; break; }
}
var result= GetFilesCount(dir);
if (result == -1) { count = -1;break; }
count+= result;
}
return count;
}
/// <summary>
/// 获取文件夹的大小
/// </summary>
/// <param name="Dir">文件夹路径</param>
/// <returns>返回文件数量,中途取消则返回-1</returns>
public long GetFolderSize(string Dir)
{
var _fromDir = Dir.TrimEnd('\\');
if (!Directory.Exists(_fromDir)) { return 0; }
var files = Directory.GetFiles(_fromDir);
var size = 0L;
CancelEventArgs e1 = new CancelEventArgs();
for (int i = 0; i < files.Length; i++)
{
if (OnCanel != null && i %5==0)
{
OnCanel?.Invoke(this, e1);
if (e1.Cancel) { size = -1; break; }
}
size +=RyFiles.GetFileSize(files[i]);
}
var dirs = Directory.GetDirectories(_fromDir);
foreach (var dir in dirs)
{
if (OnCanel != null)
{
OnCanel?.Invoke(this, e1);
if (e1.Cancel) { size = -1; break; }
}
var result = GetFilesCount(dir);
if (result == -1) { size = -1; break; }
size += result;
}
return size;
}
/// <summary>
/// 添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径)
/// </summary>
/// <param name="filepath">要添加的文件路径</param>
/// <param name="toFolder">要添加到的文件夹</param>
/// <param name="RenameByTime">是否根据时间进行重命名</param>
/// <param name="OK">返回是否成功执行</param>
/// <returns>成功执行则返回路径,否则返回空</returns>
public string AddFileToFolder(string filepath, string toFolder, bool RenameByTime, out bool OK)
{
OK = false;
var _toFolder = toFolder.TrimEnd('\\');
RyFiles.CreateDirectory(_toFolder);
if (!System.IO.Directory.Exists(_toFolder)) { return ""; }
if (!System.IO.File.Exists(filepath) && !System.IO.Directory.Exists(filepath)) { return ""; }
var filename = System.IO.Path.GetFileName(filepath);
if (RenameByTime) { filename = DateTime.Now.ToString("yyyyMMddHHmmss") + System.IO.Path.GetExtension(filepath); }
if (!System.IO.File.Exists(_toFolder + "\\" + filename) && !System.IO.Directory.Exists(_toFolder + "\\" + filename))
{
if (CopyBigFile(filepath, _toFolder + "\\" + filename))
{
OK = true;
return _toFolder + "\\" + filename;
}
return "";//如果复制失败,则返回空路径
}
else //如果目标路径已经存在同名文件
{
int index = 0;
string filename_noext;
if (RenameByTime) { filename_noext = DateTime.Now.ToString("yyyyMMddHHmmss"); }
else { filename_noext = System.IO.Path.GetFileNameWithoutExtension(filepath); }
var ext = System.IO.Path.GetExtension(filepath);
CancelEventArgs e1 = new CancelEventArgs();
while (index < 20) //最多重试20次
{
if (OnCanel != null)
{
OnCanel?.Invoke(this, e1);
if (e1.Cancel)
{
break;
}
}
Random rd = new Random(Guid.NewGuid().GetHashCode());
if (RenameByTime) { filename_noext = DateTime.Now.ToString("yyyyMMddHHmmss"); }
var to_path = _toFolder + "\\" + filename_noext + "_" + rd.Next(1000, 9999) + ext;
if (!System.IO.File.Exists(to_path) && !System.IO.Directory.Exists(to_path))
{
if (CopyBigFile(filepath, to_path))
{
OK = true;
return to_path;
}
return "";
}
index++;
}
return "";
}
}
}
}

View File

@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
@ -16,6 +17,7 @@ namespace ryCommon
/// </summary>
public class RyFiles
{
private static BigFileOp file_op = new BigFileOp();
#region
private struct SHFILEOPSTRUCT
{
@ -285,6 +287,7 @@ namespace ryCommon
/// <param name="sourceFileName">要复制的文件名</param>
/// <param name="destinationFileName">复制到的目的文件名或路径</param>
/// <returns></returns>
[Obsolete("已过时,即将在将来移除该函数,请使用CopyBigFile代替")]
public static int CopyFile(string sourceFileName, string destinationFileName)
{
string errorMsg = "";
@ -353,66 +356,17 @@ namespace ryCommon
/// <returns></returns>
public static bool CopyBigFile(string soucrePath, string targetPath)
{
try
{
//读取复制文件流
using (FileStream fsRead = new FileStream(soucrePath, FileMode.Open, FileAccess.Read))
{
//写入文件复制流
using (FileStream fsWrite = new FileStream(targetPath, FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] buffer = new byte[1024 * 1024 * 2]; //每次读取2M
//可能文件比较大要循环读取每次读取2M
while (true)
{
//每次读取的数据 n是每次读取到的实际数据大小
int n = fsRead.Read(buffer, 0, buffer.Count());
//如果n=0说明读取的数据为空已经读取到最后了跳出循环
if (n == 0)
{
break;
}
//写入每次读取的实际数据大小
fsWrite.Write(buffer, 0, n);
}
}
}
return true;
}
catch
{
return false;
}
return file_op.CopyBigFile(soucrePath, targetPath);
}
/// <summary>
/// 复制文件夹到目标文件夹
/// 复制文件夹到目标文件夹(从3.0.2205.2601版本起已更换实现底层)
/// </summary>
/// <param name="fromDir">源文件夹</param>
/// <param name="ToDir">目标文件夹</param>
/// <returns>返回移动操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
/// <returns>返回复制操作是否成功的标识成功返回0负数表示复制失败的文件数量。1表示源文件夹不存在</returns>
public static int CopyFolder(string fromDir, string ToDir)
{
var _fromDir = fromDir.TrimEnd('\\');
var _ToDir=ToDir.TrimEnd('\\');
if (!Directory.Exists(_fromDir)) { return 1; }
var files = Directory.GetFiles(fromDir);
var error = 0;
foreach (var file in files)
{
if (CopyFile(file, _ToDir + "\\" + Path.GetFileName(file)) != 0)
{
error++;
}
}
var dirs = Directory.GetDirectories(_fromDir);
foreach (var dir in dirs)
{
if (CopyFolder(dir, _ToDir + "\\" + Path.GetFileName(dir)) > 0)
{
error++;
}
}
return -error;
return file_op.CopyFolder(fromDir, ToDir);
}
#endregion
@ -661,10 +615,18 @@ namespace ryCommon
/// <returns></returns>
public static int OpenFile(string FilePath)
{
return RunFile(FilePath, "");
}
[DllImport("Kernel32", CharSet = CharSet.Unicode)]
private static extern Int32 GetShortPathName(String path, StringBuilder shortPath, Int32 shortPathLength);
if (System.IO.Directory.Exists(FilePath))
{
System.Diagnostics.Process.Start(FilePath);
return 0;
}
else
{
return RunFile(FilePath, "");
}
}
[DllImport("Kernel32", CharSet = CharSet.Unicode)]
private static extern int GetShortPathName(String path, StringBuilder shortPath, Int32 shortPathLength);
/// <summary>
/// 打开文件夹并定位文件
/// </summary>
@ -722,7 +684,7 @@ namespace ryCommon
/// </summary>
/// <param name="path"></param>
/// <param name="content"></param>
public void AppendLogs(string path, string content)
public static void AppendLogs(string path, string content)
{
AppendAllText(path, DateTime.Now.ToString("yyyy-MM-dd HHmm:ss") + "\t" + content);
}
@ -731,7 +693,7 @@ namespace ryCommon
/// </summary>
/// <param name="path"></param>
/// <param name="content"></param>
public void AppendAllText(string path, string content)
public static void AppendAllText(string path, string content)
{
if (!System.IO.File.Exists(path))
{
@ -822,10 +784,7 @@ namespace ryCommon
/// <param name="encoding"></param>
public static void WriteAllText(string path, string content, Encoding encoding)
{
if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(path)))
{
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path));
}
CreateDirectory(System.IO.Path.GetDirectoryName(path));
System.IO.File.WriteAllText(path, content, encoding);
}
/// <summary>
@ -856,7 +815,7 @@ namespace ryCommon
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static Int64 GetFileSize(string path)
public static long GetFileSize(string path)
{
try
{
@ -875,48 +834,7 @@ namespace ryCommon
/// <returns>成功执行则返回路径,否则返回空</returns>
public static string AddFileToFolder(string filepath,string toFolder,bool RenameByTime, out bool OK)
{
OK = false;
var _toFolder = toFolder.TrimEnd('\\');
CreateDirectory(_toFolder);
if (!System.IO.Directory.Exists(_toFolder)) { return ""; }
if (!System.IO.File.Exists(filepath) && !System.IO.Directory.Exists(filepath)) { return ""; }
var filename = System.IO.Path.GetFileName(filepath);
if (RenameByTime) { filename = DateTime.Now.ToString("yyyyMMddHHmmss") + System.IO.Path.GetExtension(filepath); }
if(!System.IO.File.Exists(_toFolder+"\\"+ filename) && !System.IO.Directory.Exists(_toFolder + "\\" + filename)) {
string errorMsg = "";
if (ToMoveOrCopy(WFunc.FO_COPY, filepath, _toFolder + "\\" + filename, false, false, false, ref errorMsg) == 0)
{
OK = true;
return _toFolder + "\\" + filename;
}
return "";//如果复制失败,则返回空路径
}
else //如果目标路径已经存在同名文件
{
int index = 0;
string filename_noext;
if (RenameByTime) { filename_noext = DateTime.Now.ToString("yyyyMMddHHmmss"); }
else { filename_noext = System.IO.Path.GetFileNameWithoutExtension(filepath); }
var ext= System.IO.Path.GetExtension(filepath);
while (index<20) //最多重试20次
{
Random rd = new Random(Guid.NewGuid().GetHashCode());
if (RenameByTime) { filename_noext = DateTime.Now.ToString("yyyyMMddHHmmss"); }
var to_path = _toFolder + "\\" + filename_noext+"_"+ rd.Next(1000, 9999)+ ext;
if(!System.IO.File.Exists(to_path) && !System.IO.Directory.Exists(to_path))
{
string errorMsg = "";
if (ToMoveOrCopy(WFunc.FO_COPY, filepath, to_path, false, false, false, ref errorMsg) == 0)
{
OK = true;
return to_path;
}
return "";
}
index++;
}
return "";
}
return file_op.AddFileToFolder(filepath, toFolder, RenameByTime,out OK);
}
/// <summary>
/// 获取文件大小字符串

View File

@ -267,9 +267,20 @@ namespace ryCommonDb
string valueSQL = "(";
for (int i = 0; i <List.Count; i++)
{
SQLIitem item = (SQLIitem)List[i];
SQLIitem item = List[i];
tmpFieldSQL +=item.Field + ",";
valueSQL += "@" + item.Field.TrimStart('[').TrimEnd(']') + ",";
if (item.value is long int1)
{
valueSQL += int1 + ",";
}
else if (item.value is int @int)
{
valueSQL += @int + ",";
}
else
{
valueSQL += "@" + item.Field.TrimStart('[').TrimEnd(']') + ",";
}
}
for (int i = 0; i < List_Nullparam.Count; i++)
{
@ -287,13 +298,19 @@ namespace ryCommonDb
string tmpSQL = "update " + TableName + " set ";
for (int i = 0; i < List.Count; i++)
{
SQLIitem item = (SQLIitem)List[i];
tmpSQL += item.Field + "=" + "@" + item.Field.TrimStart('[').TrimEnd(']') + ",";
}
for (int i = 0; i < List_calcparam.Count; i++)
{
SQLIitem item = (SQLIitem)List_calcparam[i];
tmpSQL += item.Field + "=" + item.value + ",";
SQLIitem item = List[i];
if (item.value is long int1)
{
tmpSQL += item.Field + "=" + int1 + ",";
}
else if (item.value is int @int)
{
tmpSQL += item.Field + "=" + @int + ",";
}
else
{
tmpSQL += item.Field + "=" + "@" + item.Field.TrimStart('[').TrimEnd(']') + ",";
}
}
for (int i = 0; i < List_Nullparam.Count; i++)
{
@ -319,12 +336,12 @@ namespace ryCommonDb
System.Data.OleDb.OleDbParameter[] defPar = new System.Data.OleDb.OleDbParameter[List.Count+ List_param.Count];
for (int i = 0; i < List.Count; i++)
{
SQLIitem item = (SQLIitem)List[i];
SQLIitem item = List[i];
defPar[i] =new System.Data.OleDb.OleDbParameter("@"+item.Field, item.value);
}
for (int i = List.Count; i < List.Count + List_param.Count; i++)
{
SQLIitem item = (SQLIitem)List_param[i- List.Count];
SQLIitem item = List_param[i- List.Count];
defPar[i] = new System.Data.OleDb.OleDbParameter("@" + item.Field.TrimStart('@'), item.value);
}
return defPar;

View File

@ -75,6 +75,7 @@
<Compile Include="DbManage\VarExtension.cs" />
<Compile Include="FileFuns\ElevatedDragDropManager.cs" />
<Compile Include="FileFuns\FileInfo.cs" />
<Compile Include="FileFuns\BigFileOp.cs" />
<Compile Include="FileFuns\Hosts.cs" />
<Compile Include="FileFuns\SoundPlay.cs" />
<Compile Include="FileFuns\RyFiles.cs" />
@ -136,6 +137,7 @@
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="RyWeb\HttpHelper.cs" />
<Compile Include="RyWeb\HttpServer.cs" />
<Compile Include="RyWeb\QuickWeb.cs" />
<Compile Include="RyWeb\WebDecode.cs" />
<Compile Include="SafeCheck\AES.cs" />

View File

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

View File

@ -0,0 +1,256 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using ryCommon;
namespace RyWeb
{
/// <summary>
/// Http服务器类
/// </summary>
public class HttpServer
{
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public delegate void HttpRequestHandler(object sender, HttpRequest e);
/// <summary>
/// 当收到Get事件时激发
/// </summary>
[Description("当收到Get事件时激发")]
public event HttpRequestHandler OnHandleGETRequest;
/// <summary>
/// 当收到Post事件时激发
/// </summary>
[Description("当收到Post事件时激发")]
public event HttpRequestHandler OnHandlePOSTRequest;
private HttpListener listener;
private Thread httpThread;
private volatile bool stopped = false;
/// <summary>
/// 监听的主机,默认是localhost
/// </summary>
public string ListenerHost { get; set; } = "localhost";
private int port = 19955;
/// <summary>
/// 最后一次错误信息
/// </summary>
public string ErrorMessage { get;internal set; } = "";
/// <summary>
/// 在此端口建立Http服务类
/// </summary>
/// <param name="port">端口号</param>
public HttpServer(int port)
{
isrunning = false;
stopped = false;
try
{
listener = new HttpListener();
this.port= port;
listener.Prefixes.Add("http://"+ ListenerHost + ":" + port + "/");
//listener.Prefixes.Add(HTTPS_PREFIX + HTTPS_PORT + "/");
listener.Start();
httpThread = new Thread(new ThreadStart(Run));
httpThread.Start();
isrunning = true;
}
catch(Exception ex) { ErrorMessage = ex.Message; }
}
private bool isrunning = false;
/// <summary>
///
/// </summary>
/// <returns></returns>
public bool IsRunning()
{
return isrunning;
}
/// <summary>
/// 开始服务
/// </summary>
public void Start()
{
isrunning = false;
stopped = false;
try
{
if (listener == null || !listener.IsListening)
{
listener = new HttpListener();
listener.Prefixes.Add("http://"+ ListenerHost + ":" + port + "/");
//listener.Prefixes.Add(HTTPS_PREFIX + HTTPS_PORT + "/");
listener.Start();
}
if (httpThread == null || httpThread.ThreadState != ThreadState.Running)
{
httpThread = new Thread(new ThreadStart(Run));
httpThread.Start();
}
isrunning = true;
}
catch(Exception ex) { ErrorMessage = ex.Message; }
}
/// <summary>
/// 退出服务
/// </summary>
public void Exit()
{
stopped = true;
try
{
if (listener != null)
{
listener.Stop();
listener.Close();
}
if (httpThread != null)
{
httpThread.Interrupt();
}
listener = null;
httpThread = null;
}
catch (Exception ex) { ErrorMessage = ex.Message; }
isrunning = false;
}
/// <summary>
///
/// </summary>
~HttpServer()
{
Exit();
}
private void Run()
{
while (!stopped)
{
try
{
var r = listener.BeginGetContext(new AsyncCallback(RequestHandler), listener);
r.AsyncWaitHandle.WaitOne();
r.AsyncWaitHandle.Close();
}
catch (ThreadInterruptedException e1) { ErrorMessage = e1.Message; }
catch (HttpListenerException e2)
{
ErrorMessage = e2.Message;
}
}
}
private void RequestHandler(IAsyncResult r)
{
try
{
_RequestHandler(r);
}
catch (Exception e)
{
ErrorMessage = e.Message;
}
}
private void _RequestHandler(IAsyncResult r)
{
if (stopped) return;
var l = (HttpListener)r.AsyncState;
var ctx = l.EndGetContext(r);
var req = ctx.Request;
var resp = ctx.Response;
var html = "";
if(req.HttpMethod=="GET")
{
HttpRequest e = new HttpRequest();
e.Url = req.Url;
e.UrlReferrer = req.UrlReferrer;
OnHandleGETRequest?.Invoke(this,e);
resp.StatusCode = (int)e.StatusCode;
html = e.ReturnHtml;
}
else if(req.HttpMethod=="POST")
{
HttpRequest e = new HttpRequest
{
Url = req.Url,
UrlReferrer = req.UrlReferrer
};
var sr = new StreamReader(req.InputStream, Encoding.GetEncoding("GB2312"));
e.PostDataStr = sr.ReadToEnd();
e.PostData= RyWeb.WebDecode.UrlToData(e.PostDataStr);
sr.Close();
OnHandlePOSTRequest?.Invoke(this, e);
resp.StatusCode = (int)e.StatusCode;
html = e.ReturnHtml;
}
var buffer = Encoding.UTF8.GetBytes(html);
resp.ContentLength64 = buffer.Length;
resp.OutputStream.Write(buffer, 0, buffer.Length);
var outs = resp.OutputStream;
outs.Close();
resp.Close();
}
}
/// <summary>
///
/// </summary>
public class HttpRequest
{
/// <summary>
///
/// </summary>
public Uri Url { get; internal set; }
/// <summary>
///
/// </summary>
public string PostDataStr { get; internal set; } = "";
/// <summary>
///
/// </summary>
internal Tuple<string, IEnumerable<KeyValuePair<string, string>>> PostData { get; set; }
/// <summary>
///
/// </summary>
public string GetPostData(string Param)
{
return PostData.Get(Param);
}
/// <summary>
///
/// </summary>
public string GetPostData(string Param,string defValue)
{
return PostData.Get(Param, defValue);
}
/// <summary>
///
/// </summary>
public int GetPostData(string Param,int defValue)
{
return PostData.Get(Param, defValue);
}
/// <summary>
///
/// </summary>
public bool GetPostData(string Param, bool defValue)
{
return PostData.Get(Param, defValue);
}
/// <summary>
///
/// </summary>
public Uri UrlReferrer { get; internal set; }
/// <summary>
///
/// </summary>
public string ReturnHtml { get; set; } = "";
/// <summary>
///
/// </summary>
public HttpStatusCode StatusCode { get; set; } = HttpStatusCode.OK;
}
}

View File

@ -422,7 +422,7 @@ namespace RyWeb
/// </summary>
/// <param name="ch"></param>
/// <returns></returns>
public static bool IsUrlSafeChar(char ch)
private static bool IsUrlSafeChar(char ch)
{
if ((((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z'))) || ((ch >= '0') && (ch <= '9')))
{
@ -446,7 +446,7 @@ namespace RyWeb
/// </summary>
/// <param name="n"></param>
/// <returns></returns>
public static char IntToHex(int n)
private static char IntToHex(int n)
{
if (n <= 9)
{
@ -463,5 +463,58 @@ namespace RyWeb
{
return System.Web.HttpUtility.HtmlDecode(str);
}
/// <summary>
/// 将url里的字段分解成表单字典
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
/// <exception cref="ArgumentNullException"></exception>
/// <exception cref="FormatException"></exception>
public static Tuple<string, IEnumerable<KeyValuePair<string, string>>> UrlToData(string url)
{
if (url == null)
throw new ArgumentNullException("url");
url = url.Trim();
try
{
var split = url.Split(new[] { '?', '&' }, StringSplitOptions.RemoveEmptyEntries);
if (split.Length == 1)
return new Tuple<string, IEnumerable<KeyValuePair<string, string>>>(url, null);
//获取前面的URL地址
var host = split[0];
var pairs = split.Skip(1).Select(s =>
{
//没有用String.Split防止某些少见Query String中出现多个=,要把后面的无法处理的=全部显示出来
var idx = s.IndexOf('=');
return new KeyValuePair<string, string>(Uri.UnescapeDataString(s.Substring(0, idx)), Uri.UnescapeDataString(s.Substring(idx + 1)));
}).ToList();
return new Tuple<string, IEnumerable<KeyValuePair<string, string>>>(host, pairs);
}
catch (Exception ex)
{
throw new FormatException("URL格式错误", ex);
}
}
/// <summary>
/// 根据表单字段名获取值
/// </summary>
/// <param name="decoded"></param>
/// <param name="name"></param>
/// <param name="defValue"></param>
/// <returns></returns>
public static string GetParam(Tuple<string, IEnumerable<KeyValuePair<string, string>>> decoded, string name,string defValue)
{
var query = decoded.Item2.Where(key => key.Key == name);
if (query != null)
{
var list = query.ToList();
if (list.Count > 0)
{
return list[0].Value;
}
else { return defValue; }
}
else { return defValue; }
}
}
}

View File

@ -119,6 +119,14 @@ namespace ryCommon
return User32.GetActiveWindow();
}
/// <summary>
/// 获取当前前台的窗口句柄
/// </summary>
/// <returns></returns>
public static IntPtr GetForegroundWindow()
{
return User32.GetForegroundWindow();
}
/// <summary>
/// 设置为当前活动窗口
/// </summary>
/// <param name="hwnd"></param>
@ -144,6 +152,23 @@ namespace ryCommon
public static void Show(Form frm)
{
bool topmost = frm.TopMost;
if(frm.WindowState!= FormWindowState.Normal)
{
frm.WindowState= FormWindowState.Normal;
}
var screen = Screen.PrimaryScreen.WorkingArea;
if (!screen.Contains(frm.Location))
{
frm.Location = new Point((screen.Width-frm.Width)/2, (screen.Height - frm.Height) / 2);
}
else if (!screen.Contains(new Point(frm.Left,frm.Top+100)))
{
frm.Location = new Point((screen.Width - frm.Width) / 2, (screen.Height - frm.Height) / 2);
}
else if (!screen.Contains(new Point(frm.Left+100, frm.Top)))
{
frm.Location = new Point((screen.Width - frm.Width) / 2, (screen.Height - frm.Height) / 2);
}
frm.BringToFront();
frm.TopMost = true;
frm.TopMost = topmost;

View File

@ -47,6 +47,165 @@ namespace ryCommon
}
}
/// <summary>
/// 删除注册表键(如果存在子键,子键将一并被删除)
/// </summary>
/// <param name="_RegRoot"></param>
/// <param name="_UseSystemBit"></param>
/// <param name="Path"></param>
/// <param name="KeyName"></param>
/// <returns></returns>
public static bool DelKey(RegistryHive _RegRoot, RegistryView _UseSystemBit, string Path,string KeyName)
{
var result = false;
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(_RegRoot, _UseSystemBit);
RegistryKey softwareRun = LMach.OpenSubKey(Path, false);
if (softwareRun != null)
{
softwareRun.DeleteSubKeyTree(KeyName,false);
result= true;
}
softwareRun.Close();
LMach.Close();
return result;
}
catch
{
return result;
}
}
/// <summary>
/// 删除注册表键值
/// </summary>
/// <param name="_RegRoot"></param>
/// <param name="_UseSystemBit"></param>
/// <param name="Path"></param>
/// <param name="ValueName"></param>
/// <returns></returns>
public static bool DelValue(RegistryHive _RegRoot, RegistryView _UseSystemBit, string Path, string ValueName)
{
var result = false;
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(_RegRoot, _UseSystemBit);
RegistryKey softwareRun = LMach.OpenSubKey(Path, false);
if (softwareRun != null)
{
if (softwareRun.GetValue(ValueName) != null)
{
softwareRun.DeleteValue(ValueName, false);
result= true;
}
else
{
result= false;
}
}
softwareRun.Close();
LMach.Close();
return result;
}
catch
{
return result;
}
}
/// <summary>
/// 获取注册表键值
/// </summary>
/// <param name="_RegRoot"></param>
/// <param name="_UseSystemBit"></param>
/// <param name="Path"></param>
/// <param name="ValueName"></param>
/// <param name="defValue"></param>
/// <returns></returns>
public static string GetValue(RegistryHive _RegRoot, RegistryView _UseSystemBit, string Path, string ValueName,string defValue)
{
var result = defValue;
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(_RegRoot, _UseSystemBit);
RegistryKey softwareRun = LMach.OpenSubKey(Path, false);
if (softwareRun != null)
{
var value = softwareRun.GetValue(ValueName);
if (value == null) { result= defValue; }
else { result= value.ToString(); }
}
else { result= defValue; }
softwareRun.Close();
LMach.Close();
return result;
}
catch
{
return result;
}
}
/// <summary>
/// 设置注册表键值
/// </summary>
/// <param name="_RegRoot"></param>
/// <param name="_UseSystemBit"></param>
/// <param name="Path"></param>
/// <param name="ValueName"></param>
/// <param name="Value"></param>
/// <returns></returns>
public static bool SetValue(RegistryHive _RegRoot, RegistryView _UseSystemBit, string Path, string ValueName, string Value)
{
var result = false;
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(_RegRoot, _UseSystemBit);
RegistryKey softwareRun = LMach.OpenSubKey(Path, true);
if (softwareRun != null)
{
softwareRun.SetValue(ValueName, Value);
result = true;
}
else { result = false; }
softwareRun.Close();
LMach.Close();
return result;
}
catch
{
return result;
}
}
/// <summary>
/// 设置注册表键值
/// </summary>
/// <param name="_RegRoot"></param>
/// <param name="_UseSystemBit"></param>
/// <param name="Path"></param>
/// <param name="ValueName"></param>
/// <param name="Value"></param>
/// <returns></returns>
public static bool SetValue(RegistryHive _RegRoot, RegistryView _UseSystemBit, string Path, string ValueName, uint Value)
{
var result = false;
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(_RegRoot, _UseSystemBit);
RegistryKey softwareRun = LMach.OpenSubKey(Path, true);
if (softwareRun != null)
{
softwareRun.SetValue(ValueName, Value, RegistryValueKind.DWord);
result = true;
}
else { result = false; }
softwareRun.Close();
LMach.Close();
return result;
}
catch
{
return result;
}
}
/// <summary>
/// 设置是否开机启动
/// </summary>
/// <param name="AutoRun">是否开机启动</param>
@ -109,13 +268,10 @@ namespace ryCommon
try
{
bool sxResult = false;
RegistryKey LMach = RegistryKey.OpenBaseKey(RegRoot, UseSystemBit);
RegistryKey softwareRun = LMach.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
if (softwareRun.GetValue(StartName, "").ToString() == StartCommand)
var value = GetValue(RegRoot, UseSystemBit, @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", StartName, "");
if (value == StartCommand)
{ sxResult = true; }
else { sxResult = false; }
softwareRun.Close();
LMach.Close();
return sxResult;
}
catch
@ -133,13 +289,10 @@ namespace ryCommon
try
{
bool sxResult = false;
RegistryKey LMach = RegistryKey.OpenBaseKey(RegRoot, UseSystemBit);
RegistryKey softwareRun = LMach.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
if (softwareRun.GetValue(StartName, "").ToString() != "")
var value = GetValue(RegRoot, UseSystemBit, @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", StartName, "");
if (value != "")
{ sxResult = true; }
else { sxResult = false; }
softwareRun.Close();
LMach.Close();
return sxResult;
}
catch
@ -186,12 +339,7 @@ namespace ryCommon
{
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(RegRoot, UseSystemBit);
RegistryKey softwareRun = LMach.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true);
softwareRun.SetValue(filename, IEMode, RegistryValueKind.DWord);
softwareRun.Close();
LMach.Close();
return true;
return SetValue(RegRoot, UseSystemBit, @"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", filename, IEMode);
}
catch
{
@ -371,12 +519,7 @@ namespace ryCommon
{
try
{
RegistryKey LMach = RegistryKey.OpenBaseKey(RegRoot, UseSystemBit);
RegistryKey softwareRun = LMach.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true);
softwareRun.SetValue(filename, IEMode, RegistryValueKind.DWord);
softwareRun.Close();
LMach.Close();
return true;
return SetValue(RegRoot, UseSystemBit, @"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", filename, (uint)IEMode);
}
catch
{

View File

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

View File

@ -7,6 +7,7 @@ using DataParameter =MySql.Data.MySqlClient.MySqlParameter;
using DataCommand = MySql.Data.MySqlClient.MySqlCommand;
using DataAdapter = MySql.Data.MySqlClient.MySqlDataAdapter;
using ryCommonDb;
using ryCommon;
namespace ryCommonDb
{
@ -23,7 +24,13 @@ namespace ryCommonDb
/// <returns></returns>
public int ConnDb(string sql)
{
myDb.fv_ConnStr = sql;
var _sql = sql;
if(_sql.IndexOfEx("Allow User Variables")<=0)
{
if (!_sql.EndsWith(";")) { _sql += ";"; }
_sql += "Allow User Variables=True;";
}
myDb.fv_ConnStr = _sql;
return myDb.ConnDb();
}
/// <summary>
@ -194,6 +201,7 @@ namespace ryCommonDb
{
DataCommand cmd = myDb.SQL_cn.CreateCommand();
cmd.Parameters.Clear();
cmd.CommandTimeout = 300;
if (Parameter != null)
{
for (int i = 0; i < Parameter.Length; i++)
@ -252,7 +260,8 @@ namespace ryCommonDb
{
DataCommand cmd = myDb.SQL_cn.CreateCommand();
cmd.Parameters.Clear();
if(Parameter!=null)
cmd.CommandTimeout = 300;
if (Parameter!=null)
cmd.Parameters.AddRange(Parameter);
cmd.CommandText = sql;
int i= cmd.ExecuteNonQuery();

View File

@ -337,6 +337,24 @@ namespace MGdu.WinFormUI
Invalidate();
}
}
private Image gmform_icon = null;
/// <summary>
/// 窗体图标,如果设置本项,将不使用Icon属性
/// </summary>
[Category("GMForm")]
[Description("窗体图标,如果设置本项,将不使用Icon属性")]
public Image GMFormIcon
{
get
{
return gmform_icon;
}
set
{
gmform_icon = value;
Invalidate();
}
}
/// <summary>
/// 标题栏图标与窗体左边框的距离
/// </summary>
@ -1124,7 +1142,14 @@ namespace MGdu.WinFormUI
{
if (ShowIcon && Icon != null && XTheme.DrawCaptionIcon)
{
g.DrawIcon(this.Icon, IconRect);
if (GMFormIcon == null)
{
g.DrawIcon(this.Icon, IconRect);
}
else
{
g.DrawImage(this.GMFormIcon, IconRect);
}
}
if (!string.IsNullOrEmpty(Text) && XTheme.DrawCaptionText)
@ -1360,6 +1385,7 @@ namespace MGdu.WinFormUI
alreadyHandled = WmNcCalcSize(ref m);
break;
case (int)Win32.WinAPI.WindowMessages.WM_NCHITTEST:
if(base.WindowState!= FormWindowState.Maximized)
alreadyHandled = WmNcHitTest(ref m);
break;
@ -1599,7 +1625,9 @@ namespace MGdu.WinFormUI
{
base.OnMouseMove(e);
if (ControlBox)
{
controlBoxManager.MouseOperation(e.Location, MouseOperationType.Move);
}
if (IsMdiContainer && _mdiBarController != null)
_mdiBarController.MouseOperation(e.Location, MouseOperationType.Move);
}

View File

@ -2492,8 +2492,8 @@ namespace BrightIdeasSoftware
get
{
ArrayList list = new ArrayList();
if (objects == null) { return list; }
var enumer = this.objects.GetEnumerator();
if (this.Objects == null) { return list; }
var enumer = this.Objects.GetEnumerator();
while(enumer.MoveNext())
{
list.Add(enumer.Current);
@ -4380,7 +4380,13 @@ namespace BrightIdeasSoftware
dataObject.CreateTextFormats();
Clipboard.SetDataObject(dataObject);
}
/// <summary>
/// 将所有对象的文本和HTML表示复制到剪贴板上。
/// </summary>
public virtual void CopyObjectsToClipboard()
{
CopyObjectsToClipboard(ObjectsList);
}
/// <summary>
/// 返回给定对象的html表示形式
/// </summary>

View File

@ -96,11 +96,16 @@ namespace BrightIdeasSoftware.Rendering
RoundStyle style,
int roundWidth, bool drawBorder)
{
RenderBackgroundInternal(g, rect, baseColor, borderColor, innerBorderColor, style, roundWidth, 0.35f, drawBorder, false, LinearGradientMode.Vertical);
var rect2 = rect;
rect2.X += 2;
rect2.Y += 2;
rect2.Width -= 6;
rect2.Height -=16;
RenderBackgroundInternal(g, rect2, baseColor, borderColor, innerBorderColor, style, roundWidth, 0.35f, drawBorder, false, LinearGradientMode.Vertical);
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
g.DrawString(Text, new Font("宋体", 10), new SolidBrush(ForeColor), rect, sf);
g.DrawString(Text, new Font("宋体", 9), new SolidBrush(ForeColor), rect2, sf);
}
private static void RenderBackgroundInternal(
Graphics g,

View File

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

View File

@ -1,68 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ryUpdateV35", "ryUpdate\ryUpdateV35.csproj", "{11A63E24-0257-4C54-A109-F1A609A52A62}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ryControlsV35", "ryControls\ryControlsV35.csproj", "{9ECA3A84-8545-4C4D-84D6-D23E3BDF2D90}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyDbV35", "MyDb\MyDbV35.csproj", "{B0F80073-D661-42D8-A512-8488D980B87E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyDb_SQLiteV35", "MyDb_SQLite\MyDb_SQLiteV35.csproj", "{6B969CE8-D723-4B2C-A8FD-FAD2FB28FF01}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyDb_MSSQLV35", "MyDb_MSSQL\MyDb_MSSQLV35.csproj", "{631290D3-7CB8-4B62-833E-361C20A5F2E0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{11A63E24-0257-4C54-A109-F1A609A52A62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11A63E24-0257-4C54-A109-F1A609A52A62}.Debug|Any CPU.Build.0 = Debug|Any CPU
{11A63E24-0257-4C54-A109-F1A609A52A62}.Debug|x86.ActiveCfg = Debug|Any CPU
{11A63E24-0257-4C54-A109-F1A609A52A62}.Debug|x86.Build.0 = Debug|Any CPU
{11A63E24-0257-4C54-A109-F1A609A52A62}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11A63E24-0257-4C54-A109-F1A609A52A62}.Release|Any CPU.Build.0 = Release|Any CPU
{11A63E24-0257-4C54-A109-F1A609A52A62}.Release|x86.ActiveCfg = Release|Any CPU
{11A63E24-0257-4C54-A109-F1A609A52A62}.Release|x86.Build.0 = Release|Any CPU
{9ECA3A84-8545-4C4D-84D6-D23E3BDF2D90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9ECA3A84-8545-4C4D-84D6-D23E3BDF2D90}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9ECA3A84-8545-4C4D-84D6-D23E3BDF2D90}.Debug|x86.ActiveCfg = Debug|x86
{9ECA3A84-8545-4C4D-84D6-D23E3BDF2D90}.Debug|x86.Build.0 = Debug|x86
{9ECA3A84-8545-4C4D-84D6-D23E3BDF2D90}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9ECA3A84-8545-4C4D-84D6-D23E3BDF2D90}.Release|Any CPU.Build.0 = Release|Any CPU
{9ECA3A84-8545-4C4D-84D6-D23E3BDF2D90}.Release|x86.ActiveCfg = Release|x86
{9ECA3A84-8545-4C4D-84D6-D23E3BDF2D90}.Release|x86.Build.0 = Release|x86
{B0F80073-D661-42D8-A512-8488D980B87E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B0F80073-D661-42D8-A512-8488D980B87E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B0F80073-D661-42D8-A512-8488D980B87E}.Debug|x86.ActiveCfg = Debug|x86
{B0F80073-D661-42D8-A512-8488D980B87E}.Debug|x86.Build.0 = Debug|x86
{B0F80073-D661-42D8-A512-8488D980B87E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B0F80073-D661-42D8-A512-8488D980B87E}.Release|Any CPU.Build.0 = Release|Any CPU
{B0F80073-D661-42D8-A512-8488D980B87E}.Release|x86.ActiveCfg = Release|x86
{B0F80073-D661-42D8-A512-8488D980B87E}.Release|x86.Build.0 = Release|x86
{6B969CE8-D723-4B2C-A8FD-FAD2FB28FF01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6B969CE8-D723-4B2C-A8FD-FAD2FB28FF01}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6B969CE8-D723-4B2C-A8FD-FAD2FB28FF01}.Debug|x86.ActiveCfg = Debug|Any CPU
{6B969CE8-D723-4B2C-A8FD-FAD2FB28FF01}.Debug|x86.Build.0 = Debug|Any CPU
{6B969CE8-D723-4B2C-A8FD-FAD2FB28FF01}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6B969CE8-D723-4B2C-A8FD-FAD2FB28FF01}.Release|Any CPU.Build.0 = Release|Any CPU
{6B969CE8-D723-4B2C-A8FD-FAD2FB28FF01}.Release|x86.ActiveCfg = Release|Any CPU
{6B969CE8-D723-4B2C-A8FD-FAD2FB28FF01}.Release|x86.Build.0 = Release|Any CPU
{631290D3-7CB8-4B62-833E-361C20A5F2E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{631290D3-7CB8-4B62-833E-361C20A5F2E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{631290D3-7CB8-4B62-833E-361C20A5F2E0}.Debug|x86.ActiveCfg = Debug|Any CPU
{631290D3-7CB8-4B62-833E-361C20A5F2E0}.Debug|x86.Build.0 = Debug|Any CPU
{631290D3-7CB8-4B62-833E-361C20A5F2E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{631290D3-7CB8-4B62-833E-361C20A5F2E0}.Release|Any CPU.Build.0 = Release|Any CPU
{631290D3-7CB8-4B62-833E-361C20A5F2E0}.Release|x86.ActiveCfg = Release|Any CPU
{631290D3-7CB8-4B62-833E-361C20A5F2E0}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal