diff --git a/Bin/Debug/VSoft/DyLine.exe b/Bin/Debug/VSoft/DyLine.exe
index 1b4dc29..97e1b67 100644
Binary files a/Bin/Debug/VSoft/DyLine.exe and b/Bin/Debug/VSoft/DyLine.exe differ
diff --git a/Bin/Debug/VSoft/MyDb.dll b/Bin/Debug/VSoft/MyDb.dll
index 87d72d0..16596cd 100644
Binary files a/Bin/Debug/VSoft/MyDb.dll and b/Bin/Debug/VSoft/MyDb.dll differ
diff --git a/Bin/Debug/VSoft/MyDb.xml b/Bin/Debug/VSoft/MyDb.xml
index f4779a0..a2f065f 100644
--- a/Bin/Debug/VSoft/MyDb.xml
+++ b/Bin/Debug/VSoft/MyDb.xml
@@ -1,4829 +1,4864 @@
-
-
-
- MyDb
-
-
-
-
- 基于XML实现的权限类
-
-
-
-
- 用户名
-
-
-
-
- 用户id
-
-
-
-
- 密码
-
-
-
-
- 权限控制Id
-
-
-
-
- 用户备注
-
-
-
-
- 是否是管理员权限
-
-
-
-
- 是否是超级管理员权限
-
-
-
-
- 设置权限
-
- 权限名称
- 权限值
- 返回是否设置成功
-
-
-
- 获取权限
-
- 权限名称
- 默认权限值
- 返回权限值
-
-
-
- 获取权限
-
- 权限名称
- 返回权限值
-
-
-
- 批量导入权限
-
- 权限相关的内容
- 返回是否执行成功
-
-
-
- 导出权限
-
- 返回导出文本
-
-
-
- 清除所有权限
-
- 返回是否执行成功
-
-
-
- 汉字转拼音静态类,包括功能全拼和缩写,方法全部是静态的
-
-
-
-
- 汉字的机内码数组
-
-
-
-
- 机内码对应的拼音数组
-
-
-
-
- 把汉字转换成拼音(全拼)
-
- 汉字字符串
- 转换后的拼音(全拼)字符串
-
-
-
- 把汉字转换成拼音(全拼)
-
- 汉字字符串
- 转换后的拼音(全拼)字符串
-
-
-
- 把汉字转换成拼音(首拼)
-
- 汉字字符串
- 转换后的拼音(首拼)字符串
-
-
-
- 把汉字转换成拼音(全拼)
-
- 汉字字符串
- 用指定字符分隔
- 转换后的拼音(全拼)字符串
-
-
-
- 汉字转拼音缩写
-
- 要转换的汉字字符串
- 拼音缩写
-
-
-
- 汉字转拼音缩写 (字符串) (小写) (空格间隔)
-
- 要转换的汉字字符串
- 拼音缩写
-
-
-
- 汉字转拼音缩写 (大写)
-
- 要转换的汉字字符串
- 拼音缩写
-
-
-
- 汉字转拼音缩写 (字符串)(大写)(空格间隔)
-
- 要转换的汉字字符串
- 拼音缩写
-
-
-
- 取单个字符的拼音声母
-
- 要转换的单个汉字
- 拼音声母
-
-
-
- 取单个字符的拼音声母
-
- 要转换的单个汉字
- 拼音声母
-
-
-
- Ini操作类
-
-
-
-
- 写入Ini
-
-
-
-
-
-
-
-
-
- 获取Ini
-
-
-
-
-
-
-
-
-
-
-
- 声明INI文件的读操作函数 GetPrivateProfileString()
-
-
-
-
-
-
-
-
-
-
-
- 声明INI文件的读操作函数 GetPrivateProfileString()
-
-
-
-
-
-
-
-
-
- 声明INI文件的读操作函数 GetPrivateProfileString()
-
-
-
-
-
-
-
-
-
-
-
- 获取所有节点名称(Section)
-
- 存放节点名称的内存地址,每个节点之间用\0分隔
- 内存大小(characters)
- Ini文件
- 内容的实际长度,为0表示没有内容,为nSize-2表示内存大小不够
-
-
-
- 编码
-
-
-
-
- Ini操作类
-
-
-
-
-
- 根据section取所有key和值
-
-
-
-
-
-
- 读取INI文件中指定INI文件中的所有节点名称(Section)
-
- 所有节点,没有内容返回string[0]
-
-
-
- 读取INI文件
-
- 段,格式[]
- 键
- 返回byte类型的section组或键值组
-
-
-
- 根据section取所有key
-
-
-
-
-
-
- 写入ini
-
-
-
-
-
-
-
- 写入ini
-
-
-
-
-
-
-
- 写入ini
-
-
-
-
-
-
-
- 写入ini
-
-
-
-
-
-
-
- 写入ini
-
-
-
-
-
-
-
- 写入Ini
-
-
-
-
-
-
-
- 读取Ini
-
-
-
-
-
-
-
- 读取Ini
-
-
-
-
-
-
-
-
- 读取Ini
-
-
-
-
-
-
-
-
- 读取Ini
-
-
-
-
-
-
-
-
-
-
- 写入ini
-
-
-
-
-
-
-
-
- 删除Ini的Key
-
-
-
-
-
-
- 删除Ini节点
-
-
-
-
-
- 控件信息
-
-
-
-
- id
-
-
-
-
- 控件对象
-
-
-
-
- 控件值类型
-
-
-
-
- 默认值
-
-
-
-
- 值类型
-
-
-
-
- 默认
-
-
-
-
- 取列表顺序值
-
-
-
-
- 取当前选择的列表值
-
-
-
-
- 取对象值
-
-
-
-
- 保存的设置类型
-
-
-
-
- Ini
-
-
-
-
- XML
-
-
-
-
- 对象值
-
-
-
-
- 显示的文本
-
-
-
-
- 图片序号
-
-
-
-
- id
-
-
-
-
- Tag值
-
-
-
-
- 显示文本值
-
-
-
-
-
- 星期数据
-
-
-
-
- 一周的开始时间
-
-
-
-
- 一周的结束时间
-
-
-
-
- XML操作类
-
-
-
-
- XML操作类
-
-
-
-
- 从XML文本中加载数据
-
-
-
-
-
- 从指定的XML文本中加载
-
- XML文本
- 如为1,表示加载成功,为0为失败
-
-
-
- 载入空的XML文档
-
- 如为1,表示加载成功,为0为失败
-
-
-
- 从指定的文件中加载
-
- XML文件路径
- 如为1,表示加载成功,为0为失败
-
-
-
- 保存到指定文件中
-
- 文件路径
- 如为1,表示保存成功,为0为失败
-
-
-
- 判断节点是否存在
-
- 属性名
- 属性值
- 返回1,表示存在,其它表示不存在
-
-
-
- 定位节点
-
- 属性名
- 属性值
- 返回第一个符合要求的结果
-
-
-
- 定位节点,如果找不到节点,就新建一个节点
-
- 属性名
- 属性值
- 返回第一个符合要求的结果
-
-
-
- 根据用户的节点定位节点,输入节点时,一定要注意节点是属于类内部的,否则可能出错。
-
- 返回第一个符合要求的结果
-
-
-
- 定位设置节点
-
- 返回第一个符合要求的结果
-
-
-
- 在节点后插入数据
-
-
-
-
-
-
- 在节点前插入数据
-
-
-
-
-
-
- 获取节点数量
-
- 属性名
- 属性值
- 返回符合要求的结果数量
-
-
-
- 获取节点数量
-
- 返回符合要求的结果数量
-
-
-
- 获取节点数量
-
- 属性名
- 属性值
-
-
-
- 返回符合要求的结果数量
-
-
-
- 设置节点值
-
- 属性名
- 属性值
- 如为1,表示加载成功,为0为失败
-
-
-
- 设置节点值
-
- 属性名
- 属性值
- 如为1,表示加载成功,为0为失败
-
-
-
- 设置节点值
-
- 属性名
- 属性值
- 如为1,表示加载成功,为0为失败
-
-
-
- 设置节点值
-
- 属性名
- 属性值
- 如为1,表示加载成功,为0为失败
-
-
-
- 设置节点值
-
- 属性名
- 属性值
- 如为1,表示加载成功,为0为失败
-
-
-
- 设置节点值
-
- 属性名
- 属性值
- 如为1,表示加载成功,为0为失败
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 获取属性值
-
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 读取所有的节点名称
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 读取指定节点的值
-
-
-
-
-
-
-
- 获取XML文件的根元素
-
-
-
-
- 获取所有列表
-
- 如为1,表示获取成功,为0为失败
-
-
-
- 获取所有列表
-
- 如为1,表示获取成功,为0为失败
-
-
-
- 新增节点
-
-
-
-
-
-
-
- 新增节点并定位到新节点
-
-
-
-
-
-
-
- 新增设置节点并定位
-
-
-
-
-
- 在指定节点前新增节点并定位到新节点
-
-
-
-
-
-
-
-
- 获取当前节点
-
-
-
-
-
- 删除节点
-
-
-
-
-
- 获取XML文本
-
-
-
-
-
- 获取XML文本
-
-
-
-
-
- 获取文本
-
-
-
-
-
- 获取文本
-
-
-
-
-
- 字符串操作类
-
-
-
-
- 字符串转Base64
-
-
-
-
-
-
- Base64转字符串
-
-
-
-
-
-
- 转换指定字符串为布尔类型
-
-
-
-
- 转换指定字符串为Double类型
-
-
-
-
- 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
-
- 第一个日期和时间
- 第二个日期和时间
-
-
-
-
- 已重载.计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值.
-
- 一个日期和时间
-
-
-
-
- 转换指定字符串为Int类型
-
-
-
-
- 转换指定字符串为Int类型
-
-
-
-
- 转换指定布尔类型为Int类型,true为1,false为0
-
-
-
-
- 判断指定字符串是否是布尔类型
-
-
-
-
- 判断指定字符串是否是Double类型
-
-
-
-
- 判断指定字符串是否是Int类型
-
-
-
-
- 根据年月日转换成日期
-
-
-
-
-
-
-
-
- 追加字符
-
-
-
-
- 获取2个字符串中间的内容,point1为空表示从首位开始算,point2为空表示算到结尾。
-
-
-
-
- 判断字符串是否只包含数字或英文
-
-
-
-
-
-
- 判断字符串是否匹配,支持?*通配符
-
- 待匹配的字符串
- 匹配的通配符
-
-
-
-
- 通配符替换
-
-
-
-
-
-
-
-
- 获取匹配的内容
-
-
-
-
-
-
-
-
- 文件时间
-
-
-
-
- 创建时间
-
-
-
-
- 最后修改时间
-
-
-
-
- 访问时间
-
-
-
-
- 图片类型
-
-
-
-
- Bmp图片
-
-
-
-
- Jpeg图片
-
-
-
-
- Png图片
-
-
-
-
- Gif动态图片
-
-
-
-
- Tiff图片
-
-
-
-
- 对变量的拓展
-
-
-
-
- 替换文本(忽略大小写)
-
-
- 需要替换的内容
- 替换后的内容
-
-
-
-
- 替换文本(忽略大小写),可支持通配符
-
-
-
-
- 是否是通配符表达式,不是,则普通替换,忽略大小写,是,则启用通配符替换
-
-
-
-
- 获取符合要求的第一个结果
-
-
-
- 是否是正则
-
-
-
-
- 查找字符串,忽略大小写
-
-
-
-
-
-
-
-
- 查找字符串,忽略大小写
-
-
-
-
-
-
-
- 判断字符串是否是数字或英文
-
-
-
-
-
-
- 是否在指定范围内
-
-
-
-
-
-
-
-
- 是否在指定范围内
-
-
-
-
-
-
-
-
- 转换指定字符串为Int类型
-
-
- 最小值
- 最大值
- 如果字符串不在范围内,则使用本默认值
-
-
-
-
- 转换指定布尔类型到Int类型,true为1,false为0
-
-
-
-
-
-
- 将指定类型转换成整型
-
-
-
-
-
-
-
- 将指定类型转换成整型
-
-
-
-
-
-
- 将指定类型转换成长整型
-
-
-
-
-
-
-
- 将指定类型转换成长整型
-
-
-
-
-
-
- 转换指定类型为Double类型
-
-
-
-
-
-
-
- 转换指定类型为Double类型
-
-
-
-
-
-
- 转换DateTime类型到日期时间字符串
-
-
-
-
-
-
- 转换DateTime类型到日期字符串
-
-
-
-
-
-
- 转换DateTime类型到日期星期字符串
-
-
-
-
-
-
- 转换DateTime类型到Unix时间戳
-
-
-
-
-
-
- 转换Unix时间戳到DateTime类型
-
-
-
-
-
-
- 判断字符串是否与内容匹配
-
-
-
-
-
-
-
- 将变量值转换成Double类型,如果不在指定区域范围内,则使用默认值
-
-
-
-
-
-
-
-
-
- 转换到文件大小字符串
-
-
-
-
-
-
- 转换到文件大小字符串
-
-
-
-
-
-
- 转换指定类型为Decimal类型
-
-
-
-
-
-
-
- 将变量值转换成Decimal类型
-
-
-
-
-
-
- 将变量值转换成Decimal类型,如果不在指定区域范围内,则使用默认值
-
-
-
-
-
-
-
-
-
- 转换指定类型为DateTime类型
-
-
-
-
-
-
-
- 将变量值转换成DateTime类型
-
-
-
-
-
-
- 转换指定类型为布尔类型
-
-
-
-
-
-
- 追加字符
-
-
-
-
-
-
-
- 获取指定字符串之间的内容
-
-
-
-
-
-
-
-
- 获取指定字符串之间的内容
-
-
-
-
-
-
-
-
-
-
-
- 判断指定字符串是否是Int类型
-
-
-
-
-
-
- 判断指定字符串是否是Double类型
-
-
-
-
-
-
- 判断是否是布尔类型
-
-
-
-
-
-
- 将字符串转换为Base64类型
-
-
-
-
-
-
- 判断字符串是否在指定长度
-
-
-
-
-
-
-
-
- 判断能否转换成日期格式
-
-
-
-
-
-
- 文件信息
-
-
-
-
- 获取版本号
-
-
-
-
- 获取版本号
-
-
-
-
-
-
- 判断是否是管理员方式运行
-
-
-
-
-
- Hosts操作类
-
-
-
-
- 获取并转换hosts内容
-
- hosts内容
-
-
-
-
- 获取hosts并转换hosts内容
-
- hosts内容
-
-
-
-
- 追加内容到hosts里
-
- 要追加的内容列表,每一行为ip 域名的格式
- 0表示无需新增,-1表示添加失败,1表示追加成功
-
-
-
- 追加内容到hosts里
-
- 要追加的内容
- 0表示无需新增,-1表示添加失败,1表示追加成功
-
-
-
- 追加内容到hosts里
-
- ip地址
- 域名
- 0表示无需新增,-1表示添加失败,1表示追加成功
-
-
-
- 从hosts文件里删除内容
-
- 要删除的内容
- 0表示无需删除,-1表示添加失败,1表示删除成功
-
-
-
- 从hosts文件里删除内容
-
- ip地址
- 域名
- 0表示无需删除,-1表示添加失败,1表示删除成功
-
-
-
- Host信息
-
-
-
-
- IP
-
-
-
-
- 域名
-
-
-
-
- 注释
-
-
-
-
- 是否要删除
-
-
-
-
- 音频播放类
-
-
-
-
- 临时音频文件
-
-
-
-
- 父窗口句柄
-
-
-
-
- 声音标签
-
-
-
- play synchronously (default)
-
-
- play asynchronously
-
-
- silence (!default) if sound not found
-
-
- pszSound points to a memory file
-
-
- loop the sound until next sndPlaySound
-
-
- don’t stop any currently playing sound
-
-
- Stop Playing Wave
-
-
- don’t wait if the driver is busy
-
-
- name is a registry alias
-
-
- alias is a predefined id
-
-
- name is file name
-
-
- name is resource name or atom
-
-
-
- 音频播放类
-
- embedded music file
- 临时保存的文件位置
- 父窗口句柄
-
-
-
- 音频播放类
-
- 要播放的音频位置
- 父窗口句柄
-
-
-
- 音频播放类
-
-
- 父窗口句柄
-
-
-
- 播放音频
-
-
-
-
-
- 播放音频
-
-
-
-
- 关闭音频
-
-
-
-
- 文件操作类
-
-
-
-
-
-
-
-
-
- 删除单个文件。
-
- 删除的文件名
- 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除
- 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框
- 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效
- 反馈错误消息的字符串
- 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
-
-
-
- 删除单个文件。
-
- 删除的文件名
- 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除
- 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
-
-
-
- 永久删除单个文件。
-
- 永久删除的文件名
- 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
-
-
-
- 删除一组文件。
-
- 字符串数组,表示一组文件名
- 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除
- 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框
- 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效
- 反馈错误消息的字符串
- 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
-
-
-
- 移动文件到指定路径下
-
- 要移动的文件名
- 移动到的目的路径
-
-
-
-
- 移动一个文件到指定路径下
-
- 要移动的文件名
- 移动到的目的路径
- 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
- 指示是否显示进度对话框
- 指示当文件名重复时,是否自动为新文件加上后缀名
- 反馈错误消息的字符串
- 返回移动操作是否成功的标识,成功返回0,失败返回错误代码
-
-
-
- 移动一组文件到指定的路径下
-
- 要移动的文件名数组
- 移动到的目的路径
- 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
- 指示是否显示进度对话框
- 指示当文件名重复时,是否自动为新文件加上后缀名
- 反馈错误消息的字符串
- 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常
-
-
-
- 复制文件到指定的文件名或路径
-
- 要复制的文件名
- 复制到的目的文件名或路径
-
-
-
-
- 复制文件到指定的文件名或路径
-
- 要复制的文件名
- 复制到的目的文件名或路径
- 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
- 指示是否显示进度对话框
- 指示当文件名重复时,是否自动为新文件加上后缀名
- 返回错误信息
- 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常
-
-
-
- 复制一组文件到指定的路径
-
- 要复制的文件名数组
- 复制到的目的路径
- 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
- 指示是否显示进度对话框
- 指示当文件名重复时,是否自动为新文件加上后缀名
- 返回错误信息
- 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常
-
-
-
- 重命名一个文件为新名称,建议您使用更方便的Microsoft.VisualBasic.FileSystem.ReName();替换该方法
-
- 要复制的文件名
- 复制到的目的文件名或路径
- 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
- 返回错误信息
- 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常
-
-
-
- 删除单个或多个文件
-
- 删除的文件名,如果是多个文件,文件名之间以字符串结尾符'\0'隔开
- 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除
- 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框
- 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效
- 反馈错误消息的字符串
- 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
-
-
-
- 移动或复制一个或多个文件到指定路径下
-
- 操作类型,是移动操作还是复制操作
- 要移动或复制的文件名,如果是多个文件,文件名之间以字符串结尾符'\0'隔开
- 移动到的目的位置
- 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
- 指示是否显示进度对话框
- 指示当文件名重复时,是否自动为新文件加上后缀名
- 反馈错误消息的字符串
- 返回移动操作是否成功的标识,成功返回0,失败返回错误代码
-
-
-
- 如果指定文件夹不存在,则创建文件夹
-
-
-
-
-
- 获取一个文件的全名
-
- 文件名
- 返回生成文件的完整路径名
-
-
-
- 获取一个文件的全名
-
- 文件名
- 返回生成文件的完整路径名
-
-
-
- 解释错误代码
-
- 代码号
- 返回关于错误代码的文字描述
-
-
-
- 运行文件
-
-
-
-
-
-
-
- /运行文件
-
-
-
-
-
-
-
- 运行程序
-
-
-
-
-
-
- 打开文件
-
-
-
-
-
-
- 打开文件夹并定位文件
-
-
-
-
-
-
- 打开网址
-
-
-
-
-
-
- 判断文件名是否有效
-
-
-
-
-
-
- 转换到有效文件名
-
-
-
-
-
-
- 追加日志
-
-
-
-
-
- 追加文件
-
-
-
-
-
- 读取文件内容,可以自动识别文件编码
-
-
-
-
-
-
- 读取文件所有行,可以自动识别文件编码
-
-
-
-
-
-
- 写入所有文本行到文件,如果文件夹不存在,会自动创建
-
-
-
-
-
-
-
- 写入所有文本到文件,如果文件夹不存在,会自动创建
-
-
-
-
-
-
-
- 从文件中加载图片,使用本方法,不会导致图片文件被占用。
-
-
-
-
-
- 获取文件大小
-
-
-
-
-
-
- 添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径)
-
- 要添加的文件路径
- 要添加到的文件夹
- 是否根据时间进行重命名
- 返回是否成功执行
- 成功执行则返回路径,否则返回空
-
-
-
- 获取文件大小字符串
-
-
-
-
-
-
- 获取文件大小字符串
-
-
-
-
-
-
- 复制内容到剪切板
-
-
-
-
-
- 添加某个控件为支持拖放属性
-
-
-
-
-
-
- 保存高质量不失真照片
-
-
-
-
-
-
-
- 保存高质量不失真照片
-
-
-
-
-
-
-
- 保存高质量不失真照片
-
-
-
-
-
-
-
- 获取绝对路径
-
-
-
-
-
-
- 获取相对路径
-
-
-
-
-
-
- 获取图标
-
-
-
-
-
-
-
-
-
-
-
-
-
- 销毁图标
-
-
-
-
-
-
- 获取文件图标
-
-
-
-
-
-
-
-
-
- 用于取得一个文本文件的编码方式(Encoding)。
-
-
-
-
- 用于取得一个文本文件的编码方式(Encoding)。
-
-
-
-
- 取得一个文本文件的编码方式。如果无法在文件头部找到有效的前导符,Encoding.Default将被返回。
-
- 文件名。
-
-
-
-
- 取得一个文本文件流的编码方式。
-
- 文本文件流。
-
-
-
-
- 取得一个文本文件的编码方式。
-
- 文件名。
- 默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。
-
-
-
-
- 取得一个文本文件流的编码方式。
-
- 文本文件流。
- 默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。
-
-
-
-
- 通过给定的文件流,判断文件的编码类型
-
- 文件流
- 文件的编码类型
-
-
-
- 判断是否是不带 BOM 的 UTF8 格式
-
-
-
-
-
-
- 新模态窗体
-
-
-
-
- 设置窗体返回的结果值,并关闭窗体。
-
- 当前窗体
- 模态变量
- 防止
-
-
-
- 窗体返回的结果事件
-
-
-
-
-
-
- 当打开的窗体返回结果时激发
-
-
-
-
- 窗体返回的状态
-
-
-
-
- 实例化类
-
- 父窗体,如果为null,则取桌面为父窗体
-
-
-
-
- 获取最顶级的父窗口
-
-
-
-
-
- 显示新模态窗体,会暂时禁用父窗体,关闭当前窗体后,父窗体会恢复。
-
-
-
-
- 只运行一个实例,打开后,所有窗体都依然有效。
-
-
-
-
-
- 显示窗体
-
- 显示的位置
-
-
-
- 显示在父窗体中间
-
-
-
-
- 窗体显示位置
-
-
-
-
- 右上角
-
-
-
-
- 顶部中间
-
-
-
-
- 顶部右边
-
-
-
-
- 中间
-
-
-
-
- 左下角
-
-
-
-
- 底部中间
-
-
-
-
- 右下角
-
-
-
-
- 父窗体居中
-
-
-
-
- 日期时间的操作类
-
-
-
-
- 获取当前是周几,周一到周日,分别是1-7.
-
-
-
-
-
-
- 获取当前是周几,1-7,分别是返回一到日.
-
-
-
-
-
-
- 获取当前是周几,输入日期,根据周几,分别是返回一到日.
-
-
-
-
-
-
- 获取一周的开始和结束,开始时间为第一天的0点,结束时间以最后一天的0点为结束时间
-
-
-
-
-
-
- 获取2个日期相差几周
-
-
-
-
-
-
-
- 获取2个日期相差几个月
-
-
-
-
-
-
-
- 获取一个月的开始
-
-
-
-
-
-
- 判断是否在同一个星期。
-
-
-
-
-
-
-
- 判断是否在同一个月。
-
-
-
-
-
-
-
- 判断是否在同一天
-
-
-
-
-
-
-
- 计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
-
- 第一个日期和时间
- 第二个日期和时间
-
-
-
-
- 计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
-
- 第一个日期和时间
- 第二个日期和时间
- 是否显示秒
-
-
-
-
- 计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值.
-
- 一个日期和时间
-
-
-
-
- 将c# DateTime时间格式转换为Unix时间戳格式
-
- 时间
- long
-
-
-
- 时间戳转为C#格式时间
-
-
-
-
-
-
- 将c# DateTime时间格式转换为js时间戳格式
-
- 时间
- long
-
-
-
- JS时间戳转为C#格式时间
-
-
-
-
-
-
- 根据年月日转换成日期
-
-
-
-
-
-
-
-
- 根据日期和时间转换成日期时间
-
-
-
-
-
-
-
- 将时间转换成当前分钟开始的时间
-
-
-
-
-
-
- 将时间转换成当前秒钟开始的时间
-
-
-
-
-
-
- 当前时间在这一天里的秒数
-
-
-
-
-
-
- 窗体操作类
-
-
-
-
- 设置Comobox的行间距
-
-
-
-
-
-
- 移除关闭按钮。返回值,非零表示成功,零表示失败。
-
- 窗口的句柄
- 是否成功
-
-
-
- 把窗体放到最前
-
-
-
-
-
- 显示窗体
-
-
-
-
-
-
-
- 设置窗体是否置顶
-
-
-
-
-
-
- 显示没有焦点的窗口
-
-
-
-
-
- 根据句柄获取窗口文本
-
-
-
-
-
-
- 根据句柄获取窗口类
-
-
-
-
-
-
- 获取当前活动的窗口句柄
-
-
-
-
-
- 设置为当前活动窗口
-
-
-
-
-
-
- 根据窗口句柄来获得进程id
-
-
-
-
-
-
- 显示窗体
-
-
-
-
-
- 设置窗体父窗体为桌面,不会随着显示桌面而最小化,但无法设置窗体透明度
-
-
-
-
-
- 结束进程
-
-
-
-
-
-
- 打开窗体,只打开一个实例(非模态)
-
-
-
-
-
-
- 设置注册表操作,部分功能需要管理员权限
-
-
-
-
- 访问的注册表位置(64位还是32位)
-
-
-
-
- 访问的注册表节点
-
-
-
-
- 设置是否开机启动
-
- 是否开机启动
- 开机启动名称
- 启动命令
-
-
-
-
- 设置是否开机启动
-
- 是否开机启动
- 开机启动名称
-
-
-
-
- 把指定文件设置为开机启动或取消开机启动
-
- 是否开机启动
- 开机启动名称
- 要开机启动的文件路径
-
-
-
-
- 检查是否开机启动
-
- 开机启动名称
- 开机启动命令
-
-
-
-
- 检查是否开机启动
-
- 开机启动名称
-
-
-
-
- 判断指定文件是否是开机启动
-
- 开机启动名称
- 文件路径
-
-
-
-
- 判断当前程序是否是开机启动
-
- 开机启动名称
-
-
-
-
- 判断当前程序是否是开机启动
-
- 开机启动名称
- 启动命令行
-
-
-
-
- 设置指定文件的浏览器控件内核版本
-
- 文件名,要求不带路径
- 7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
-
-
-
-
- 采用的IE模式
-
-
-
-
- IE7兼容视图
-
-
-
-
- IE8 标准模式
-
-
-
-
- IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
-
-
-
-
- IE9 标准模式
-
-
-
-
- IE9 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
-
-
-
-
- IE10 标准模式
-
-
-
-
- IE10 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
-
-
-
-
- 设置当前软件的浏览器控件内核版本
-
- 7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
-
-
-
-
- 设置指定文件的浏览器控件内核版本
-
- 文件名,要求不带路径
- IE内核版本
-
-
-
-
- 设置当前软件的浏览器控件内核版本
-
- IE内核版本
-
-
-
-
- 系统函数
-
-
-
-
-
-
-
-
-
- 红
-
-
-
-
- 绿
-
-
-
-
- 蓝
-
-
-
-
- 获取屏幕伽马值
-
-
-
-
-
-
-
- 设置屏幕伽马值
-
-
-
-
-
-
-
- 获取键盘和鼠标没有操作的时间
-
-
-
-
-
- 设置屏幕 Gamma值
-
-
-
-
-
-
-
-
- 设置屏幕亮度
-
-
-
-
-
-
- 获取系统
-
-
-
-
-
- 窗体操作类
-
-
-
-
- 构造函数
-
-
-
-
-
- 析构
-
-
-
-
- 设置让窗体支持移动
-
-
-
-
- 是否允许可调节大小
-
-
-
-
- 可调节窗体大小的宽度
-
-
-
-
-
-
-
-
-
-
- 给控件增加拖放功能的类
-
-
-
-
- 拖放实例
-
-
-
-
- 高级拖放事件
-
-
-
-
-
-
-
-
-
- 使支持拖放属性
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 网络操作类
-
-
-
-
- 通过NetworkInterface读取网卡Mac
-
-
-
-
-
- 通过NetworkInterface读取网卡Mac
-
-
-
-
-
- 根据mac字符串来获取最终的mac地址,可以是各种MAC地址格式,非法的内容将返回null
-
-
-
-
-
-
- 远程唤醒
-
-
-
-
-
-
-
- 远程唤醒
-
-
-
-
-
-
-
-
- 消息客户端类
-
-
-
-
- 判断当前消息主服务器是否创建成功
-
-
-
-
- 最后一次接收消息的时间,可用来判断服务端是否有响应
-
-
-
-
- 主句柄
-
-
-
-
- 当收到消息时激发
-
-
-
-
- 连接上主服务器时触发
-
-
-
-
- 收到服务端关闭通知
-
-
-
-
- 收到服务端关闭通知,即将关闭
-
-
-
-
- 服务端大小改变时激发
-
-
-
-
- 实例化客户端
-
- 服务端ID
- 当前客户端ID,会向服务器报告当前ID
- 客户端
-
-
-
-
-
-
-
-
- 断开服务端连接
-
-
-
-
- 发送消息,采用多线程发送
-
-
-
-
-
-
- 向服务端发送心跳包
-
-
-
-
- 判断服务端句柄是否存在。
-
-
-
-
-
- 共享内存
-
-
-
-
- 写共享内存
-
- 需要映射的文件的字节数量
- 映射对象(简单类型、结构体等)
- 文件映射对象的名称
-
-
-
-
- 写共享内存
-
- 需要映射的文件的字节数量
- 映射对象(简单类型、结构体等)
- 文件映射对象的名称
- 发送消息的窗口句柄
- 发送消息
-
-
-
-
- 读共享内存
-
- 需要映射的文件的字节数量
- 类型
- 文件映射对象的名称
- 返回读到的映射对象
-
-
-
- 读共享内存
-
- 需要映射的文件的字节数量
- 类型
- 文件映射对象的名称
- 返回读到的映射字节数据
-
-
-
- 消息服务器
-
-
-
-
- 消息事件
-
-
-
-
-
-
- 大小改变事件
-
-
-
-
-
-
-
- 即将关闭事件
-
-
-
-
-
-
- 当收到消息时激发
-
-
-
-
- 消息处理类
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 发送消息,采用单线程发送
-
- 要发送到的句柄
- 编号
- 消息内容
-
-
-
- 发送消息,采用多线程发送
-
- 要发送到的句柄
- 编号
- 消息内容
-
-
-
- 消息类
-
-
-
-
- 是否取消
-
-
-
-
- 来源句柄
-
-
-
-
-
-
-
-
-
- 消息文本
-
-
-
-
- 需要回复的内容
-
-
-
-
- 消息服务端类
-
-
-
-
- 判断当前消息主服务器是否创建成功
-
-
-
-
- 当收到消息时激发
-
-
-
-
- 当收到自定义消息时(非系统消息)激发
-
-
-
-
- 有消息客户端发起连接请求时激发
-
-
-
-
- 有消息客户端连接成功时激发
-
-
-
-
- 有消息客户端断开连接时激发
-
-
-
-
-
-
- 服务端ID,需要唯一性,共客户端识别
- 服务端
-
-
-
- 释放资源
-
-
-
-
- 判断是否包含指定客户端
-
-
-
-
-
-
-
-
-
-
-
- 设置客户端大小
-
-
-
-
- 根据客户端ID,获取客户端对象
-
-
-
-
-
-
- 根据客户端句柄,获取客户端对象
-
-
-
-
-
-
- 关闭所有客户端
-
-
-
-
- 关闭指定客户端
-
-
-
-
-
- 关闭指定客户端
-
-
-
-
-
- 向所有客户端发送消息,单线程
-
-
-
-
-
-
- 向指定客户端发送消息
-
-
-
-
-
-
-
- 关闭在指定时间前失去响应的子客户端
-
-
-
-
-
- 客户端信息
-
-
-
-
- 客户端句柄
-
-
-
-
- 客户端ID
-
-
-
-
- 客户端连接时间
-
-
-
-
- 心跳时间
-
-
-
-
- 数据库引擎
-
-
-
-
- 数据库枚举类型
-
-
-
-
- Odbc引擎
-
-
-
-
- OleDb引擎
-
-
-
-
- Oracle引擎
-
-
-
-
- MSSQL引擎
-
-
-
-
- SQLite引擎
-
-
-
-
- MySql引擎
-
-
-
-
- 判断DataSet是否包含数据
-
-
-
-
-
-
- 获取首行数据
-
-
-
-
-
-
- 获取第一行第一列的值
-
-
-
-
-
-
- 将DataSet类型转换为RyQuickSQL列表类型
-
-
-
-
-
-
- 将DataSet类型转换为RyQuickSQL列表类型
-
-
-
-
-
-
-
- 数据库操作接口
-
-
-
-
- 连接数据库
-
-
-
-
-
- 断开数据库
-
-
-
-
-
- 获取数量
-
-
-
-
-
-
-
- 获取分页语句
-
-
-
-
-
-
-
-
- 获取分页语句
-
-
-
-
-
-
-
-
- 获取分页语句
-
-
-
-
-
-
-
-
-
- 获取分页语句
-
-
-
-
-
-
-
-
-
- 添加Parameter参数
-
-
-
-
-
-
- 清空Parameter参数
-
-
-
-
-
-
- 获取Parameter值
-
-
-
-
-
- 根据RyQuickSQL类来获取Parameter值
-
-
-
-
-
-
- 开始执行事务
-
-
-
-
- 提交事务
-
-
-
-
- 判断是否包含数据
-
-
-
-
-
-
-
- 返回-1000表示该数据库不支持本接口
-
-
-
-
-
-
- 读取数据
-
-
-
-
-
-
- 读取数据
-
-
-
-
-
-
-
- 读取数据
-
-
-
-
-
-
-
- 根据id号获取数据
-
-
-
-
-
-
-
- 执行SQL语句
-
-
-
-
-
-
-
- 执行SQL语句
-
-
-
-
-
-
-
- 执行SQL语句
-
-
-
-
-
-
- 根据id号删除数据
-
-
-
-
-
-
-
- 创建数据库
-
-
-
-
-
-
- 释放资源
-
-
-
-
- SQL字段类型
-
-
-
-
- SQL字段类型
-
-
-
-
-
-
- SQL字段类型
-
-
-
-
-
-
-
- SQL字段名
-
-
-
-
- SQL字段值
-
-
-
-
- SQL字段长度
-
-
-
-
- 不是真的值,而是用于计算的值
-
-
-
-
- SQL快速操作类
-
-
-
-
- SQL快速操作类
-
-
-
-
-
- 表名
-
-
-
-
- 操作字段列表
-
-
-
-
- 清理使用资源
-
-
-
-
- 清理使用资源
-
-
-
-
- 操作参数列表
-
-
-
-
- 操作参数列表
-
-
-
-
- 添加字符串字段
-
-
-
-
-
-
- 添加null值字段
-
-
-
-
-
- 添加日期字段
-
-
-
-
-
-
- 添加int字段
-
-
-
-
-
-
- 添加double字段
-
-
-
-
-
-
- 添加decimal字段
-
-
-
-
-
-
- 添加bool字段
-
-
-
-
-
-
- 添加用于计算的值
-
-
-
-
-
-
- 添加Int64字段
-
-
-
-
-
-
- 清空内容
-
-
-
-
- 数量
-
-
-
-
-
-
-
-
-
- 输出多条件搜索。
-
- 字段名,多个字段请用逗号分隔。
- 多个条件之间请用空格隔开
-
-
-
-
- 获取插入SQL语句
-
-
-
-
-
- 获取更新SQL语句
-
-
-
-
-
- 添加参数
-
-
-
-
-
-
- 获取Ole参数
-
-
-
-
-
- 获取SQL参数
-
-
-
-
-
- AES加密解密类
-
-
-
-
- AES加密算法
-
- 明文字符串
- 密钥
- 返回加密后的密文字节数组
-
-
-
- AES解密
-
- 密文字节数组
- 密钥
- 返回解密后的字符串
-
-
-
- 加密
-
-
-
-
-
-
-
- 解码
-
-
-
-
-
-
-
- 转换密钥到合法密钥
-
-
-
-
-
-
- Base64编码类
-
-
-
-
- 编码
-
-
-
-
-
-
- 把字符串编码成Base64字符串
-
-
-
-
-
-
-
- 解码
-
-
-
-
-
-
- MD5和SHA1操作类
-
-
-
-
- 获取MD5
-
-
-
-
-
-
- 获取MD5
-
-
-
-
-
-
- 获取SHA1
-
-
-
-
-
-
- 获取SHA1
-
-
-
-
-
-
- 获取HmacSHA1
-
-
-
-
-
-
-
- 获取SHA256
-
-
-
-
-
-
- 获取HmacSHA256
-
-
-
-
-
-
- 获取SHA224
-
-
-
-
-
-
- 获取SHA512
-
-
-
-
-
-
- 获取HmacSHA512
-
-
-
-
-
-
- 使用using代替lock操作的对象,可指定写入和读取锁定模式
-
-
-
- 利用IDisposable的using语法糖方便的释放锁定操作
- 内部类
-
-
-
- 读写锁对象
-
-
-
- 是否为写入模式
-
-
-
- 利用IDisposable的using语法糖方便的释放锁定操作
- 构造函数
-
- 读写锁
- 写入模式为true,读取模式为false
-
-
- 释放对象时退出指定锁定模式
-
-
-
- 空的可释放对象,免去了调用时需要判断是否为null的问题
- 内部类
-
-
-
- 空的可释放对象
-
-
-
- 空的释放方法
-
-
-
- 读写锁
-
-
-
- 保存数据
-
-
-
- 使用using代替lock操作的对象,可指定写入和读取锁定模式
- 构造函数
-
-
-
- 使用using代替lock操作的对象,可指定写入和读取锁定模式
- 构造函数
- 为Data属性设置初始值
-
-
-
- 获取或设置当前对象中保存数据的值
-
- 获取数据时未进入读取或写入锁定模式
- 设置数据时未进入写入锁定模式
-
-
- 是否启用,当该值为false时,Read()和Write()方法将返回 Disposable.Empty
-
-
-
- 进入读取锁定模式,该模式下允许多个读操作同时进行
- 退出读锁请将返回对象释放,建议使用using语块
- Enabled为false时,返回Disposable.Empty;
- 在读取或写入锁定模式下重复执行,返回Disposable.Empty;
-
-
-
- 进入写入锁定模式,该模式下只允许同时执行一个读操作
- 退出读锁请将返回对象释放,建议使用using语块
- Enabled为false时,返回Disposable.Empty;
- 在写入锁定模式下重复执行,返回Disposable.Empty;
-
- 读取模式下不能进入写入锁定状态
-
-
-
- 中国农历类,最大支持公元0-9999年
-
- 日期:2019-02-09
- 作者:http://www.cnblogs.com/zjfree/
-
-
-
- 日历类型
-
-
-
-
- 无效
-
-
-
-
- Julian 日历
-
-
-
-
- Gregorian 日历
-
-
-
-
- 有效
-
-
-
-
- 公历节日
-
-
-
-
- 农历节日
-
-
-
-
- 某个月第n个星期几
-
-
-
-
- 获取农历
-
-
-
-
-
-
- 获取农历
-
-
-
-
-
-
-
-
- 获得某农历年的闰月,返回 1~12 对应一月到十二月,返回 0 表示无闰月
-
-
-
-
-
-
- 农历搜索方向
-
-
-
-
- 无效
-
-
-
-
- 向上
-
-
-
-
- 向下
-
-
-
-
- {* 日月食类型, 无, 日食, 月全食, 月偏食 }
-
-
-
-
- 无
-
-
-
-
- 日食
-
-
-
-
- 月全食
-
-
-
-
- 月偏食
-
-
-
-
- {* 月相, 无, 朔, 望}
-
-
-
-
- 无
-
-
-
-
- 朔
-
-
-
-
- 望
-
-
-
-
- 获得某公历年月日的农历日数和该日月相以及日月食类型和时刻
-
-
-
-
-
-
-
-
-
-
-
- 获得某公历年月日的农历月数
-
-
-
-
-
-
-
-
- 获取阳历日期对应的农历日期
-
-
-
-
-
-
-
-
-
-
-
-
- 获得某公历年月日的农历月日和是否闰月的信息
-
-
-
-
-
-
-
-
-
-
-
- 获得等效标准日数对应的某公历日,倒推而来
-
-
-
-
-
-
-
-
-
- 比较两个农历日期(包括闰月信息),1 大于2返回1、1等于2返回0、1小于2返回-1
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获得某农历年月日(加是否闰月)的公历年月日
- 该函数采用反向二分法查找
-
-
-
-
-
-
-
-
-
-
-
-
- 获取农历某一个月的总天数
-
-
-
-
-
-
-
-
- 获取农历年份,范围约1901-2101年
-
-
-
-
-
-
- 获取农历年份,范围约0-9999年
-
-
-
-
-
-
-
-
- 获取农历月份,范围约1901-2101年
-
-
-
-
-
-
- 获取农历月份,范围约0-9999年
-
-
-
-
-
-
-
-
- 获取中文表示的农历月份
-
-
-
-
-
-
- 获取农历日,范围约1901-2101年
-
-
-
-
-
-
- 获取农历日,范围约0-9999年
-
-
-
-
-
-
-
-
- 获取农历日,范围约0-9999年
-
-
-
-
-
-
- 获取节气,范围约1901-2101年
-
-
-
-
-
-
- 获取节气,范围约0-9999年
-
-
-
-
-
-
-
-
- 返回y年第n个节气(如小寒为1)的日差天数值(pd取值真假,分别表示平气和定气)
-
-
-
- pd取值真假,分别表示平气和定气
-
-
-
-
- 获取等效标准日数
-
-
-
-
-
-
-
-
- 取本月天数,不考虑 1582 年 10 月的特殊情况
-
-
-
-
-
-
-
- 获取节气,范围约1901-2101年
-
-
-
-
-
-
- 获取节气,范围约0-9999年
-
-
-
-
-
-
-
-
- 获取节气
-
-
-
-
-
-
-
-
-
-
-
- 获取公历节日
-
-
-
-
-
-
- 获取公历节日
-
-
-
-
-
-
-
-
- 获取指定月份的第n个星期几的节日
-
-
-
-
-
-
- 返回星座,范围约1901-2101年
-
-
-
-
- 返回星座,范围约0-9999年
-
-
-
-
- 获取农历节日
-
-
-
-
-
-
-
-
- 获取农历节日
-
-
-
-
-
-
- 判断y年m月(1,2,..,12,下同)d日是Gregorian历还是Julian历(opt=1,2,3分别表示标准日历,Gregorge历和Julian历),是则返回1,是Julian历则返回0,若是Gregorge历所删去的那10天则返回-1
-
-
-
-
- 返回阳历y年m月d日的日差天数(在y年年内所走过的天数,如2000年3月1日为61)
-
-
-
-
- 返回阳历y年日差天数为x时所对应的月日数(如y=2000,x=274时,返回1001(表示10月1日,即返回100*m+d))
-
-
-
-
- 获取指定日期的节气。
-
- 要获取的年
- 要获取的月
-
-
- 立春:立是开始的意思,春是蠢动,表示万物开始有生气,这一天春天开始。
- 雨水:降雨开始,雨水将多。
- 惊蛰:春雷响动,惊动蛰伏地下冬眠的生物,它们将开始出土活动。
- 春分:这是春季九十天的中分点,这一天昼夜相等,所以古代曾称春分秋分为昼夜分。
- 清明:明洁晴朗,气候温暖,草木开始萌发繁茂。
- 谷雨:雨生百谷的意思。雨水增多,适时的降雨对谷物生长很为有利。
- 立夏:夏天开始,万物渐将随温暖的气候而生长。
- 小满:满指籽粒饱满,麦类等夏热作物这时开始结籽灌浆,即将饱满。
- 芒种:有芒作物开始成熟,此时也是秋季作物播种的最繁忙时节。
- 夏至:白天最长,黑夜最短,这一天中午太阳位置最高,日影短至终极,古代又称这一天为日北至或长日至。
- 小暑:暑是炎热,此时还未到达最热。
- 大暑:炎热的程度到达高峰。
- 立秋:秋天开始,植物快成熟了。
- 处暑:处是住的意思,表示暑气到此为止。
- 白露:地面水气凝结为露,色白,是天气开始转凉了。
- 秋分:秋季九十天的中间,这一天昼夜相等,同春分一样,太阳从正东升起正西落下。
- 寒露:水露先白而后寒,是气候将逐渐转冷的意思。
- 霜降:水气开始凝结成霜。
- 立冬:冬是终了,作物收割后要收藏起来的意思,这一天起冬天开始。
- 小雪:开始降雪,但还不多。
- 大雪:雪量由小增大。
- 冬至:这一天中午太阳在天空中位置最低,日影最长,白天最短, 黑夜最长,古代又称短日至或日南至。
- 小寒:冷气积久而为寒,此时尚未冷到顶点。
- 大寒:天候达到最寒冷的程度
-
-
-
-
- 获取年柱。
-
-
-
-
- 获得月柱
-
-
-
-
-
-
- 获取日柱。
-
-
-
-
- 返回甲子数x对应的天干数(如33为3)
-
-
-
-
- 返回甲子数x对应的地支数(如33为9)
-
-
-
-
- 获取日的天干地支
-
-
-
-
-
-
- 返回甲子数x对应的天干字符串
-
-
-
-
- 返回甲子数x对应的地支字符串
-
-
-
-
- 返回甲子数x对应的干支字符串
-
-
-
-
-
-
- 获取三伏开始时间
-
-
- 0表示1伏,1表示2伏,2表示3伏
-
-
-
-
- 节气
-
-
-
-
- 节气的时间。
-
-
-
-
- 节气名。
-
-
-
-
- 热键转换类
-
-
-
-
- 功能键。
-
-
-
-
- 修改键。
-
-
-
-
- 转换功能键到谷歌浏览器专用
-
-
-
-
- 将chrome功能键转换为普通功能键
-
-
-
-
-
-
- 按键值。
-
-
-
-
- 初始化类 的新实例。
-
- The modifiers.
- The key code.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 初始化类 的新实例。
-
-
-
-
- 加载热键
-
-
-
-
-
-
- 加载热键
-
-
-
-
-
- 加载热键
-
-
-
-
-
- 判断是否是热键
-
-
-
-
- 获取当前热键
-
-
-
-
- 已重载,返回“Ctrl+Alt+A”格式的字符串。
-
- 类似“Ctrl+Alt+A”格式的字符串
-
-
-
- 返回“Ctrl+Alt+A”格式的字符串。
-
- 类似“Ctrl+Alt+A”格式的字符串
-
-
-
- 功能键
-
-
-
-
- 无
-
-
-
-
- Alt键
-
-
-
-
- Ctrl键
-
-
-
-
- Shift键
-
-
-
-
- Win键
-
-
-
-
- 热键类
-
-
-
-
- 热键类
-
-
-
-
-
- 热键注销
-
-
-
-
- 热键是否有效
-
-
-
-
- 释放热键
-
-
-
-
- 注册热键
-
-
-
-
-
-
-
-
- 注册热键
-
-
-
-
-
-
-
-
- 删除热键
-
-
-
-
-
-
- 删除所有热键
-
-
-
-
- 热键事件
-
-
-
-
-
- 当使用热键时发生的事件
-
-
-
-
- 热键消息过滤
-
-
-
-
-
-
- 热键类型
-
-
-
-
- 热键id
-
-
-
-
- 功能键
-
-
-
-
- 普通键
-
-
-
-
- 热键类型
-
-
-
-
-
-
-
- Win32 API
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取当前前台窗口句柄
-
-
-
-
-
- 获得当前活动窗体
-
-
-
-
-
- 设置活动窗体
-
-
-
-
-
-
- 获取类名
-
-
-
-
-
-
-
-
- 获取当前线程对应的进程ID
-
-
-
-
-
-
-
- 判断指定句柄是否是一个窗口
-
-
-
-
-
-
- 获取窗口标题
-
-
-
-
-
-
-
-
- 查找窗口
-
-
-
-
-
-
-
- 设置父窗口
-
-
-
-
-
-
-
- 移动窗口
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 结束进程
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
- 获取窗口位置和大小
-
-
-
-
-
-
-
- 矩形
-
-
-
-
- 最左坐标
-
-
-
-
- 最上坐标
-
-
-
-
- 最右坐标
-
-
-
-
- 最下坐标
-
-
-
-
- WM_COPYDATA消息的主要目的是允许在进程间传递只读数据。
-
-
-
-
- 系统通道ID
-
-
-
-
- 用户通道ID
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 获取消息
-
-
-
-
-
-
-
- 发送消息
-
-
-
-
-
-
-
-
-
- 设置父窗口
-
-
-
-
-
-
-
-
+
+
+
+ MyDb
+
+
+
+
+ 基于XML实现的权限类
+
+
+
+
+ 用户名
+
+
+
+
+ 用户id
+
+
+
+
+ 密码
+
+
+
+
+ 权限控制Id
+
+
+
+
+ 用户备注
+
+
+
+
+ 是否是管理员权限
+
+
+
+
+ 是否是超级管理员权限
+
+
+
+
+ 设置权限
+
+ 权限名称
+ 权限值
+ 返回是否设置成功
+
+
+
+ 获取权限
+
+ 权限名称
+ 默认权限值
+ 返回权限值
+
+
+
+ 获取权限
+
+ 权限名称
+ 返回权限值
+
+
+
+ 批量导入权限
+
+ 权限相关的内容
+ 返回是否执行成功
+
+
+
+ 导出权限
+
+ 返回导出文本
+
+
+
+ 清除所有权限
+
+ 返回是否执行成功
+
+
+
+ 汉字转拼音静态类,包括功能全拼和缩写,方法全部是静态的
+
+
+
+
+ 汉字的机内码数组
+
+
+
+
+ 机内码对应的拼音数组
+
+
+
+
+ 把汉字转换成拼音(全拼)
+
+ 汉字字符串
+ 转换后的拼音(全拼)字符串
+
+
+
+ 把汉字转换成拼音(全拼)
+
+ 汉字字符串
+ 转换后的拼音(全拼)字符串
+
+
+
+ 把汉字转换成拼音(首拼)
+
+ 汉字字符串
+ 转换后的拼音(首拼)字符串
+
+
+
+ 把汉字转换成拼音(全拼)
+
+ 汉字字符串
+ 用指定字符分隔
+ 转换后的拼音(全拼)字符串
+
+
+
+ 汉字转拼音缩写
+
+ 要转换的汉字字符串
+ 拼音缩写
+
+
+
+ 汉字转拼音缩写 (字符串) (小写) (空格间隔)
+
+ 要转换的汉字字符串
+ 拼音缩写
+
+
+
+ 汉字转拼音缩写 (大写)
+
+ 要转换的汉字字符串
+ 拼音缩写
+
+
+
+ 汉字转拼音缩写 (字符串)(大写)(空格间隔)
+
+ 要转换的汉字字符串
+ 拼音缩写
+
+
+
+ 取单个字符的拼音声母
+
+ 要转换的单个汉字
+ 拼音声母
+
+
+
+ 取单个字符的拼音声母
+
+ 要转换的单个汉字
+ 拼音声母
+
+
+
+ Ini操作类
+
+
+
+
+ 写入Ini
+
+
+
+
+
+
+
+
+
+ 获取Ini
+
+
+
+
+
+
+
+
+
+
+
+ 声明INI文件的读操作函数 GetPrivateProfileString()
+
+
+
+
+
+
+
+
+
+
+
+ 声明INI文件的读操作函数 GetPrivateProfileString()
+
+
+
+
+
+
+
+
+
+ 声明INI文件的读操作函数 GetPrivateProfileString()
+
+
+
+
+
+
+
+
+
+
+
+ 获取所有节点名称(Section)
+
+ 存放节点名称的内存地址,每个节点之间用\0分隔
+ 内存大小(characters)
+ Ini文件
+ 内容的实际长度,为0表示没有内容,为nSize-2表示内存大小不够
+
+
+
+ 编码
+
+
+
+
+ Ini操作类
+
+
+
+
+
+ 根据section取所有key和值
+
+
+
+
+
+
+ 读取INI文件中指定INI文件中的所有节点名称(Section)
+
+ 所有节点,没有内容返回string[0]
+
+
+
+ 读取INI文件
+
+ 段,格式[]
+ 键
+ 返回byte类型的section组或键值组
+
+
+
+ 根据section取所有key
+
+
+
+
+
+
+ 写入ini
+
+
+
+
+
+
+
+ 写入ini
+
+
+
+
+
+
+
+ 写入ini
+
+
+
+
+
+
+
+ 写入ini
+
+
+
+
+
+
+
+ 写入ini
+
+
+
+
+
+
+
+ 写入Ini
+
+
+
+
+
+
+
+ 读取Ini
+
+
+
+
+
+
+
+ 读取Ini
+
+
+
+
+
+
+
+
+ 读取Ini
+
+
+
+
+
+
+
+
+ 读取Ini
+
+
+
+
+
+
+
+
+
+
+ 写入ini
+
+
+
+
+
+
+
+
+ 删除Ini的Key
+
+
+
+
+
+
+ 删除Ini节点
+
+
+
+
+
+ 控件信息
+
+
+
+
+ id
+
+
+
+
+ 控件对象
+
+
+
+
+ 控件值类型
+
+
+
+
+ 默认值
+
+
+
+
+ 值类型
+
+
+
+
+ 默认
+
+
+
+
+ 取列表顺序值
+
+
+
+
+ 取当前选择的列表值
+
+
+
+
+ 取对象值
+
+
+
+
+ 保存的设置类型
+
+
+
+
+ Ini
+
+
+
+
+ XML
+
+
+
+
+ 对象值
+
+
+
+
+ 显示的文本
+
+
+
+
+ 图片序号
+
+
+
+
+ id
+
+
+
+
+ Tag值
+
+
+
+
+ 显示文本值
+
+
+
+
+
+ 星期数据
+
+
+
+
+ 一周的开始时间
+
+
+
+
+ 一周的结束时间
+
+
+
+
+ XML操作类
+
+
+
+
+ XML操作类
+
+
+
+
+ 从XML文本中加载数据
+
+
+
+
+
+ 从指定的XML文本中加载
+
+ XML文本
+ 如为1,表示加载成功,为0为失败
+
+
+
+ 载入空的XML文档
+
+ 如为1,表示加载成功,为0为失败
+
+
+
+ 从指定的文件中加载
+
+ XML文件路径
+ 如为1,表示加载成功,为0为失败
+
+
+
+ 保存到指定文件中
+
+ 文件路径
+ 如为1,表示保存成功,为0为失败
+
+
+
+ 判断节点是否存在
+
+ 属性名
+ 属性值
+ 返回1,表示存在,其它表示不存在
+
+
+
+ 定位节点
+
+ 属性名
+ 属性值
+ 返回第一个符合要求的结果
+
+
+
+ 定位节点,如果找不到节点,就新建一个节点
+
+ 属性名
+ 属性值
+ 返回第一个符合要求的结果
+
+
+
+ 根据用户的节点定位节点,输入节点时,一定要注意节点是属于类内部的,否则可能出错。
+
+ 返回第一个符合要求的结果
+
+
+
+ 定位设置节点
+
+ 返回第一个符合要求的结果
+
+
+
+ 在节点后插入数据
+
+
+
+
+
+
+ 在节点前插入数据
+
+
+
+
+
+
+ 获取节点数量
+
+ 属性名
+ 属性值
+ 返回符合要求的结果数量
+
+
+
+ 获取节点数量
+
+ 返回符合要求的结果数量
+
+
+
+ 获取节点数量
+
+ 属性名
+ 属性值
+
+
+
+ 返回符合要求的结果数量
+
+
+
+ 设置节点值
+
+ 属性名
+ 属性值
+ 如为1,表示加载成功,为0为失败
+
+
+
+ 设置节点值
+
+ 属性名
+ 属性值
+ 如为1,表示加载成功,为0为失败
+
+
+
+ 设置节点值
+
+ 属性名
+ 属性值
+ 如为1,表示加载成功,为0为失败
+
+
+
+ 设置节点值
+
+ 属性名
+ 属性值
+ 如为1,表示加载成功,为0为失败
+
+
+
+ 设置节点值
+
+ 属性名
+ 属性值
+ 如为1,表示加载成功,为0为失败
+
+
+
+ 设置节点值
+
+ 属性名
+ 属性值
+ 如为1,表示加载成功,为0为失败
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 获取属性值
+
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 读取所有的节点名称
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 读取指定节点的值
+
+
+
+
+
+
+
+ 获取XML文件的根元素
+
+
+
+
+ 获取所有列表
+
+ 如为1,表示获取成功,为0为失败
+
+
+
+ 获取所有列表
+
+ 如为1,表示获取成功,为0为失败
+
+
+
+ 新增节点
+
+
+
+
+
+
+
+ 新增节点并定位到新节点
+
+
+
+
+
+
+
+ 新增设置节点并定位
+
+
+
+
+
+ 在指定节点前新增节点并定位到新节点
+
+
+
+
+
+
+
+
+ 获取当前节点
+
+
+
+
+
+ 删除节点
+
+
+
+
+
+ 获取XML文本
+
+
+
+
+
+ 获取XML文本
+
+
+
+
+
+ 获取文本
+
+
+
+
+
+ 获取文本
+
+
+
+
+
+ 字符串操作类
+
+
+
+
+ 字符串转Base64
+
+
+
+
+
+
+ Base64转字符串
+
+
+
+
+
+
+ 转换指定字符串为布尔类型
+
+
+
+
+ 转换指定字符串为Double类型
+
+
+
+
+ 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
+
+ 第一个日期和时间
+ 第二个日期和时间
+
+
+
+
+ 已重载.计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值.
+
+ 一个日期和时间
+
+
+
+
+ 转换指定字符串为Int类型
+
+
+
+
+ 转换指定字符串为Int类型
+
+
+
+
+ 转换指定布尔类型为Int类型,true为1,false为0
+
+
+
+
+ 判断指定字符串是否是布尔类型
+
+
+
+
+ 判断指定字符串是否是Double类型
+
+
+
+
+ 判断指定字符串是否是Int类型
+
+
+
+
+ 根据年月日转换成日期
+
+
+
+
+
+
+
+
+ 追加字符
+
+
+
+
+ 获取2个字符串中间的内容,point1为空表示从首位开始算,point2为空表示算到结尾。
+
+
+
+
+ 判断字符串是否只包含数字或英文
+
+
+
+
+
+
+ 判断字符串是否只包含英文
+
+
+
+
+
+
+ 判断字符串是否匹配,支持?*通配符
+
+ 待匹配的字符串
+ 匹配的通配符
+
+
+
+
+ 通配符替换
+
+
+
+
+
+
+
+
+ 获取匹配的内容
+
+
+
+
+
+
+
+
+ 文件时间
+
+
+
+
+ 创建时间
+
+
+
+
+ 最后修改时间
+
+
+
+
+ 访问时间
+
+
+
+
+ 图片类型
+
+
+
+
+ Bmp图片
+
+
+
+
+ Jpeg图片
+
+
+
+
+ Png图片
+
+
+
+
+ Gif动态图片
+
+
+
+
+ Tiff图片
+
+
+
+
+ 对变量的拓展
+
+
+
+
+ 替换文本(忽略大小写)
+
+
+ 需要替换的内容
+ 替换后的内容
+
+
+
+
+ 替换文本(忽略大小写),可支持通配符
+
+
+
+
+ 是否是通配符表达式,不是,则普通替换,忽略大小写,是,则启用通配符替换
+
+
+
+
+ 获取符合要求的第一个结果
+
+
+
+ 是否是正则
+
+
+
+
+ 查找字符串,忽略大小写
+
+
+
+
+
+
+
+
+ 查找字符串,忽略大小写
+
+
+
+
+
+
+
+ 判断字符串是否是数字或英文
+
+
+
+
+
+
+ 判断字符串是否是英文
+
+
+
+
+
+
+ 是否在指定范围内
+
+
+
+
+
+
+
+
+ 是否在指定范围内
+
+
+
+
+
+
+
+
+ 转换指定字符串为Int类型
+
+
+ 最小值
+ 最大值
+ 如果字符串不在范围内,则使用本默认值
+
+
+
+
+ 转换指定布尔类型到Int类型,true为1,false为0
+
+
+
+
+
+
+ 将指定类型转换成整型
+
+
+
+
+
+
+
+ 将指定类型转换成整型
+
+
+
+
+
+
+ 将指定类型转换成长整型
+
+
+
+
+
+
+
+ 将指定类型转换成长整型
+
+
+
+
+
+
+ 转换指定类型为Double类型
+
+
+
+
+
+
+
+ 转换指定类型为Double类型
+
+
+
+
+
+
+ 转换DateTime类型到日期时间字符串
+
+
+
+
+
+
+ 转换DateTime类型到日期字符串
+
+
+
+
+
+
+ 转换DateTime类型到日期星期字符串
+
+
+
+
+
+
+ 转换DateTime类型到Unix时间戳
+
+
+
+
+
+
+ 转换Unix时间戳到DateTime类型
+
+
+
+
+
+
+ 判断字符串是否与内容匹配
+
+
+
+
+
+
+
+ 将变量值转换成Double类型,如果不在指定区域范围内,则使用默认值
+
+
+
+
+
+
+
+
+
+ 转换到文件大小字符串
+
+
+
+
+
+
+ 转换到文件大小字符串
+
+
+
+
+
+
+ 转换指定类型为Decimal类型
+
+
+
+
+
+
+
+ 将变量值转换成Decimal类型
+
+
+
+
+
+
+ 将变量值转换成Decimal类型,如果不在指定区域范围内,则使用默认值
+
+
+
+
+
+
+
+
+
+ 转换指定类型为DateTime类型
+
+
+
+
+
+
+
+ 将变量值转换成DateTime类型
+
+
+
+
+
+
+ 转换指定类型为布尔类型
+
+
+
+
+
+
+ 追加字符
+
+
+
+
+
+
+
+ 获取指定字符串之间的内容
+
+
+
+
+
+
+
+
+ 获取指定字符串之间的内容
+
+
+
+
+
+
+
+
+
+
+
+ 判断指定字符串是否是Int类型
+
+
+
+
+
+
+ 判断指定字符串是否是Double类型
+
+
+
+
+
+
+ 判断是否是布尔类型
+
+
+
+
+
+
+ 将字符串转换为Base64类型
+
+
+
+
+
+
+ 判断字符串是否在指定长度
+
+
+
+
+
+
+
+
+ 判断能否转换成日期格式
+
+
+
+
+
+
+ 文件信息
+
+
+
+
+ 获取版本号
+
+
+
+
+ 获取版本号
+
+
+
+
+
+
+ 判断是否是管理员方式运行
+
+
+
+
+
+ Hosts操作类
+
+
+
+
+ 获取并转换hosts内容
+
+ hosts内容
+
+
+
+
+ 获取hosts并转换hosts内容
+
+ hosts内容
+
+
+
+
+ 追加内容到hosts里
+
+ 要追加的内容列表,每一行为ip 域名的格式
+ 0表示无需新增,-1表示添加失败,1表示追加成功
+
+
+
+ write为true,追加内容到hosts里;为false,判断是否需要追加
+
+ 要追加的内容列表,每一行为ip 域名的格式
+ 是否要写入,如果为false,则只判断是否需要追加,而不写入Hosts文件
+ 0表示无需新增,-1表示添加失败,1表示追加成功
+
+
+
+ 追加内容到hosts里
+
+ 要追加的内容
+ 0表示无需新增,-1表示添加失败,1表示追加成功
+
+
+
+ 追加内容到hosts里
+
+ ip地址
+ 域名
+ 0表示无需新增,-1表示添加失败,1表示追加成功
+
+
+
+ 从hosts文件里删除内容
+
+ 要删除的内容
+ 0表示无需删除,-1表示添加失败,1表示删除成功
+
+
+
+ 从hosts文件里删除内容
+
+ ip地址
+ 域名
+ 0表示无需删除,-1表示添加失败,1表示删除成功
+
+
+
+ Host信息
+
+
+
+
+ IP
+
+
+
+
+ 域名
+
+
+
+
+ 注释
+
+
+
+
+ 是否要删除
+
+
+
+
+ 音频播放类
+
+
+
+
+ 临时音频文件
+
+
+
+
+ 父窗口句柄
+
+
+
+
+ 声音标签
+
+
+
+ play synchronously (default)
+
+
+ play asynchronously
+
+
+ silence (!default) if sound not found
+
+
+ pszSound points to a memory file
+
+
+ loop the sound until next sndPlaySound
+
+
+ don’t stop any currently playing sound
+
+
+ Stop Playing Wave
+
+
+ don’t wait if the driver is busy
+
+
+ name is a registry alias
+
+
+ alias is a predefined id
+
+
+ name is file name
+
+
+ name is resource name or atom
+
+
+
+ 音频播放类
+
+ embedded music file
+ 临时保存的文件位置
+ 父窗口句柄
+
+
+
+ 音频播放类
+
+ 要播放的音频位置
+ 父窗口句柄
+
+
+
+ 音频播放类
+
+
+ 父窗口句柄
+
+
+
+ 播放音频
+
+
+
+
+
+ 播放音频
+
+
+
+
+ 关闭音频
+
+
+
+
+ 文件操作类
+
+
+
+
+
+
+
+
+
+ 删除单个文件。
+
+ 删除的文件名
+ 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除
+ 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框
+ 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效
+ 反馈错误消息的字符串
+ 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
+
+
+
+ 删除单个文件。
+
+ 删除的文件名
+ 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除
+ 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
+
+
+
+ 永久删除单个文件。
+
+ 永久删除的文件名
+ 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
+
+
+
+ 删除一组文件。
+
+ 字符串数组,表示一组文件名
+ 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除
+ 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框
+ 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效
+ 反馈错误消息的字符串
+ 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
+
+
+
+ 移动文件到指定路径下
+
+ 要移动的文件名
+ 移动到的目的路径
+
+
+
+
+ 移动一个文件到指定路径下
+
+ 要移动的文件名
+ 移动到的目的路径
+ 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
+ 指示是否显示进度对话框
+ 指示当文件名重复时,是否自动为新文件加上后缀名
+ 反馈错误消息的字符串
+ 返回移动操作是否成功的标识,成功返回0,失败返回错误代码
+
+
+
+ 移动一组文件到指定的路径下
+
+ 要移动的文件名数组
+ 移动到的目的路径
+ 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
+ 指示是否显示进度对话框
+ 指示当文件名重复时,是否自动为新文件加上后缀名
+ 反馈错误消息的字符串
+ 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常
+
+
+
+ 复制文件到指定的文件名或路径
+
+ 要复制的文件名
+ 复制到的目的文件名或路径
+
+
+
+
+ 复制文件到指定的文件名或路径
+
+ 要复制的文件名
+ 复制到的目的文件名或路径
+ 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
+ 指示是否显示进度对话框
+ 指示当文件名重复时,是否自动为新文件加上后缀名
+ 返回错误信息
+ 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常
+
+
+
+ 复制一组文件到指定的路径
+
+ 要复制的文件名数组
+ 复制到的目的路径
+ 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
+ 指示是否显示进度对话框
+ 指示当文件名重复时,是否自动为新文件加上后缀名
+ 返回错误信息
+ 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常
+
+
+
+ 重命名一个文件为新名称,建议您使用更方便的Microsoft.VisualBasic.FileSystem.ReName();替换该方法
+
+ 要复制的文件名
+ 复制到的目的文件名或路径
+ 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
+ 返回错误信息
+ 返回移动操作是否成功的标识,成功返回0,失败返回错误代码,-200:表示其他异常
+
+
+
+ 删除单个或多个文件
+
+ 删除的文件名,如果是多个文件,文件名之间以字符串结尾符'\0'隔开
+ 指示是将文件放入回收站还是永久删除,true-放入回收站,false-永久删除
+ 指示是否显示确认对话框,true-显示确认删除对话框,false-不显示确认删除对话框
+ 指示是否显示进度对话框,true-显示,false-不显示。该参数当指定永久删除文件时有效
+ 反馈错误消息的字符串
+ 操作执行结果标识,删除文件成功返回0,否则,返回错误代码
+
+
+
+ 移动或复制一个或多个文件到指定路径下
+
+ 操作类型,是移动操作还是复制操作
+ 要移动或复制的文件名,如果是多个文件,文件名之间以字符串结尾符'\0'隔开
+ 移动到的目的位置
+ 指示是否显示确认对话框,true-显示确认对话框,false-不显示确认对话框
+ 指示是否显示进度对话框
+ 指示当文件名重复时,是否自动为新文件加上后缀名
+ 反馈错误消息的字符串
+ 返回移动操作是否成功的标识,成功返回0,失败返回错误代码
+
+
+
+ 如果指定文件夹不存在,则创建文件夹
+
+
+
+
+
+ 获取一个文件的全名
+
+ 文件名
+ 返回生成文件的完整路径名
+
+
+
+ 获取一个文件的全名
+
+ 文件名
+ 返回生成文件的完整路径名
+
+
+
+ 解释错误代码
+
+ 代码号
+ 返回关于错误代码的文字描述
+
+
+
+ 运行文件
+
+
+
+
+
+
+
+ /运行文件
+
+
+
+
+
+
+
+ 运行程序
+
+
+
+
+
+
+ 打开文件
+
+
+
+
+
+
+ 打开文件夹并定位文件
+
+
+
+
+
+
+ 打开网址
+
+
+
+
+
+
+ 判断文件名是否有效
+
+
+
+
+
+
+ 转换到有效文件名
+
+
+
+
+
+
+ 追加日志
+
+
+
+
+
+ 追加文件
+
+
+
+
+
+ 读取文件内容,可以自动识别文件编码
+
+
+
+
+
+
+ 读取文件所有行,可以自动识别文件编码
+
+
+
+
+
+
+ 写入所有文本行到文件,如果文件夹不存在,会自动创建
+
+
+
+
+
+
+
+ 写入所有文本到文件,如果文件夹不存在,会自动创建
+
+
+
+
+
+
+
+ 从文件中加载图片,使用本方法,不会导致图片文件被占用。
+
+
+
+
+
+ 获取文件大小
+
+
+
+
+
+
+ 添加文件到指定文件夹,会进行自动重命名,并返回重命名后的文件名(含路径)
+
+ 要添加的文件路径
+ 要添加到的文件夹
+ 是否根据时间进行重命名
+ 返回是否成功执行
+ 成功执行则返回路径,否则返回空
+
+
+
+ 获取文件大小字符串
+
+
+
+
+
+
+ 获取文件大小字符串
+
+
+
+
+
+
+ 复制内容到剪切板
+
+
+
+
+
+ 添加某个控件为支持拖放属性
+
+
+
+
+
+
+ 使管理员方式运行时支持拖放
+
+
+
+
+
+
+ 保存高质量不失真照片
+
+
+
+
+
+
+
+ 保存高质量不失真照片
+
+
+
+
+
+
+
+ 保存高质量不失真照片
+
+
+
+
+
+
+
+ 获取绝对路径
+
+
+
+
+
+
+ 获取相对路径
+
+
+
+
+
+
+ 获取图标
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 销毁图标
+
+
+
+
+
+
+ 获取文件图标
+
+
+
+
+
+
+
+
+
+ 用于取得一个文本文件的编码方式(Encoding)。
+
+
+
+
+ 用于取得一个文本文件的编码方式(Encoding)。
+
+
+
+
+ 取得一个文本文件的编码方式。如果无法在文件头部找到有效的前导符,Encoding.Default将被返回。
+
+ 文件名。
+
+
+
+
+ 取得一个文本文件流的编码方式。
+
+ 文本文件流。
+
+
+
+
+ 取得一个文本文件的编码方式。
+
+ 文件名。
+ 默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。
+
+
+
+
+ 取得一个文本文件流的编码方式。
+
+ 文本文件流。
+ 默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。
+
+
+
+
+ 通过给定的文件流,判断文件的编码类型
+
+ 文件流
+ 文件的编码类型
+
+
+
+ 判断是否是不带 BOM 的 UTF8 格式
+
+
+
+
+
+
+ 新模态窗体
+
+
+
+
+ 设置窗体返回的结果值,并关闭窗体。
+
+ 当前窗体
+ 模态变量
+ 防止
+
+
+
+ 窗体返回的结果事件
+
+
+
+
+
+
+ 当打开的窗体返回结果时激发
+
+
+
+
+ 窗体返回的状态
+
+
+
+
+ 实例化类
+
+ 父窗体,如果为null,则取桌面为父窗体
+
+
+
+
+ 获取最顶级的父窗口
+
+
+
+
+
+ 显示新模态窗体,会暂时禁用父窗体,关闭当前窗体后,父窗体会恢复。
+
+
+
+
+ 只运行一个实例,打开后,所有窗体都依然有效。
+
+
+
+
+
+ 显示窗体
+
+ 显示的位置
+
+
+
+ 显示在父窗体中间
+
+
+
+
+ 窗体显示位置
+
+
+
+
+ 右上角
+
+
+
+
+ 顶部中间
+
+
+
+
+ 顶部右边
+
+
+
+
+ 中间
+
+
+
+
+ 左下角
+
+
+
+
+ 底部中间
+
+
+
+
+ 右下角
+
+
+
+
+ 父窗体居中
+
+
+
+
+ 日期时间的操作类
+
+
+
+
+ 获取当前是周几,周一到周日,分别是1-7.
+
+
+
+
+
+
+ 获取当前是周几,1-7,分别是返回一到日.
+
+
+
+
+
+
+ 获取当前是周几,输入日期,根据周几,分别是返回一到日.
+
+
+
+
+
+
+ 获取一周的开始和结束,开始时间为第一天的0点,结束时间以最后一天的0点为结束时间
+
+
+
+
+
+
+ 获取2个日期相差几周
+
+
+
+
+
+
+
+ 获取2个日期相差几个月
+
+
+
+
+
+
+
+ 获取一个月的开始
+
+
+
+
+
+
+ 判断是否在同一个星期。
+
+
+
+
+
+
+
+ 判断是否在同一个月。
+
+
+
+
+
+
+
+ 判断是否在同一天
+
+
+
+
+
+
+
+ 计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
+
+ 第一个日期和时间
+ 第二个日期和时间
+
+
+
+
+ 计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
+
+ 第一个日期和时间
+ 第二个日期和时间
+ 是否显示秒
+
+
+
+
+ 计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值.
+
+ 一个日期和时间
+
+
+
+
+ 将c# DateTime时间格式转换为Unix时间戳格式
+
+ 时间
+ long
+
+
+
+ 时间戳转为C#格式时间
+
+
+
+
+
+
+ 将c# DateTime时间格式转换为js时间戳格式
+
+ 时间
+ long
+
+
+
+ JS时间戳转为C#格式时间
+
+
+
+
+
+
+ 根据年月日转换成日期
+
+
+
+
+
+
+
+
+ 根据日期和时间转换成日期时间
+
+
+
+
+
+
+
+ 将时间转换成当前分钟开始的时间
+
+
+
+
+
+
+ 将时间转换成当前秒钟开始的时间
+
+
+
+
+
+
+ 当前时间在这一天里的秒数
+
+
+
+
+
+
+ 窗体操作类
+
+
+
+
+ 设置Comobox的行间距
+
+
+
+
+
+
+ 移除关闭按钮。返回值,非零表示成功,零表示失败。
+
+ 窗口的句柄
+ 是否成功
+
+
+
+ 把窗体放到最前
+
+
+
+
+
+ 显示窗体
+
+
+
+
+
+
+
+ 设置窗体是否置顶
+
+
+
+
+
+
+ 显示没有焦点的窗口
+
+
+
+
+
+ 根据句柄获取窗口文本
+
+
+
+
+
+
+ 根据句柄获取窗口类
+
+
+
+
+
+
+ 获取当前活动的窗口句柄
+
+
+
+
+
+ 设置为当前活动窗口
+
+
+
+
+
+
+ 根据窗口句柄来获得进程id
+
+
+
+
+
+
+ 显示窗体
+
+
+
+
+
+ 设置窗体父窗体为桌面,不会随着显示桌面而最小化,但无法设置窗体透明度
+
+
+
+
+
+ 结束进程
+
+
+
+
+
+
+ 打开窗体,只打开一个实例(非模态)
+
+
+
+
+
+
+ 设置注册表操作,部分功能需要管理员权限
+
+
+
+
+ 访问的注册表位置(64位还是32位)
+
+
+
+
+ 访问的注册表节点
+
+
+
+
+ 设置是否开机启动
+
+ 是否开机启动
+ 开机启动名称
+ 启动命令
+
+
+
+
+ 设置是否开机启动
+
+ 是否开机启动
+ 开机启动名称
+
+
+
+
+ 把指定文件设置为开机启动或取消开机启动
+
+ 是否开机启动
+ 开机启动名称
+ 要开机启动的文件路径
+
+
+
+
+ 检查是否开机启动
+
+ 开机启动名称
+ 开机启动命令
+
+
+
+
+ 检查是否开机启动
+
+ 开机启动名称
+
+
+
+
+ 判断指定文件是否是开机启动
+
+ 开机启动名称
+ 文件路径
+
+
+
+
+ 判断当前程序是否是开机启动
+
+ 开机启动名称
+
+
+
+
+ 判断当前程序是否是开机启动
+
+ 开机启动名称
+ 启动命令行
+
+
+
+
+ 设置指定文件的浏览器控件内核版本
+
+ 文件名,要求不带路径
+ 7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
+
+
+
+
+ 采用的IE模式
+
+
+
+
+ IE7兼容视图
+
+
+
+
+ IE8 标准模式
+
+
+
+
+ IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
+
+
+
+
+ IE9 标准模式
+
+
+
+
+ IE9 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
+
+
+
+
+ IE10 标准模式
+
+
+
+
+ IE10 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
+
+
+
+
+ 设置当前软件的浏览器控件内核版本
+
+ 7000 表示IE7兼容视图模式;8000 表示IE8 标准模式 ;8888 表示IE8 强制标准模式,在渲染失败的情况下不尝试用兼容视图模式
+
+
+
+
+ 设置指定文件的浏览器控件内核版本
+
+ 文件名,要求不带路径
+ IE内核版本
+
+
+
+
+ 设置当前软件的浏览器控件内核版本
+
+ IE内核版本
+
+
+
+
+ 系统函数
+
+
+
+
+
+
+
+
+
+ 红
+
+
+
+
+ 绿
+
+
+
+
+ 蓝
+
+
+
+
+ 获取屏幕伽马值
+
+
+
+
+
+
+
+ 设置屏幕伽马值
+
+
+
+
+
+
+
+ 获取键盘和鼠标没有操作的时间
+
+
+
+
+
+ 设置屏幕 Gamma值
+
+
+
+
+
+
+
+
+ 设置屏幕亮度
+
+
+
+
+
+
+ 获取系统
+
+
+
+
+
+ 窗体操作类
+
+
+
+
+ 构造函数
+
+
+
+
+
+ 析构
+
+
+
+
+ 设置让窗体支持移动
+
+
+
+
+ 是否允许可调节大小
+
+
+
+
+ 可调节窗体大小的宽度
+
+
+
+
+
+
+
+
+
+
+ 给控件增加拖放功能的类
+
+
+
+
+ 拖放实例
+
+
+
+
+ 高级拖放事件
+
+
+
+
+
+
+
+
+
+ 使管理员方式运行时支持拖放
+
+
+
+
+
+ 使支持拖放属性
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 网络操作类
+
+
+
+
+ 通过NetworkInterface读取网卡Mac
+
+
+
+
+
+ 通过NetworkInterface读取网卡Mac
+
+
+
+
+
+ 根据mac字符串来获取最终的mac地址,可以是各种MAC地址格式,非法的内容将返回null
+
+
+
+
+
+
+ 远程唤醒
+
+
+
+
+
+
+
+ 远程唤醒
+
+
+
+
+
+
+
+
+ 消息客户端类
+
+
+
+
+ 判断当前消息主服务器是否创建成功
+
+
+
+
+ 最后一次接收消息的时间,可用来判断服务端是否有响应
+
+
+
+
+ 主句柄
+
+
+
+
+ 当收到消息时激发
+
+
+
+
+ 连接上主服务器时触发
+
+
+
+
+ 收到服务端关闭通知
+
+
+
+
+ 收到服务端关闭通知,即将关闭
+
+
+
+
+ 服务端大小改变时激发
+
+
+
+
+ 实例化客户端
+
+ 服务端ID
+ 当前客户端ID,会向服务器报告当前ID
+ 客户端
+
+
+
+
+
+
+
+
+ 断开服务端连接
+
+
+
+
+ 发送消息,采用多线程发送
+
+
+
+
+
+
+ 向服务端发送心跳包
+
+
+
+
+ 判断服务端句柄是否存在。
+
+
+
+
+
+ 共享内存
+
+
+
+
+ 写共享内存
+
+ 需要映射的文件的字节数量
+ 映射对象(简单类型、结构体等)
+ 文件映射对象的名称
+
+
+
+
+ 写共享内存
+
+ 需要映射的文件的字节数量
+ 映射对象(简单类型、结构体等)
+ 文件映射对象的名称
+ 发送消息的窗口句柄
+ 发送消息
+
+
+
+
+ 读共享内存
+
+ 需要映射的文件的字节数量
+ 类型
+ 文件映射对象的名称
+ 返回读到的映射对象
+
+
+
+ 读共享内存
+
+ 需要映射的文件的字节数量
+ 类型
+ 文件映射对象的名称
+ 返回读到的映射字节数据
+
+
+
+ 消息服务器
+
+
+
+
+ 消息事件
+
+
+
+
+
+
+ 大小改变事件
+
+
+
+
+
+
+
+ 即将关闭事件
+
+
+
+
+
+
+ 当收到消息时激发
+
+
+
+
+ 消息处理类
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 发送消息,采用单线程发送
+
+ 要发送到的句柄
+ 编号
+ 消息内容
+
+
+
+ 发送消息,采用多线程发送
+
+ 要发送到的句柄
+ 编号
+ 消息内容
+
+
+
+ 消息类
+
+
+
+
+ 是否取消
+
+
+
+
+ 来源句柄
+
+
+
+
+
+
+
+
+
+ 消息文本
+
+
+
+
+ 需要回复的内容
+
+
+
+
+ 消息服务端类
+
+
+
+
+ 判断当前消息主服务器是否创建成功
+
+
+
+
+ 当收到消息时激发
+
+
+
+
+ 当收到自定义消息时(非系统消息)激发
+
+
+
+
+ 有消息客户端发起连接请求时激发
+
+
+
+
+ 有消息客户端连接成功时激发
+
+
+
+
+ 有消息客户端断开连接时激发
+
+
+
+
+
+
+ 服务端ID,需要唯一性,共客户端识别
+ 服务端
+
+
+
+ 释放资源
+
+
+
+
+ 判断是否包含指定客户端
+
+
+
+
+
+
+
+
+
+
+
+ 设置客户端大小
+
+
+
+
+ 根据客户端ID,获取客户端对象
+
+
+
+
+
+
+ 根据客户端句柄,获取客户端对象
+
+
+
+
+
+
+ 关闭所有客户端
+
+
+
+
+ 关闭指定客户端
+
+
+
+
+
+ 关闭指定客户端
+
+
+
+
+
+ 向所有客户端发送消息,单线程
+
+
+
+
+
+
+ 向指定客户端发送消息
+
+
+
+
+
+
+
+ 关闭在指定时间前失去响应的子客户端
+
+
+
+
+
+ 客户端信息
+
+
+
+
+ 客户端句柄
+
+
+
+
+ 客户端ID
+
+
+
+
+ 客户端连接时间
+
+
+
+
+ 心跳时间
+
+
+
+
+ 数据库引擎
+
+
+
+
+ 数据库枚举类型
+
+
+
+
+ Odbc引擎
+
+
+
+
+ OleDb引擎
+
+
+
+
+ Oracle引擎
+
+
+
+
+ MSSQL引擎
+
+
+
+
+ SQLite引擎
+
+
+
+
+ MySql引擎
+
+
+
+
+ 判断DataSet是否包含数据
+
+
+
+
+
+
+ 获取首行数据
+
+
+
+
+
+
+ 获取第一行第一列的值
+
+
+
+
+
+
+ 将DataSet类型转换为RyQuickSQL列表类型
+
+
+
+
+
+
+ 将DataSet类型转换为RyQuickSQL列表类型
+
+
+
+
+
+
+
+ 数据库操作接口
+
+
+
+
+ 连接数据库
+
+
+
+
+
+ 断开数据库
+
+
+
+
+
+ 获取数量
+
+
+
+
+
+
+
+ 获取分页语句
+
+
+
+
+
+
+
+
+ 获取分页语句
+
+
+
+
+
+
+
+
+ 获取分页语句
+
+
+
+
+
+
+
+
+
+ 获取分页语句
+
+
+
+
+
+
+
+
+
+ 添加Parameter参数
+
+
+
+
+
+
+ 清空Parameter参数
+
+
+
+
+
+
+ 获取Parameter值
+
+
+
+
+
+ 根据RyQuickSQL类来获取Parameter值
+
+
+
+
+
+
+ 开始执行事务
+
+
+
+
+ 提交事务
+
+
+
+
+ 判断是否包含数据
+
+
+
+
+
+
+
+ 返回-1000表示该数据库不支持本接口
+
+
+
+
+
+
+ 读取数据
+
+
+
+
+
+
+ 读取数据
+
+
+
+
+
+
+
+ 读取数据
+
+
+
+
+
+
+
+ 根据id号获取数据
+
+
+
+
+
+
+
+ 执行SQL语句
+
+
+
+
+
+
+
+ 执行SQL语句
+
+
+
+
+
+
+
+ 执行SQL语句
+
+
+
+
+
+
+ 根据id号删除数据
+
+
+
+
+
+
+
+ 创建数据库
+
+
+
+
+
+
+ 释放资源
+
+
+
+
+ SQL字段类型
+
+
+
+
+ SQL字段类型
+
+
+
+
+
+
+ SQL字段类型
+
+
+
+
+
+
+
+ SQL字段名
+
+
+
+
+ SQL字段值
+
+
+
+
+ SQL字段长度
+
+
+
+
+ 不是真的值,而是用于计算的值
+
+
+
+
+ SQL快速操作类
+
+
+
+
+ SQL快速操作类
+
+
+
+
+
+ 表名
+
+
+
+
+ 操作字段列表
+
+
+
+
+ 清理使用资源
+
+
+
+
+ 清理使用资源
+
+
+
+
+ 操作参数列表
+
+
+
+
+ 操作参数列表
+
+
+
+
+ 添加字符串字段
+
+
+
+
+
+
+ 添加null值字段
+
+
+
+
+
+ 添加日期字段
+
+
+
+
+
+
+ 添加int字段
+
+
+
+
+
+
+ 添加double字段
+
+
+
+
+
+
+ 添加decimal字段
+
+
+
+
+
+
+ 添加bool字段
+
+
+
+
+
+
+ 添加用于计算的值
+
+
+
+
+
+
+ 添加Int64字段
+
+
+
+
+
+
+ 清空内容
+
+
+
+
+ 数量
+
+
+
+
+
+
+
+
+
+ 输出多条件搜索。
+
+ 字段名,多个字段请用逗号分隔。
+ 多个条件之间请用空格隔开
+
+
+
+
+ 获取插入SQL语句
+
+
+
+
+
+ 获取更新SQL语句
+
+
+
+
+
+ 添加参数
+
+
+
+
+
+
+ 获取Ole参数
+
+
+
+
+
+ 获取SQL参数
+
+
+
+
+
+ AES加密解密类
+
+
+
+
+ AES加密算法
+
+ 明文字符串
+ 密钥
+ 返回加密后的密文字节数组
+
+
+
+ AES解密
+
+ 密文字节数组
+ 密钥
+ 返回解密后的字符串
+
+
+
+ 加密
+
+
+
+
+
+
+
+ 解码
+
+
+
+
+
+
+
+ 转换密钥到合法密钥
+
+
+
+
+
+
+ Base64编码类
+
+
+
+
+ 编码
+
+
+
+
+
+
+ 把字符串编码成Base64字符串
+
+
+
+
+
+
+
+ 解码
+
+
+
+
+
+
+ MD5和SHA1操作类
+
+
+
+
+ 获取MD5
+
+
+
+
+
+
+ 获取MD5
+
+
+
+
+
+
+ 获取SHA1
+
+
+
+
+
+
+ 获取SHA1
+
+
+
+
+
+
+ 获取HmacSHA1
+
+
+
+
+
+
+
+ 获取SHA256
+
+
+
+
+
+
+ 获取HmacSHA256
+
+
+
+
+
+
+ 获取SHA224
+
+
+
+
+
+
+ 获取SHA512
+
+
+
+
+
+
+ 获取HmacSHA512
+
+
+
+
+
+
+ 使用using代替lock操作的对象,可指定写入和读取锁定模式
+
+
+
+ 利用IDisposable的using语法糖方便的释放锁定操作
+ 内部类
+
+
+
+ 读写锁对象
+
+
+
+ 是否为写入模式
+
+
+
+ 利用IDisposable的using语法糖方便的释放锁定操作
+ 构造函数
+
+ 读写锁
+ 写入模式为true,读取模式为false
+
+
+ 释放对象时退出指定锁定模式
+
+
+
+ 空的可释放对象,免去了调用时需要判断是否为null的问题
+ 内部类
+
+
+
+ 空的可释放对象
+
+
+
+ 空的释放方法
+
+
+
+ 读写锁
+
+
+
+ 保存数据
+
+
+
+ 使用using代替lock操作的对象,可指定写入和读取锁定模式
+ 构造函数
+
+
+
+ 使用using代替lock操作的对象,可指定写入和读取锁定模式
+ 构造函数
+ 为Data属性设置初始值
+
+
+
+ 获取或设置当前对象中保存数据的值
+
+ 获取数据时未进入读取或写入锁定模式
+ 设置数据时未进入写入锁定模式
+
+
+ 是否启用,当该值为false时,Read()和Write()方法将返回 Disposable.Empty
+
+
+
+ 进入读取锁定模式,该模式下允许多个读操作同时进行
+ 退出读锁请将返回对象释放,建议使用using语块
+ Enabled为false时,返回Disposable.Empty;
+ 在读取或写入锁定模式下重复执行,返回Disposable.Empty;
+
+
+
+ 进入写入锁定模式,该模式下只允许同时执行一个读操作
+ 退出读锁请将返回对象释放,建议使用using语块
+ Enabled为false时,返回Disposable.Empty;
+ 在写入锁定模式下重复执行,返回Disposable.Empty;
+
+ 读取模式下不能进入写入锁定状态
+
+
+
+ 中国农历类,最大支持公元0-9999年
+
+ 日期:2019-02-09
+ 作者:http://www.cnblogs.com/zjfree/
+
+
+
+ 日历类型
+
+
+
+
+ 无效
+
+
+
+
+ Julian 日历
+
+
+
+
+ Gregorian 日历
+
+
+
+
+ 有效
+
+
+
+
+ 公历节日
+
+
+
+
+ 农历节日
+
+
+
+
+ 某个月第n个星期几
+
+
+
+
+ 获取农历
+
+
+
+
+
+
+ 获取农历
+
+
+
+
+
+
+
+
+ 获得某农历年的闰月,返回 1~12 对应一月到十二月,返回 0 表示无闰月
+
+
+
+
+
+
+ 农历搜索方向
+
+
+
+
+ 无效
+
+
+
+
+ 向上
+
+
+
+
+ 向下
+
+
+
+
+ {* 日月食类型, 无, 日食, 月全食, 月偏食 }
+
+
+
+
+ 无
+
+
+
+
+ 日食
+
+
+
+
+ 月全食
+
+
+
+
+ 月偏食
+
+
+
+
+ {* 月相, 无, 朔, 望}
+
+
+
+
+ 无
+
+
+
+
+ 朔
+
+
+
+
+ 望
+
+
+
+
+ 获得某公历年月日的农历日数和该日月相以及日月食类型和时刻
+
+
+
+
+
+
+
+
+
+
+
+ 获得某公历年月日的农历月数
+
+
+
+
+
+
+
+
+ 获取阳历日期对应的农历日期
+
+
+
+
+
+
+
+
+
+
+
+
+ 获得某公历年月日的农历月日和是否闰月的信息
+
+
+
+
+
+
+
+
+
+
+
+ 获得等效标准日数对应的某公历日,倒推而来
+
+
+
+
+
+
+
+
+
+ 比较两个农历日期(包括闰月信息),1 大于2返回1、1等于2返回0、1小于2返回-1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 获得某农历年月日(加是否闰月)的公历年月日
+ 该函数采用反向二分法查找
+
+
+
+
+
+
+
+
+
+
+
+
+ 获取农历某一个月的总天数
+
+
+
+
+
+
+
+
+ 获取农历年份,范围约1901-2101年
+
+
+
+
+
+
+ 获取农历年份,范围约0-9999年
+
+
+
+
+
+
+
+
+ 获取农历月份,范围约1901-2101年
+
+
+
+
+
+
+ 获取农历月份,范围约0-9999年
+
+
+
+
+
+
+
+
+ 获取中文表示的农历月份
+
+
+
+
+
+
+ 获取农历日,范围约1901-2101年
+
+
+
+
+
+
+ 获取农历日,范围约0-9999年
+
+
+
+
+
+
+
+
+ 获取农历日,范围约0-9999年
+
+
+
+
+
+
+ 获取节气,范围约1901-2101年
+
+
+
+
+
+
+ 获取节气,范围约0-9999年
+
+
+
+
+
+
+
+
+ 返回y年第n个节气(如小寒为1)的日差天数值(pd取值真假,分别表示平气和定气)
+
+
+
+ pd取值真假,分别表示平气和定气
+
+
+
+
+ 获取等效标准日数
+
+
+
+
+
+
+
+
+ 取本月天数,不考虑 1582 年 10 月的特殊情况
+
+
+
+
+
+
+
+ 获取节气,范围约1901-2101年
+
+
+
+
+
+
+ 获取节气,范围约0-9999年
+
+
+
+
+
+
+
+
+ 获取节气
+
+
+
+
+
+
+
+
+
+
+
+ 获取公历节日
+
+
+
+
+
+
+ 获取公历节日
+
+
+
+
+
+
+
+
+ 获取指定月份的第n个星期几的节日
+
+
+
+
+
+
+ 返回星座,范围约1901-2101年
+
+
+
+
+ 返回星座,范围约0-9999年
+
+
+
+
+ 获取农历节日
+
+
+
+
+
+
+
+
+ 获取农历节日
+
+
+
+
+
+
+ 判断y年m月(1,2,..,12,下同)d日是Gregorian历还是Julian历(opt=1,2,3分别表示标准日历,Gregorge历和Julian历),是则返回1,是Julian历则返回0,若是Gregorge历所删去的那10天则返回-1
+
+
+
+
+ 返回阳历y年m月d日的日差天数(在y年年内所走过的天数,如2000年3月1日为61)
+
+
+
+
+ 返回阳历y年日差天数为x时所对应的月日数(如y=2000,x=274时,返回1001(表示10月1日,即返回100*m+d))
+
+
+
+
+ 获取指定日期的节气。
+
+ 要获取的年
+ 要获取的月
+
+
+ 立春:立是开始的意思,春是蠢动,表示万物开始有生气,这一天春天开始。
+ 雨水:降雨开始,雨水将多。
+ 惊蛰:春雷响动,惊动蛰伏地下冬眠的生物,它们将开始出土活动。
+ 春分:这是春季九十天的中分点,这一天昼夜相等,所以古代曾称春分秋分为昼夜分。
+ 清明:明洁晴朗,气候温暖,草木开始萌发繁茂。
+ 谷雨:雨生百谷的意思。雨水增多,适时的降雨对谷物生长很为有利。
+ 立夏:夏天开始,万物渐将随温暖的气候而生长。
+ 小满:满指籽粒饱满,麦类等夏热作物这时开始结籽灌浆,即将饱满。
+ 芒种:有芒作物开始成熟,此时也是秋季作物播种的最繁忙时节。
+ 夏至:白天最长,黑夜最短,这一天中午太阳位置最高,日影短至终极,古代又称这一天为日北至或长日至。
+ 小暑:暑是炎热,此时还未到达最热。
+ 大暑:炎热的程度到达高峰。
+ 立秋:秋天开始,植物快成熟了。
+ 处暑:处是住的意思,表示暑气到此为止。
+ 白露:地面水气凝结为露,色白,是天气开始转凉了。
+ 秋分:秋季九十天的中间,这一天昼夜相等,同春分一样,太阳从正东升起正西落下。
+ 寒露:水露先白而后寒,是气候将逐渐转冷的意思。
+ 霜降:水气开始凝结成霜。
+ 立冬:冬是终了,作物收割后要收藏起来的意思,这一天起冬天开始。
+ 小雪:开始降雪,但还不多。
+ 大雪:雪量由小增大。
+ 冬至:这一天中午太阳在天空中位置最低,日影最长,白天最短, 黑夜最长,古代又称短日至或日南至。
+ 小寒:冷气积久而为寒,此时尚未冷到顶点。
+ 大寒:天候达到最寒冷的程度
+
+
+
+
+ 获取年柱。
+
+
+
+
+ 获得月柱
+
+
+
+
+
+
+ 获取日柱。
+
+
+
+
+ 返回甲子数x对应的天干数(如33为3)
+
+
+
+
+ 返回甲子数x对应的地支数(如33为9)
+
+
+
+
+ 获取日的天干地支
+
+
+
+
+
+
+ 返回甲子数x对应的天干字符串
+
+
+
+
+ 返回甲子数x对应的地支字符串
+
+
+
+
+ 返回甲子数x对应的干支字符串
+
+
+
+
+
+
+ 获取三伏开始时间
+
+
+ 0表示1伏,1表示2伏,2表示3伏
+
+
+
+
+ 节气
+
+
+
+
+ 节气的时间。
+
+
+
+
+ 节气名。
+
+
+
+
+ 热键转换类
+
+
+
+
+ 功能键。
+
+
+
+
+ 修改键。
+
+
+
+
+ 转换功能键到谷歌浏览器专用
+
+
+
+
+ 将chrome功能键转换为普通功能键
+
+
+
+
+
+
+ 按键值。
+
+
+
+
+ 初始化类 的新实例。
+
+ The modifiers.
+ The key code.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 初始化类 的新实例。
+
+
+
+
+ 加载热键
+
+
+
+
+
+
+ 加载热键
+
+
+
+
+
+ 加载热键
+
+
+
+
+
+ 判断是否是热键
+
+
+
+
+ 获取当前热键
+
+
+
+
+ 已重载,返回“Ctrl+Alt+A”格式的字符串。
+
+ 类似“Ctrl+Alt+A”格式的字符串
+
+
+
+ 返回“Ctrl+Alt+A”格式的字符串。
+
+ 类似“Ctrl+Alt+A”格式的字符串
+
+
+
+ 功能键
+
+
+
+
+ 无
+
+
+
+
+ Alt键
+
+
+
+
+ Ctrl键
+
+
+
+
+ Shift键
+
+
+
+
+ Win键
+
+
+
+
+ 热键类
+
+
+
+
+ 热键类
+
+
+
+
+
+ 热键注销
+
+
+
+
+ 热键是否有效
+
+
+
+
+ 释放热键
+
+
+
+
+ 注册热键
+
+
+
+
+
+
+
+
+ 注册热键
+
+
+
+
+
+
+
+
+ 删除热键
+
+
+
+
+
+
+ 删除所有热键
+
+
+
+
+ 热键事件
+
+
+
+
+
+ 当使用热键时发生的事件
+
+
+
+
+ 热键消息过滤
+
+
+
+
+
+
+ 热键类型
+
+
+
+
+ 热键id
+
+
+
+
+ 功能键
+
+
+
+
+ 普通键
+
+
+
+
+ 热键类型
+
+
+
+
+
+
+
+ Win32 API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 获取当前前台窗口句柄
+
+
+
+
+
+ 获得当前活动窗体
+
+
+
+
+
+ 设置活动窗体
+
+
+
+
+
+
+ 获取类名
+
+
+
+
+
+
+
+
+ 获取当前线程对应的进程ID
+
+
+
+
+
+
+
+ 判断指定句柄是否是一个窗口
+
+
+
+
+
+
+ 获取窗口标题
+
+
+
+
+
+
+
+
+ 查找窗口
+
+
+
+
+
+
+
+ 设置父窗口
+
+
+
+
+
+
+
+ 移动窗口
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 结束进程
+
+
+
+
+
+
+
+ 发送消息
+
+
+
+
+
+
+
+
+
+ 发送消息
+
+
+
+
+
+
+
+
+ 获取窗口位置和大小
+
+
+
+
+
+
+
+ 矩形
+
+
+
+
+ 最左坐标
+
+
+
+
+ 最上坐标
+
+
+
+
+ 最右坐标
+
+
+
+
+ 最下坐标
+
+
+
+
+ WM_COPYDATA消息的主要目的是允许在进程间传递只读数据。
+
+
+
+
+ 系统通道ID
+
+
+
+
+ 用户通道ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 获取消息
+
+
+
+
+
+
+
+ 发送消息
+
+
+
+
+
+
+
+
+
+ 设置父窗口
+
+
+
+
+
+
+
+
diff --git a/Bin/Debug/VSoft/MyDb_SQLite.dll b/Bin/Debug/VSoft/MyDb_SQLite.dll
index 8987c2b..f70f6f1 100644
Binary files a/Bin/Debug/VSoft/MyDb_SQLite.dll and b/Bin/Debug/VSoft/MyDb_SQLite.dll differ
diff --git a/Bin/Debug/VSoft/UserDb/Setting.xml b/Bin/Debug/VSoft/UserDb/Setting.xml
index d2a6b00..db7fd3a 100644
--- a/Bin/Debug/VSoft/UserDb/Setting.xml
+++ b/Bin/Debug/VSoft/UserDb/Setting.xml
@@ -1,3 +1,3 @@
-
-
+
+
\ No newline at end of file
diff --git a/Bin/Debug/VSoft/UserDb/Softs.dat b/Bin/Debug/VSoft/UserDb/Softs.dat
index 5824e2d..f600768 100644
Binary files a/Bin/Debug/VSoft/UserDb/Softs.dat and b/Bin/Debug/VSoft/UserDb/Softs.dat differ
diff --git a/Bin/Debug/VSoft/UserDb/Win.dat b/Bin/Debug/VSoft/UserDb/Win.dat
index a67b64f..0279e4a 100644
--- a/Bin/Debug/VSoft/UserDb/Win.dat
+++ b/Bin/Debug/VSoft/UserDb/Win.dat
@@ -1,4 +1,4 @@
[VSoft]
-hwnd=660032
+hwnd=2889742
width=742
height=572
diff --git a/Bin/Debug/VSoft/VSoft.dll b/Bin/Debug/VSoft/VSoft.dll
index 3b880a3..a599114 100644
Binary files a/Bin/Debug/VSoft/VSoft.dll and b/Bin/Debug/VSoft/VSoft.dll differ
diff --git a/Bin/Debug/VSoft/VSoftBox.exe b/Bin/Debug/VSoft/VSoftBox.exe
index ba438af..ce4f3b1 100644
Binary files a/Bin/Debug/VSoft/VSoftBox.exe and b/Bin/Debug/VSoft/VSoftBox.exe differ
diff --git a/Bin/Debug/VSoft/cUpdate.dat b/Bin/Debug/VSoft/cUpdate.dat
index 6cebc55..728368d 100644
--- a/Bin/Debug/VSoft/cUpdate.dat
+++ b/Bin/Debug/VSoft/cUpdate.dat
@@ -1,3 +1,3 @@
-
+
\ No newline at end of file
diff --git a/Bin/Debug/VSoft/ryControls.dll b/Bin/Debug/VSoft/ryControls.dll
index e8a9dc9..d922d75 100644
Binary files a/Bin/Debug/VSoft/ryControls.dll and b/Bin/Debug/VSoft/ryControls.dll differ
diff --git a/Bin/Debug/VSoft/ryUpdate.dll b/Bin/Debug/VSoft/ryUpdate.dll
index c7a4776..12328e1 100644
Binary files a/Bin/Debug/VSoft/ryUpdate.dll and b/Bin/Debug/VSoft/ryUpdate.dll differ
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b2c2218..16a8d5e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,15 @@
-### 2020-12-08更新
-------
-#### VSoft V1.0.2012.0801
-
-- *.[删除]删除管理员方式打开软件的警告通知。
-- *.[改进]当当前路径没有填写时,默认使用软件路径所在文件夹作为当前路径。
-- *.[更新]更新Newtonsoft.Json.dll到12.0.3.23909版本
-
+### 2020-12-27 dev更新
+------
+#### VSoft V1.0.2012.2701
+- *.[新增]新增支持通过双击鼠标中键、侧键的方式来显示主界面。
+- *.[改进]当多次最小化后,不再显示最小化通知。
+- *.[改进]改进栏目和分类控件皮肤。
+
+### 2020-12-08更新
+------
+#### VSoft V1.0.2012.0801
+
+- *.[删除]删除管理员方式打开软件的警告通知。
+- *.[改进]当当前路径没有填写时,默认使用软件路径所在文件夹作为当前路径。
+- *.[更新]更新Newtonsoft.Json.dll到12.0.3.23909版本
+
diff --git a/Source/.vs/VSoft/v16/.suo b/Source/.vs/VSoft/v16/.suo
index b23f425..8f0e1cd 100644
Binary files a/Source/.vs/VSoft/v16/.suo and b/Source/.vs/VSoft/v16/.suo differ
diff --git a/Source/DyLine/DyLine.csproj b/Source/DyLine/DyLine.csproj
index 2767a33..838a84f 100644
--- a/Source/DyLine/DyLine.csproj
+++ b/Source/DyLine/DyLine.csproj
@@ -1,80 +1,80 @@
-
-
-
-
- Debug
- AnyCPU
- {8EE4505A-7D76-4209-85D5-274357A81FB8}
- WinExe
- DyLine
- DyLine
- v4.0
- 512
- true
-
-
- x86
- true
- full
- false
- ..\..\Bin\Debug\VSoft\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Form
-
-
- Form1.cs
-
-
-
-
-
- Form1.cs
-
-
- ResXFileCodeGenerator
- Resources.Designer.cs
- Designer
-
-
- True
- Resources.resx
-
-
- SettingsSingleFileGenerator
- Settings.Designer.cs
-
-
- True
- Settings.settings
- True
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {8EE4505A-7D76-4209-85D5-274357A81FB8}
+ WinExe
+ DyLine
+ DyLine
+ v4.0
+ 512
+ true
+
+
+ x86
+ true
+ full
+ false
+ ..\..\Bin\Debug\VSoft\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
\ No newline at end of file
diff --git a/Source/VSoftBox/Properties/AssemblyInfo.cs b/Source/VSoftBox/Properties/AssemblyInfo.cs
index f98556c..6521475 100644
--- a/Source/VSoftBox/Properties/AssemblyInfo.cs
+++ b/Source/VSoftBox/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.2012.0801")]
-[assembly: AssemblyFileVersion("1.0.2012.0801")]
\ No newline at end of file
+[assembly: AssemblyVersion("1.0.2012.2701")]
+[assembly: AssemblyFileVersion("1.0.2012.2701")]
\ No newline at end of file
diff --git a/Source/VSoftBox/VSoftBox.csproj b/Source/VSoftBox/VSoftBox.csproj
index fe07296..86f232a 100644
--- a/Source/VSoftBox/VSoftBox.csproj
+++ b/Source/VSoftBox/VSoftBox.csproj
@@ -1,93 +1,93 @@
-
-
-
-
- Debug
- AnyCPU
- {CA619284-2939-4A14-9525-30FD7C04ADC7}
- WinExe
- VSoftBox
- VSoftBox
- v4.0
- 512
- true
-
-
- x86
- true
- full
- false
- ..\..\Bin\Debug\VSoft\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
- logo256.ico
-
-
-
- False
- ..\..\..\..\..\公共代码\C#\公用控件组\Bin\Debug\CommonControls\.NET4\MyDb.dll
-
-
- False
- ..\..\..\..\..\公共代码\C#\公用控件组\Bin\Debug\CommonControls\.NET4\ryControls.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ResXFileCodeGenerator
- Resources.Designer.cs
- Designer
-
-
- True
- Resources.resx
-
-
- SettingsSingleFileGenerator
- Settings.Designer.cs
-
-
- True
- Settings.settings
- True
-
-
-
-
- {13c45e68-2da3-4c9e-9bca-e63d0fa9a760}
- VSoft
-
-
-
-
-
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {CA619284-2939-4A14-9525-30FD7C04ADC7}
+ WinExe
+ VSoftBox
+ VSoftBox
+ v4.0
+ 512
+ true
+
+
+ x86
+ true
+ full
+ false
+ ..\..\Bin\Debug\VSoft\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ logo256.ico
+
+
+
+ False
+ ..\..\Bin\Debug\VSoft\MyDb.dll
+
+
+ False
+ ..\..\Bin\Debug\VSoft\ryControls.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ {13c45e68-2da3-4c9e-9bca-e63d0fa9a760}
+ VSoft
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/VSoft_Dll/Config/Soft_Config.cs b/Source/VSoft_Dll/Config/Soft_Config.cs
index 5fc80a2..fabb3b9 100644
--- a/Source/VSoft_Dll/Config/Soft_Config.cs
+++ b/Source/VSoft_Dll/Config/Soft_Config.cs
@@ -22,7 +22,15 @@ namespace VSoft.Config
///
/// 显示主窗体的热键
///
- public static string ShowMainHotKey = "";
+ public static string ShowMainHotKey = "";
+ ///
+ /// 是否开启鼠标快捷键
+ ///
+ public static bool ShowMainMouseKeyOn = true;
+ ///
+ /// 鼠标快捷键
+ ///
+ public static int ShowMainMouseKey = 0;
///
/// 单击打开软件
///
@@ -39,6 +47,8 @@ namespace VSoft.Config
ShowMainHotKey = Stor.GetAttrValue("ShowMainHotKey", "1+88");
OpenByClick = Stor.GetAttrValue("OpenByClick", false);
HideAfterRun = Stor.GetAttrValue("HideAfterRun", true);
+ ShowMainMouseKeyOn = Stor.GetAttrValue("ShowMainMouseKeyOn", true);
+ ShowMainMouseKey = Stor.GetAttrValue("ShowMainMouseKey", 0);
//low_count = Stor.GetAttrValue("LowCount", 10);
}
}
diff --git a/Source/VSoft_Dll/Config/frmSetting.Designer.cs b/Source/VSoft_Dll/Config/frmSetting.Designer.cs
index ea82e54..2fc5b48 100644
--- a/Source/VSoft_Dll/Config/frmSetting.Designer.cs
+++ b/Source/VSoft_Dll/Config/frmSetting.Designer.cs
@@ -28,152 +28,196 @@
///
private void InitializeComponent()
{
- this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmSetting));
- this.ChkAutoRun = new System.Windows.Forms.CheckBox();
- this.btnCancel = new ryControls.ButtonEx();
- this.btnOK = new ryControls.ButtonEx();
- this.chromeTabControl1 = new ryControls.ChromeTabControl();
- this.tabPage2 = new System.Windows.Forms.TabPage();
- this.ChkOpenByClick = new System.Windows.Forms.CheckBox();
- this.hotkeyTextBox1 = new ryControls.HotkeyTextBox();
- this.label1 = new System.Windows.Forms.Label();
- this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
- this.ChkHideAfterRun = new System.Windows.Forms.CheckBox();
- this.chromeTabControl1.SuspendLayout();
- this.tabPage2.SuspendLayout();
- this.SuspendLayout();
- //
- // ChkAutoRun
- //
- this.ChkAutoRun.AutoSize = true;
- this.ChkAutoRun.Location = new System.Drawing.Point(6, 9);
- this.ChkAutoRun.Name = "ChkAutoRun";
- this.ChkAutoRun.Size = new System.Drawing.Size(108, 16);
- this.ChkAutoRun.TabIndex = 1;
- this.ChkAutoRun.Text = "开机时启动软件";
- this.ChkAutoRun.UseVisualStyleBackColor = true;
- //
- // btnCancel
- //
- this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.btnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
- this.btnCancel.Location = new System.Drawing.Point(541, 460);
- this.btnCancel.Name = "btnCancel";
- this.btnCancel.Size = new System.Drawing.Size(79, 30);
- this.btnCancel.TabIndex = 22;
- this.btnCancel.Text = "取消";
- this.btnCancel.UseVisualStyleBackColor = true;
- this.btnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
- //
- // btnOK
- //
- this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.btnOK.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
- this.btnOK.Location = new System.Drawing.Point(456, 460);
- this.btnOK.Name = "btnOK";
- this.btnOK.Size = new System.Drawing.Size(79, 30);
- this.btnOK.TabIndex = 21;
- this.btnOK.Text = "保存";
- this.btnOK.UseVisualStyleBackColor = true;
- this.btnOK.Click += new System.EventHandler(this.BtnOK_Click);
- //
- // chromeTabControl1
- //
- this.chromeTabControl1.AllowDragTab = false;
- this.chromeTabControl1.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.chromeTabControl1.BackTabPageImage = null;
- this.chromeTabControl1.Controls.Add(this.tabPage2);
- this.chromeTabControl1.Cursor = System.Windows.Forms.Cursors.Default;
- this.chromeTabControl1.ItemSize = new System.Drawing.Size(100, 25);
- this.chromeTabControl1.Location = new System.Drawing.Point(5, 2);
- this.chromeTabControl1.Name = "chromeTabControl1";
- this.chromeTabControl1.SelectedIndex = 0;
- this.chromeTabControl1.ShowAddButton = false;
- this.chromeTabControl1.ShowCloseButton = false;
- this.chromeTabControl1.Size = new System.Drawing.Size(621, 452);
- this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
- this.chromeTabControl1.TabContextMenuStrip = null;
- this.chromeTabControl1.TabIndex = 23;
- this.chromeTabControl1.TabMaxWidth = 100;
- //
- // tabPage2
- //
- this.tabPage2.Controls.Add(this.ChkHideAfterRun);
- this.tabPage2.Controls.Add(this.ChkOpenByClick);
- this.tabPage2.Controls.Add(this.hotkeyTextBox1);
- this.tabPage2.Controls.Add(this.label1);
- this.tabPage2.Controls.Add(this.ChkAutoRun);
- this.tabPage2.Location = new System.Drawing.Point(1, 29);
- this.tabPage2.Name = "tabPage2";
- this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
- this.tabPage2.Size = new System.Drawing.Size(619, 422);
- this.tabPage2.TabIndex = 0;
- this.tabPage2.Text = "普通";
- this.tabPage2.UseVisualStyleBackColor = true;
- //
- // ChkOpenByClick
- //
- this.ChkOpenByClick.AutoSize = true;
- this.ChkOpenByClick.Location = new System.Drawing.Point(8, 63);
- this.ChkOpenByClick.Name = "ChkOpenByClick";
- this.ChkOpenByClick.Size = new System.Drawing.Size(228, 16);
- this.ChkOpenByClick.TabIndex = 5;
- this.ChkOpenByClick.Text = "单击列表图标时启动软件(默认是双击)";
- this.toolTip1.SetToolTip(this.ChkOpenByClick, "在默认情况下,需要双击列表图标才能启动软件,你\r\n可以修改本项配置,来实现单击鼠标启动。");
- this.ChkOpenByClick.UseVisualStyleBackColor = true;
- //
- // hotkeyTextBox1
- //
- this.hotkeyTextBox1.BackColor = System.Drawing.Color.White;
- this.hotkeyTextBox1.HotKey = "0+0";
- this.hotkeyTextBox1.Location = new System.Drawing.Point(113, 31);
- this.hotkeyTextBox1.Name = "hotkeyTextBox1";
- this.hotkeyTextBox1.Size = new System.Drawing.Size(244, 26);
- this.hotkeyTextBox1.T_Key = System.Windows.Forms.Keys.None;
- this.hotkeyTextBox1.T_Modifiers = 0;
- this.hotkeyTextBox1.TabIndex = 4;
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(6, 39);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(101, 12);
- this.label1.TabIndex = 3;
- this.label1.Text = "显示主界面快捷键";
- //
- // ChkHideAfterRun
- //
- this.ChkHideAfterRun.AutoSize = true;
- this.ChkHideAfterRun.Location = new System.Drawing.Point(8, 85);
- this.ChkHideAfterRun.Name = "ChkHideAfterRun";
- this.ChkHideAfterRun.Size = new System.Drawing.Size(132, 16);
- this.ChkHideAfterRun.TabIndex = 6;
- this.ChkHideAfterRun.Text = "启动软件后隐藏自身";
- this.ChkHideAfterRun.UseVisualStyleBackColor = true;
- //
- // FrmSetting
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(630, 502);
- this.Controls.Add(this.chromeTabControl1);
- this.Controls.Add(this.btnCancel);
- this.Controls.Add(this.btnOK);
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.Name = "FrmSetting";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "设置";
- this.Load += new System.EventHandler(this.FrmSetting_Load);
- this.Resize += new System.EventHandler(this.FrmSetting_Resize);
- this.chromeTabControl1.ResumeLayout(false);
- this.tabPage2.ResumeLayout(false);
- this.tabPage2.PerformLayout();
- this.ResumeLayout(false);
-
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmSetting));
+ this.ChkAutoRun = new System.Windows.Forms.CheckBox();
+ this.btnCancel = new ryControls.ButtonEx();
+ this.btnOK = new ryControls.ButtonEx();
+ this.chromeTabControl1 = new ryControls.ChromeTabControl();
+ this.tabPage2 = new System.Windows.Forms.TabPage();
+ this.ChkHideAfterRun = new System.Windows.Forms.CheckBox();
+ this.ChkOpenByClick = new System.Windows.Forms.CheckBox();
+ this.hotkeyTextBox1 = new ryControls.HotkeyTextBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
+ this.CbbMouseKeyShow = new ryControls.RyComboBox();
+ this.ChkMouseKey = new System.Windows.Forms.CheckBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.chromeTabControl1.SuspendLayout();
+ this.tabPage2.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // ChkAutoRun
+ //
+ this.ChkAutoRun.AutoSize = true;
+ this.ChkAutoRun.Location = new System.Drawing.Point(6, 9);
+ this.ChkAutoRun.Name = "ChkAutoRun";
+ this.ChkAutoRun.Size = new System.Drawing.Size(108, 16);
+ this.ChkAutoRun.TabIndex = 1;
+ this.ChkAutoRun.Text = "开机时启动软件";
+ this.ChkAutoRun.UseVisualStyleBackColor = true;
+ //
+ // btnCancel
+ //
+ this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
+ this.btnCancel.Location = new System.Drawing.Point(541, 460);
+ this.btnCancel.Name = "btnCancel";
+ this.btnCancel.Size = new System.Drawing.Size(79, 30);
+ this.btnCancel.TabIndex = 22;
+ this.btnCancel.Text = "取消";
+ this.btnCancel.UseVisualStyleBackColor = true;
+ this.btnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
+ //
+ // btnOK
+ //
+ this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnOK.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
+ this.btnOK.Location = new System.Drawing.Point(456, 460);
+ this.btnOK.Name = "btnOK";
+ this.btnOK.Size = new System.Drawing.Size(79, 30);
+ this.btnOK.TabIndex = 21;
+ this.btnOK.Text = "保存";
+ this.btnOK.UseVisualStyleBackColor = true;
+ this.btnOK.Click += new System.EventHandler(this.BtnOK_Click);
+ //
+ // chromeTabControl1
+ //
+ this.chromeTabControl1.AllowDragTab = false;
+ this.chromeTabControl1.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.chromeTabControl1.BackTabPageImage = null;
+ this.chromeTabControl1.Controls.Add(this.tabPage2);
+ this.chromeTabControl1.Cursor = System.Windows.Forms.Cursors.Default;
+ this.chromeTabControl1.ItemSize = new System.Drawing.Size(100, 25);
+ this.chromeTabControl1.Location = new System.Drawing.Point(5, 2);
+ this.chromeTabControl1.Name = "chromeTabControl1";
+ this.chromeTabControl1.SelectedIndex = 0;
+ this.chromeTabControl1.ShowAddButton = false;
+ this.chromeTabControl1.ShowCloseButton = false;
+ this.chromeTabControl1.Size = new System.Drawing.Size(621, 452);
+ this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
+ this.chromeTabControl1.TabContextMenuStrip = null;
+ this.chromeTabControl1.TabIndex = 23;
+ this.chromeTabControl1.TabMaxWidth = 100;
+ //
+ // tabPage2
+ //
+ this.tabPage2.Controls.Add(this.label2);
+ this.tabPage2.Controls.Add(this.ChkMouseKey);
+ this.tabPage2.Controls.Add(this.CbbMouseKeyShow);
+ this.tabPage2.Controls.Add(this.ChkHideAfterRun);
+ this.tabPage2.Controls.Add(this.ChkOpenByClick);
+ this.tabPage2.Controls.Add(this.hotkeyTextBox1);
+ this.tabPage2.Controls.Add(this.label1);
+ this.tabPage2.Controls.Add(this.ChkAutoRun);
+ this.tabPage2.Location = new System.Drawing.Point(1, 29);
+ this.tabPage2.Name = "tabPage2";
+ this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
+ this.tabPage2.Size = new System.Drawing.Size(619, 422);
+ this.tabPage2.TabIndex = 0;
+ this.tabPage2.Text = "普通";
+ this.tabPage2.UseVisualStyleBackColor = true;
+ //
+ // ChkHideAfterRun
+ //
+ this.ChkHideAfterRun.AutoSize = true;
+ this.ChkHideAfterRun.Location = new System.Drawing.Point(8, 115);
+ this.ChkHideAfterRun.Name = "ChkHideAfterRun";
+ this.ChkHideAfterRun.Size = new System.Drawing.Size(132, 16);
+ this.ChkHideAfterRun.TabIndex = 6;
+ this.ChkHideAfterRun.Text = "启动软件后隐藏自身";
+ this.ChkHideAfterRun.UseVisualStyleBackColor = true;
+ //
+ // ChkOpenByClick
+ //
+ this.ChkOpenByClick.AutoSize = true;
+ this.ChkOpenByClick.Location = new System.Drawing.Point(8, 93);
+ this.ChkOpenByClick.Name = "ChkOpenByClick";
+ this.ChkOpenByClick.Size = new System.Drawing.Size(228, 16);
+ this.ChkOpenByClick.TabIndex = 5;
+ this.ChkOpenByClick.Text = "单击列表图标时启动软件(默认是双击)";
+ this.toolTip1.SetToolTip(this.ChkOpenByClick, "在默认情况下,需要双击列表图标才能启动软件,你\r\n可以修改本项配置,来实现单击鼠标启动。");
+ this.ChkOpenByClick.UseVisualStyleBackColor = true;
+ //
+ // hotkeyTextBox1
+ //
+ this.hotkeyTextBox1.BackColor = System.Drawing.Color.White;
+ this.hotkeyTextBox1.HotKey = "0+0";
+ this.hotkeyTextBox1.Location = new System.Drawing.Point(113, 31);
+ this.hotkeyTextBox1.Name = "hotkeyTextBox1";
+ this.hotkeyTextBox1.Size = new System.Drawing.Size(244, 26);
+ this.hotkeyTextBox1.T_Key = System.Windows.Forms.Keys.None;
+ this.hotkeyTextBox1.T_Modifiers = 0;
+ this.hotkeyTextBox1.TabIndex = 4;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(6, 39);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(101, 12);
+ this.label1.TabIndex = 3;
+ this.label1.Text = "显示主界面快捷键";
+ //
+ // CbbMouseKeyShow
+ //
+ this.CbbMouseKeyShow.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
+ this.CbbMouseKeyShow.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CbbMouseKeyShow.Enabled = false;
+ this.CbbMouseKeyShow.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.CbbMouseKeyShow.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.CbbMouseKeyShow.FormattingEnabled = true;
+ this.CbbMouseKeyShow.Items.AddRange(new object[] {
+ "中键",
+ "侧键1",
+ "侧键2"});
+ this.CbbMouseKeyShow.Location = new System.Drawing.Point(80, 62);
+ this.CbbMouseKeyShow.Name = "CbbMouseKeyShow";
+ this.CbbMouseKeyShow.Size = new System.Drawing.Size(121, 24);
+ this.CbbMouseKeyShow.TabIndex = 8;
+ this.CbbMouseKeyShow.SelectedIndexChanged += new System.EventHandler(this.CbbMouseKeyShow_SelectedIndexChanged);
+ //
+ // ChkMouseKey
+ //
+ this.ChkMouseKey.AutoSize = true;
+ this.ChkMouseKey.Location = new System.Drawing.Point(8, 66);
+ this.ChkMouseKey.Name = "ChkMouseKey";
+ this.ChkMouseKey.Size = new System.Drawing.Size(72, 16);
+ this.ChkMouseKey.TabIndex = 9;
+ this.ChkMouseKey.Text = "双击鼠标";
+ this.ChkMouseKey.UseVisualStyleBackColor = true;
+ this.ChkMouseKey.CheckedChanged += new System.EventHandler(this.ChkMouseKey_CheckedChanged);
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(208, 68);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(65, 12);
+ this.label2.TabIndex = 10;
+ this.label2.Text = "显示主界面";
+ //
+ // FrmSetting
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(630, 502);
+ this.Controls.Add(this.chromeTabControl1);
+ this.Controls.Add(this.btnCancel);
+ this.Controls.Add(this.btnOK);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "FrmSetting";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "设置";
+ this.Load += new System.EventHandler(this.FrmSetting_Load);
+ this.Resize += new System.EventHandler(this.FrmSetting_Resize);
+ this.chromeTabControl1.ResumeLayout(false);
+ this.tabPage2.ResumeLayout(false);
+ this.tabPage2.PerformLayout();
+ this.ResumeLayout(false);
+
}
#endregion
@@ -186,6 +230,9 @@
private ryControls.HotkeyTextBox hotkeyTextBox1;
private System.Windows.Forms.CheckBox ChkOpenByClick;
private System.Windows.Forms.ToolTip toolTip1;
- private System.Windows.Forms.CheckBox ChkHideAfterRun;
+ private System.Windows.Forms.CheckBox ChkHideAfterRun;
+ private System.Windows.Forms.CheckBox ChkMouseKey;
+ private ryControls.RyComboBox CbbMouseKeyShow;
+ private System.Windows.Forms.Label label2;
}
}
\ No newline at end of file
diff --git a/Source/VSoft_Dll/Config/frmSetting.cs b/Source/VSoft_Dll/Config/frmSetting.cs
index 1154a8c..ec9c643 100644
--- a/Source/VSoft_Dll/Config/frmSetting.cs
+++ b/Source/VSoft_Dll/Config/frmSetting.cs
@@ -1,49 +1,61 @@
-using ryCommon;
-using ryControls;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-
-namespace VSoft.Config
-{
- public partial class FrmSetting : Form
- {
- public FrmSetting()
- {
- InitializeComponent();
- }
-
- private void FrmSetting_Resize(object sender, EventArgs e)
- {
- }
-
- private void BtnCancel_Click(object sender, EventArgs e)
- {
- this.DialogResult = DialogResult.Cancel;
- }
-
- private void BtnOK_Click(object sender, EventArgs e)
- {
- mySetting.Save();
- ryCommon.RyRegedit.RegRoot = Microsoft.Win32.RegistryHive.CurrentUser;
- ryCommon.RyRegedit.SetAutoRun(ChkAutoRun.Checked, Soft_Info.Soft_Id, "\"" + Application.ExecutablePath.Replace("/","\\") + "\" "+ Soft_Info.Soft_Pram);
- DialogResult = DialogResult.OK;
- }
- ryControls.RySetting mySetting = new ryControls.RySetting();
- private void FrmSetting_Load(object sender, EventArgs e)
- {
- mySetting.FilePath = Soft_Info.UserDataFolder + "\\Setting.xml";
- mySetting.Add("ShowMainHotKey", hotkeyTextBox1, "1+88");
- mySetting.Add("OpenByClick", ChkOpenByClick);
- mySetting.Add("HideAfterRun", ChkHideAfterRun,true);
- mySetting.Read();
- ryCommon.RyRegedit.RegRoot = Microsoft.Win32.RegistryHive.CurrentUser;
- ChkAutoRun.Checked = ryCommon.RyRegedit.IsAutoRun(Soft_Info.Soft_Id, "\"" + Application.ExecutablePath.Replace("/", "\\") + "\" "+ Soft_Info.Soft_Pram);
- }
- }
-}
+using ryCommon;
+using ryControls;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace VSoft.Config
+{
+ public partial class FrmSetting : Form
+ {
+ public FrmSetting()
+ {
+ InitializeComponent();
+ }
+
+ private void FrmSetting_Resize(object sender, EventArgs e)
+ {
+ }
+
+ private void BtnCancel_Click(object sender, EventArgs e)
+ {
+ this.DialogResult = DialogResult.Cancel;
+ }
+
+ private void BtnOK_Click(object sender, EventArgs e)
+ {
+ mySetting.Save();
+ ryCommon.RyRegedit.RegRoot = Microsoft.Win32.RegistryHive.CurrentUser;
+ ryCommon.RyRegedit.SetAutoRun(ChkAutoRun.Checked, Soft_Info.Soft_Id, "\"" + Application.ExecutablePath.Replace("/","\\") + "\" "+ Soft_Info.Soft_Pram);
+ DialogResult = DialogResult.OK;
+ }
+ ryControls.RySetting mySetting = new ryControls.RySetting();
+ private void FrmSetting_Load(object sender, EventArgs e)
+ {
+ mySetting.FilePath = Soft_Info.UserDataFolder + "\\Setting.xml";
+ mySetting.Add("ShowMainHotKey", hotkeyTextBox1, "1+88");
+ mySetting.Add("OpenByClick", ChkOpenByClick);
+ mySetting.Add("HideAfterRun", ChkHideAfterRun,true);
+ mySetting.Add("ShowMainMouseKeyOn", ChkMouseKey, true);
+ mySetting.Add("ShowMainMouseKey", CbbMouseKeyShow, 0);
+ mySetting.Read();
+ ryCommon.RyRegedit.RegRoot = Microsoft.Win32.RegistryHive.CurrentUser;
+ ChkAutoRun.Checked = ryCommon.RyRegedit.IsAutoRun(Soft_Info.Soft_Id, "\"" + Application.ExecutablePath.Replace("/", "\\") + "\" "+ Soft_Info.Soft_Pram);
+ }
+
+ private void CbbMouseKeyShow_SelectedIndexChanged(object sender, EventArgs e)
+ {
+
+ }
+
+ private void ChkMouseKey_CheckedChanged(object sender, EventArgs e)
+ {
+ CbbMouseKeyShow.Enabled = ChkMouseKey.Checked;
+ }
+ }
+}
diff --git a/Source/VSoft_Dll/Config/frmSetting.resx b/Source/VSoft_Dll/Config/frmSetting.resx
index 7f05ee6..91c33a2 100644
--- a/Source/VSoft_Dll/Config/frmSetting.resx
+++ b/Source/VSoft_Dll/Config/frmSetting.resx
@@ -1,200 +1,200 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 17, 17
-
-
-
-
- AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALu+nQCUlIQAfXx1WoaF
- eteGhXrXhoV614WEetN7enNGh4d7AHNxbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdFjcAHRY3AB0WNwAdFjcAHRY3AAAAAAA4MkgAZGFlAFpX
- XguNjH+2lZWE/5WVhP+VlYT/lZWE/4uKfZ8pIj8EVFFbACkjPwAAAAAAHRY3AB0WNwAdFjcAHRY3AB0W
- NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRY3AJiYhgB2dXAAkZCBAGZkZgAzLkUAFQ0yABQM
- MQCoqZAAf352WpOTg/eVlYT/lZWE/5WVhP+VlYT/kpGC7nt5c0WQkIEAAAAAAA8ILgAyLEUAaWZoAIWE
- egBhXmIAY2BkAB0WNwAAAAAAAAAAAAAAAAAAAAAAAAAAAB0WNwCkpY4AeHZxAGNgZBlzcW5XYV5iKCAZ
- OQj///8A////AG5sazaOjX/XlZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/jIt+yGdlZyno7bkA///2ABkS
- NAdiX2MqcG1sSExIVQlgXWIAYl9jAB0WNwAAAAAAAAAAAAAAAAAdFjcAo6SNAHh2cQBdWmAXh4Z7qZKR
- gvuMjH7ihYR5tX59dpN/fXaUjIx+2pWVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/i4p9z3x6
- dIZ9fHWKhIN5so2Mf+KQkIHzgH93fCkiPwZfXGEAYV5jAB0WNwAAAAAAAAAAAAAAEwB/fnYAYF1iGIaG
- e6mUlIP/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
- hP+VlYT/lJSD/5SUhP+VlYT/lZWE/5WVhP+SkoL3gH52ejgzSQddWmAAAAAAAAAAAAAAAAAAYl9jAAIA
- JgGIiHyOlJSD/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
- hP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+SkoL3g4J4YJmahwAxK0QAAAAAAAAA
- AAB6eHIAoqOMAJOTg3mVlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
- hP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhPuSkYJXl5eFAD45
- TAAAAAAAAAAAAIB+dgCRkYEAj4+ANJSUhO6VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
- hP+VlYT/lJSD/5SUg/+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lJSD2o2N
- fxyNjX8ARUBQAAAAAAAAAAAAHRY3AIeGewCIh3sTk5OD0ZWVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
- hP+UlIP/lpaF/5ubi/+fn4//n5+P/5qaiv+VlYT/lJSD/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
- hP+TkoKzeXdyBXx6dAAAAAAAAAAAAAAAAAAjHTsAcG5sAHd2cQqSkYLDlZWE/5WVhP+VlYT/lZWE/5WV
- hP+VlYT/lZWE/6Kikv+0tKf/vr6y/8HBtf/BwbX/vb2x/7KypP+fn4//lZWE/5WVhP+VlYT/lZWE/5WV
- hP+VlYT/lZWE/5CQgaH///8AJyE+AB0WNwAAAAAAQj1PACkiPgCMjH4Ac3FuMZGRgeKVlYT/lZWE/5WV
- hP+VlYT/lZWE/5aWhf+rq53/wcG1/8XFufzExLjZxMS4t8TEuLvExLjgxcW5/7+/s/+np5f/lZWE/5WV
- hP+VlYT/lZWE/5WVhP+VlYT/j46Ay2ViZRt5d3IAAAAaADAqQwByb20AAAAAAG1qajuKin3FlZWE/5WV
- hP+VlYT/lZWE/5WVhP+VlYT/qama/8PDt//ExLjmw8O4bcPDtxvDw7cGw8O3B8PDtyPDw7iCxMS48cHB
- tf+jo5T/lJSD/5WVhP+VlYT/lZWE/5WVhP+UlIP+h4Z7rmRhZCj5/8QAZ2VnAGdlZzN+fXWIjo6A5pWV
- hP+VlYT/lZWE/5WVhP+VlYT/lZWE/5ycjP++vrH/xMS47sLCt1LGx7oAw8O3AMPDtwDDw7cAw8O3AAAA
- AADCwrdvxcW5+bm5rP+YmIj/lZWE/5WVhP+VlYT/lZWE/5WVhP+UlIT/jIt+2Hp4c3RhXmMkjYx/3pSU
- g/+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+UlIP/qama/8TEuP/CwraakpCRAby7sgDAwLUAAAAAACAZ
- OQDBwbUAvr2zALm4rwvCwre6w8O3/6OjlP+UlIP/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/k5OD/4uK
- fbuTk4PwlZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+zs6X/xMS4+728slPCwrcAv7+0AAAA
- AAAAAAAAAAAAAAAAAADb3MoAzc2/AL6+tHbExLj/rKyd/5SUg/+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
- hP+VlYT/kpKC0Zybi+2fno3/n52N/p+djf6fnY3+n52N/p+djf6fnY3+n56N/rm4q//Dw7j2tbWtQLu7
- sQAhGjoAAAAAAAAAAAAAAAAAAAAAAFVQYgDGxroAubmwYcTEuP+zs6X/np2M/p+djf6fnY3+n52N/p+d
- jf6fnY3+n52N/p+ejf+bmovPpKKR8aakk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/ubiq/8PD
- uPyysapaxMS4AJybmQAdFjcAAAAAAAAAAAAdFjcA////AO7w2QC2tq19xMS4/7W0pf+mpJP/pqST/6ak
- k/+mpJP/pqST/6akk/+mpJP/pqST/6OgkdOkopKgpqST6aakk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
- kv+zsqP/xMS4/7a2rqhFQFYHcW14AGhkcQAdFjcAHRY3AIyKjQCIhooAgH2EFLu6scXDw7f/r62e/6ak
- kv+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJPlpKKRiqalkwSlo5M1pqSTp6akk/qmpJP/pqST/6ak
- k/+mpJP/pqST/6qomP/AwLP/wcC29aOin2kAAAACjYuOAFlVZgBfW2oAmpmYAC8pRQirqaSGw8O3/L29
- r/+oppX/pqST/6akk/+mpJP/pqST/6akk/+mpJP2pqSTmaWjky2oppQDpKKSAKakkwCjoZEJpaOSgaak
- k/qmpJP/pqST/6akk/+mpJP/pqST/7Kxov/Dw7f/vr608KakoYyBfoQyXFhoFWFdaxeIhYk8q6qkn8HA
- tfjCwrX/r62e/6akk/+mpJP/pqST/6akk/+mpJP/pqST86WjkmyioJAEpqOTAKSikgCal4sApaOSAJ6c
- jgCZlooSpKKSzqakk/+mpJP/pqST/6akk/+mpJP/p6WU/7SzpP/Cwrb/w8O3/7q6seq0s6vRtLSs1Ly8
- su/ExLj/wcG0/7GvoP+mpJP/pqST/6akk/+mpJP/pqST/6akk/+joZGrj4yEBKGfkAClo5IAjYuCAAAA
- AAAdFjcAgHx5AIJ/ewuioJDEpqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/66snP+6uav/wcCz/8PD
- tv/Dw7b/wMCz/7i3qf+sqpr/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6Cdj5f//+8AAAAOAAAA
- AAAAAAAAAAAAAB0WNwCLiIEAioeAHaKgkdumpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
- lP+pqJf/rKqa/6yqmv+pp5f/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/oJ6Ptmhk
- agdtaW0AHRY3AAAAAAAAAAAA/P3NAKOhkQCTkIZLpKKS96akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
- k/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
- k/+ioJDhiYZ/Jo6LgwAdFjcAAAAAAAAAAABhXGUA////AJyajJOmpJP/pqST/6akk/+mpJP/pqST/6ak
- k/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
- k/+mpJP/pqST/6Wjkv6YlopdqKaUAB0WNwAAAAAAAAAAAIB9egDS0rEApKKSUqakk+empJP/pqST/6ak
- k/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
- k/+mpJP/pqST/6akk/+mpJP/pqSTwqOhkSWoppUAHRY3AAAAAAAAAAAAhIF8AJqYiwCoppQApaOSTqak
- k+SmpJP/pqST/6akk/empJPnpqST5qakk/umpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
- k/mmpJPkpqST6aakk/mmpJP/pqST/6akk8KkopImpaOSAK+tmQAdFjcAAAAAAAAAAAAAAAAAoqCQAKKg
- kACqqJUApaOSTaakk7+mpJOHpqSTR6akkyampJMkpaOTdaakk/OmpJP/pqST/6akk/+mpJP/pqST/6ak
- k/+mpJPnpaOTYKakkyKmpJMppqSTTqakk5OmpJOspKKSJ6akkwCwr5oAm5mMAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAop+QAKKgkAD///8ApaOSDKimlQCmpJMApqSTAKWjkgCNioIBpaOShqakk/+mpJP/pqST/6ak
- k/+mpJP/pqST+aSikmeqqJYApaOTAKakkwCmpJMAm5mMAKSikgimpJMAsK+aAJuZjAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAoqCRAKOhkQClo5IApaOSAKSikgB1cnIAo6GRAKKgkQChn5AZpaOSzqak
- k/+mpJP/pqST/6akk/+lo5KynpyOCqGfkAChn5AAlZKHAKWjkgClo5IApKKSAJ+djgCcmo0AAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdFjcA////AK6s
- mACkopJ2pqST+Kakk/ampJP2pqST8qOhkVWnpZMAqKaUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA/+AH//BAAg/gAAAHwAAAA4AAAAGAAAABgAAAAYAAAAGAAAABgAAAA4AA
- AAEAAAAAAAAAAAAAAAAAAQAAAAPAAAADwAAAAYAAAAAAAAAAAAAAAAAAAAAAAIAAAAOAAAABgAAAAYAA
- AAGAAAABgAAAAcAAAAPgAAAH8AAAD//AB/8=
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALu+nQCUlIQAfXx1WoaF
+ eteGhXrXhoV614WEetN7enNGh4d7AHNxbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdFjcAHRY3AB0WNwAdFjcAHRY3AAAAAAA4MkgAZGFlAFpX
+ XguNjH+2lZWE/5WVhP+VlYT/lZWE/4uKfZ8pIj8EVFFbACkjPwAAAAAAHRY3AB0WNwAdFjcAHRY3AB0W
+ NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRY3AJiYhgB2dXAAkZCBAGZkZgAzLkUAFQ0yABQM
+ MQCoqZAAf352WpOTg/eVlYT/lZWE/5WVhP+VlYT/kpGC7nt5c0WQkIEAAAAAAA8ILgAyLEUAaWZoAIWE
+ egBhXmIAY2BkAB0WNwAAAAAAAAAAAAAAAAAAAAAAAAAAAB0WNwCkpY4AeHZxAGNgZBlzcW5XYV5iKCAZ
+ OQj///8A////AG5sazaOjX/XlZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/jIt+yGdlZyno7bkA///2ABkS
+ NAdiX2MqcG1sSExIVQlgXWIAYl9jAB0WNwAAAAAAAAAAAAAAAAAdFjcAo6SNAHh2cQBdWmAXh4Z7qZKR
+ gvuMjH7ihYR5tX59dpN/fXaUjIx+2pWVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/i4p9z3x6
+ dIZ9fHWKhIN5so2Mf+KQkIHzgH93fCkiPwZfXGEAYV5jAB0WNwAAAAAAAAAAAAAAEwB/fnYAYF1iGIaG
+ e6mUlIP/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
+ hP+VlYT/lJSD/5SUhP+VlYT/lZWE/5WVhP+SkoL3gH52ejgzSQddWmAAAAAAAAAAAAAAAAAAYl9jAAIA
+ JgGIiHyOlJSD/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
+ hP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+SkoL3g4J4YJmahwAxK0QAAAAAAAAA
+ AAB6eHIAoqOMAJOTg3mVlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
+ hP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhPuSkYJXl5eFAD45
+ TAAAAAAAAAAAAIB+dgCRkYEAj4+ANJSUhO6VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
+ hP+VlYT/lJSD/5SUg/+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lJSD2o2N
+ fxyNjX8ARUBQAAAAAAAAAAAAHRY3AIeGewCIh3sTk5OD0ZWVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
+ hP+UlIP/lpaF/5ubi/+fn4//n5+P/5qaiv+VlYT/lJSD/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
+ hP+TkoKzeXdyBXx6dAAAAAAAAAAAAAAAAAAjHTsAcG5sAHd2cQqSkYLDlZWE/5WVhP+VlYT/lZWE/5WV
+ hP+VlYT/lZWE/6Kikv+0tKf/vr6y/8HBtf/BwbX/vb2x/7KypP+fn4//lZWE/5WVhP+VlYT/lZWE/5WV
+ hP+VlYT/lZWE/5CQgaH///8AJyE+AB0WNwAAAAAAQj1PACkiPgCMjH4Ac3FuMZGRgeKVlYT/lZWE/5WV
+ hP+VlYT/lZWE/5aWhf+rq53/wcG1/8XFufzExLjZxMS4t8TEuLvExLjgxcW5/7+/s/+np5f/lZWE/5WV
+ hP+VlYT/lZWE/5WVhP+VlYT/j46Ay2ViZRt5d3IAAAAaADAqQwByb20AAAAAAG1qajuKin3FlZWE/5WV
+ hP+VlYT/lZWE/5WVhP+VlYT/qama/8PDt//ExLjmw8O4bcPDtxvDw7cGw8O3B8PDtyPDw7iCxMS48cHB
+ tf+jo5T/lJSD/5WVhP+VlYT/lZWE/5WVhP+UlIP+h4Z7rmRhZCj5/8QAZ2VnAGdlZzN+fXWIjo6A5pWV
+ hP+VlYT/lZWE/5WVhP+VlYT/lZWE/5ycjP++vrH/xMS47sLCt1LGx7oAw8O3AMPDtwDDw7cAw8O3AAAA
+ AADCwrdvxcW5+bm5rP+YmIj/lZWE/5WVhP+VlYT/lZWE/5WVhP+UlIT/jIt+2Hp4c3RhXmMkjYx/3pSU
+ g/+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+UlIP/qama/8TEuP/CwraakpCRAby7sgDAwLUAAAAAACAZ
+ OQDBwbUAvr2zALm4rwvCwre6w8O3/6OjlP+UlIP/lZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/k5OD/4uK
+ fbuTk4PwlZWE/5WVhP+VlYT/lZWE/5WVhP+VlYT/lZWE/5WVhP+zs6X/xMS4+728slPCwrcAv7+0AAAA
+ AAAAAAAAAAAAAAAAAADb3MoAzc2/AL6+tHbExLj/rKyd/5SUg/+VlYT/lZWE/5WVhP+VlYT/lZWE/5WV
+ hP+VlYT/kpKC0Zybi+2fno3/n52N/p+djf6fnY3+n52N/p+djf6fnY3+n56N/rm4q//Dw7j2tbWtQLu7
+ sQAhGjoAAAAAAAAAAAAAAAAAAAAAAFVQYgDGxroAubmwYcTEuP+zs6X/np2M/p+djf6fnY3+n52N/p+d
+ jf6fnY3+n52N/p+ejf+bmovPpKKR8aakk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/ubiq/8PD
+ uPyysapaxMS4AJybmQAdFjcAAAAAAAAAAAAdFjcA////AO7w2QC2tq19xMS4/7W0pf+mpJP/pqST/6ak
+ k/+mpJP/pqST/6akk/+mpJP/pqST/6OgkdOkopKgpqST6aakk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
+ kv+zsqP/xMS4/7a2rqhFQFYHcW14AGhkcQAdFjcAHRY3AIyKjQCIhooAgH2EFLu6scXDw7f/r62e/6ak
+ kv+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJPlpKKRiqalkwSlo5M1pqSTp6akk/qmpJP/pqST/6ak
+ k/+mpJP/pqST/6qomP/AwLP/wcC29aOin2kAAAACjYuOAFlVZgBfW2oAmpmYAC8pRQirqaSGw8O3/L29
+ r/+oppX/pqST/6akk/+mpJP/pqST/6akk/+mpJP2pqSTmaWjky2oppQDpKKSAKakkwCjoZEJpaOSgaak
+ k/qmpJP/pqST/6akk/+mpJP/pqST/7Kxov/Dw7f/vr608KakoYyBfoQyXFhoFWFdaxeIhYk8q6qkn8HA
+ tfjCwrX/r62e/6akk/+mpJP/pqST/6akk/+mpJP/pqST86WjkmyioJAEpqOTAKSikgCal4sApaOSAJ6c
+ jgCZlooSpKKSzqakk/+mpJP/pqST/6akk/+mpJP/p6WU/7SzpP/Cwrb/w8O3/7q6seq0s6vRtLSs1Ly8
+ su/ExLj/wcG0/7GvoP+mpJP/pqST/6akk/+mpJP/pqST/6akk/+joZGrj4yEBKGfkAClo5IAjYuCAAAA
+ AAAdFjcAgHx5AIJ/ewuioJDEpqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/66snP+6uav/wcCz/8PD
+ tv/Dw7b/wMCz/7i3qf+sqpr/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6Cdj5f//+8AAAAOAAAA
+ AAAAAAAAAAAAAB0WNwCLiIEAioeAHaKgkdumpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
+ lP+pqJf/rKqa/6yqmv+pp5f/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/oJ6Ptmhk
+ agdtaW0AHRY3AAAAAAAAAAAA/P3NAKOhkQCTkIZLpKKS96akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
+ k/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
+ k/+ioJDhiYZ/Jo6LgwAdFjcAAAAAAAAAAABhXGUA////AJyajJOmpJP/pqST/6akk/+mpJP/pqST/6ak
+ k/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
+ k/+mpJP/pqST/6Wjkv6YlopdqKaUAB0WNwAAAAAAAAAAAIB9egDS0rEApKKSUqakk+empJP/pqST/6ak
+ k/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
+ k/+mpJP/pqST/6akk/+mpJP/pqSTwqOhkSWoppUAHRY3AAAAAAAAAAAAhIF8AJqYiwCoppQApaOSTqak
+ k+SmpJP/pqST/6akk/empJPnpqST5qakk/umpJP/pqST/6akk/+mpJP/pqST/6akk/+mpJP/pqST/6ak
+ k/mmpJPkpqST6aakk/mmpJP/pqST/6akk8KkopImpaOSAK+tmQAdFjcAAAAAAAAAAAAAAAAAoqCQAKKg
+ kACqqJUApaOSTaakk7+mpJOHpqSTR6akkyampJMkpaOTdaakk/OmpJP/pqST/6akk/+mpJP/pqST/6ak
+ k/+mpJPnpaOTYKakkyKmpJMppqSTTqakk5OmpJOspKKSJ6akkwCwr5oAm5mMAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAop+QAKKgkAD///8ApaOSDKimlQCmpJMApqSTAKWjkgCNioIBpaOShqakk/+mpJP/pqST/6ak
+ k/+mpJP/pqST+aSikmeqqJYApaOTAKakkwCmpJMAm5mMAKSikgimpJMAsK+aAJuZjAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAoqCRAKOhkQClo5IApaOSAKSikgB1cnIAo6GRAKKgkQChn5AZpaOSzqak
+ k/+mpJP/pqST/6akk/+lo5KynpyOCqGfkAChn5AAlZKHAKWjkgClo5IApKKSAJ+djgCcmo0AAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdFjcA////AK6s
+ mACkopJ2pqST+Kakk/ampJP2pqST8qOhkVWnpZMAqKaUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA/+AH//BAAg/gAAAHwAAAA4AAAAGAAAABgAAAAYAAAAGAAAABgAAAA4AA
+ AAEAAAAAAAAAAAAAAAAAAQAAAAPAAAADwAAAAYAAAAAAAAAAAAAAAAAAAAAAAIAAAAOAAAABgAAAAYAA
+ AAGAAAABgAAAAcAAAAPgAAAH8AAAD//AB/8=
+
+
\ No newline at end of file
diff --git a/Source/VSoft_Dll/FrmInCMD.Designer.cs b/Source/VSoft_Dll/FrmInCMD.Designer.cs
index 444a5d5..17f5cef 100644
--- a/Source/VSoft_Dll/FrmInCMD.Designer.cs
+++ b/Source/VSoft_Dll/FrmInCMD.Designer.cs
@@ -99,7 +99,6 @@
this.IconViewEx1.MultiSelect = false;
this.IconViewEx1.Name = "IconViewEx1";
this.IconViewEx1.OwnerDraw = true;
- this.IconViewEx1.SelectedBackColor = System.Drawing.Color.LightYellow;
this.IconViewEx1.ShowItemToolTips = true;
this.IconViewEx1.Size = new System.Drawing.Size(550, 365);
this.IconViewEx1.TabIndex = 0;
@@ -312,7 +311,6 @@
this.TabList_Type.Name = "TabList_Type";
this.TabList_Type.OwnerDraw = true;
this.TabList_Type.Scrollable = false;
- this.TabList_Type.SelectedBackColor = System.Drawing.Color.LightSkyBlue;
this.TabList_Type.Size = new System.Drawing.Size(74, 398);
this.TabList_Type.TabIndex = 4;
this.TabList_Type.TileSize = new System.Drawing.Size(80, 28);
@@ -347,7 +345,6 @@
this.TabList_Column.Name = "TabList_Column";
this.TabList_Column.OwnerDraw = true;
this.TabList_Column.Scrollable = false;
- this.TabList_Column.SelectedBackColor = System.Drawing.Color.LightSkyBlue;
this.TabList_Column.Size = new System.Drawing.Size(519, 29);
this.TabList_Column.TabIndex = 1;
this.TabList_Column.TileSize = new System.Drawing.Size(70, 28);
diff --git a/Source/VSoft_Dll/FrmInCMD.cs b/Source/VSoft_Dll/FrmInCMD.cs
index 085d76b..d7fb9e1 100644
--- a/Source/VSoft_Dll/FrmInCMD.cs
+++ b/Source/VSoft_Dll/FrmInCMD.cs
@@ -608,15 +608,15 @@ namespace VSoft
TabList_Column.Items[0].Selected = true;
}
TabList_Column.Focus();
- var color = TabList_Column.SelectedBackColor;
- TabList_Column.SelectedBackColor = Color.LightYellow;
+ var color = TabList_Column.SelectedStartBackColor;
+ TabList_Column.SelectedStartBackColor = Color.LightYellow;
using (var bg = new BackgroundWorker())
{
bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟
bg.RunWorkerCompleted += delegate {
this.Invoke(new Action(() =>
{
- TabList_Column.SelectedBackColor = color;
+ TabList_Column.SelectedStartBackColor = color;
}));
}; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块
bg.RunWorkerAsync();
@@ -635,15 +635,15 @@ namespace VSoft
TabList_Type.Items[0].Selected = true;
}
TabList_Type.Focus();
- var color = TabList_Type.SelectedBackColor;
- TabList_Type.SelectedBackColor = Color.LightYellow;
+ var color = TabList_Type.SelectedStartBackColor;
+ TabList_Type.SelectedStartBackColor = Color.LightYellow;
using (var bg = new BackgroundWorker())
{
bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟
bg.RunWorkerCompleted += delegate {
this.Invoke(new Action(() =>
{
- TabList_Type.SelectedBackColor = color;
+ TabList_Type.SelectedStartBackColor = color;
}));
}; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块
bg.RunWorkerAsync();
@@ -1076,15 +1076,15 @@ namespace VSoft
}
}
TabList_Column.Focus();
- var color = TabList_Column.SelectedBackColor;
- TabList_Column.SelectedBackColor = Color.LightYellow;
+ var color = TabList_Column.SelectedStartBackColor;
+ TabList_Column.SelectedStartBackColor = Color.LightYellow;
using (var bg = new BackgroundWorker())
{
bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟
bg.RunWorkerCompleted += delegate {
this.Invoke(new Action(() =>
{
- TabList_Column.SelectedBackColor = color;
+ TabList_Column.SelectedStartBackColor = color;
}));
}; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块
bg.RunWorkerAsync();
diff --git a/Source/VSoft_Dll/FrmVSoft.Designer.cs b/Source/VSoft_Dll/FrmVSoft.Designer.cs
index 7bf7d0a..da3fc72 100644
--- a/Source/VSoft_Dll/FrmVSoft.Designer.cs
+++ b/Source/VSoft_Dll/FrmVSoft.Designer.cs
@@ -1,521 +1,535 @@
-namespace VSoft
-{
- partial class FrmVSoft
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmVSoft));
- this.panelEx1 = new ryControls.PanelEx();
- this.LblEmpty = new System.Windows.Forms.Label();
- this.MenuList = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.以管理员方式启动ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
- this.新增软件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.新增内置功能ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.修改软件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.从列表删除该软件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
- this.打开软件所在位置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.rySearch1 = new ryControls.rySearch();
- this.BtnAddColumn = new System.Windows.Forms.Button();
- this.MenuTabColumn = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.添加栏目ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.修改栏目ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.删除栏目ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.MenuTabType = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.新增分类ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.Menu修改分类 = new System.Windows.Forms.ToolStripMenuItem();
- this.Menu删除分类 = new System.Windows.Forms.ToolStripMenuItem();
- this.pictureBox1 = new System.Windows.Forms.PictureBox();
- this.LblDrag = new System.Windows.Forms.Label();
- this.timer1 = new System.Windows.Forms.Timer(this.components);
- 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.捐助ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.设置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.退出软件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.LblSetting = new System.Windows.Forms.Label();
- this.TabList_Type = new ryControls.TabList();
- this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.TabList_Column = new ryControls.TabList();
- this.IconViewEx1 = new ryControls.IconViewEx();
- this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.panelEx1.SuspendLayout();
- this.MenuList.SuspendLayout();
- this.MenuTabColumn.SuspendLayout();
- this.MenuTabType.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
- this.MenuTray.SuspendLayout();
- this.SuspendLayout();
- //
- // panelEx1
- //
- this.panelEx1.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.panelEx1.BackColor = System.Drawing.Color.White;
- this.panelEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(213)))), ((int)(((byte)(216)))), ((int)(((byte)(223)))));
- this.panelEx1.Controls.Add(this.LblEmpty);
- this.panelEx1.Controls.Add(this.IconViewEx1);
- this.panelEx1.Location = new System.Drawing.Point(84, 65);
- this.panelEx1.Name = "panelEx1";
- this.panelEx1.Padding = new System.Windows.Forms.Padding(3);
- this.panelEx1.RoundeStyle = ryControls.RoundStyle.None;
- this.panelEx1.Size = new System.Drawing.Size(626, 448);
- this.panelEx1.TabIndex = 1;
- this.panelEx1.TileBackColor = System.Drawing.Color.White;
- this.panelEx1.Resize += new System.EventHandler(this.panelEx1_Resize);
- //
- // LblEmpty
- //
- this.LblEmpty.AutoSize = true;
- this.LblEmpty.BackColor = System.Drawing.Color.Transparent;
- this.LblEmpty.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.LblEmpty.ForeColor = System.Drawing.Color.Silver;
- this.LblEmpty.Location = new System.Drawing.Point(31, 196);
- this.LblEmpty.Name = "LblEmpty";
- this.LblEmpty.Size = new System.Drawing.Size(456, 19);
- this.LblEmpty.TabIndex = 1;
- this.LblEmpty.Text = "暂无软件,请右击列表或者直接拖放文件到列表中添加";
- this.LblEmpty.Visible = false;
- //
- // MenuList
- //
- this.MenuList.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.以管理员方式启动ToolStripMenuItem,
- this.toolStripMenuItem2,
- this.新增软件ToolStripMenuItem,
- this.新增内置功能ToolStripMenuItem,
- this.修改软件ToolStripMenuItem,
- this.从列表删除该软件ToolStripMenuItem,
- this.toolStripMenuItem1,
- this.打开软件所在位置ToolStripMenuItem});
- this.MenuList.Name = "contextMenuStrip1";
- this.MenuList.Size = new System.Drawing.Size(185, 148);
- this.MenuList.Opening += new System.ComponentModel.CancelEventHandler(this.MenuList_Opening);
- //
- // 以管理员方式启动ToolStripMenuItem
- //
- this.以管理员方式启动ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("以管理员方式启动ToolStripMenuItem.Image")));
- this.以管理员方式启动ToolStripMenuItem.Name = "以管理员方式启动ToolStripMenuItem";
- this.以管理员方式启动ToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
- this.以管理员方式启动ToolStripMenuItem.Text = "以管理员方式启动";
- this.以管理员方式启动ToolStripMenuItem.Click += new System.EventHandler(this.以管理员方式启动ToolStripMenuItem_Click);
- //
- // toolStripMenuItem2
- //
- this.toolStripMenuItem2.Name = "toolStripMenuItem2";
- this.toolStripMenuItem2.Size = new System.Drawing.Size(181, 6);
- //
- // 新增软件ToolStripMenuItem
- //
- this.新增软件ToolStripMenuItem.Name = "新增软件ToolStripMenuItem";
- this.新增软件ToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
- this.新增软件ToolStripMenuItem.Text = "添加软件";
- this.新增软件ToolStripMenuItem.Click += new System.EventHandler(this.新增软件ToolStripMenuItem_Click);
- //
- // 新增内置功能ToolStripMenuItem
- //
- this.新增内置功能ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("新增内置功能ToolStripMenuItem.Image")));
- this.新增内置功能ToolStripMenuItem.Name = "新增内置功能ToolStripMenuItem";
- this.新增内置功能ToolStripMenuItem.Size = new System.Drawing.Size(184, 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(184, 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(184, 22);
- this.从列表删除该软件ToolStripMenuItem.Text = "从列表删除选定软件";
- this.从列表删除该软件ToolStripMenuItem.Click += new System.EventHandler(this.从列表删除该软件ToolStripMenuItem_Click);
- //
- // toolStripMenuItem1
- //
- this.toolStripMenuItem1.Name = "toolStripMenuItem1";
- this.toolStripMenuItem1.Size = new System.Drawing.Size(181, 6);
- //
- // 打开软件所在位置ToolStripMenuItem
- //
- this.打开软件所在位置ToolStripMenuItem.Name = "打开软件所在位置ToolStripMenuItem";
- this.打开软件所在位置ToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
- this.打开软件所在位置ToolStripMenuItem.Text = "打开软件所在位置";
- this.打开软件所在位置ToolStripMenuItem.Click += new System.EventHandler(this.打开软件所在位置ToolStripMenuItem_Click);
- //
- // rySearch1
- //
- this.rySearch1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244)))));
- this.rySearch1.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
- this.rySearch1.EmptyText = "输入名称或拼音即可搜索";
- this.rySearch1.Location = new System.Drawing.Point(87, 6);
- this.rySearch1.Name = "rySearch1";
- this.rySearch1.Size = new System.Drawing.Size(228, 27);
- this.rySearch1.TabIndex = 2;
- this.rySearch1.OnSearch += new System.EventHandler(this.rySearch1_OnSearch);
- this.rySearch1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.rySearch1_KeyDown);
- //
- // BtnAddColumn
- //
- this.BtnAddColumn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.BtnAddColumn.Image = ((System.Drawing.Image)(resources.GetObject("BtnAddColumn.Image")));
- this.BtnAddColumn.Location = new System.Drawing.Point(682, 34);
- this.BtnAddColumn.Name = "BtnAddColumn";
- this.BtnAddColumn.Size = new System.Drawing.Size(27, 28);
- this.BtnAddColumn.TabIndex = 3;
- this.BtnAddColumn.UseVisualStyleBackColor = true;
- this.BtnAddColumn.Click += new System.EventHandler(this.BtnAddColumn_Click);
- //
- // MenuTabColumn
- //
- this.MenuTabColumn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.添加栏目ToolStripMenuItem,
- this.修改栏目ToolStripMenuItem,
- this.删除栏目ToolStripMenuItem});
- this.MenuTabColumn.Name = "MenuTab";
- this.MenuTabColumn.Size = new System.Drawing.Size(125, 70);
- this.MenuTabColumn.Opening += new System.ComponentModel.CancelEventHandler(this.MenuTabColumn_Opening);
- //
- // 添加栏目ToolStripMenuItem
- //
- this.添加栏目ToolStripMenuItem.Name = "添加栏目ToolStripMenuItem";
- this.添加栏目ToolStripMenuItem.Size = new System.Drawing.Size(124, 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(124, 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(124, 22);
- this.删除栏目ToolStripMenuItem.Text = "删除栏目";
- this.删除栏目ToolStripMenuItem.Click += new System.EventHandler(this.删除栏目ToolStripMenuItem_Click);
- //
- // MenuTabType
- //
- this.MenuTabType.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.新增分类ToolStripMenuItem,
- this.Menu修改分类,
- this.Menu删除分类});
- this.MenuTabType.Name = "MenuTab";
- this.MenuTabType.Size = new System.Drawing.Size(125, 70);
- this.MenuTabType.Opening += new System.ComponentModel.CancelEventHandler(this.MenuTabType_Opening);
- //
- // 新增分类ToolStripMenuItem
- //
- this.新增分类ToolStripMenuItem.Name = "新增分类ToolStripMenuItem";
- this.新增分类ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
- this.新增分类ToolStripMenuItem.Text = "新增分类";
- this.新增分类ToolStripMenuItem.Click += new System.EventHandler(this.新增分类ToolStripMenuItem_Click);
- //
- // Menu修改分类
- //
- this.Menu修改分类.Name = "Menu修改分类";
- this.Menu修改分类.Size = new System.Drawing.Size(124, 22);
- this.Menu修改分类.Text = "修改分类";
- this.Menu修改分类.Click += new System.EventHandler(this.Menu修改分类_Click);
- //
- // Menu删除分类
- //
- this.Menu删除分类.Name = "Menu删除分类";
- this.Menu删除分类.Size = new System.Drawing.Size(124, 22);
- this.Menu删除分类.Text = "删除分类";
- this.Menu删除分类.Click += new System.EventHandler(this.Menu删除分类_Click);
- //
- // pictureBox1
- //
- this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
- this.pictureBox1.Location = new System.Drawing.Point(4, 3);
- this.pictureBox1.Name = "pictureBox1";
- this.pictureBox1.Size = new System.Drawing.Size(80, 60);
- this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
- this.pictureBox1.TabIndex = 5;
- this.pictureBox1.TabStop = false;
- //
- // LblDrag
- //
- this.LblDrag.BackColor = System.Drawing.Color.Black;
- this.LblDrag.Location = new System.Drawing.Point(716, 111);
- this.LblDrag.Name = "LblDrag";
- this.LblDrag.Size = new System.Drawing.Size(2, 89);
- this.LblDrag.TabIndex = 6;
- this.LblDrag.Visible = false;
- //
- // 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.捐助ToolStripMenuItem,
- this.设置ToolStripMenuItem,
- this.退出软件ToolStripMenuItem});
- this.MenuTray.Name = "MenuTray";
- this.MenuTray.Size = new System.Drawing.Size(137, 114);
- //
- // 显示主窗体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);
- //
- // 捐助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);
- //
- // 退出软件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);
- //
- // LblSetting
- //
- this.LblSetting.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.LblSetting.AutoSize = true;
- this.LblSetting.Cursor = System.Windows.Forms.Cursors.Hand;
- this.LblSetting.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.LblSetting.ForeColor = System.Drawing.Color.Blue;
- this.LblSetting.Location = new System.Drawing.Point(681, 9);
- this.LblSetting.Name = "LblSetting";
- this.LblSetting.Size = new System.Drawing.Size(29, 12);
- this.LblSetting.TabIndex = 7;
- this.LblSetting.Text = "设置";
- this.LblSetting.Click += new System.EventHandler(this.LblSetting_Click);
- //
- // TabList_Type
- //
- this.TabList_Type.AllowDrop = true;
- this.TabList_Type.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)));
- this.TabList_Type.BackColor = System.Drawing.SystemColors.Control;
- this.TabList_Type.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.TabList_Type.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeader2});
- this.TabList_Type.ContextMenuStrip = this.MenuTabType;
- this.TabList_Type.HideSelection = false;
- this.TabList_Type.Icon = null;
- this.TabList_Type.IsDrawGridLines = false;
- this.TabList_Type.IsDrawIcon = false;
- this.TabList_Type.Location = new System.Drawing.Point(4, 65);
- this.TabList_Type.MultiSelect = false;
- this.TabList_Type.Name = "TabList_Type";
- this.TabList_Type.OwnerDraw = true;
- this.TabList_Type.Scrollable = false;
- this.TabList_Type.SelectedBackColor = System.Drawing.Color.LightSkyBlue;
- this.TabList_Type.Size = new System.Drawing.Size(74, 445);
- this.TabList_Type.TabIndex = 4;
- this.TabList_Type.TileSize = new System.Drawing.Size(80, 28);
- this.TabList_Type.UseCompatibleStateImageBehavior = false;
- this.TabList_Type.View = System.Windows.Forms.View.Tile;
- this.TabList_Type.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.TabList_Type_ItemDrag);
- this.TabList_Type.SelectedIndexChanged += new System.EventHandler(this.TabList_Type_SelectedIndexChanged);
- this.TabList_Type.DragDrop += new System.Windows.Forms.DragEventHandler(this.TabList_Type_DragDrop);
- this.TabList_Type.DragEnter += new System.Windows.Forms.DragEventHandler(this.TabList_Type_DragEnter);
- this.TabList_Type.DragOver += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragOver);
- this.TabList_Type.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TabList_Type_KeyDown);
- //
- // columnHeader2
- //
- this.columnHeader2.Width = 80;
- //
- // TabList_Column
- //
- this.TabList_Column.Alignment = System.Windows.Forms.ListViewAlignment.Left;
- this.TabList_Column.AllowDrop = true;
- this.TabList_Column.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.TabList_Column.BackColor = System.Drawing.SystemColors.Control;
- this.TabList_Column.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.TabList_Column.ContextMenuStrip = this.MenuTabColumn;
- this.TabList_Column.HideSelection = false;
- this.TabList_Column.Icon = null;
- this.TabList_Column.IsDrawGridLines = false;
- this.TabList_Column.IsDrawIcon = false;
- this.TabList_Column.Location = new System.Drawing.Point(87, 34);
- this.TabList_Column.MultiSelect = false;
- this.TabList_Column.Name = "TabList_Column";
- this.TabList_Column.OwnerDraw = true;
- this.TabList_Column.Scrollable = false;
- this.TabList_Column.SelectedBackColor = System.Drawing.Color.LightSkyBlue;
- this.TabList_Column.Size = new System.Drawing.Size(589, 29);
- this.TabList_Column.TabIndex = 1;
- this.TabList_Column.TileSize = new System.Drawing.Size(70, 28);
- this.TabList_Column.UseCompatibleStateImageBehavior = false;
- this.TabList_Column.View = System.Windows.Forms.View.Tile;
- this.TabList_Column.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.TabList_Column_ItemDrag);
- this.TabList_Column.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.TabList_Column_ItemSelectionChanged);
- this.TabList_Column.DragDrop += new System.Windows.Forms.DragEventHandler(this.TabList_Column_DragDrop);
- this.TabList_Column.DragEnter += new System.Windows.Forms.DragEventHandler(this.TabList_Column_DragEnter);
- this.TabList_Column.DragOver += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragOver);
- this.TabList_Column.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TabList_Column_KeyDown);
- //
- // IconViewEx1
- //
- this.IconViewEx1.AllowDrop = true;
- this.IconViewEx1.BackColor = System.Drawing.Color.White;
- this.IconViewEx1.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.IconViewEx1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeader1});
- this.IconViewEx1.ContextMenuStrip = this.MenuList;
- this.IconViewEx1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.IconViewEx1.HideSelection = false;
- this.IconViewEx1.Icon = ((System.Drawing.Image)(resources.GetObject("IconViewEx1.Icon")));
- this.IconViewEx1.IsDrawGridLines = false;
- this.IconViewEx1.IsDrawIcon = true;
- this.IconViewEx1.Location = new System.Drawing.Point(3, 3);
- this.IconViewEx1.MultiSelect = false;
- this.IconViewEx1.Name = "IconViewEx1";
- this.IconViewEx1.OwnerDraw = true;
- this.IconViewEx1.SelectedBackColor = System.Drawing.Color.LightYellow;
- this.IconViewEx1.Size = new System.Drawing.Size(620, 442);
- this.IconViewEx1.TabIndex = 0;
- this.IconViewEx1.TileSize = new System.Drawing.Size(100, 100);
- this.IconViewEx1.UseCompatibleStateImageBehavior = false;
- this.IconViewEx1.View = System.Windows.Forms.View.Tile;
- this.IconViewEx1.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.IconViewEx1_ItemDrag);
- this.IconViewEx1.DragDrop += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragDrop);
- this.IconViewEx1.DragEnter += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragEnter);
- this.IconViewEx1.DragOver += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragOver);
- this.IconViewEx1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.IconViewEx1_KeyDown);
- this.IconViewEx1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseClick);
- this.IconViewEx1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseDoubleClick);
- this.IconViewEx1.Resize += new System.EventHandler(this.IconViewEx1_Resize);
- //
- // FrmVSoft
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(722, 525);
- this.Controls.Add(this.LblSetting);
- this.Controls.Add(this.LblDrag);
- this.Controls.Add(this.pictureBox1);
- this.Controls.Add(this.TabList_Type);
- this.Controls.Add(this.BtnAddColumn);
- this.Controls.Add(this.TabList_Column);
- this.Controls.Add(this.rySearch1);
- this.Controls.Add(this.panelEx1);
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.Name = "FrmVSoft";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "VSoft";
- this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmVSoft_FormClosing);
- this.Load += new System.EventHandler(this.FrmVSoft_Load);
- this.Shown += new System.EventHandler(this.FrmVSoft_Shown);
- this.ResizeEnd += new System.EventHandler(this.FrmVSoft_ResizeEnd);
- this.Resize += new System.EventHandler(this.FrmVSoft_Resize);
- this.panelEx1.ResumeLayout(false);
- this.panelEx1.PerformLayout();
- this.MenuList.ResumeLayout(false);
- this.MenuTabColumn.ResumeLayout(false);
- this.MenuTabType.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
- this.MenuTray.ResumeLayout(false);
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private ryControls.IconViewEx IconViewEx1;
- private ryControls.PanelEx panelEx1;
- private ryControls.rySearch rySearch1;
- private System.Windows.Forms.ContextMenuStrip MenuList;
- private System.Windows.Forms.ToolStripMenuItem 从列表删除该软件ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem 新增软件ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem 修改软件ToolStripMenuItem;
- private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;
- private System.Windows.Forms.ToolStripMenuItem 打开软件所在位置ToolStripMenuItem;
- private ryControls.TabList TabList_Column;
- private System.Windows.Forms.Button BtnAddColumn;
- private System.Windows.Forms.ContextMenuStrip MenuTabColumn;
- private System.Windows.Forms.ToolStripMenuItem 修改栏目ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem 删除栏目ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem 以管理员方式启动ToolStripMenuItem;
- private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;
- private ryControls.TabList TabList_Type;
- private System.Windows.Forms.ContextMenuStrip MenuTabType;
- private System.Windows.Forms.ToolStripMenuItem 新增分类ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem Menu修改分类;
- private System.Windows.Forms.ToolStripMenuItem Menu删除分类;
- private System.Windows.Forms.PictureBox pictureBox1;
- private System.Windows.Forms.ColumnHeader columnHeader1;
- private System.Windows.Forms.Label LblDrag;
- private System.Windows.Forms.Timer timer1;
- private System.Windows.Forms.ColumnHeader columnHeader2;
- 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.ToolStripMenuItem 打开官网ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem 捐助ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem 设置ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem 新增内置功能ToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem 添加栏目ToolStripMenuItem;
- private System.Windows.Forms.Label LblEmpty;
- private System.Windows.Forms.Label LblSetting;
- }
+namespace VSoft
+{
+ partial class FrmVSoft
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmVSoft));
+ this.MenuList = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.以管理员方式启动ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
+ this.新增软件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.新增内置功能ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.修改软件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.从列表删除该软件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
+ this.打开软件所在位置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.BtnAddColumn = new System.Windows.Forms.Button();
+ this.MenuTabColumn = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.添加栏目ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.修改栏目ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.删除栏目ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.MenuTabType = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.新增分类ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.Menu修改分类 = new System.Windows.Forms.ToolStripMenuItem();
+ this.Menu删除分类 = new System.Windows.Forms.ToolStripMenuItem();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.LblDrag = new System.Windows.Forms.Label();
+ this.timer1 = new System.Windows.Forms.Timer(this.components);
+ 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.捐助ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.设置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.退出软件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.LblSetting = new System.Windows.Forms.Label();
+ this.TabList_Type = new ryControls.TabList();
+ this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.TabList_Column = new ryControls.TabList();
+ this.rySearch1 = new ryControls.rySearch();
+ this.panelEx1 = new ryControls.PanelEx();
+ this.LblEmpty = new System.Windows.Forms.Label();
+ this.IconViewEx1 = new ryControls.IconViewEx();
+ this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.MenuList.SuspendLayout();
+ this.MenuTabColumn.SuspendLayout();
+ this.MenuTabType.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.MenuTray.SuspendLayout();
+ this.panelEx1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // MenuList
+ //
+ this.MenuList.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.以管理员方式启动ToolStripMenuItem,
+ this.toolStripMenuItem2,
+ this.新增软件ToolStripMenuItem,
+ this.新增内置功能ToolStripMenuItem,
+ this.修改软件ToolStripMenuItem,
+ this.从列表删除该软件ToolStripMenuItem,
+ this.toolStripMenuItem1,
+ this.打开软件所在位置ToolStripMenuItem});
+ this.MenuList.Name = "contextMenuStrip1";
+ this.MenuList.Size = new System.Drawing.Size(185, 148);
+ this.MenuList.Opening += new System.ComponentModel.CancelEventHandler(this.MenuList_Opening);
+ //
+ // 以管理员方式启动ToolStripMenuItem
+ //
+ this.以管理员方式启动ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("以管理员方式启动ToolStripMenuItem.Image")));
+ this.以管理员方式启动ToolStripMenuItem.Name = "以管理员方式启动ToolStripMenuItem";
+ this.以管理员方式启动ToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
+ this.以管理员方式启动ToolStripMenuItem.Text = "以管理员方式启动";
+ this.以管理员方式启动ToolStripMenuItem.Click += new System.EventHandler(this.以管理员方式启动ToolStripMenuItem_Click);
+ //
+ // toolStripMenuItem2
+ //
+ this.toolStripMenuItem2.Name = "toolStripMenuItem2";
+ this.toolStripMenuItem2.Size = new System.Drawing.Size(181, 6);
+ //
+ // 新增软件ToolStripMenuItem
+ //
+ this.新增软件ToolStripMenuItem.Name = "新增软件ToolStripMenuItem";
+ this.新增软件ToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
+ this.新增软件ToolStripMenuItem.Text = "添加软件";
+ this.新增软件ToolStripMenuItem.Click += new System.EventHandler(this.新增软件ToolStripMenuItem_Click);
+ //
+ // 新增内置功能ToolStripMenuItem
+ //
+ this.新增内置功能ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("新增内置功能ToolStripMenuItem.Image")));
+ this.新增内置功能ToolStripMenuItem.Name = "新增内置功能ToolStripMenuItem";
+ this.新增内置功能ToolStripMenuItem.Size = new System.Drawing.Size(184, 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(184, 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(184, 22);
+ this.从列表删除该软件ToolStripMenuItem.Text = "从列表删除选定软件";
+ this.从列表删除该软件ToolStripMenuItem.Click += new System.EventHandler(this.从列表删除该软件ToolStripMenuItem_Click);
+ //
+ // toolStripMenuItem1
+ //
+ this.toolStripMenuItem1.Name = "toolStripMenuItem1";
+ this.toolStripMenuItem1.Size = new System.Drawing.Size(181, 6);
+ //
+ // 打开软件所在位置ToolStripMenuItem
+ //
+ this.打开软件所在位置ToolStripMenuItem.Name = "打开软件所在位置ToolStripMenuItem";
+ this.打开软件所在位置ToolStripMenuItem.Size = new System.Drawing.Size(184, 22);
+ this.打开软件所在位置ToolStripMenuItem.Text = "打开软件所在位置";
+ this.打开软件所在位置ToolStripMenuItem.Click += new System.EventHandler(this.打开软件所在位置ToolStripMenuItem_Click);
+ //
+ // BtnAddColumn
+ //
+ this.BtnAddColumn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.BtnAddColumn.Image = ((System.Drawing.Image)(resources.GetObject("BtnAddColumn.Image")));
+ this.BtnAddColumn.Location = new System.Drawing.Point(682, 34);
+ this.BtnAddColumn.Name = "BtnAddColumn";
+ this.BtnAddColumn.Size = new System.Drawing.Size(27, 28);
+ this.BtnAddColumn.TabIndex = 3;
+ this.BtnAddColumn.UseVisualStyleBackColor = true;
+ this.BtnAddColumn.Click += new System.EventHandler(this.BtnAddColumn_Click);
+ //
+ // MenuTabColumn
+ //
+ this.MenuTabColumn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.添加栏目ToolStripMenuItem,
+ this.修改栏目ToolStripMenuItem,
+ this.删除栏目ToolStripMenuItem});
+ this.MenuTabColumn.Name = "MenuTab";
+ this.MenuTabColumn.Size = new System.Drawing.Size(125, 70);
+ this.MenuTabColumn.Opening += new System.ComponentModel.CancelEventHandler(this.MenuTabColumn_Opening);
+ //
+ // 添加栏目ToolStripMenuItem
+ //
+ this.添加栏目ToolStripMenuItem.Name = "添加栏目ToolStripMenuItem";
+ this.添加栏目ToolStripMenuItem.Size = new System.Drawing.Size(124, 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(124, 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(124, 22);
+ this.删除栏目ToolStripMenuItem.Text = "删除栏目";
+ this.删除栏目ToolStripMenuItem.Click += new System.EventHandler(this.删除栏目ToolStripMenuItem_Click);
+ //
+ // MenuTabType
+ //
+ this.MenuTabType.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.新增分类ToolStripMenuItem,
+ this.Menu修改分类,
+ this.Menu删除分类});
+ this.MenuTabType.Name = "MenuTab";
+ this.MenuTabType.Size = new System.Drawing.Size(125, 70);
+ this.MenuTabType.Opening += new System.ComponentModel.CancelEventHandler(this.MenuTabType_Opening);
+ //
+ // 新增分类ToolStripMenuItem
+ //
+ this.新增分类ToolStripMenuItem.Name = "新增分类ToolStripMenuItem";
+ this.新增分类ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
+ this.新增分类ToolStripMenuItem.Text = "新增分类";
+ this.新增分类ToolStripMenuItem.Click += new System.EventHandler(this.新增分类ToolStripMenuItem_Click);
+ //
+ // Menu修改分类
+ //
+ this.Menu修改分类.Name = "Menu修改分类";
+ this.Menu修改分类.Size = new System.Drawing.Size(124, 22);
+ this.Menu修改分类.Text = "修改分类";
+ this.Menu修改分类.Click += new System.EventHandler(this.Menu修改分类_Click);
+ //
+ // Menu删除分类
+ //
+ this.Menu删除分类.Name = "Menu删除分类";
+ this.Menu删除分类.Size = new System.Drawing.Size(124, 22);
+ this.Menu删除分类.Text = "删除分类";
+ this.Menu删除分类.Click += new System.EventHandler(this.Menu删除分类_Click);
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
+ this.pictureBox1.Location = new System.Drawing.Point(4, 3);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(80, 60);
+ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ this.pictureBox1.TabIndex = 5;
+ this.pictureBox1.TabStop = false;
+ //
+ // LblDrag
+ //
+ this.LblDrag.BackColor = System.Drawing.Color.Black;
+ this.LblDrag.Location = new System.Drawing.Point(716, 111);
+ this.LblDrag.Name = "LblDrag";
+ this.LblDrag.Size = new System.Drawing.Size(2, 89);
+ this.LblDrag.TabIndex = 6;
+ this.LblDrag.Visible = false;
+ //
+ // 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.捐助ToolStripMenuItem,
+ this.设置ToolStripMenuItem,
+ this.退出软件ToolStripMenuItem});
+ this.MenuTray.Name = "MenuTray";
+ this.MenuTray.Size = new System.Drawing.Size(137, 114);
+ //
+ // 显示主窗体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);
+ //
+ // 捐助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);
+ //
+ // 退出软件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);
+ //
+ // LblSetting
+ //
+ this.LblSetting.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.LblSetting.AutoSize = true;
+ this.LblSetting.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.LblSetting.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.LblSetting.ForeColor = System.Drawing.Color.Blue;
+ this.LblSetting.Location = new System.Drawing.Point(681, 9);
+ this.LblSetting.Name = "LblSetting";
+ this.LblSetting.Size = new System.Drawing.Size(29, 12);
+ this.LblSetting.TabIndex = 7;
+ this.LblSetting.Text = "设置";
+ this.LblSetting.Click += new System.EventHandler(this.LblSetting_Click);
+ //
+ // TabList_Type
+ //
+ this.TabList_Type.AllowDrop = true;
+ this.TabList_Type.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.TabList_Type.BackColor = System.Drawing.SystemColors.Control;
+ this.TabList_Type.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.TabList_Type.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeader2});
+ this.TabList_Type.ContextMenuStrip = this.MenuTabType;
+ this.TabList_Type.HideSelection = false;
+ this.TabList_Type.Icon = null;
+ this.TabList_Type.IsDrawGridLines = false;
+ this.TabList_Type.IsDrawIcon = false;
+ this.TabList_Type.Location = new System.Drawing.Point(4, 65);
+ this.TabList_Type.Margin = new System.Windows.Forms.Padding(0);
+ this.TabList_Type.MultiSelect = false;
+ this.TabList_Type.Name = "TabList_Type";
+ this.TabList_Type.OwnerDraw = true;
+ this.TabList_Type.Scrollable = false;
+ this.TabList_Type.SelectedBorderColor = System.Drawing.Color.LightSkyBlue;
+ this.TabList_Type.SelectedEndBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(236)))), ((int)(((byte)(181)))));
+ this.TabList_Type.SelectedForeColor = System.Drawing.Color.Black;
+ this.TabList_Type.SelectedStartBackColor = System.Drawing.Color.LightSkyBlue;
+ this.TabList_Type.Size = new System.Drawing.Size(77, 445);
+ this.TabList_Type.TabIndex = 4;
+ this.TabList_Type.TileSize = new System.Drawing.Size(77, 28);
+ this.TabList_Type.UseCompatibleStateImageBehavior = false;
+ this.TabList_Type.View = System.Windows.Forms.View.Tile;
+ this.TabList_Type.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.TabList_Type_ItemDrag);
+ this.TabList_Type.SelectedIndexChanged += new System.EventHandler(this.TabList_Type_SelectedIndexChanged);
+ this.TabList_Type.DragDrop += new System.Windows.Forms.DragEventHandler(this.TabList_Type_DragDrop);
+ this.TabList_Type.DragEnter += new System.Windows.Forms.DragEventHandler(this.TabList_Type_DragEnter);
+ this.TabList_Type.DragOver += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragOver);
+ this.TabList_Type.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TabList_Type_KeyDown);
+ //
+ // columnHeader2
+ //
+ this.columnHeader2.Width = 80;
+ //
+ // TabList_Column
+ //
+ this.TabList_Column.Alignment = System.Windows.Forms.ListViewAlignment.Left;
+ this.TabList_Column.AllowDrop = true;
+ this.TabList_Column.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.TabList_Column.BackColor = System.Drawing.SystemColors.Control;
+ this.TabList_Column.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.TabList_Column.ContextMenuStrip = this.MenuTabColumn;
+ this.TabList_Column.HideSelection = false;
+ this.TabList_Column.Icon = null;
+ this.TabList_Column.IsDrawGridLines = false;
+ this.TabList_Column.IsDrawIcon = false;
+ this.TabList_Column.Location = new System.Drawing.Point(87, 34);
+ this.TabList_Column.Margin = new System.Windows.Forms.Padding(0);
+ this.TabList_Column.MultiSelect = false;
+ this.TabList_Column.Name = "TabList_Column";
+ this.TabList_Column.OwnerDraw = true;
+ this.TabList_Column.Scrollable = false;
+ this.TabList_Column.SelectedBorderColor = System.Drawing.Color.LightSkyBlue;
+ this.TabList_Column.SelectedEndBackColor = System.Drawing.Color.SkyBlue;
+ this.TabList_Column.SelectedForeColor = System.Drawing.Color.Black;
+ this.TabList_Column.SelectedStartBackColor = System.Drawing.Color.PowderBlue;
+ this.TabList_Column.Size = new System.Drawing.Size(589, 29);
+ this.TabList_Column.TabIndex = 1;
+ this.TabList_Column.TileSize = new System.Drawing.Size(70, 30);
+ this.TabList_Column.UseCompatibleStateImageBehavior = false;
+ this.TabList_Column.View = System.Windows.Forms.View.Tile;
+ this.TabList_Column.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.TabList_Column_ItemDrag);
+ this.TabList_Column.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.TabList_Column_ItemSelectionChanged);
+ this.TabList_Column.DragDrop += new System.Windows.Forms.DragEventHandler(this.TabList_Column_DragDrop);
+ this.TabList_Column.DragEnter += new System.Windows.Forms.DragEventHandler(this.TabList_Column_DragEnter);
+ this.TabList_Column.DragOver += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragOver);
+ this.TabList_Column.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TabList_Column_KeyDown);
+ //
+ // rySearch1
+ //
+ this.rySearch1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(239)))), ((int)(((byte)(244)))));
+ this.rySearch1.BaseColor = System.Drawing.Color.Teal;
+ this.rySearch1.ColorGradient = true;
+ this.rySearch1.EmptyText = "输入名称或拼音即可搜索";
+ this.rySearch1.Location = new System.Drawing.Point(87, 6);
+ this.rySearch1.Name = "rySearch1";
+ this.rySearch1.Size = new System.Drawing.Size(229, 27);
+ this.rySearch1.TabIndex = 2;
+ this.rySearch1.UseDefSkin = false;
+ this.rySearch1.OnSearch += new System.EventHandler(this.rySearch1_OnSearch);
+ this.rySearch1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.rySearch1_KeyDown);
+ //
+ // panelEx1
+ //
+ this.panelEx1.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.panelEx1.BackColor = System.Drawing.Color.White;
+ this.panelEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(213)))), ((int)(((byte)(216)))), ((int)(((byte)(223)))));
+ this.panelEx1.Controls.Add(this.LblEmpty);
+ this.panelEx1.Controls.Add(this.IconViewEx1);
+ this.panelEx1.Location = new System.Drawing.Point(84, 65);
+ this.panelEx1.Name = "panelEx1";
+ this.panelEx1.Padding = new System.Windows.Forms.Padding(3);
+ this.panelEx1.RoundeStyle = ryControls.RoundStyle.None;
+ this.panelEx1.Size = new System.Drawing.Size(626, 448);
+ this.panelEx1.TabIndex = 1;
+ this.panelEx1.TileBackColor = System.Drawing.Color.White;
+ this.panelEx1.Resize += new System.EventHandler(this.panelEx1_Resize);
+ //
+ // LblEmpty
+ //
+ this.LblEmpty.AutoSize = true;
+ this.LblEmpty.BackColor = System.Drawing.Color.Transparent;
+ this.LblEmpty.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.LblEmpty.ForeColor = System.Drawing.Color.Silver;
+ this.LblEmpty.Location = new System.Drawing.Point(31, 196);
+ this.LblEmpty.Name = "LblEmpty";
+ this.LblEmpty.Size = new System.Drawing.Size(456, 19);
+ this.LblEmpty.TabIndex = 1;
+ this.LblEmpty.Text = "暂无软件,请右击列表或者直接拖放文件到列表中添加";
+ this.LblEmpty.Visible = false;
+ //
+ // IconViewEx1
+ //
+ this.IconViewEx1.AllowDrop = true;
+ this.IconViewEx1.BackColor = System.Drawing.Color.White;
+ this.IconViewEx1.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.IconViewEx1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeader1});
+ this.IconViewEx1.ContextMenuStrip = this.MenuList;
+ this.IconViewEx1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.IconViewEx1.HideSelection = false;
+ this.IconViewEx1.Icon = ((System.Drawing.Image)(resources.GetObject("IconViewEx1.Icon")));
+ this.IconViewEx1.IconSize = 64;
+ this.IconViewEx1.IsDrawGridLines = false;
+ this.IconViewEx1.IsDrawIcon = true;
+ this.IconViewEx1.Location = new System.Drawing.Point(3, 3);
+ this.IconViewEx1.MultiSelect = false;
+ this.IconViewEx1.Name = "IconViewEx1";
+ this.IconViewEx1.OwnerDraw = true;
+ this.IconViewEx1.SelectedBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(229)))), ((int)(((byte)(195)))), ((int)(((byte)(101)))));
+ this.IconViewEx1.SelectedEndBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(236)))), ((int)(((byte)(181)))));
+ this.IconViewEx1.SelectedStartBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(251)))), ((int)(((byte)(237)))));
+ this.IconViewEx1.Size = new System.Drawing.Size(620, 442);
+ this.IconViewEx1.TabIndex = 0;
+ this.IconViewEx1.TextHeight = 20;
+ this.IconViewEx1.TileSize = new System.Drawing.Size(100, 100);
+ this.IconViewEx1.UseCompatibleStateImageBehavior = false;
+ this.IconViewEx1.View = System.Windows.Forms.View.Tile;
+ this.IconViewEx1.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.IconViewEx1_ItemDrag);
+ this.IconViewEx1.DragDrop += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragDrop);
+ this.IconViewEx1.DragEnter += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragEnter);
+ this.IconViewEx1.DragOver += new System.Windows.Forms.DragEventHandler(this.IconViewEx1_DragOver);
+ this.IconViewEx1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.IconViewEx1_KeyDown);
+ this.IconViewEx1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseClick);
+ this.IconViewEx1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseDoubleClick);
+ this.IconViewEx1.Resize += new System.EventHandler(this.IconViewEx1_Resize);
+ //
+ // FrmVSoft
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(722, 525);
+ this.Controls.Add(this.LblSetting);
+ this.Controls.Add(this.LblDrag);
+ this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.TabList_Type);
+ this.Controls.Add(this.BtnAddColumn);
+ this.Controls.Add(this.TabList_Column);
+ this.Controls.Add(this.rySearch1);
+ this.Controls.Add(this.panelEx1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "FrmVSoft";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "VSoft";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmVSoft_FormClosing);
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FrmVSoft_FormClosed);
+ this.Load += new System.EventHandler(this.FrmVSoft_Load);
+ this.ResizeEnd += new System.EventHandler(this.FrmVSoft_ResizeEnd);
+ this.Resize += new System.EventHandler(this.FrmVSoft_Resize);
+ this.MenuList.ResumeLayout(false);
+ this.MenuTabColumn.ResumeLayout(false);
+ this.MenuTabType.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.MenuTray.ResumeLayout(false);
+ this.panelEx1.ResumeLayout(false);
+ this.panelEx1.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private ryControls.IconViewEx IconViewEx1;
+ private ryControls.PanelEx panelEx1;
+ private ryControls.rySearch rySearch1;
+ private System.Windows.Forms.ContextMenuStrip MenuList;
+ private System.Windows.Forms.ToolStripMenuItem 从列表删除该软件ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem 新增软件ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem 修改软件ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;
+ private System.Windows.Forms.ToolStripMenuItem 打开软件所在位置ToolStripMenuItem;
+ private ryControls.TabList TabList_Column;
+ private System.Windows.Forms.Button BtnAddColumn;
+ private System.Windows.Forms.ContextMenuStrip MenuTabColumn;
+ private System.Windows.Forms.ToolStripMenuItem 修改栏目ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem 删除栏目ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem 以管理员方式启动ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;
+ private ryControls.TabList TabList_Type;
+ private System.Windows.Forms.ContextMenuStrip MenuTabType;
+ private System.Windows.Forms.ToolStripMenuItem 新增分类ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem Menu修改分类;
+ private System.Windows.Forms.ToolStripMenuItem Menu删除分类;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.ColumnHeader columnHeader1;
+ private System.Windows.Forms.Label LblDrag;
+ private System.Windows.Forms.Timer timer1;
+ private System.Windows.Forms.ColumnHeader columnHeader2;
+ 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.ToolStripMenuItem 打开官网ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem 捐助ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem 设置ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem 新增内置功能ToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem 添加栏目ToolStripMenuItem;
+ private System.Windows.Forms.Label LblEmpty;
+ private System.Windows.Forms.Label LblSetting;
+ }
}
\ No newline at end of file
diff --git a/Source/VSoft_Dll/FrmVSoft.cs b/Source/VSoft_Dll/FrmVSoft.cs
index d445393..33e8538 100644
--- a/Source/VSoft_Dll/FrmVSoft.cs
+++ b/Source/VSoft_Dll/FrmVSoft.cs
@@ -1,1333 +1,1368 @@
-using ryCommon;
-using ryCommonDb;
-using ryControls;
-using SysFuns;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Diagnostics;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using VSoft.Config;
-using VSoft.Prams;
-
-namespace VSoft
-{
- public partial class FrmVSoft : Form
- {
- string[] prog_args;
- string SQLConnStr = Itrycn_Db.SQLConnStr;
- public FrmVSoft(string[] args)
- {
- InitializeComponent();
- prog_args = args;
- //配置软件信息
- notifyIcon1.Text = Config.Soft_Info.Soft_Title;
- Text = Config.Soft_Info.Soft_Title + " V" + RySoft.VersionStr;
- if (!Config.Soft_Info.ShowTray) { notifyIcon1.Visible = false; }
- if (!Config.Soft_Info.DonateVisabled) { 捐助ToolStripMenuItem.Text = "关于"; }
- if (Config.Soft_Info.Soft_Url.Length == 0) { 打开官网ToolStripMenuItem.PerformClick(); }
- notifyIcon1.Icon = Icon;
- }
- private bool IsProcUse = false;
- private void LoadDb()
- {
- LoadDb(false);
- }
- private void LoadDb(bool isSearch)
- {
- IconViewEx1.Items.Clear();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- var id = GetCurColumnId();
- RyQuickSQL mySQL = new RyQuickSQL("Softs");
- mySQL.AddField("SearchText", "%" + rySearch1.Text + "%");
- var sql = "select * from Softs where (Name like @SearchText or Path like @SearchText or Des like @SearchText or PinYin like @SearchText)";
- if (isSearch)
- {
- IsProcUse = true;
- TabList_Column.SelectedItems.Clear();
- TabList_Type.Items.Clear();
- TabList_Type.Items.Add("默认分类").Tag = 0;
- IsProcUse = false;
- }
- else
- {
- if (id > 0)
- {
- sql += " and ColumnId=" + id;
- }
- else { sql += " and ColumnId<=0"; }
- }
- DataSet ds = db.ReadData(sql + " order by sortindex asc,AddTime desc", mySQL);
- IconViewEx1.BeginUpdate();
- for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
- {
- DataRow row = ds.Tables[0].Rows[i];
- SoftInfo info = new SoftInfo();
- info.Id = row["id"].ToInt();
- info.SoftType = row["SoftType"].ToInt();
- info.ColumnId = row["ColumnId"].ToInt();
- info.Name = row["Name"].ToString();
- info.Path = row["Path"].ToString();
- info.RunPram = row["RunPram"].ToString();
- info.SetJson = row["SetJson"].ToString();
- info.StartPath= row["StartPath"].ToString();
- info.IconPath = row["IconPath"].ToString();
- if (info.IconPath.Length == 0)
- {
- info.Image = API.GetImg(info.TruePath,128);
- }
- else
- {
- info.Image = API.GetImg(RyFiles.GetRealPath(row["IconPath"].ToString()),128);
- }
- IconViewEx1.Items.Add(info.Name).Tag = info ;
- }
- IconViewEx1.EndUpdate();
- db.Free();
- if(IconViewEx1.Items.Count==0)
- {
- LblEmpty.Visible = true;
- }
- else { LblEmpty.Visible = false; }
- }
- }
- private void LoadColumn()
- {
- TabList_Column.Items.Clear();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- TabList_Column.BeginUpdate();
- DataSet ds = db.ReadData("select * from Columns where parentId=0 order by sortindex asc");
- for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
- {
- DataRow row = ds.Tables[0].Rows[i];
- TabList_Column.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
- }
- if(ds.Tables[0].Rows.Count==0)
- {
- #region 如果没有栏目,则创建一个栏目
- RyQuickSQL mySQL = new RyQuickSQL("Columns");
- mySQL.AddField("Name", "默认栏目");
- mySQL.AddField("editTime", DateTime.Now);
- mySQL.AddField("sortindex", 1);
- mySQL.AddField("parentId", 0);
- mySQL.AddField("addTime", DateTime.Now);
- db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
- DataSet ds2 = db.ReadData("select * from Columns where parentId=0 order by sortindex asc");
- for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
- {
- DataRow row = ds2.Tables[0].Rows[i];
- TabList_Column.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
- }
- ds2.Dispose();
- #endregion
- }
- ds.Dispose();
- TabList_Column.EndUpdate();
- db.Free();
- }
- if(TabList_Column.Items.Count>0)
- {
- TabList_Column.Items[0].Selected = true;
- }
- }
- private void LoadTypeColumn(int id)
- {
- TabList_Type.Items.Clear();
- TabList_Type.Items.Add("默认分类").Tag = 0;
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- DataSet ds = db.ReadData("select * from Columns where parentId="+ id + " order by sortindex asc");
- TabList_Type.BeginUpdate();
- for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
- {
- DataRow row = ds.Tables[0].Rows[i];
- TabList_Type.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
- }
- ds.Dispose();
- TabList_Type.EndUpdate();
- db.Free();
- }
- if (TabList_Type.Items.Count > 0)
- {
- TabList_Type.Items[0].Selected = true;
- }
- }
- SysFuns.WinHotReg hotkey;
- private void FrmVSoft_Load(object sender, EventArgs e)
- {
- MinimumSize = new Size(400, 200);
- LblEmpty.Left =((panelEx1.Width - LblEmpty.Width) / 2);
- Config.Soft_Info.UserDataFolder = ryCommon.RyFiles.GetRealPath(Config.Soft_Info.UserDataFolder);
- VSoft.Prams.Itrycn_Db.CreateTable();
- VSoft.Config.Soft_Config.LoadSetting();
- LoadColumn();
- //rySearch1.PerformClick();
- //if(RySoft.IsAdministrator())
- //{
- // MessageBox.Show("管理员模式下启动本软件,可能会导致无法拖放图标到本软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- //}
- hotkey = new SysFuns.WinHotReg(Handle);
- HotkeyValue hot = new HotkeyValue(Soft_Config.ShowMainHotKey);
- hotkey.RegHotKey(100,hot.Modifiers_Int, hot.KeyCode);
- hotkey.OnHotkey += Hotkey_OnHotkey;
- ryCommon.RyRegedit.RegRoot = Microsoft.Win32.RegistryHive.CurrentUser;
- //如果开机启动没有启动
- if(!ryCommon.RyRegedit.IsAutoRun(Soft_Info.Soft_Id, "\"" + Application.ExecutablePath.Replace("/", "\\") + "\" " + Soft_Info.Soft_Pram))
- {
- switch (MessageBox.Show("您暂未设置开机启动,下次开机后软件将无法自动运行。\r\n设置过程中可能会遇到安全软件提示,请选择允许。\r\n\r\n是否要设置开机启动?", "开机启动", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2))
- {
- case DialogResult.Yes:
- ryCommon.RyRegedit.SetAutoRun(true, Soft_Info.Soft_Id, "\"" + Application.ExecutablePath.Replace("/", "\\") + "\" " + Soft_Info.Soft_Pram);
- break;
- }
- }
- LiveUpdate.RyUpdate update = new LiveUpdate.RyUpdate(Soft_Info.Update_Url);
- update.CheckUpdate();
- }
-
- private void Hotkey_OnHotkey(int HotKeyID)
- {
- switch (HotKeyID)
- {
- case 100:
- if (this.Visible && RyForm.GetActiveWindow()==Handle)
- {
- this.Hide();
- }
- else
- {
- 显示主窗体ToolStripMenuItem.PerformClick();
- this.BringToFront();
- this.Select();
- this.Focus();
- RyForm.BringToTop(Handle);
- rySearch1.Focus();
- }
- break;
- }
- }
-
- 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);
- rySearch1.Focus();
- }
- #endregion
- break;
- }
- #endregion
- }
- break;
- default:
- base.WndProc(ref msg);//调用基类函数处理非自定义消息。
- break;
- }
- }
-
- private void rySearch1_OnSearch(object sender, EventArgs e)
- {
- if(rySearch1.Text.Length==0)
- {
- MessageBox.Show("请输入内容。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
-
- }
- LoadDb(true);
- }
- #region 对栏目标签进行操作
- ///
- /// 将栏目列表中的第几个栏目修改
- ///
- ///
- ///
- private void SetColumnRow(int id, int index)
- {
- #region 重新载入数据
- DataProvider mydb = new DataProvider();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- DataSet ds = db.ReadData("select * from Columns where id=" + id);
- if (mydb.HaveData(ds))
- {
- DataRow row = ds.Tables[0].Rows[0];
- var item = TabList_Column.Items[index];
- item.Text = row["Name"].ToString();
- }
- db.Free();
- }
- #endregion
- }
- private void BtnAddColumn_Click(object sender, EventArgs e)
- {
- FrmAddColumn frm = new FrmAddColumn();
- if (frm.ShowDialog() == DialogResult.OK)
- {
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- DataSet ds = db.ReadData("select * from Columns where parentId=0 order by sortindex desc limit 1");
- TabList_Column.BeginUpdate();
- if (ds.Tables[0].Rows.Count > 0)
- {
- DataRow row = ds.Tables[0].Rows[0];
- TabList_Column.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
- }
- TabList_Column.EndUpdate();
- db.Free();
- }
- }
- frm.Dispose();
- }
- private void 修改栏目ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (TabList_Column.SelectedItems.Count == 0) { return; }
- FrmAddColumn frm = new FrmAddColumn();
- frm.IsAdd = 0;
- frm.GetInfo(TabList_Column.SelectedItems[0].Tag.ToInt());
- if (frm.ShowDialog() == DialogResult.OK)
- {
- SetColumnRow(TabList_Column.SelectedItems[0].Tag.ToInt(), TabList_Column.SelectedItems[0].Index);
- }
- frm.Dispose();
- }
-
- private void 删除栏目ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (TabList_Column.SelectedItems.Count == 0) { return; }
- if (MessageBox.Show("确定要删除选定项吗?一旦删除将不可恢复。", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
- {
- return;
- }
- if (TabList_Column.Items.Count ==1) {
- MessageBox.Show("请至少保留一个栏目。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- DataProvider mydb = new DataProvider();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- var column_id = TabList_Column.SelectedItems[0].Tag.ToInt();
- var ds = db.ReadData("select count(*) from Columns where parentId=" + column_id);
- if (mydb.HaveData(ds))
- {
- if (mydb.GetValue(ds) > 0)
- {
- ds.Dispose();
- MessageBox.Show("当前栏目下还有分类,请先移除再删除栏目。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- db.Free();
- return;
- }
- }
- ds.Dispose();
- db.DelById("Columns", column_id.ToString());
- TabList_Column.SelectedItems[0].Remove();
- db.BeginTransaction();
- for (int i = 1; i < TabList_Column.Items.Count; i++)
- {
- var id = TabList_Column.Items[i].Tag.ToInt();
- RyQuickSQL mySQL = new RyQuickSQL("Columns");
- mySQL.AddField("sortindex", i);
- db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + id, mySQL);
- }
- db.Commit();
- }
- db.Free();
- }
- #endregion
- #region 对分类标签进行操作
- ///
- ///将分类列表中的第几个分类进行修改
- ///
- ///
- ///
- private void SetTypeRow(int id, int index)
- {
- #region 重新载入数据
- DataProvider mydb = new DataProvider();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- DataSet ds = db.ReadData("select * from Columns where id=" + id);
- if (mydb.HaveData(ds))
- {
- DataRow row = ds.Tables[0].Rows[0];
- var item = TabList_Type.Items[index];
- item.Text = row["Name"].ToString();
- }
- db.Free();
- }
- #endregion
- }
- private void 新增分类ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (TabList_Column.SelectedItems.Count == 0)
- {
- MessageBox.Show("请先选择一个栏目。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- var id = TabList_Column.SelectedItems[0].Tag.ToInt();
- FrmAddType frm = new FrmAddType();
- frm.ParentId = id;
- if (frm.ShowDialog() == DialogResult.OK)
- {
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- DataSet ds = db.ReadData("select * from Columns where parentId=" + id + " order by sortindex desc limit 1");
- TabList_Type.BeginUpdate();
- if(ds.Tables[0].Rows.Count>0)
- {
- DataRow row = ds.Tables[0].Rows[0];
- TabList_Type.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
- }
- TabList_Type.EndUpdate();
- db.Free();
- }
- }
- frm.Dispose();
- }
-
- private void Menu修改分类_Click(object sender, EventArgs e)
- {
- if (TabList_Column.SelectedItems.Count == 0)
- {
- MessageBox.Show("请先选择一个栏目。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- if (TabList_Type.SelectedItems.Count == 0)
- {
- MessageBox.Show("请先选择一个分类。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- var id = TabList_Type.SelectedItems[0].Tag.ToInt();
- if (id == 0) {
- MessageBox.Show("默认分类不支持修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- FrmAddType frm = new FrmAddType();
- frm.IsAdd = 0;
- frm.GetInfo(id);
- if (frm.ShowDialog() == DialogResult.OK)
- {
- SetTypeRow(id, TabList_Type.SelectedItems[0].Index);
- }
- frm.Dispose();
- }
-
- private void Menu删除分类_Click(object sender, EventArgs e)
- {
- if (TabList_Type.SelectedItems.Count == 0) { return; }
- if (MessageBox.Show("确定要删除选定项吗?一旦删除将不可恢复。", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
- {
- return;
- }
- if (TabList_Type.SelectedItems.Count == 0) { return; }
- var column_id = TabList_Type.SelectedItems[0].Tag.ToInt();
- if (column_id == 0) {
- MessageBox.Show("默认分类不支持删除", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- DataProvider mydb = new DataProvider();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- var ds = db.ReadData("select count(*) from Softs where ColumnId=" + column_id);
- if (mydb.HaveData(ds))
- {
- if (mydb.GetValue(ds) > 0)
- {
- ds.Dispose();
- MessageBox.Show("当前分类下还有软件,请先移除再删除分类。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- db.Free();
- return;
- }
- }
- ds.Dispose();
- db.DelById("Columns", column_id.ToString());
- TabList_Type.SelectedItems[0].Remove();
- db.BeginTransaction();
- for (int i = 1; i < TabList_Type.Items.Count; i++)
- {
- var id = TabList_Type.Items[i].Tag.ToInt();
- RyQuickSQL mySQL = new RyQuickSQL("Columns");
- mySQL.AddField("sortindex", i);
- db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + id, mySQL);
- }
- db.Commit();
- }
- db.Free();
- }
- #endregion
- #region 对软件列表进行操作
- private void SetSoftRow(int id, int index)
- {
- #region 重新载入数据
- DataProvider mydb = new DataProvider();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- DataSet ds = db.ReadData("select * from Softs where id=" + id);
- if (mydb.HaveData(ds))
- {
- DataRow row = ds.Tables[0].Rows[0];
- var item = IconViewEx1.Items[index];
- SoftInfo info = (SoftInfo)item.Tag;
- info.Id = row["id"].ToInt();
- info.Name = row["Name"].ToString();
- info.Path = row["Path"].ToString();
- info.RunPram = row["RunPram"].ToString();
- info.SetJson = row["SetJson"].ToString();
- info.StartPath = row["StartPath"].ToString();
- info.IconPath = row["IconPath"].ToString();
- info.SoftType = row["SoftType"].ToInt();
- if (info.IconPath.Length == 0)
- {
- info.Image = API.GetImg(info.TruePath, 128);
- }
- else
- {
- info.Image = API.GetImg(RyFiles.GetRealPath(row["IconPath"].ToString()), 128);
- }
- item.Text = row["Name"].ToString();
- }
- db.Free();
- }
- #endregion
- }
- ///
- /// 获取当前页面所属的分类或栏目ID
- ///
- ///
- private int GetCurColumnId()
- {
- var ColumnId = 0;
- if (TabList_Type.SelectedItems.Count > 0)
- {
- ColumnId = TabList_Type.SelectedItems[0].Tag.ToInt();
- }
- if (ColumnId == 0)
- {
- if (TabList_Column.SelectedItems.Count > 0)
- {
- ColumnId = TabList_Column.SelectedItems[0].Tag.ToInt();
- }
- }
- return ColumnId;
- }
- private void 新增软件ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var ColumnId = GetCurColumnId();
- if (ColumnId == 0)
- {
- MessageBox.Show("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- FrmAddSoft frm = new FrmAddSoft();
- frm.ColumnId = ColumnId;
- if (frm.ShowDialog() == DialogResult.OK)
- {
- LoadDb();
- }
- frm.Dispose();
- }
- private void 修改软件ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (IconViewEx1.SelectedItems.Count == 0) { return; }
- var info = (SoftInfo)IconViewEx1.SelectedItems[0].Tag;
- FrmAddSoft frm = new FrmAddSoft();
- frm.SelectId = info.Id;
- frm.IsAdd = 0;
- frm.GetInfo(info.Id);
- if (frm.ShowDialog() == DialogResult.OK)
- {
- SetSoftRow(info.Id, IconViewEx1.SelectedItems[0].Index);
- }
- frm.Dispose();
- }
- private void 从列表删除该软件ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (IconViewEx1.SelectedItems.Count == 0) { return; }
- if (MessageBox.Show("确定要删除选定项吗?一旦删除将不可恢复。", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
- {
- return;
- }
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- for (int i = IconViewEx1.SelectedItems.Count - 1; i >= 0; i--)
- {
- var info = (SoftInfo)IconViewEx1.SelectedItems[i].Tag;
- if(info.IconPath.Length>0 && info.IconPath.StartsWith("\\UserDb\\SoftLogos", StringComparison.OrdinalIgnoreCase))
- {
- RyFiles.DeleteFile(RyFiles.GetRealPath(info.IconPath));
- }
- db.DelById("Softs", info.Id.ToString());
- IconViewEx1.SelectedItems[i].Remove();
- if (IconViewEx1.Items.Count == 0)
- {
- LblEmpty.Visible = true;
- }
- else { LblEmpty.Visible = false; }
- }
- ReSortSoftByList(db);
- }
- db.Free();
- }
- private void 以管理员方式启动ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- RunByListSelected(true);
- }
- private void 打开软件所在位置ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (IconViewEx1.SelectedItems.Count == 0) { return; }
- var info = (SoftInfo)IconViewEx1.SelectedItems[0].Tag;
- if (System.IO.File.Exists(info.TruePath) || System.IO.Directory.Exists(info.TruePath))
- {
- RyFiles.OpenFolderGotoFile(info.TruePath);
- }
- else
- {
- MessageBox.Show("没有找到文件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- private void RunByListSelected(bool RunasAdmin)
- {
- if (IconViewEx1.SelectedItems.Count == 0) { return; }
- var info = (SoftInfo)IconViewEx1.SelectedItems[0].Tag;
- var result= VSoft.Prams.Run.Open(info, RunasAdmin);
- if (result>36 && VSoft.Config.Soft_Config.HideAfterRun) { this.Hide(); }
- }
- private void IconViewEx1_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- RunByListSelected(false);
- }
- else if (e.KeyCode == Keys.Up)
- {
- if (IconViewEx1.SelectedItems.Count == 0) { return; }
- var item = IconViewEx1.SelectedItems[0];
- if(item.Position.Y== IconViewEx1.Items[0].Position.Y)
- {
- IconViewEx1.SelectedItems.Clear();
- if (TabList_Column.SelectedItems.Count == 0)
- {
- TabList_Column.Items[0].Selected = true;
- }
- TabList_Column.Focus();
- var color = TabList_Column.SelectedBackColor;
- TabList_Column.SelectedBackColor = Color.LightYellow;
- using (var bg = new BackgroundWorker())
- {
- bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟
- bg.RunWorkerCompleted += delegate {
- this.Invoke(new Action(() =>
- {
- TabList_Column.SelectedBackColor = color;
- }));
- }; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块
- bg.RunWorkerAsync();
- }
- }
- }
- else if (e.KeyCode == Keys.Left)
- {
- if (IconViewEx1.SelectedItems.Count == 0) { return; }
- var item = IconViewEx1.SelectedItems[0];
- if (item.Index==0 || item.Position.X== IconViewEx1.Items[0].Position.X)
- {
- IconViewEx1.SelectedItems.Clear();
- if (TabList_Type.SelectedItems.Count == 0)
- {
- TabList_Type.Items[0].Selected = true;
- }
- TabList_Type.Focus();
- var color = TabList_Type.SelectedBackColor;
- TabList_Type.SelectedBackColor = Color.LightYellow;
- using (var bg = new BackgroundWorker())
- {
- bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟
- bg.RunWorkerCompleted += delegate {
- this.Invoke(new Action(() =>
- {
- TabList_Type.SelectedBackColor = color;
- }));
- }; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块
- bg.RunWorkerAsync();
- }
- }
- }
- }
- private void IconViewEx1_MouseDoubleClick(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- if (Soft_Config.OpenByClick) { return; }
- RunByListSelected(false);
- }
- }
- #endregion
-
- #region 软件列表拖放
- private void IconViewEx1_ItemDrag(object sender, ItemDragEventArgs e)
- {
- this.DoDragDrop(e.Item, DragDropEffects.Move);
- }
-
- private void IconViewEx1_DragEnter(object sender, DragEventArgs e)
- {
- LblDrag.Height = IconViewEx1.TileSize.Height;
- LblDrag.Parent = IconViewEx1;
- ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
- if (lvi != null)
- {
- if (lvi.ListView != IconViewEx1)
- {
- e.Effect = DragDropEffects.None;
- return;
- }
- }
- e.Effect = DragDropEffects.Move;
- }
- private void IconViewEx1_DragDrop(object sender, DragEventArgs e)
- {
- LblDrag.Visible = false;
- var filedrop = e.Data.GetData(DataFormats.FileDrop);
- if (filedrop != null)
- {
- #region 拖放文件到软件列表
- var ColumnId = 0;
- if (TabList_Type.SelectedItems.Count > 0)
- {
- ColumnId = TabList_Type.SelectedItems[0].Tag.ToInt();
- }
- if (ColumnId == 0)
- {
- if (TabList_Column.SelectedItems.Count > 0)
- {
- ColumnId = TabList_Column.SelectedItems[0].Tag.ToInt();
- }
- }
- if(ColumnId==0)
- {
- MessageBox.Show("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- var path = ((string[])filedrop)[0];
- FrmAddSoft frm = new FrmAddSoft(path);
- frm.ColumnId = ColumnId;
- if (frm.ShowDialog() == DialogResult.OK)
- {
- LoadDb();
- }
- frm.Dispose();
- return;
- #endregion
- }
- Point pt;
- pt = ((IconViewEx)(sender)).PointToClient(new Point(e.X, e.Y));
- var to_item = IconViewEx1.GetItemAt(pt.X, pt.Y);
- if (to_item == null) { return; }
- //获得拖放中的项
- ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
- if (lvi == null) { return; }
- if (lvi.ListView!=IconViewEx1) { return; }
- if (lvi.Index == to_item.Index) { return; }
- IconViewEx1.BeginUpdate();
- IconViewEx1.View = View.List;
- IconViewEx1.Items.RemoveAt(lvi.Index);
- IconViewEx1.Items.Insert(to_item.Index, lvi);
- IconViewEx1.View = View.Tile;
- IconViewEx1.EndUpdate();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- ReSortSoftByList(db);
- }
- db.Free();
- }
- private void IconViewEx1_DragOver(object sender, DragEventArgs e)
- {
- ListViewItem item = null;
- if (sender is IconViewEx)
- {
- var filedrop = e.Data.GetData(DataFormats.FileDrop);
- if (filedrop != null) {
- if (LblDrag.Visible) { LblDrag.Visible = false; }
- return;
- }
- var lvi = e.Data.GetData(typeof(ListViewItem));
- if(lvi==null)
- {
- if (LblDrag.Visible) { LblDrag.Visible = false; }
- return;
- }
- else
- {
- var lvi2 = (ListViewItem)lvi;
- if(lvi2.ListView!=IconViewEx1)
- {
- if (LblDrag.Visible){LblDrag.Visible = false;}
- return;
- }
- }
- var list = ((IconViewEx)(sender));
- var pt = list.PointToClient(new Point(e.X, e.Y));
- item = list.GetItemAt(pt.X, pt.Y);
- }
- else if (sender is TabList)
- {
- var list = ((TabList)(sender));
- var pt = list.PointToClient(new Point(e.X, e.Y));
- item = list.GetItemAt(pt.X, pt.Y);
- }
- if (item == null)
- {
- if (LblDrag.Visible)
- {
- LblDrag.Visible = false;
- }
- }
- else
- {
- if (!LblDrag.Visible)
- {
- LblDrag.Visible = true;
- }
- LblDrag.Location = item.Position;
- }
- }
- #endregion
- #region 栏目拖放
- private void TabList_Column_DragEnter(object sender, DragEventArgs e)
- {
- //判定是否现在拖动的数据是LISTVIEW项
- ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
- if (lvi != null)
- {
- LblDrag.Height = TabList_Column.TileSize.Height;
- LblDrag.Parent = TabList_Column;
- e.Effect = DragDropEffects.Move;
- }
- }
- private void TabList_Column_DragDrop(object sender, DragEventArgs e)
- {
- LblDrag.Visible = false;
- Point pt;
- pt = ((TabList)(sender)).PointToClient(new Point(e.X, e.Y));
- var item = TabList_Column.GetItemAt(pt.X, pt.Y);
- if (item == null) { return; }
- var columnid = item.Tag.ToInt();
- //获得拖放中的项
- var drag_item = e.Data.GetData(typeof(ListViewItem));
- if (drag_item == null) { return; }
- ListViewItem lvi = (ListViewItem)drag_item;
- if (lvi.ListView == IconViewEx1)
- {
- #region 从软件列表里拖放
- var info = (SoftInfo)lvi.Tag;
- RyQuickSQL mySQL = new RyQuickSQL("Softs");
- mySQL.AddField("ColumnId", columnid);
- mySQL.AddField("editTime", DateTime.Now);
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db, columnid) + 1);
- db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + info.Id, mySQL);
- if (TabList_Column.SelectedItems.Count > 0)
- {
- if (TabList_Column.SelectedItems[0].Tag.ToInt() != columnid)
- {
- lvi.Remove();
- }
- else if (TabList_Type.SelectedItems.Count > 0 && TabList_Type.SelectedItems[0].Tag.ToInt() > 0)
- {
- lvi.Remove();
- }
- }
- else
- {
- lvi.Remove();
- }
- ReSortSoftByList(db);
- }
- db.Free();
- #endregion
- }
- else if (lvi.ListView == TabList_Column)
- {
- if (lvi.Index == item.Index) { return; }
- TabList_Column.BeginUpdate();
- TabList_Column.View = View.List;
- TabList_Column.Items.RemoveAt(lvi.Index);
- TabList_Column.Items.Insert(item.Index, lvi);
- TabList_Column.View = View.Tile;
- TabList_Column.EndUpdate();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- db.BeginTransaction();
- for (int i = 0; i < TabList_Column.Items.Count; i++)
- {
- var id = TabList_Column.Items[i].Tag.ToInt();
- RyQuickSQL mySQL = new RyQuickSQL("Columns");
- mySQL.AddField("sortindex", i + 1);
- db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + id, mySQL);
- }
- db.Commit();
- }
- db.Free();
- }
- }
- private void TabList_Column_ItemDrag(object sender, ItemDragEventArgs e)
- {
- this.DoDragDrop(e.Item, DragDropEffects.Move);
- }
- #endregion
- #region 分类拖放
- private void TabList_Type_DragEnter(object sender, DragEventArgs e)
- {
- //判定是否现在拖动的数据是LISTVIEW项
- ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
- if (lvi != null)
- {
- LblDrag.Height = TabList_Type.TileSize.Height;
- LblDrag.Parent = TabList_Type;
- e.Effect = DragDropEffects.Move;
- }
- }
-
- private void TabList_Type_DragDrop(object sender, DragEventArgs e)
- {
- LblDrag.Visible = false;
- Point pt;
- pt = ((TabList)(sender)).PointToClient(new Point(e.X, e.Y));
- var item = TabList_Type.GetItemAt(pt.X, pt.Y);
- if (item == null) { return; }
- var columnid = item.Tag.ToInt();
- if (columnid == 0)
- {
- if (TabList_Column.SelectedItems.Count>0)
- {
- columnid = TabList_Column.SelectedItems[0].Tag.ToInt();
- }
- }
- //获得拖放中的项
- var drag_item = e.Data.GetData(typeof(ListViewItem));
- if (drag_item == null) { return; }
- ListViewItem lvi = (ListViewItem)drag_item;
- if (lvi.ListView == IconViewEx1)
- {
- #region 来源自软件列表
- var info = (SoftInfo)lvi.Tag;
- RyQuickSQL mySQL = new RyQuickSQL("Softs");
- mySQL.AddField("ColumnId", columnid);
- mySQL.AddField("editTime", DateTime.Now);
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db, columnid) + 1);
- db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + info.Id, mySQL);
- if (TabList_Type.SelectedItems.Count > 0)
- {
- if (TabList_Type.SelectedItems[0].Tag.ToInt() != columnid)
- {
- lvi.Remove();
- }
- }
- else { lvi.Remove(); }
- ReSortSoftByList(db);
- }
- db.Free();
- #endregion
- }
- else if (lvi.ListView == TabList_Type)
- {
- if (lvi.Index == item.Index || item.Index==0 || lvi.Index==0) { return; }
- TabList_Type.BeginUpdate();
- TabList_Type.View = View.List;
- TabList_Type.Items.RemoveAt(lvi.Index);
- TabList_Type.Items.Insert(item.Index, lvi);
- TabList_Type.View = View.Tile;
- TabList_Type.EndUpdate();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- db.BeginTransaction();
- for (int i = 1; i < TabList_Type.Items.Count; i++)
- {
- var id = TabList_Type.Items[i].Tag.ToInt();
- RyQuickSQL mySQL = new RyQuickSQL("Columns");
- mySQL.AddField("sortindex", i);
- db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" +id, mySQL);
- }
- db.Commit();
- }
- db.Free();
- }
- }
- private void TabList_Type_ItemDrag(object sender, ItemDragEventArgs e)
- {
- this.DoDragDrop(e.Item, DragDropEffects.Move);
- }
- #endregion
- private void FrmVSoft_Shown(object sender, EventArgs e)
- {
- ryCommon.Ini ini = new Ini(VSoft.Config.Soft_Info.UserDataFolder + "\\Win.dat");
- ini.WriteIni(VSoft.Config.Soft_Info.Soft_Id, "hwnd", Handle.ToInt32());
- var width=ini.ReadIni(VSoft.Config.Soft_Info.Soft_Id, "width",Width);
- var height = ini.ReadIni(VSoft.Config.Soft_Info.Soft_Id, "height", Height);
- if(width>=400 && height>=200)
- {
- Width = width;
- Height = height;
- }
- if (prog_args.Length >= 1)
- {
- //如果是自启动,并且开启了右下角托盘图标,则隐藏自身。
- if (prog_args[0] == Soft_Info.Soft_Pram && Soft_Info.ShowTray)
- this.Hide();
- }
- }
- private void TabList_Type_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (IsProcUse) { return; }
- LoadDb();
- }
- private void TabList_Column_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
- {
- if (IsProcUse) { return; }
- if (TabList_Column.SelectedItems.Count > 0)
- {
- LoadTypeColumn(TabList_Column.SelectedItems[0].Tag.ToInt());
- }
- else
- {
- LoadTypeColumn(-1);
- }
- //LoadDb();
- }
- ///
- /// 将当前列表中的软件在数据库中排序
- ///
- ///
- private void ReSortSoftByList(IDbInterface db)
- {
- db.BeginTransaction();
- for (int i = 0; i < IconViewEx1.Items.Count; i++)
- {
- var info = (SoftInfo)IconViewEx1.Items[i].Tag;
- RyQuickSQL mySQL = new RyQuickSQL("Softs");
- mySQL.AddField("sortindex", i + 1);
- db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + info.Id, mySQL);
- }
- db.Commit();
- }
-
-
- 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 打开官网ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- ryCommon.RyFiles.OpenUrl(Config.Soft_Info.Soft_Url);
- }
-
- private void 捐助ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (Config.Soft_Info.DonateVisabled)
- {
- FrmAbout frm = new FrmAbout();
- frm.ShowDialog();
- frm.Dispose();
- }
- else
- {
- MessageBox.Show(Config.Soft_Info.AboutText.Replace("#softname#", Config.Soft_Info.Soft_Title).Replace("#ver#", "V" + RySoft.VersionStr), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
-
- private void 设置ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- hotkey.Enabled = false;
- FrmSetting frm = new FrmSetting();
- if(frm.ShowDialog()==DialogResult.OK)
- {
- VSoft.Config.Soft_Config.LoadSetting();
- hotkey.UnHotKey();
- HotkeyValue hot = new HotkeyValue(Soft_Config.ShowMainHotKey);
- hotkey.RegHotKey(100,hot.Modifiers_Int, hot.KeyCode);
- }
- frm.Dispose();
- hotkey.Enabled = true;
- }
-
- private void FrmVSoft_FormClosing(object sender, FormClosingEventArgs e)
- {
- if (Soft_Info.ShowTray && Soft_Config.HideByCloseBtn && e.CloseReason == CloseReason.UserClosing)
- {
- e.Cancel = true;
- this.Hide();
- notifyIcon1.ShowBalloonTip(3000, Soft_Info.Soft_Title, "软件已经最小化到此处,请右击托盘图标进行关闭。", ToolTipIcon.Info);
- return;
- }
- }
-
- private void TabList_Column_KeyDown(object sender, KeyEventArgs e)
- {
- if(e.KeyCode==Keys.Down)
- {
- if(IconViewEx1.Items.Count>0)
- {
- if(IconViewEx1.SelectedItems.Count==0)
- {
- IconViewEx1.Items[0].Selected = true ;
- }
- IconViewEx1.Focus();
- }
- }
- else if (e.KeyCode == Keys.Up)
- {
- rySearch1.Focus();
- }
- }
-
- private void TabList_Type_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Right)
- {
- if (IconViewEx1.Items.Count > 0)
- {
- if (IconViewEx1.SelectedItems.Count == 0)
- {
- IconViewEx1.Items[0].Selected = true;
- }
- IconViewEx1.Focus();
- }
- }
- }
-
- private void rySearch1_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Down)
- {
- if (TabList_Column.SelectedItems.Count == 0)
- {
- if (IconViewEx1.Items.Count > 0)
- {
- if (IconViewEx1.SelectedItems.Count == 0)
- {
- IconViewEx1.Items[0].Selected = true;
- }
- IconViewEx1.Focus();
- return;
- }
- else
- {
- TabList_Column.Items[0].Selected = true;
- }
- }
- TabList_Column.Focus();
- var color = TabList_Column.SelectedBackColor;
- TabList_Column.SelectedBackColor = Color.LightYellow;
- using (var bg = new BackgroundWorker())
- {
- bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟
- bg.RunWorkerCompleted += delegate {
- this.Invoke(new Action(() =>
- {
- TabList_Column.SelectedBackColor = color;
- }));
- }; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块
- bg.RunWorkerAsync();
- }
- }
- }
-
- private void IconViewEx1_MouseClick(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- if (!Soft_Config.OpenByClick) { return; }
- RunByListSelected(false);
- }
- }
-
- private void 新增内置功能ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var ColumnId = 0;
- if (TabList_Type.SelectedItems.Count > 0)
- {
- ColumnId = TabList_Type.SelectedItems[0].Tag.ToInt();
- }
- if (ColumnId == 0)
- {
- if (TabList_Column.SelectedItems.Count > 0)
- {
- ColumnId = TabList_Column.SelectedItems[0].Tag.ToInt();
- }
- }
- if (ColumnId == 0)
- {
- MessageBox.Show("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- return;
- }
- FrmInCMD frm = new FrmInCMD();
- if(frm.ShowDialog()==DialogResult.OK)
- {
- var info = frm.SelectedInfo;
- RyQuickSQL mySQL = new RyQuickSQL("Softs");
- mySQL.AddField("Name", info.Name);
- mySQL.AddField("SoftType",1);//0表示运行文件,1表示执行内置命令,2表示执行脚本
- mySQL.AddField("Path",frm.SQLConnStr);
- if (info.CmdId.Length > 0)
- { mySQL.AddField("RunPram","cmdid="+ info.CmdId); }
- else
- {
- mySQL.AddField("RunPram","id="+ info.Id);
- }
- mySQL.AddField("StartPath","");//起始路径
- mySQL.AddField("IconPath", info.IconPath.Length>0? info.IconPath: info.Path);//图标路径
- mySQL.AddField("SetJson","");//设置
- mySQL.AddField("Des", info.Des);//备注
- mySQL.AddField("Pinyin", ryCommon.PinYin.Convert(info.Name) + "\r\n" + ryCommon.PinYin.ConvertFirstPY(info.Name));
- mySQL.AddField("editTime", DateTime.Now);
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(SQLConnStr) == 1)
- {
- mySQL.AddField("ClickCount", 0);//点击量
- mySQL.AddField("ColumnId", ColumnId);
- mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db, ColumnId) + 1);
- mySQL.AddField("addTime", DateTime.Now);
- db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
- LoadDb();
- }
- db.Free();
- }
- frm.Dispose();
- }
-
- private void FrmVSoft_ResizeEnd(object sender, EventArgs e)
- {
- if (Width > 200 && Height > 200)
- {
- ryCommon.Ini ini = new Ini(VSoft.Config.Soft_Info.UserDataFolder + "\\Win.dat");
- ini.WriteIni(VSoft.Config.Soft_Info.Soft_Id, "width", Width);
- ini.WriteIni(VSoft.Config.Soft_Info.Soft_Id, "height", Height);
- }
- }
-
- private void 添加栏目ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- BtnAddColumn.PerformClick();
- }
-
- private void MenuTabType_Opening(object sender, CancelEventArgs e)
- {
- if(TabList_Type.SelectedItems.Count==0)
- {
- Menu修改分类.Enabled = false;
- Menu删除分类.Enabled = false;
- }
- else
- {
- if (TabList_Type.SelectedItems[0].Index == 0)
- {
- Menu修改分类.Enabled = false;
- Menu删除分类.Enabled = false;
- }
- else
- {
- Menu修改分类.Enabled = true;
- Menu删除分类.Enabled = true;
- }
- }
- }
-
- private void MenuTabColumn_Opening(object sender, CancelEventArgs e)
- {
- if (TabList_Column.SelectedItems.Count == 0)
- {
- 修改栏目ToolStripMenuItem.Enabled = false;
- 删除栏目ToolStripMenuItem.Enabled = false;
- }
- else
- {
- 修改栏目ToolStripMenuItem.Enabled = true;
- 删除栏目ToolStripMenuItem.Enabled = true;
- }
- }
-
- private void MenuList_Opening(object sender, CancelEventArgs e)
- {
- bool isSelected = IconViewEx1.SelectedItems.Count>0;
- 以管理员方式启动ToolStripMenuItem.Enabled = isSelected;
- 修改软件ToolStripMenuItem.Enabled = isSelected;
- 从列表删除该软件ToolStripMenuItem.Enabled = isSelected;
- 打开软件所在位置ToolStripMenuItem.Enabled = isSelected;
- }
-
- private void IconViewEx1_Resize(object sender, EventArgs e)
- {
- //LblEmpty.Left = (IconViewEx1.Width - LblEmpty.Width) / 2 + IconViewEx1.Left;
- }
-
- private void FrmVSoft_Resize(object sender, EventArgs e)
- {
- LblEmpty.Left =((panelEx1.Width - LblEmpty.Width) / 2);
-
- }
-
- private void panelEx1_Resize(object sender, EventArgs e)
- {
- // LblEmpty.Left = panelEx1.Left + ((panelEx1.Width - LblEmpty.Width) / 2);
- }
-
- private void LblSetting_Click(object sender, EventArgs e)
- {
- 设置ToolStripMenuItem.PerformClick();
- }
- }
-}
+using ryCommon;
+using ryCommonDb;
+using ryControls;
+using SysFuns;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Diagnostics;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using VSoft.Config;
+using VSoft.Prams;
+
+namespace VSoft
+{
+ public partial class FrmVSoft : Form
+ {
+ string[] prog_args;
+ string SQLConnStr = Itrycn_Db.SQLConnStr;
+ MouseHook mouse = new MouseHook();
+ public FrmVSoft(string[] args)
+ {
+ InitializeComponent();
+ prog_args = args;
+ //配置软件信息
+ notifyIcon1.Text = Config.Soft_Info.Soft_Title;
+ Text = Config.Soft_Info.Soft_Title + " V" + RySoft.VersionStr;
+ if (!Config.Soft_Info.ShowTray) { notifyIcon1.Visible = false; }
+ if (!Config.Soft_Info.DonateVisabled) { 捐助ToolStripMenuItem.Text = "关于"; }
+ if (Config.Soft_Info.Soft_Url.Length == 0) { 打开官网ToolStripMenuItem.PerformClick(); }
+
+ notifyIcon1.Icon = Icon;
+ }
+ private void FrmVSoft_FormClosed(object sender, FormClosedEventArgs e)
+ {
+ mouse.Stop();
+ }
+ DateTime dt_lastMouse = DateTime.Now;
+ int clickcount = 1;
+ private void Mouse_OnMouseActivity(object sender, MouseEventArgs e)
+ {
+ if (!Soft_Config.ShowMainMouseKeyOn) { return; }
+ var button = MouseButtons.Middle;
+ if(Soft_Config.ShowMainMouseKey==1)
+ {
+ button = MouseButtons.XButton1;
+ }
+ else if (Soft_Config.ShowMainMouseKey == 2)
+ {
+ button = MouseButtons.XButton2;
+ }
+ if (e.Button== button)
+ {
+ if(Math.Abs((dt_lastMouse-DateTime.Now).TotalMilliseconds)<500)
+ {
+ clickcount++;
+ if (clickcount == 2)
+ {
+ ShowOrHideUI();
+ }
+ clickcount = 1;
+ }
+ else
+ {
+ clickcount = 1;
+ }
+ dt_lastMouse = DateTime.Now;
+ }
+ // MessageBox.Show(e.Button.ToString());
+ // e.Button == MouseButtons.Middle;
+ }
+
+ private bool IsProcUse = false;
+ private void LoadDb()
+ {
+ LoadDb(false);
+ }
+ private void LoadDb(bool isSearch)
+ {
+ IconViewEx1.Items.Clear();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ var id = GetCurColumnId();
+ RyQuickSQL mySQL = new RyQuickSQL("Softs");
+ mySQL.AddField("SearchText", "%" + rySearch1.Text + "%");
+ var sql = "select * from Softs where (Name like @SearchText or Path like @SearchText or Des like @SearchText or PinYin like @SearchText)";
+ if (isSearch)
+ {
+ IsProcUse = true;
+ TabList_Column.SelectedItems.Clear();
+ TabList_Type.Items.Clear();
+ TabList_Type.Items.Add("默认分类").Tag = 0;
+ IsProcUse = false;
+ }
+ else
+ {
+ if (id > 0)
+ {
+ sql += " and ColumnId=" + id;
+ }
+ else { sql += " and ColumnId<=0"; }
+ }
+ DataSet ds = db.ReadData(sql + " order by sortindex asc,AddTime desc", mySQL);
+ IconViewEx1.BeginUpdate();
+ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+ {
+ DataRow row = ds.Tables[0].Rows[i];
+ SoftInfo info = new SoftInfo();
+ info.Id = row["id"].ToInt();
+ info.SoftType = row["SoftType"].ToInt();
+ info.ColumnId = row["ColumnId"].ToInt();
+ info.Name = row["Name"].ToString();
+ info.Path = row["Path"].ToString();
+ info.RunPram = row["RunPram"].ToString();
+ info.SetJson = row["SetJson"].ToString();
+ info.StartPath= row["StartPath"].ToString();
+ info.IconPath = row["IconPath"].ToString();
+ if (info.IconPath.Length == 0)
+ {
+ info.Image = API.GetImg(info.TruePath,128);
+ }
+ else
+ {
+ info.Image = API.GetImg(RyFiles.GetRealPath(row["IconPath"].ToString()),128);
+ }
+ IconViewEx1.Items.Add(info.Name).Tag = info ;
+ }
+ IconViewEx1.EndUpdate();
+ db.Free();
+ if(IconViewEx1.Items.Count==0)
+ {
+ LblEmpty.Visible = true;
+ }
+ else { LblEmpty.Visible = false; }
+ }
+ }
+ private void LoadColumn()
+ {
+ TabList_Column.Items.Clear();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ TabList_Column.BeginUpdate();
+ DataSet ds = db.ReadData("select * from Columns where parentId=0 order by sortindex asc");
+ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+ {
+ DataRow row = ds.Tables[0].Rows[i];
+ TabList_Column.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
+ }
+ if(ds.Tables[0].Rows.Count==0)
+ {
+ #region 如果没有栏目,则创建一个栏目
+ RyQuickSQL mySQL = new RyQuickSQL("Columns");
+ mySQL.AddField("Name", "默认栏目");
+ mySQL.AddField("editTime", DateTime.Now);
+ mySQL.AddField("sortindex", 1);
+ mySQL.AddField("parentId", 0);
+ mySQL.AddField("addTime", DateTime.Now);
+ db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
+ DataSet ds2 = db.ReadData("select * from Columns where parentId=0 order by sortindex asc");
+ for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
+ {
+ DataRow row = ds2.Tables[0].Rows[i];
+ TabList_Column.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
+ }
+ ds2.Dispose();
+ #endregion
+ }
+ ds.Dispose();
+ TabList_Column.EndUpdate();
+ db.Free();
+ }
+ if(TabList_Column.Items.Count>0)
+ {
+ TabList_Column.Items[0].Selected = true;
+ }
+ }
+ private void LoadTypeColumn(int id)
+ {
+ TabList_Type.Items.Clear();
+ TabList_Type.Items.Add("默认分类").Tag = 0;
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ DataSet ds = db.ReadData("select * from Columns where parentId="+ id + " order by sortindex asc");
+ TabList_Type.BeginUpdate();
+ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+ {
+ DataRow row = ds.Tables[0].Rows[i];
+ TabList_Type.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
+ }
+ ds.Dispose();
+ TabList_Type.EndUpdate();
+ db.Free();
+ }
+ if (TabList_Type.Items.Count > 0)
+ {
+ TabList_Type.Items[0].Selected = true;
+ }
+ }
+ SysFuns.WinHotReg hotkey;
+ private void FrmVSoft_Load(object sender, EventArgs e)
+ {
+ MinimumSize = new Size(400, 200);
+ LblEmpty.Left =((panelEx1.Width - LblEmpty.Width) / 2);
+ Config.Soft_Info.UserDataFolder = ryCommon.RyFiles.GetRealPath(Config.Soft_Info.UserDataFolder);
+ VSoft.Prams.Itrycn_Db.CreateTable();
+ VSoft.Config.Soft_Config.LoadSetting();
+ LoadColumn();
+ //rySearch1.PerformClick();
+ //if(RySoft.IsAdministrator())
+ //{
+ // MessageBox.Show("管理员模式下启动本软件,可能会导致无法拖放图标到本软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ //}
+ hotkey = new SysFuns.WinHotReg(Handle);
+ HotkeyValue hot = new HotkeyValue(Soft_Config.ShowMainHotKey);
+ hotkey.RegHotKey(100,hot.Modifiers_Int, hot.KeyCode);
+ hotkey.OnHotkey += Hotkey_OnHotkey;
+ ryCommon.RyRegedit.RegRoot = Microsoft.Win32.RegistryHive.CurrentUser;
+ //如果开机启动没有启动
+ if(!ryCommon.RyRegedit.IsAutoRun(Soft_Info.Soft_Id, "\"" + Application.ExecutablePath.Replace("/", "\\") + "\" " + Soft_Info.Soft_Pram))
+ {
+ switch (MessageBox.Show("您暂未设置开机启动,下次开机后软件将无法自动运行。\r\n设置过程中可能会遇到安全软件提示,请选择允许。\r\n\r\n是否要设置开机启动?", "开机启动", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2))
+ {
+ case DialogResult.Yes:
+ ryCommon.RyRegedit.SetAutoRun(true, Soft_Info.Soft_Id, "\"" + Application.ExecutablePath.Replace("/", "\\") + "\" " + Soft_Info.Soft_Pram);
+ break;
+ }
+ }
+ LiveUpdate.RyUpdate update = new LiveUpdate.RyUpdate(Soft_Info.Update_Url);
+ update.CheckUpdate();
+ mouse.OnMouseActivity += Mouse_OnMouseActivity;
+ mouse.Start();
+ }
+
+ private void Hotkey_OnHotkey(int HotKeyID)
+ {
+ switch (HotKeyID)
+ {
+ case 100:
+ ShowOrHideUI();
+ break;
+ }
+ }
+ ///
+ /// 显示或隐藏UI
+ ///
+ private void ShowOrHideUI()
+ {
+ if (this.Visible && RyForm.GetActiveWindow() == Handle)
+ {
+ this.Hide();
+ }
+ else
+ {
+ 显示主窗体ToolStripMenuItem.PerformClick();
+ this.BringToFront();
+ this.Select();
+ this.Focus();
+ RyForm.BringToTop(Handle);
+ rySearch1.Focus();
+ }
+ }
+ 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);
+ rySearch1.Focus();
+ }
+ #endregion
+ break;
+ }
+ #endregion
+ }
+ break;
+ default:
+ base.WndProc(ref msg);//调用基类函数处理非自定义消息。
+ break;
+ }
+ }
+
+ private void rySearch1_OnSearch(object sender, EventArgs e)
+ {
+ if(rySearch1.Text.Length==0)
+ {
+ MessageBox.Show("请输入内容。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+
+ }
+ LoadDb(true);
+ }
+ #region 对栏目标签进行操作
+ ///
+ /// 将栏目列表中的第几个栏目修改
+ ///
+ ///
+ ///
+ private void SetColumnRow(int id, int index)
+ {
+ #region 重新载入数据
+ DataProvider mydb = new DataProvider();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ DataSet ds = db.ReadData("select * from Columns where id=" + id);
+ if (mydb.HaveData(ds))
+ {
+ DataRow row = ds.Tables[0].Rows[0];
+ var item = TabList_Column.Items[index];
+ item.Text = row["Name"].ToString();
+ }
+ db.Free();
+ }
+ #endregion
+ }
+ private void BtnAddColumn_Click(object sender, EventArgs e)
+ {
+ FrmAddColumn frm = new FrmAddColumn();
+ if (frm.ShowDialog() == DialogResult.OK)
+ {
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ DataSet ds = db.ReadData("select * from Columns where parentId=0 order by sortindex desc limit 1");
+ TabList_Column.BeginUpdate();
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ DataRow row = ds.Tables[0].Rows[0];
+ TabList_Column.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
+ }
+ TabList_Column.EndUpdate();
+ db.Free();
+ }
+ }
+ frm.Dispose();
+ }
+ private void 修改栏目ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (TabList_Column.SelectedItems.Count == 0) { return; }
+ FrmAddColumn frm = new FrmAddColumn();
+ frm.IsAdd = 0;
+ frm.GetInfo(TabList_Column.SelectedItems[0].Tag.ToInt());
+ if (frm.ShowDialog() == DialogResult.OK)
+ {
+ SetColumnRow(TabList_Column.SelectedItems[0].Tag.ToInt(), TabList_Column.SelectedItems[0].Index);
+ }
+ frm.Dispose();
+ }
+
+ private void 删除栏目ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (TabList_Column.SelectedItems.Count == 0) { return; }
+ if (MessageBox.Show("确定要删除选定项吗?一旦删除将不可恢复。", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
+ {
+ return;
+ }
+ if (TabList_Column.Items.Count ==1) {
+ MessageBox.Show("请至少保留一个栏目。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ DataProvider mydb = new DataProvider();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ var column_id = TabList_Column.SelectedItems[0].Tag.ToInt();
+ var ds = db.ReadData("select count(*) from Columns where parentId=" + column_id);
+ if (mydb.HaveData(ds))
+ {
+ if (mydb.GetValue(ds) > 0)
+ {
+ ds.Dispose();
+ MessageBox.Show("当前栏目下还有分类,请先移除再删除栏目。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ db.Free();
+ return;
+ }
+ }
+ ds.Dispose();
+ db.DelById("Columns", column_id.ToString());
+ TabList_Column.SelectedItems[0].Remove();
+ db.BeginTransaction();
+ for (int i = 1; i < TabList_Column.Items.Count; i++)
+ {
+ var id = TabList_Column.Items[i].Tag.ToInt();
+ RyQuickSQL mySQL = new RyQuickSQL("Columns");
+ mySQL.AddField("sortindex", i);
+ db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + id, mySQL);
+ }
+ db.Commit();
+ }
+ db.Free();
+ }
+ #endregion
+ #region 对分类标签进行操作
+ ///
+ ///将分类列表中的第几个分类进行修改
+ ///
+ ///
+ ///
+ private void SetTypeRow(int id, int index)
+ {
+ #region 重新载入数据
+ DataProvider mydb = new DataProvider();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ DataSet ds = db.ReadData("select * from Columns where id=" + id);
+ if (mydb.HaveData(ds))
+ {
+ DataRow row = ds.Tables[0].Rows[0];
+ var item = TabList_Type.Items[index];
+ item.Text = row["Name"].ToString();
+ }
+ db.Free();
+ }
+ #endregion
+ }
+ private void 新增分类ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (TabList_Column.SelectedItems.Count == 0)
+ {
+ MessageBox.Show("请先选择一个栏目。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ var id = TabList_Column.SelectedItems[0].Tag.ToInt();
+ FrmAddType frm = new FrmAddType();
+ frm.ParentId = id;
+ if (frm.ShowDialog() == DialogResult.OK)
+ {
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ DataSet ds = db.ReadData("select * from Columns where parentId=" + id + " order by sortindex desc limit 1");
+ TabList_Type.BeginUpdate();
+ if(ds.Tables[0].Rows.Count>0)
+ {
+ DataRow row = ds.Tables[0].Rows[0];
+ TabList_Type.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
+ }
+ TabList_Type.EndUpdate();
+ db.Free();
+ }
+ }
+ frm.Dispose();
+ }
+
+ private void Menu修改分类_Click(object sender, EventArgs e)
+ {
+ if (TabList_Column.SelectedItems.Count == 0)
+ {
+ MessageBox.Show("请先选择一个栏目。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ if (TabList_Type.SelectedItems.Count == 0)
+ {
+ MessageBox.Show("请先选择一个分类。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ var id = TabList_Type.SelectedItems[0].Tag.ToInt();
+ if (id == 0) {
+ MessageBox.Show("默认分类不支持修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ FrmAddType frm = new FrmAddType();
+ frm.IsAdd = 0;
+ frm.GetInfo(id);
+ if (frm.ShowDialog() == DialogResult.OK)
+ {
+ SetTypeRow(id, TabList_Type.SelectedItems[0].Index);
+ }
+ frm.Dispose();
+ }
+
+ private void Menu删除分类_Click(object sender, EventArgs e)
+ {
+ if (TabList_Type.SelectedItems.Count == 0) { return; }
+ if (MessageBox.Show("确定要删除选定项吗?一旦删除将不可恢复。", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
+ {
+ return;
+ }
+ if (TabList_Type.SelectedItems.Count == 0) { return; }
+ var column_id = TabList_Type.SelectedItems[0].Tag.ToInt();
+ if (column_id == 0) {
+ MessageBox.Show("默认分类不支持删除", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ DataProvider mydb = new DataProvider();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ var ds = db.ReadData("select count(*) from Softs where ColumnId=" + column_id);
+ if (mydb.HaveData(ds))
+ {
+ if (mydb.GetValue(ds) > 0)
+ {
+ ds.Dispose();
+ MessageBox.Show("当前分类下还有软件,请先移除再删除分类。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ db.Free();
+ return;
+ }
+ }
+ ds.Dispose();
+ db.DelById("Columns", column_id.ToString());
+ TabList_Type.SelectedItems[0].Remove();
+ db.BeginTransaction();
+ for (int i = 1; i < TabList_Type.Items.Count; i++)
+ {
+ var id = TabList_Type.Items[i].Tag.ToInt();
+ RyQuickSQL mySQL = new RyQuickSQL("Columns");
+ mySQL.AddField("sortindex", i);
+ db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + id, mySQL);
+ }
+ db.Commit();
+ }
+ db.Free();
+ }
+ #endregion
+ #region 对软件列表进行操作
+ private void SetSoftRow(int id, int index)
+ {
+ #region 重新载入数据
+ DataProvider mydb = new DataProvider();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ DataSet ds = db.ReadData("select * from Softs where id=" + id);
+ if (mydb.HaveData(ds))
+ {
+ DataRow row = ds.Tables[0].Rows[0];
+ var item = IconViewEx1.Items[index];
+ SoftInfo info = (SoftInfo)item.Tag;
+ info.Id = row["id"].ToInt();
+ info.Name = row["Name"].ToString();
+ info.Path = row["Path"].ToString();
+ info.RunPram = row["RunPram"].ToString();
+ info.SetJson = row["SetJson"].ToString();
+ info.StartPath = row["StartPath"].ToString();
+ info.IconPath = row["IconPath"].ToString();
+ info.SoftType = row["SoftType"].ToInt();
+ if (info.IconPath.Length == 0)
+ {
+ info.Image = API.GetImg(info.TruePath, 128);
+ }
+ else
+ {
+ info.Image = API.GetImg(RyFiles.GetRealPath(row["IconPath"].ToString()), 128);
+ }
+ item.Text = row["Name"].ToString();
+ }
+ db.Free();
+ }
+ #endregion
+ }
+ ///
+ /// 获取当前页面所属的分类或栏目ID
+ ///
+ ///
+ private int GetCurColumnId()
+ {
+ var ColumnId = 0;
+ if (TabList_Type.SelectedItems.Count > 0)
+ {
+ ColumnId = TabList_Type.SelectedItems[0].Tag.ToInt();
+ }
+ if (ColumnId == 0)
+ {
+ if (TabList_Column.SelectedItems.Count > 0)
+ {
+ ColumnId = TabList_Column.SelectedItems[0].Tag.ToInt();
+ }
+ }
+ return ColumnId;
+ }
+ private void 新增软件ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var ColumnId = GetCurColumnId();
+ if (ColumnId == 0)
+ {
+ MessageBox.Show("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ FrmAddSoft frm = new FrmAddSoft();
+ frm.ColumnId = ColumnId;
+ if (frm.ShowDialog() == DialogResult.OK)
+ {
+ LoadDb();
+ }
+ frm.Dispose();
+ }
+ private void 修改软件ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (IconViewEx1.SelectedItems.Count == 0) { return; }
+ var info = (SoftInfo)IconViewEx1.SelectedItems[0].Tag;
+ FrmAddSoft frm = new FrmAddSoft();
+ frm.SelectId = info.Id;
+ frm.IsAdd = 0;
+ frm.GetInfo(info.Id);
+ if (frm.ShowDialog() == DialogResult.OK)
+ {
+ SetSoftRow(info.Id, IconViewEx1.SelectedItems[0].Index);
+ }
+ frm.Dispose();
+ }
+ private void 从列表删除该软件ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (IconViewEx1.SelectedItems.Count == 0) { return; }
+ if (MessageBox.Show("确定要删除选定项吗?一旦删除将不可恢复。", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
+ {
+ return;
+ }
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ for (int i = IconViewEx1.SelectedItems.Count - 1; i >= 0; i--)
+ {
+ var info = (SoftInfo)IconViewEx1.SelectedItems[i].Tag;
+ if(info.IconPath.Length>0 && info.IconPath.StartsWith("\\UserDb\\SoftLogos", StringComparison.OrdinalIgnoreCase))
+ {
+ RyFiles.DeleteFile(RyFiles.GetRealPath(info.IconPath));
+ }
+ db.DelById("Softs", info.Id.ToString());
+ IconViewEx1.SelectedItems[i].Remove();
+ if (IconViewEx1.Items.Count == 0)
+ {
+ LblEmpty.Visible = true;
+ }
+ else { LblEmpty.Visible = false; }
+ }
+ ReSortSoftByList(db);
+ }
+ db.Free();
+ }
+ private void 以管理员方式启动ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ RunByListSelected(true);
+ }
+ private void 打开软件所在位置ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (IconViewEx1.SelectedItems.Count == 0) { return; }
+ var info = (SoftInfo)IconViewEx1.SelectedItems[0].Tag;
+ if (System.IO.File.Exists(info.TruePath) || System.IO.Directory.Exists(info.TruePath))
+ {
+ RyFiles.OpenFolderGotoFile(info.TruePath);
+ }
+ else
+ {
+ MessageBox.Show("没有找到文件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ private void RunByListSelected(bool RunasAdmin)
+ {
+ if (IconViewEx1.SelectedItems.Count == 0) { return; }
+ var info = (SoftInfo)IconViewEx1.SelectedItems[0].Tag;
+ var result= VSoft.Prams.Run.Open(info, RunasAdmin);
+ if (result>36 && VSoft.Config.Soft_Config.HideAfterRun) { this.Hide(); }
+ }
+ private void IconViewEx1_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter)
+ {
+ RunByListSelected(false);
+ }
+ else if (e.KeyCode == Keys.Up)
+ {
+ if (IconViewEx1.SelectedItems.Count == 0) { return; }
+ var item = IconViewEx1.SelectedItems[0];
+ if(item.Position.Y== IconViewEx1.Items[0].Position.Y)
+ {
+ IconViewEx1.SelectedItems.Clear();
+ if (TabList_Column.SelectedItems.Count == 0)
+ {
+ TabList_Column.Items[0].Selected = true;
+ }
+ TabList_Column.Focus();
+ var color = TabList_Column.SelectedStartBackColor;
+ TabList_Column.SelectedStartBackColor = Color.LightYellow;
+ using (var bg = new BackgroundWorker())
+ {
+ bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟
+ bg.RunWorkerCompleted += delegate {
+ this.Invoke(new Action(() =>
+ {
+ TabList_Column.SelectedStartBackColor = color;
+ }));
+ }; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块
+ bg.RunWorkerAsync();
+ }
+ }
+ }
+ else if (e.KeyCode == Keys.Left)
+ {
+ if (IconViewEx1.SelectedItems.Count == 0) { return; }
+ var item = IconViewEx1.SelectedItems[0];
+ if (item.Index==0 || item.Position.X== IconViewEx1.Items[0].Position.X)
+ {
+ IconViewEx1.SelectedItems.Clear();
+ if (TabList_Type.SelectedItems.Count == 0)
+ {
+ TabList_Type.Items[0].Selected = true;
+ }
+ TabList_Type.Focus();
+ var color = TabList_Type.SelectedStartBackColor;
+ TabList_Type.SelectedStartBackColor = Color.LightYellow;
+ using (var bg = new BackgroundWorker())
+ {
+ bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟
+ bg.RunWorkerCompleted += delegate {
+ this.Invoke(new Action(() =>
+ {
+ TabList_Type.SelectedStartBackColor = color;
+ }));
+ }; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块
+ bg.RunWorkerAsync();
+ }
+ }
+ }
+ }
+ private void IconViewEx1_MouseDoubleClick(object sender, MouseEventArgs e)
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ if (Soft_Config.OpenByClick) { return; }
+ RunByListSelected(false);
+ }
+ }
+ #endregion
+
+ #region 软件列表拖放
+ private void IconViewEx1_ItemDrag(object sender, ItemDragEventArgs e)
+ {
+ this.DoDragDrop(e.Item, DragDropEffects.Move);
+ }
+
+ private void IconViewEx1_DragEnter(object sender, DragEventArgs e)
+ {
+ LblDrag.Height = IconViewEx1.TileSize.Height;
+ LblDrag.Parent = IconViewEx1;
+ ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
+ if (lvi != null)
+ {
+ if (lvi.ListView != IconViewEx1)
+ {
+ e.Effect = DragDropEffects.None;
+ return;
+ }
+ }
+ e.Effect = DragDropEffects.Move;
+ }
+ private void IconViewEx1_DragDrop(object sender, DragEventArgs e)
+ {
+ LblDrag.Visible = false;
+ var filedrop = e.Data.GetData(DataFormats.FileDrop);
+ if (filedrop != null)
+ {
+ #region 拖放文件到软件列表
+ var ColumnId = 0;
+ if (TabList_Type.SelectedItems.Count > 0)
+ {
+ ColumnId = TabList_Type.SelectedItems[0].Tag.ToInt();
+ }
+ if (ColumnId == 0)
+ {
+ if (TabList_Column.SelectedItems.Count > 0)
+ {
+ ColumnId = TabList_Column.SelectedItems[0].Tag.ToInt();
+ }
+ }
+ if(ColumnId==0)
+ {
+ MessageBox.Show("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ var path = ((string[])filedrop)[0];
+ FrmAddSoft frm = new FrmAddSoft(path);
+ frm.ColumnId = ColumnId;
+ if (frm.ShowDialog() == DialogResult.OK)
+ {
+ LoadDb();
+ }
+ frm.Dispose();
+ return;
+ #endregion
+ }
+ Point pt;
+ pt = ((IconViewEx)(sender)).PointToClient(new Point(e.X, e.Y));
+ var to_item = IconViewEx1.GetItemAt(pt.X, pt.Y);
+ if (to_item == null) { return; }
+ //获得拖放中的项
+ ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
+ if (lvi == null) { return; }
+ if (lvi.ListView!=IconViewEx1) { return; }
+ if (lvi.Index == to_item.Index) { return; }
+ IconViewEx1.BeginUpdate();
+ IconViewEx1.View = View.List;
+ IconViewEx1.Items.RemoveAt(lvi.Index);
+ IconViewEx1.Items.Insert(to_item.Index, lvi);
+ IconViewEx1.View = View.Tile;
+ IconViewEx1.EndUpdate();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ ReSortSoftByList(db);
+ }
+ db.Free();
+ }
+ private void IconViewEx1_DragOver(object sender, DragEventArgs e)
+ {
+ ListViewItem item = null;
+ if (sender is IconViewEx)
+ {
+ var filedrop = e.Data.GetData(DataFormats.FileDrop);
+ if (filedrop != null) {
+ if (LblDrag.Visible) { LblDrag.Visible = false; }
+ return;
+ }
+ var lvi = e.Data.GetData(typeof(ListViewItem));
+ if(lvi==null)
+ {
+ if (LblDrag.Visible) { LblDrag.Visible = false; }
+ return;
+ }
+ else
+ {
+ var lvi2 = (ListViewItem)lvi;
+ if(lvi2.ListView!=IconViewEx1)
+ {
+ if (LblDrag.Visible){LblDrag.Visible = false;}
+ return;
+ }
+ }
+ var list = ((IconViewEx)(sender));
+ var pt = list.PointToClient(new Point(e.X, e.Y));
+ item = list.GetItemAt(pt.X, pt.Y);
+ }
+ else if (sender is TabList)
+ {
+ var list = ((TabList)(sender));
+ var pt = list.PointToClient(new Point(e.X, e.Y));
+ item = list.GetItemAt(pt.X, pt.Y);
+ }
+ if (item == null)
+ {
+ if (LblDrag.Visible)
+ {
+ LblDrag.Visible = false;
+ }
+ }
+ else
+ {
+ if (!LblDrag.Visible)
+ {
+ LblDrag.Visible = true;
+ }
+ LblDrag.Location = item.Position;
+ }
+ }
+ #endregion
+ #region 栏目拖放
+ private void TabList_Column_DragEnter(object sender, DragEventArgs e)
+ {
+ //判定是否现在拖动的数据是LISTVIEW项
+ ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
+ if (lvi != null)
+ {
+ LblDrag.Height = TabList_Column.TileSize.Height;
+ LblDrag.Parent = TabList_Column;
+ e.Effect = DragDropEffects.Move;
+ }
+ }
+ private void TabList_Column_DragDrop(object sender, DragEventArgs e)
+ {
+ LblDrag.Visible = false;
+ Point pt;
+ pt = ((TabList)(sender)).PointToClient(new Point(e.X, e.Y));
+ var item = TabList_Column.GetItemAt(pt.X, pt.Y);
+ if (item == null) { return; }
+ var columnid = item.Tag.ToInt();
+ //获得拖放中的项
+ var drag_item = e.Data.GetData(typeof(ListViewItem));
+ if (drag_item == null) { return; }
+ ListViewItem lvi = (ListViewItem)drag_item;
+ if (lvi.ListView == IconViewEx1)
+ {
+ #region 从软件列表里拖放
+ var info = (SoftInfo)lvi.Tag;
+ RyQuickSQL mySQL = new RyQuickSQL("Softs");
+ mySQL.AddField("ColumnId", columnid);
+ mySQL.AddField("editTime", DateTime.Now);
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db, columnid) + 1);
+ db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + info.Id, mySQL);
+ if (TabList_Column.SelectedItems.Count > 0)
+ {
+ if (TabList_Column.SelectedItems[0].Tag.ToInt() != columnid)
+ {
+ lvi.Remove();
+ }
+ else if (TabList_Type.SelectedItems.Count > 0 && TabList_Type.SelectedItems[0].Tag.ToInt() > 0)
+ {
+ lvi.Remove();
+ }
+ }
+ else
+ {
+ lvi.Remove();
+ }
+ ReSortSoftByList(db);
+ }
+ db.Free();
+ #endregion
+ }
+ else if (lvi.ListView == TabList_Column)
+ {
+ if (lvi.Index == item.Index) { return; }
+ TabList_Column.BeginUpdate();
+ TabList_Column.View = View.List;
+ TabList_Column.Items.RemoveAt(lvi.Index);
+ TabList_Column.Items.Insert(item.Index, lvi);
+ TabList_Column.View = View.Tile;
+ TabList_Column.EndUpdate();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ db.BeginTransaction();
+ for (int i = 0; i < TabList_Column.Items.Count; i++)
+ {
+ var id = TabList_Column.Items[i].Tag.ToInt();
+ RyQuickSQL mySQL = new RyQuickSQL("Columns");
+ mySQL.AddField("sortindex", i + 1);
+ db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + id, mySQL);
+ }
+ db.Commit();
+ }
+ db.Free();
+ }
+ }
+ private void TabList_Column_ItemDrag(object sender, ItemDragEventArgs e)
+ {
+ this.DoDragDrop(e.Item, DragDropEffects.Move);
+ }
+ #endregion
+ #region 分类拖放
+ private void TabList_Type_DragEnter(object sender, DragEventArgs e)
+ {
+ //判定是否现在拖动的数据是LISTVIEW项
+ ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
+ if (lvi != null)
+ {
+ LblDrag.Height = TabList_Type.TileSize.Height;
+ LblDrag.Parent = TabList_Type;
+ e.Effect = DragDropEffects.Move;
+ }
+ }
+
+ private void TabList_Type_DragDrop(object sender, DragEventArgs e)
+ {
+ LblDrag.Visible = false;
+ Point pt;
+ pt = ((TabList)(sender)).PointToClient(new Point(e.X, e.Y));
+ var item = TabList_Type.GetItemAt(pt.X, pt.Y);
+ if (item == null) { return; }
+ var columnid = item.Tag.ToInt();
+ if (columnid == 0)
+ {
+ if (TabList_Column.SelectedItems.Count>0)
+ {
+ columnid = TabList_Column.SelectedItems[0].Tag.ToInt();
+ }
+ }
+ //获得拖放中的项
+ var drag_item = e.Data.GetData(typeof(ListViewItem));
+ if (drag_item == null) { return; }
+ ListViewItem lvi = (ListViewItem)drag_item;
+ if (lvi.ListView == IconViewEx1)
+ {
+ #region 来源自软件列表
+ var info = (SoftInfo)lvi.Tag;
+ RyQuickSQL mySQL = new RyQuickSQL("Softs");
+ mySQL.AddField("ColumnId", columnid);
+ mySQL.AddField("editTime", DateTime.Now);
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db, columnid) + 1);
+ db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + info.Id, mySQL);
+ if (TabList_Type.SelectedItems.Count > 0)
+ {
+ if (TabList_Type.SelectedItems[0].Tag.ToInt() != columnid)
+ {
+ lvi.Remove();
+ }
+ }
+ else { lvi.Remove(); }
+ ReSortSoftByList(db);
+ }
+ db.Free();
+ #endregion
+ }
+ else if (lvi.ListView == TabList_Type)
+ {
+ if (lvi.Index == item.Index || item.Index==0 || lvi.Index==0) { return; }
+ TabList_Type.BeginUpdate();
+ TabList_Type.View = View.List;
+ TabList_Type.Items.RemoveAt(lvi.Index);
+ TabList_Type.Items.Insert(item.Index, lvi);
+ TabList_Type.View = View.Tile;
+ TabList_Type.EndUpdate();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ db.BeginTransaction();
+ for (int i = 1; i < TabList_Type.Items.Count; i++)
+ {
+ var id = TabList_Type.Items[i].Tag.ToInt();
+ RyQuickSQL mySQL = new RyQuickSQL("Columns");
+ mySQL.AddField("sortindex", i);
+ db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" +id, mySQL);
+ }
+ db.Commit();
+ }
+ db.Free();
+ }
+ }
+ private void TabList_Type_ItemDrag(object sender, ItemDragEventArgs e)
+ {
+ this.DoDragDrop(e.Item, DragDropEffects.Move);
+ }
+ #endregion
+ private void TabList_Type_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (IsProcUse) { return; }
+ LoadDb();
+ }
+ private void TabList_Column_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
+ {
+ if (IsProcUse) { return; }
+ if (TabList_Column.SelectedItems.Count > 0)
+ {
+ LoadTypeColumn(TabList_Column.SelectedItems[0].Tag.ToInt());
+ }
+ else
+ {
+ LoadTypeColumn(-1);
+ }
+ //LoadDb();
+ }
+ ///
+ /// 将当前列表中的软件在数据库中排序
+ ///
+ ///
+ private void ReSortSoftByList(IDbInterface db)
+ {
+ db.BeginTransaction();
+ for (int i = 0; i < IconViewEx1.Items.Count; i++)
+ {
+ var info = (SoftInfo)IconViewEx1.Items[i].Tag;
+ RyQuickSQL mySQL = new RyQuickSQL("Softs");
+ mySQL.AddField("sortindex", i + 1);
+ db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + info.Id, mySQL);
+ }
+ db.Commit();
+ }
+
+
+ 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 打开官网ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ ryCommon.RyFiles.OpenUrl(Config.Soft_Info.Soft_Url);
+ }
+
+ private void 捐助ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (Config.Soft_Info.DonateVisabled)
+ {
+ FrmAbout frm = new FrmAbout();
+ frm.ShowDialog();
+ frm.Dispose();
+ }
+ else
+ {
+ MessageBox.Show(Config.Soft_Info.AboutText.Replace("#softname#", Config.Soft_Info.Soft_Title).Replace("#ver#", "V" + RySoft.VersionStr), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+
+ private void 设置ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ hotkey.Enabled = false;
+ FrmSetting frm = new FrmSetting();
+ if(frm.ShowDialog()==DialogResult.OK)
+ {
+ VSoft.Config.Soft_Config.LoadSetting();
+ hotkey.UnHotKey();
+ HotkeyValue hot = new HotkeyValue(Soft_Config.ShowMainHotKey);
+ hotkey.RegHotKey(100,hot.Modifiers_Int, hot.KeyCode);
+ }
+ frm.Dispose();
+ hotkey.Enabled = true;
+ }
+ int hideCount = 0;
+ private void FrmVSoft_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (Soft_Info.ShowTray && Soft_Config.HideByCloseBtn && e.CloseReason == CloseReason.UserClosing)
+ {
+ e.Cancel = true;
+ this.Hide();
+ hideCount++;
+ if (hideCount <= 2)
+ {
+ notifyIcon1.ShowBalloonTip(3000, Soft_Info.Soft_Title, "软件已经最小化到此处,请右击托盘图标进行关闭。", ToolTipIcon.Info);
+ }
+ return;
+ }
+ }
+
+ private void TabList_Column_KeyDown(object sender, KeyEventArgs e)
+ {
+ if(e.KeyCode==Keys.Down)
+ {
+ if(IconViewEx1.Items.Count>0)
+ {
+ if(IconViewEx1.SelectedItems.Count==0)
+ {
+ IconViewEx1.Items[0].Selected = true ;
+ }
+ IconViewEx1.Focus();
+ }
+ }
+ else if (e.KeyCode == Keys.Up)
+ {
+ rySearch1.Focus();
+ }
+ }
+
+ private void TabList_Type_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Right)
+ {
+ if (IconViewEx1.Items.Count > 0)
+ {
+ if (IconViewEx1.SelectedItems.Count == 0)
+ {
+ IconViewEx1.Items[0].Selected = true;
+ }
+ IconViewEx1.Focus();
+ }
+ }
+ }
+
+ private void rySearch1_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Down)
+ {
+ if (TabList_Column.SelectedItems.Count == 0)
+ {
+ if (IconViewEx1.Items.Count > 0)
+ {
+ if (IconViewEx1.SelectedItems.Count == 0)
+ {
+ IconViewEx1.Items[0].Selected = true;
+ }
+ IconViewEx1.Focus();
+ return;
+ }
+ else
+ {
+ TabList_Column.Items[0].Selected = true;
+ }
+ }
+ TabList_Column.Focus();
+ var color = TabList_Column.SelectedStartBackColor;
+ TabList_Column.SelectedStartBackColor = Color.LightYellow;
+ using (var bg = new BackgroundWorker())
+ {
+ bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟
+ bg.RunWorkerCompleted += delegate {
+ this.Invoke(new Action(() =>
+ {
+ TabList_Column.SelectedStartBackColor = color;
+ }));
+ }; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块
+ bg.RunWorkerAsync();
+ }
+ }
+ }
+
+ private void IconViewEx1_MouseClick(object sender, MouseEventArgs e)
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ if (!Soft_Config.OpenByClick) { return; }
+ RunByListSelected(false);
+ }
+ }
+
+ private void 新增内置功能ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var ColumnId = 0;
+ if (TabList_Type.SelectedItems.Count > 0)
+ {
+ ColumnId = TabList_Type.SelectedItems[0].Tag.ToInt();
+ }
+ if (ColumnId == 0)
+ {
+ if (TabList_Column.SelectedItems.Count > 0)
+ {
+ ColumnId = TabList_Column.SelectedItems[0].Tag.ToInt();
+ }
+ }
+ if (ColumnId == 0)
+ {
+ MessageBox.Show("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ FrmInCMD frm = new FrmInCMD();
+ if(frm.ShowDialog()==DialogResult.OK)
+ {
+ var info = frm.SelectedInfo;
+ RyQuickSQL mySQL = new RyQuickSQL("Softs");
+ mySQL.AddField("Name", info.Name);
+ mySQL.AddField("SoftType",1);//0表示运行文件,1表示执行内置命令,2表示执行脚本
+ mySQL.AddField("Path",frm.SQLConnStr);
+ if (info.CmdId.Length > 0)
+ { mySQL.AddField("RunPram","cmdid="+ info.CmdId); }
+ else
+ {
+ mySQL.AddField("RunPram","id="+ info.Id);
+ }
+ mySQL.AddField("StartPath","");//起始路径
+ mySQL.AddField("IconPath", info.IconPath.Length>0? info.IconPath: info.Path);//图标路径
+ mySQL.AddField("SetJson","");//设置
+ mySQL.AddField("Des", info.Des);//备注
+ mySQL.AddField("Pinyin", ryCommon.PinYin.Convert(info.Name) + "\r\n" + ryCommon.PinYin.ConvertFirstPY(info.Name));
+ mySQL.AddField("editTime", DateTime.Now);
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(SQLConnStr) == 1)
+ {
+ mySQL.AddField("ClickCount", 0);//点击量
+ mySQL.AddField("ColumnId", ColumnId);
+ mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db, ColumnId) + 1);
+ mySQL.AddField("addTime", DateTime.Now);
+ db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
+ LoadDb();
+ }
+ db.Free();
+ }
+ frm.Dispose();
+ }
+
+ private void FrmVSoft_ResizeEnd(object sender, EventArgs e)
+ {
+ if (Width > 200 && Height > 200)
+ {
+ ryCommon.Ini ini = new Ini(VSoft.Config.Soft_Info.UserDataFolder + "\\Win.dat");
+ ini.WriteIni(VSoft.Config.Soft_Info.Soft_Id, "width", Width);
+ ini.WriteIni(VSoft.Config.Soft_Info.Soft_Id, "height", Height);
+ }
+ }
+
+ private void 添加栏目ToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ BtnAddColumn.PerformClick();
+ }
+
+ private void MenuTabType_Opening(object sender, CancelEventArgs e)
+ {
+ if(TabList_Type.SelectedItems.Count==0)
+ {
+ Menu修改分类.Enabled = false;
+ Menu删除分类.Enabled = false;
+ }
+ else
+ {
+ if (TabList_Type.SelectedItems[0].Index == 0)
+ {
+ Menu修改分类.Enabled = false;
+ Menu删除分类.Enabled = false;
+ }
+ else
+ {
+ Menu修改分类.Enabled = true;
+ Menu删除分类.Enabled = true;
+ }
+ }
+ }
+
+ private void MenuTabColumn_Opening(object sender, CancelEventArgs e)
+ {
+ if (TabList_Column.SelectedItems.Count == 0)
+ {
+ 修改栏目ToolStripMenuItem.Enabled = false;
+ 删除栏目ToolStripMenuItem.Enabled = false;
+ }
+ else
+ {
+ 修改栏目ToolStripMenuItem.Enabled = true;
+ 删除栏目ToolStripMenuItem.Enabled = true;
+ }
+ }
+
+ private void MenuList_Opening(object sender, CancelEventArgs e)
+ {
+ bool isSelected = IconViewEx1.SelectedItems.Count>0;
+ 以管理员方式启动ToolStripMenuItem.Enabled = isSelected;
+ 修改软件ToolStripMenuItem.Enabled = isSelected;
+ 从列表删除该软件ToolStripMenuItem.Enabled = isSelected;
+ 打开软件所在位置ToolStripMenuItem.Enabled = isSelected;
+ }
+
+ private void IconViewEx1_Resize(object sender, EventArgs e)
+ {
+ //LblEmpty.Left = (IconViewEx1.Width - LblEmpty.Width) / 2 + IconViewEx1.Left;
+ }
+
+ private void FrmVSoft_Resize(object sender, EventArgs e)
+ {
+ LblEmpty.Left =((panelEx1.Width - LblEmpty.Width) / 2);
+
+ }
+
+ private void panelEx1_Resize(object sender, EventArgs e)
+ {
+ // LblEmpty.Left = panelEx1.Left + ((panelEx1.Width - LblEmpty.Width) / 2);
+ }
+
+ private void LblSetting_Click(object sender, EventArgs e)
+ {
+ 设置ToolStripMenuItem.PerformClick();
+ }
+ }
+}
diff --git a/Source/VSoft_Dll/FrmVSoft.resx b/Source/VSoft_Dll/FrmVSoft.resx
index cd400f0..79d1654 100644
--- a/Source/VSoft_Dll/FrmVSoft.resx
+++ b/Source/VSoft_Dll/FrmVSoft.resx
@@ -1,308 +1,308 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 240, 17
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- xAAADsQBlSsOGwAAAYRJREFUOE+NkztPwlAUx8/gakIYWFwYHB1w8FUQCEpI1KiTYpSHQVQisviYjZsJ
- k4OJMT6ILhgTFheDiongc4AP4HdgcO/xnPZWaG81/JN/Qu49v1972wJ2iUQiQWqFiqL82yO2/w4Nuann
- DA3MrqMrWcDaSRB30uOGiPfcYrwVWuQr1HnIPxXFnsQxQvYDYeMd1Scf1Yt3hwGMz4UNEc9WBK4JsHfx
- AJ0r1wibBAoYMizwolpR9D6OYOPCh5f7AU0kcF0AuU8JhsybCVYfhvXeD9kIbGBYEwILrJYHZYEzVZRg
- WH21hRtniixwJQoSDGkSWGBu7cgrCUr57THpgTEIqReE5RpCkpqoIsSr2Dezy4KSwDVBko1fxVHpzFa4
- e+FGuzozAtdDC/VMLCyduR2G2DMqk3GG6wJrhRY91GZ+K/QL83nbYXHrTZ4VmDmGZC8bwu9bISC4a6mM
- /dO5/2EjhoQ/28apgs7oFfon5juDjdCgg2r9NzrEduchiN+O+WmbAvADQWOC4qBCLEQAAAAASUVORK5C
- YII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- xAAADsQBlSsOGwAAAIpJREFUOE/tktEGxDAQRef/v6NLly5dQpfQtSXkixJJHu661R36NC/70NJhiDnH
- mImRv0SMESEELJ8F73mG9x6vacKGTS6ErbVdOudUsLiwM4s55zX5fo6jChYXjvUTUkqoteIxDCpYXLgT
- BSZhKQX3vlfB4sIP4U4ci50Jb12ngsUPENcdnPsORL5USPZgYQ6cHAAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
- EwAACxMBAJqcGAAABvRJREFUeF7tnE2IHEUUxwcjIjkE1JMREnMWD7phd7uzfuBJEPSkd0+55BLQc9ds
- ooIXT+bix8kgbtSYgxA1hsWLImLAPYTEXBRUNGiMEojpnpTvdWpIT2/Nm+6e7uqerv+DH0tPVfVs7/t1
- ffTHDopEoPS9QTQ6FKrkbKjiC/TzCqFBp6CcpLk5G6h4GK7rYKD0HSaF1WL5iN4XqOR4ECU3cl8GFoAg
- ii8eWNePmXQWjyWld4ZRcox2kuR3ChYPOonfeVLpu0165TgQ6d3UlWzZdgQWF+oNvufcmjTbIzyq99KZ
- /6ttB6AHUG5XlX7QpHsyVpTeRZUubWsEegUNBz9yrk3abwdN9D62NQD9gyQ4adJ+K2hs2G+rCPpLEOll
- k/707D9jqwR6zZdp8pde0fdbCoEHrCm9ZxAMRwdthaD/UO5fxuTPbz4fhCo+ZykAXhBvkQDJH9sLgCdc
- 5iHgpqUAeADnnnsAayHwAwjgORDAcyCA50AAz4EAngMBPAcCeA4E8BwI4DkQwHM6IUCgkquBijcXjh68
- MNORHiD+On08acEiWNdPkLzX7Me0GECAOYMkeISO4a/tx7QYQIAagiR4mI5jISXopAC0raxjbhcYJs+b
- X3MiWAIaDv62H1936aQA9Ic8Ya/XPqvD0WHza26LVaUfpTr/5tt0GQhQkrwA+bduV9f1CtVbGAkgQEny
- AtBS8PRDSt9lNtNgCRZldQABSpIXgD+zSbCi9FoYJdfz7bsGBCiJTQCGJaDh4E7zcRp0XE91XQIIUJJp
- AhhO2SSg4/kvV68zQICSzBCAOTXY0DtMcRq0fHyaPo9z9ToBBChJAQH43saJvASrKnmWyjonAQQoSREB
- mFSC3L9pMxJ06h9vQYCSFBXA8N42CaLkBfq8Mz0BBChJXoAqEQ6TZ2hfnZAAApSkDgE4gij+xrZ/13gr
- wAdfjfS161pfvqr1+Z9vptvPvW6vmwUCNII7Ad7+bJQm3RY//X5zpgR8wYd+X1WW/F1ECDBB8wIM35+e
- +GwUkaAKdEwb5vDSgAATNCcAJ567+DLRhAQQQKR+AV58M9HfXSyX+GzULQEEEKlPAE785g/VE5+NOiWA
- ACLzC8CJGs/siwaL8sYncpu6JIAAIvMJUCXx3FOM2x9+t3kJIIBINQGkJZ0teDLIk0LbvlgCKeaVAAKI
- lBdgVsKywcmblvgsLJQU3HPY2hUBAohU6wFmTfa4d+Ck2tpOoykJIIBINQF4HLcFj+c8L7C1KcIsCars
- GwKIVJ8Efvrt7V5gnPg6Zu2SBBCgdqoLwMnmxHPXXEfiGd6PdBEJAtROdQGYuhLPFLlnUGRCmQcCiMwn
- QF1khxMpeAViay8BAUTaFYATykvFWcFDDV85tO1jFhBApD0BeDwvEjwnmGeogQAi7gXgJWSR28TzLinH
- QAARtwLwEo8TOytYkOw9g3mAACLuBCja5ddx1meBACJuBBhfM5CCJ4NVZvmzgAAibgSYdfbzMtDWrg4g
- gIgbAaZN+vjCT5WLO2WAACJuBJh2oafp5DMQQKTdIaDuCZ8NCCDiRgA+023R5Ng/BgKIuBFg2vMDPDew
- 1a8TCCDiRgDGFjwJtNWtEwgg4k6AaTd9bHXrBAKIuBNg2oMeTVz8yQIBRNwJwPcB+OkhnvnzpLDpxI+B
- ACLuBGgLCCACAdoCAjgCAohAgLaAAI6AACJuBeAHO11c/88CAUTcCMAPhGTvCLpaAjIQQKR5AXjNn3/h
- g7frfKlEAgKINCsAd/nTwsWdQAYCiDTfA0gvflR92aMMEECkeQF4vJ/2QCh/3vRQAAFE3EwCpYdC+SaR
- rU1dQAARNwIw0mvfTT4bCAFE3AlgezeAt5ueB0AAEXcCMNlVAT8O5mIpCAFE3ArA8PLP5dVACCDiXgDX
- QAARCNAWEMAREEAEArQFBHAEBBCBAG3RSQFoWwUq3uwT4XAUmcNLAwJMMCmADwEBJoAAbQEBWgoIkIEm
- SFdt42afCaPkH9vfwjUd6QFAW0AAz4EAngMBPAcCeA4E8BwI4DkQwHMggOdAAM+BAJ4DATyHn77501YA
- vOAy9QDxlqUAeEF8bhBEyWl7Ieg71PufpCFg9JKtEPSfYDg6OFhTeo+tEPSf5Vf1fbceT1LJF7YKoL/Q
- 0H8mTT7HgUjvt1UC/YVzbtJ/K8Io+dBWEfQP6vE/Mmm/HWuv6Xuo8FK+MugXgYrPryi9y6R9MsKjei/Z
- 8ZutIegFvwRH9QMm3fagsWE3Lg71kXiLc2vSLMeS0jup0VvbdwIWkITmd8c4pya9xSNU+nHaAeYFCwgt
- 827QcH58+YjeZ9JZMTb0jnBdBzR5GKZvtKj4An3BlfwXgtahnMQXeH0fRKNDPKk3GRRiMPgf0ROZOwlS
- 7NsAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAPFJREFUSEvt
- l7EKwjAQhrM4OCazz6m77g5Cii6+gTgquuhrJG7u6mBd6/0apIQTG0wolPzwQeld86ft5dqIIE3PfVXY
- JVES1Qtt7jiHmMuKL6VP44+hD8VcWnypwuxZU6DNzqXFl9TmyJoSsrAHlxZf2bhONo6qjhgvqh4NOERz
- wMU/uHGmADEvl4UazUrN7AB3MecGSonUdiNoFhcumBIyvlLjtw8umJiyPWN61F8LJhV4vfSps1s/kBoU
- tEBp0wzWKPUG/LWc3JIdYQm7xdxMHelcAcrGdbJxVLVm3NoPPRlPWFOQcgvDbtrex4GbNiGeSkzyFPRt
- h10AAAAASUVORK5CYII=
-
-
-
- 17, 17
-
-
- 346, 17
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAFAAAAA8CAYAAADxJz2MAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAu
- IwAALiMBeKU/dgAABJxJREFUeF7tmM1tGzEQhX3OIYDvObkFt6ACcnELbkFIBVEJcQtqQYc0ICBpwC24
- BeW9zcxiyB2Rsz/6WYMDfIA05JIzs49c7j6cTqfGDFxnI47rbMRxnY04rrMRx3U24rjORhzX2YjjOhtx
- XGcjzk3ty5+fe3AAr15wa+BmxqKBk+GdPi/Ie+ZmhmIdTfHyQj57wd4jNzEUaGMK5tEKWDIUiPueVzhy
- 8AK9V65uKFBNfRsv0Hvl6oYCldT37gV5z2hSj2ALPiSR7f+WZQ3jPsn451jfUxhB28Ip/P8oeS9mGPPN
- zJGzOvURJuUlQxZVIcb7dOojpQIuqkKM9enUR0oFJIuoEOPU1Lf1glsDNWUsokKMwX3WG590c3jBrYGQ
- OqQOkwzX8wmfP6Qsq1Uf0SQvpkJc+2nVRzTJi6gQ19XUt/OCWhO9IZnFVYhrSuojT15Qa6I3JpMll7OT
- rmHDNfw05Y1F3tjHC2pNJIakqoqRrlVD3/yDaU43lhfUmkgMSdX2rE41EUPfqvpoXlBrYmBIbrYK0aem
- vmfp6ga1JgaG5GarEH3Ofa4nB+nWmRfUmnANSU5WIdqKH0y//v71/duPv3twEo7gIGyFV7ARFv8qdHFD
- opNViLbi53opkBZvLKNPAjczJDtahfBVP9ejCHMKmCz/JQxjPoEd+ABHcc83JDtahfAVP9ezD4K0BeTv
- R6DLlUuXPsJlrktb+4dPATXDWJzXbiXKRrrMNyQdViF/Z205r+yHAJMCdhffwDA3VWcLR6jCF+kyMLTZ
- 2PfiLhsSD53n+Dtrs3Tqo2FiG/isAuJ6T7k5bkHgt8p+B90NLhn6cDy9JrYakHz1TAdC6qNhYhv45AIy
- ATNOjUER4bNxeO12ayEsHk8Meg2LHtuTUYCSCrnvhdRH46QmCAZlA1XV6P7HILUvldsfaYw/wuBGwWfj
- GOx7pq2IdC8bilBTYYkkeExqAx9Lr5TMr4VXeDOsQr0Ccr/T9ssWkIZClFR4jsFnMEw6p4B9IaxfXImx
- r+njFbC/HngFpOIZK+HNsOOR7kZJ97qhEFNU6AX+DOzd7/YSoEGqgrrg5L/27fYcthnfEgUMve1k1/Tv
- 82FDQcaocKC+KYZAB8XyfLnBnxQeJGoxbaFliH7cq0ddMzAUZIwKF3ntygMHVLAt4FG6Jga/LWCOXQGE
- fckL4NiDGy/+/hpxjzcUJqrC6mevqCFge3xgojz36X/3KCH9tM9YvD3RFjA5WYwyFKb2vksmv3IhOL6b
- MliiB2R7nOERxxaHbfxvoZLycyKXsR2nhFdAO+e8d3IUqPTOS1z1YWIWxyaqTzmrsBrsb5OJkCSM/yyw
- tnFujUefvIMHhLTbMXkzpm1TKFBJhWfVhwnHJu7R7VEgqiaSJIr/No6QmtAv2QMVaR5vKBSL6HH2yYsJ
- 7d7lwc1dValLVWECvTLw2y51kr8Pq5oGKpF2nTO8HNGXc3DMPmb3M/WlwIR2CffJS3xXM5lfizA4I9YM
- 13AFcBvYuYlek1sYEqeSdAsYXcDEvKQacVxnI47rbMRxnY04rrMRx3U24rjORhzX2YhyevgH9KfBo50b
- JekAAAAASUVORK5CYII=
-
-
-
- 482, 17
-
-
- 572, 17
-
-
- 690, 17
-
-
-
- AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAACMuAAAjLgAAAAAAAAAA
- AAAAAAAAAAAAAKizMQCVogAAoKscAJ2pFQCVowUAtrpDAqmwKAWmriMGpq4kB6auJAemriQHpq4kB6au
- JAemriQHpq4kB6auJAemriQHpq4kB6auJAemriQHpq4jBqiwKAW0uT4Ck6IBAJ2pFQCgrBwAh5QAAKey
- LgAAAAAAAAAAAAAAAACfriQAorApAJupFgCgrB0Tn6oYU56pFomeqRalnqkVsJ6pFbSeqRW0nqkVtJ6p
- FbSeqRW0nqkVtJ6pFbSeqRW0nqkVtJ6pFbSeqRW0nqkVtJ6pFbSeqRW0nqkVsZ6pFqaeqRaLn6oYVqCs
- HRaaqRUAoa8mAJ+tIwAAAAAAo7IwAKGwKQCVpQsAnqscQp2qGMScqRf7nKkW/5ypFv+cqRb/nKkW/5yp
- Fv+cqRb/nKkW/5ypFv+cqRb/nKkW/5ypFv+cqRb/nKkW/5ypFv+cqRb/nKkW/5ypFv+cqRb/nKkW/5yp
- Fv+cqRf8naoYyZ2rHEiKnQAAoK4lAKCxKwCGogAAmaoZAJysHkSbqhvjm6oa/5uqGv+bqhr/m6oa/5uq
- Gv+bqhr/m6oa/5uqGv+bqhr/m6oa/5uqGv+bqhr/m6oa/5uqGv+bqhr/m6oa/5uqGv+bqhr/m6oa/5uq
- Gv+bqhr/m6oa/5uqGv+bqhr/m6ob6JyrHk2YqRYA1s2DAJyuJACcriYZmqwfy5mrHf+Zqx3/masd/5mr
- Hf+Zqx3/masd/5mrHf+Zqx3/masd/5mrHf+Zqx3/masc/5mrHP+Zqxz/masc/5mrHf+Zqx3/masd/5mr
- Hf+Zqx3/masd/5mrHf+Zqx3/masd/5mrHf+Zqx3/mqwe0puuJB6brSMAl6sfAJmtJGGYrCD+mKwg/5is
- IP+YrCD/mKwg/5isIP+YrCD/mKwg/5isIP+XrB//lqsd/5isIv+dsCz/obM1/6GzNP+dsCv/mKwh/5ar
- Hf+XrB//mKwg/5esH/+YrCH/mKwg/5esH/+YrCD/mKwg/5isIP+YrCD/ma0jbJaqHAD///8Al64mm5et
- JP+XrST/l60k/5etJP+XrST/l60k/5etJP+WrSP/lawi/6G1Ov+9y3X/2eGu/+jt0P/v8t3/7/Lc/+fs
- zf/W36n/uslu/5+zNf+UqyD/p7lG/9bfqf/Z4a7/tcRj/5asIv+XrST/l60k/5etJP+XriamprtJA520
- OgiWryu4la4p/5WuKf+Vrin/la4p/5WuKf+Vrin/la0o/5mxMP+/zXz/7PDY//7+/f//////////////
- ///////////////////9/vz/6O3Q/8LQg//l68v////////////R3KP/lK0n/5WuKf+Vrin/la4p/5au
- K8KbszYNm7Q8DZWvMMOUry//lK8v/5SvL/+Ury//lK8v/5SuLf+ctT7/1N6r//39+///////////////
- ///7/Pj/9vnv//f57//8/fn//////////////////////////////////////8vYm/+Uri3/lK8v/5Sv
- L/+Ury//la8wzJqzOxOctkYPlLA2x5OwNP+TsDT/k7A0/5OwNP+TrzP/mLM+/9bhsv//////////////
- ///t8t//ydic/6/Fa/+lvVf/pr1Y/7HGbv/M2qL/8/bq///////////////////////b5Lz/nbdH/5Kv
- M/+TsDT/k7A0/5OwNP+TsDXQlrI6FZy4TBCTsT3HkrA6/5KxOv+SsTr/krA6/5KwOv/E1JT//v79////
- ///9/vz/0+Cy/5+6U/+RsDj/kK83/5GwOP+RsDj/j641/6K8WP/r8Nr//////////////////v7+/7/R
- jP+Qrzf/krE6/5KxOv+SsTr/krA6/5KxO9CUsj4Wm7lREJKyQseRskD/kbJA/5GyQP+QsT7/o75f//L2
- 6P///////////9Derv+VtEf/kLE+/5GyQP+RskD/kbJA/4+xPv+hvV3/5ezS////////////////////
- ////////6/Hd/526Vf+QsT//kbJA/5GyQP+RskD/kbJA0JOzQxaZulcQkbRIx4+zRv+Ps0b/j7NG/46y
- RP/H2aL////////////m7tb/mblW/46yRP+Ps0b/j7NG/4+zRv+OskT/oL5h/+Xt0///////////////
- ///g6s3/7vTk////////////vdKR/46yQ/+Ps0b/j7NG/4+zRv+Qs0bQkbRJFpi6WxCPtE3HjrRL/460
- S/+Ns0r/lLdU/+Xt1f///////v79/7nQkP+Mskj/jrRL/460S/+OtEv/jbNJ/5+/Zv/k7dT/////////
- ////////2ebD/5e5Wf/C15/////////////c58f/kLVP/46zS/+OtEv/jrRL/460S9CQtU4WlrtfEI22
- UceMtU//jLVP/4u0Tf+dwGn/9Pju///////y9+z/nL9o/4u0Tf+MtU//jLVP/4u0Tv+bvmb/5O3V////
- /////////////9jmxf+Wu17/irNL/6TEdP/4+vT//////+3z5P+XvF//i7RO/4y1T/+MtU//jLVP0I62
- UhaVvGIQjLdVx4q2Uv+LtlP/ibVQ/6XGef/5+/f//////+fw3P+Rul3/irZS/4u2U/+LtlP/ibVQ/8PZ
- pv/////////////////Y58b/lLxi/4m1Uf+KtVH/l71l/+/15///////9Pjv/5zBbf+JtVH/i7ZT/4u2
- U/+LtlPQjbdWFpS9ZRCKt1jHibdW/4m3Vv+HtlT/pch+//r8+P//////5e/Z/4+6Xv+Jtlb/ibdW/4m3
- Vv+HtlT/ttKX//3+/P//////1+fG/5O9Zf+ItlT/ibdW/4i2Vf+UvWb/7fTl///////1+fH/nMNy/4i2
- VP+Jt1b/ibdW/4m3VtCLuFkWkr5pEIm4XMeHt1r/h7da/4a3WP+dxXj/9vrz///////t9Ob/k75q/4e3
- Wf+Ht1r/h7da/4e3Wf+MumD/sdCU/7bUm/+RvWf/hrdY/4e4Wv+Ht1r/hrdY/5rDdP/0+PD///////D2
- 6/+WwG7/h7dY/4e3Wv+Ht1r/iLha0Iq5XRaRv2wQh7lfx4a4Xf+GuF3/hbhd/5C+bP/r8+T///////r8
- +f+my4n/hLdb/4a4Xf+GuF3/hrhd/4a4Xf+Et1v/hLdb/4W4Xf+GuF3/hrhd/4a4Xf+Et1v/sNGW//3+
- /f//////4u7Y/4u8Zf+GuF3/hrhd/4a4Xf+GuF7QiLphFo+/bxCGumPHhLlh/4S5Yf+EuWH/hbpi/9Dk
- wv///////////9HlxP+GumP/hLlh/4S5Yf+EuWH/hLlh/4S5Yf+EuWH/hLlh/4S5Yf+EuWH/hLlg/4m8
- aP/b6tH////////////E3rT/g7lg/4S5Yf+EuWH/hLlh/4W5YdCHumQWjsByEIS7ZseDumT/g7pk/4O6
- ZP+BuWL/pc2Q//r8+P//////+fz4/67Smv+BuWL/g7pk/4O6ZP+DumT/g7pk/4O6ZP+DumT/g7pk/4K6
- ZP+CumP/uNem//z9/P//////9fnz/5zIhP+BuWL/g7pk/4O6ZP+DumT/g7pk0IW7ZxaMwXQQg7xox4G7
- Z/+Bu2f/gbtn/4G7Zv+FvWv/0ufJ////////////8vjv/6vSmf+CvGj/f7tl/4G7Zv+Bu2f/gbtn/4G7
- Zv9/umX/g71q/7PWo//2+vT////////////H4bz/grxo/4G7Z/+Bu2f/gbtn/4G7Z/+BvGfQg71qFovD
- dxCBvWvHf71q/3+9av9/vWr/f71q/368aP+Tx4H/6PPk////////////+Pv2/8njv/+ay4n/hsBy/4G+
- bP+Bvmz/h8Fz/57Mjf/P5sb/+v35////////////4O/b/43Eev9+vGn/f71q/3+9av9/vWr/f71q/4C9
- atCCvm0WhsJ3Dn++bsV+vm3/fr5t/36+bf9+vm3/fr5t/3y9a/+bzY7/6fTm//////////////////b6
- 9f/j8d//1urQ/9fq0f/l8uH/+Pv3/////////////////+Lx3/+UyYb/fL1r/36+bf9+vm3/fr5t/36+
- bf9+vm3/f75uzoXBdRSFw3kKfb9xvHy/cP98v3D/fL9w/3y/cP98v3D/fL9w/3u+bv+Syoj/1evR//z9
- +/////////////////////////////////////////////r8+f/O58r/jceD/3u+bv98v3D/fL9w/3y/
- cP98v3D/fL9w/3y/cP99v3HGg8J4D5XNjQJ7wXSlesBz/3rAc/96wHP/esBz/3rAc/96wHP/esBz/3nA
- cf+Aw3n/ptWi/9Tr0//w+O//+/37//7+/v/+/v7/+v36/+737f/Q6c7/odOc/37Cdv95wHH/esBz/3rA
- c/96wHP/esBz/3rAc/96wHP/esBz/3vBdLCIxoAFdcByAHrCd3J4wXb/eMF2/3jBdv94wXb/eMF2/3jB
- dv94wXb/eMF2/3jBdf92wHT/e8N5/4vKif+b0pr/pdak/6XWpP+a0Zn/icmH/3rCeP92wHT/eMF1/3jB
- dv94wXb/eMF2/3jBdv94wXb/eMF2/3jBdv94wXb/esJ3fnG+bwB5w3oAesR7KXfDeOB2wnj/dsJ4/3bC
- eP92wnj/dsJ4/3bCeP92wnj/dsJ4/3bCeP92wnj/dcJ3/3TBdv90wXb/dMF2/3TBdv91wnf/dsJ4/3bC
- eP92wnj/dsJ4/3bCeP92wnj/dsJ4/3bCeP92wnj/dsJ4/3fDeOd5w3sxeMN5AIHJhgBbuWYAdsR8aXTE
- e/d0xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv/dMR7/3TE
- e/90xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv5dsR8c8vlvQB/x4MAfseBAHjG
- gAB5yIUEdMV/bnPFfuhyxX7/csV+/3LFfv9yxX7/csV+/3LFfv9yxX7/csV+/3LFfv9yxX7/csV+/3LF
- fv9yxX7/csV+/3LFfv9yxX7/csV+/3LFfv9yxX7/csV+/3LFfv9yxX7/c8V+63TFf3Z6yIUHeMaAAH3G
- gAAAAAAAdsV/AHfGgQDZ//wAdMaCNHLGgYpyxoG+ccaB1HHGgd1xxoHfccaB33HGgd9xxoHfccaB33HG
- gd9xxoHfccaB33HGgd9xxoHfccaB33HGgd9xxoHfccaB33HGgd1xxoHVcsaBwHLGgY10xoI5iNKaAXfG
- gQB3xoAAAAAAAAAAAAAAAAAAeciFAHzJhwBzxoEAYLtqAHjKigx2yYcZdMiGIXbIhyR2yYgkdsmIJHbJ
- iCR2yYgkdsmIJHbJiCR2yYgkdsmIJHbJiCR2yYgkdsmIJHbJiCR2yIckdMiGIXbJhxp4yooMV7VfAHPG
- gAB6yIYAeMeEAAAAAAAAAAAAwAAAA4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAM=
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 240, 17
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ xAAADsQBlSsOGwAAAYRJREFUOE+NkztPwlAUx8/gakIYWFwYHB1w8FUQCEpI1KiTYpSHQVQisviYjZsJ
+ k4OJMT6ILhgTFheDiongc4AP4HdgcO/xnPZWaG81/JN/Qu49v1972wJ2iUQiQWqFiqL82yO2/w4Nuann
+ DA3MrqMrWcDaSRB30uOGiPfcYrwVWuQr1HnIPxXFnsQxQvYDYeMd1Scf1Yt3hwGMz4UNEc9WBK4JsHfx
+ AJ0r1wibBAoYMizwolpR9D6OYOPCh5f7AU0kcF0AuU8JhsybCVYfhvXeD9kIbGBYEwILrJYHZYEzVZRg
+ WH21hRtniixwJQoSDGkSWGBu7cgrCUr57THpgTEIqReE5RpCkpqoIsSr2Dezy4KSwDVBko1fxVHpzFa4
+ e+FGuzozAtdDC/VMLCyduR2G2DMqk3GG6wJrhRY91GZ+K/QL83nbYXHrTZ4VmDmGZC8bwu9bISC4a6mM
+ /dO5/2EjhoQ/28apgs7oFfon5juDjdCgg2r9NzrEduchiN+O+WmbAvADQWOC4qBCLEQAAAAASUVORK5C
+ YII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ xAAADsQBlSsOGwAAAIpJREFUOE/tktEGxDAQRef/v6NLly5dQpfQtSXkixJJHu661R36NC/70NJhiDnH
+ mImRv0SMESEELJ8F73mG9x6vacKGTS6ErbVdOudUsLiwM4s55zX5fo6jChYXjvUTUkqoteIxDCpYXLgT
+ BSZhKQX3vlfB4sIP4U4ci50Jb12ngsUPENcdnPsORL5USPZgYQ6cHAAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAPFJREFUSEvt
+ l7EKwjAQhrM4OCazz6m77g5Cii6+gTgquuhrJG7u6mBd6/0apIQTG0wolPzwQeld86ft5dqIIE3PfVXY
+ JVES1Qtt7jiHmMuKL6VP44+hD8VcWnypwuxZU6DNzqXFl9TmyJoSsrAHlxZf2bhONo6qjhgvqh4NOERz
+ wMU/uHGmADEvl4UazUrN7AB3MecGSonUdiNoFhcumBIyvlLjtw8umJiyPWN61F8LJhV4vfSps1s/kBoU
+ tEBp0wzWKPUG/LWc3JIdYQm7xdxMHelcAcrGdbJxVLVm3NoPPRlPWFOQcgvDbtrex4GbNiGeSkzyFPRt
+ h10AAAAASUVORK5CYII=
+
+
+
+ 17, 17
+
+
+ 346, 17
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAFAAAAA8CAYAAADxJz2MAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAu
+ IwAALiMBeKU/dgAABJxJREFUeF7tmM1tGzEQhX3OIYDvObkFt6ACcnELbkFIBVEJcQtqQYc0ICBpwC24
+ BeW9zcxiyB2Rsz/6WYMDfIA05JIzs49c7j6cTqfGDFxnI47rbMRxnY04rrMRx3U24rjORhzX2YjjOhtx
+ XGcjzk3ty5+fe3AAr15wa+BmxqKBk+GdPi/Ie+ZmhmIdTfHyQj57wd4jNzEUaGMK5tEKWDIUiPueVzhy
+ 8AK9V65uKFBNfRsv0Hvl6oYCldT37gV5z2hSj2ALPiSR7f+WZQ3jPsn451jfUxhB28Ip/P8oeS9mGPPN
+ zJGzOvURJuUlQxZVIcb7dOojpQIuqkKM9enUR0oFJIuoEOPU1Lf1glsDNWUsokKMwX3WG590c3jBrYGQ
+ OqQOkwzX8wmfP6Qsq1Uf0SQvpkJc+2nVRzTJi6gQ19XUt/OCWhO9IZnFVYhrSuojT15Qa6I3JpMll7OT
+ rmHDNfw05Y1F3tjHC2pNJIakqoqRrlVD3/yDaU43lhfUmkgMSdX2rE41EUPfqvpoXlBrYmBIbrYK0aem
+ vmfp6ga1JgaG5GarEH3Ofa4nB+nWmRfUmnANSU5WIdqKH0y//v71/duPv3twEo7gIGyFV7ARFv8qdHFD
+ opNViLbi53opkBZvLKNPAjczJDtahfBVP9ejCHMKmCz/JQxjPoEd+ABHcc83JDtahfAVP9ezD4K0BeTv
+ R6DLlUuXPsJlrktb+4dPATXDWJzXbiXKRrrMNyQdViF/Z205r+yHAJMCdhffwDA3VWcLR6jCF+kyMLTZ
+ 2PfiLhsSD53n+Dtrs3Tqo2FiG/isAuJ6T7k5bkHgt8p+B90NLhn6cDy9JrYakHz1TAdC6qNhYhv45AIy
+ ATNOjUER4bNxeO12ayEsHk8Meg2LHtuTUYCSCrnvhdRH46QmCAZlA1XV6P7HILUvldsfaYw/wuBGwWfj
+ GOx7pq2IdC8bilBTYYkkeExqAx9Lr5TMr4VXeDOsQr0Ccr/T9ssWkIZClFR4jsFnMEw6p4B9IaxfXImx
+ r+njFbC/HngFpOIZK+HNsOOR7kZJ97qhEFNU6AX+DOzd7/YSoEGqgrrg5L/27fYcthnfEgUMve1k1/Tv
+ 82FDQcaocKC+KYZAB8XyfLnBnxQeJGoxbaFliH7cq0ddMzAUZIwKF3ntygMHVLAt4FG6Jga/LWCOXQGE
+ fckL4NiDGy/+/hpxjzcUJqrC6mevqCFge3xgojz36X/3KCH9tM9YvD3RFjA5WYwyFKb2vksmv3IhOL6b
+ MliiB2R7nOERxxaHbfxvoZLycyKXsR2nhFdAO+e8d3IUqPTOS1z1YWIWxyaqTzmrsBrsb5OJkCSM/yyw
+ tnFujUefvIMHhLTbMXkzpm1TKFBJhWfVhwnHJu7R7VEgqiaSJIr/No6QmtAv2QMVaR5vKBSL6HH2yYsJ
+ 7d7lwc1dValLVWECvTLw2y51kr8Pq5oGKpF2nTO8HNGXc3DMPmb3M/WlwIR2CffJS3xXM5lfizA4I9YM
+ 13AFcBvYuYlek1sYEqeSdAsYXcDEvKQacVxnI47rbMRxnY04rrMRx3U24rjORhzX2YhyevgH9KfBo50b
+ JekAAAAASUVORK5CYII=
+
+
+
+ 482, 17
+
+
+ 572, 17
+
+
+ 690, 17
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
+ EwAACxMBAJqcGAAABvRJREFUeF7tnE2IHEUUxwcjIjkE1JMREnMWD7phd7uzfuBJEPSkd0+55BLQc9ds
+ ooIXT+bix8kgbtSYgxA1hsWLImLAPYTEXBRUNGiMEojpnpTvdWpIT2/Nm+6e7uqerv+DH0tPVfVs7/t1
+ ffTHDopEoPS9QTQ6FKrkbKjiC/TzCqFBp6CcpLk5G6h4GK7rYKD0HSaF1WL5iN4XqOR4ECU3cl8GFoAg
+ ii8eWNePmXQWjyWld4ZRcox2kuR3ChYPOonfeVLpu0165TgQ6d3UlWzZdgQWF+oNvufcmjTbIzyq99KZ
+ /6ttB6AHUG5XlX7QpHsyVpTeRZUubWsEegUNBz9yrk3abwdN9D62NQD9gyQ4adJ+K2hs2G+rCPpLEOll
+ k/707D9jqwR6zZdp8pde0fdbCoEHrCm9ZxAMRwdthaD/UO5fxuTPbz4fhCo+ZykAXhBvkQDJH9sLgCdc
+ 5iHgpqUAeADnnnsAayHwAwjgORDAcyCA50AAz4EAngMBPAcCeA4E8BwI4DkQwHM6IUCgkquBijcXjh68
+ MNORHiD+On08acEiWNdPkLzX7Me0GECAOYMkeISO4a/tx7QYQIAagiR4mI5jISXopAC0raxjbhcYJs+b
+ X3MiWAIaDv62H1936aQA9Ic8Ya/XPqvD0WHza26LVaUfpTr/5tt0GQhQkrwA+bduV9f1CtVbGAkgQEny
+ AtBS8PRDSt9lNtNgCRZldQABSpIXgD+zSbCi9FoYJdfz7bsGBCiJTQCGJaDh4E7zcRp0XE91XQIIUJJp
+ AhhO2SSg4/kvV68zQICSzBCAOTXY0DtMcRq0fHyaPo9z9ToBBChJAQH43saJvASrKnmWyjonAQQoSREB
+ mFSC3L9pMxJ06h9vQYCSFBXA8N42CaLkBfq8Mz0BBChJXoAqEQ6TZ2hfnZAAApSkDgE4gij+xrZ/13gr
+ wAdfjfS161pfvqr1+Z9vptvPvW6vmwUCNII7Ad7+bJQm3RY//X5zpgR8wYd+X1WW/F1ECDBB8wIM35+e
+ +GwUkaAKdEwb5vDSgAATNCcAJ567+DLRhAQQQKR+AV58M9HfXSyX+GzULQEEEKlPAE785g/VE5+NOiWA
+ ACLzC8CJGs/siwaL8sYncpu6JIAAIvMJUCXx3FOM2x9+t3kJIIBINQGkJZ0teDLIk0LbvlgCKeaVAAKI
+ lBdgVsKywcmblvgsLJQU3HPY2hUBAohU6wFmTfa4d+Ck2tpOoykJIIBINQF4HLcFj+c8L7C1KcIsCars
+ GwKIVJ8Efvrt7V5gnPg6Zu2SBBCgdqoLwMnmxHPXXEfiGd6PdBEJAtROdQGYuhLPFLlnUGRCmQcCiMwn
+ QF1khxMpeAViay8BAUTaFYATykvFWcFDDV85tO1jFhBApD0BeDwvEjwnmGeogQAi7gXgJWSR28TzLinH
+ QAARtwLwEo8TOytYkOw9g3mAACLuBCja5ddx1meBACJuBBhfM5CCJ4NVZvmzgAAibgSYdfbzMtDWrg4g
+ gIgbAaZN+vjCT5WLO2WAACJuBJh2oafp5DMQQKTdIaDuCZ8NCCDiRgA+023R5Ng/BgKIuBFg2vMDPDew
+ 1a8TCCDiRgDGFjwJtNWtEwgg4k6AaTd9bHXrBAKIuBNg2oMeTVz8yQIBRNwJwPcB+OkhnvnzpLDpxI+B
+ ACLuBGgLCCACAdoCAjgCAohAgLaAAI6AACJuBeAHO11c/88CAUTcCMAPhGTvCLpaAjIQQKR5AXjNn3/h
+ g7frfKlEAgKINCsAd/nTwsWdQAYCiDTfA0gvflR92aMMEECkeQF4vJ/2QCh/3vRQAAFE3EwCpYdC+SaR
+ rU1dQAARNwIw0mvfTT4bCAFE3AlgezeAt5ueB0AAEXcCMNlVAT8O5mIpCAFE3ArA8PLP5dVACCDiXgDX
+ QAARCNAWEMAREEAEArQFBHAEBBCBAG3RSQFoWwUq3uwT4XAUmcNLAwJMMCmADwEBJoAAbQEBWgoIkIEm
+ SFdt42afCaPkH9vfwjUd6QFAW0AAz4EAngMBPAcCeA4E8BwI4DkQwHMggOdAAM+BAJ4DATyHn77501YA
+ vOAy9QDxlqUAeEF8bhBEyWl7Ieg71PufpCFg9JKtEPSfYDg6OFhTeo+tEPSf5Vf1fbceT1LJF7YKoL/Q
+ 0H8mTT7HgUjvt1UC/YVzbtJ/K8Io+dBWEfQP6vE/Mmm/HWuv6Xuo8FK+MugXgYrPryi9y6R9MsKjei/Z
+ 8ZutIegFvwRH9QMm3fagsWE3Lg71kXiLc2vSLMeS0jup0VvbdwIWkITmd8c4pya9xSNU+nHaAeYFCwgt
+ 827QcH58+YjeZ9JZMTb0jnBdBzR5GKZvtKj4An3BlfwXgtahnMQXeH0fRKNDPKk3GRRiMPgf0ROZOwlS
+ 7NsAAAAASUVORK5CYII=
+
+
+
+
+ AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAACMuAAAjLgAAAAAAAAAA
+ AAAAAAAAAAAAAKizMQCVogAAoKscAJ2pFQCVowUAtrpDAqmwKAWmriMGpq4kB6auJAemriQHpq4kB6au
+ JAemriQHpq4kB6auJAemriQHpq4kB6auJAemriQHpq4jBqiwKAW0uT4Ck6IBAJ2pFQCgrBwAh5QAAKey
+ LgAAAAAAAAAAAAAAAACfriQAorApAJupFgCgrB0Tn6oYU56pFomeqRalnqkVsJ6pFbSeqRW0nqkVtJ6p
+ FbSeqRW0nqkVtJ6pFbSeqRW0nqkVtJ6pFbSeqRW0nqkVtJ6pFbSeqRW0nqkVsZ6pFqaeqRaLn6oYVqCs
+ HRaaqRUAoa8mAJ+tIwAAAAAAo7IwAKGwKQCVpQsAnqscQp2qGMScqRf7nKkW/5ypFv+cqRb/nKkW/5yp
+ Fv+cqRb/nKkW/5ypFv+cqRb/nKkW/5ypFv+cqRb/nKkW/5ypFv+cqRb/nKkW/5ypFv+cqRb/nKkW/5yp
+ Fv+cqRf8naoYyZ2rHEiKnQAAoK4lAKCxKwCGogAAmaoZAJysHkSbqhvjm6oa/5uqGv+bqhr/m6oa/5uq
+ Gv+bqhr/m6oa/5uqGv+bqhr/m6oa/5uqGv+bqhr/m6oa/5uqGv+bqhr/m6oa/5uqGv+bqhr/m6oa/5uq
+ Gv+bqhr/m6oa/5uqGv+bqhr/m6ob6JyrHk2YqRYA1s2DAJyuJACcriYZmqwfy5mrHf+Zqx3/masd/5mr
+ Hf+Zqx3/masd/5mrHf+Zqx3/masd/5mrHf+Zqx3/masc/5mrHP+Zqxz/masc/5mrHf+Zqx3/masd/5mr
+ Hf+Zqx3/masd/5mrHf+Zqx3/masd/5mrHf+Zqx3/mqwe0puuJB6brSMAl6sfAJmtJGGYrCD+mKwg/5is
+ IP+YrCD/mKwg/5isIP+YrCD/mKwg/5isIP+XrB//lqsd/5isIv+dsCz/obM1/6GzNP+dsCv/mKwh/5ar
+ Hf+XrB//mKwg/5esH/+YrCH/mKwg/5esH/+YrCD/mKwg/5isIP+YrCD/ma0jbJaqHAD///8Al64mm5et
+ JP+XrST/l60k/5etJP+XrST/l60k/5etJP+WrSP/lawi/6G1Ov+9y3X/2eGu/+jt0P/v8t3/7/Lc/+fs
+ zf/W36n/uslu/5+zNf+UqyD/p7lG/9bfqf/Z4a7/tcRj/5asIv+XrST/l60k/5etJP+XriamprtJA520
+ OgiWryu4la4p/5WuKf+Vrin/la4p/5WuKf+Vrin/la0o/5mxMP+/zXz/7PDY//7+/f//////////////
+ ///////////////////9/vz/6O3Q/8LQg//l68v////////////R3KP/lK0n/5WuKf+Vrin/la4p/5au
+ K8KbszYNm7Q8DZWvMMOUry//lK8v/5SvL/+Ury//lK8v/5SuLf+ctT7/1N6r//39+///////////////
+ ///7/Pj/9vnv//f57//8/fn//////////////////////////////////////8vYm/+Uri3/lK8v/5Sv
+ L/+Ury//la8wzJqzOxOctkYPlLA2x5OwNP+TsDT/k7A0/5OwNP+TrzP/mLM+/9bhsv//////////////
+ ///t8t//ydic/6/Fa/+lvVf/pr1Y/7HGbv/M2qL/8/bq///////////////////////b5Lz/nbdH/5Kv
+ M/+TsDT/k7A0/5OwNP+TsDXQlrI6FZy4TBCTsT3HkrA6/5KxOv+SsTr/krA6/5KwOv/E1JT//v79////
+ ///9/vz/0+Cy/5+6U/+RsDj/kK83/5GwOP+RsDj/j641/6K8WP/r8Nr//////////////////v7+/7/R
+ jP+Qrzf/krE6/5KxOv+SsTr/krA6/5KxO9CUsj4Wm7lREJKyQseRskD/kbJA/5GyQP+QsT7/o75f//L2
+ 6P///////////9Derv+VtEf/kLE+/5GyQP+RskD/kbJA/4+xPv+hvV3/5ezS////////////////////
+ ////////6/Hd/526Vf+QsT//kbJA/5GyQP+RskD/kbJA0JOzQxaZulcQkbRIx4+zRv+Ps0b/j7NG/46y
+ RP/H2aL////////////m7tb/mblW/46yRP+Ps0b/j7NG/4+zRv+OskT/oL5h/+Xt0///////////////
+ ///g6s3/7vTk////////////vdKR/46yQ/+Ps0b/j7NG/4+zRv+Qs0bQkbRJFpi6WxCPtE3HjrRL/460
+ S/+Ns0r/lLdU/+Xt1f///////v79/7nQkP+Mskj/jrRL/460S/+OtEv/jbNJ/5+/Zv/k7dT/////////
+ ////////2ebD/5e5Wf/C15/////////////c58f/kLVP/46zS/+OtEv/jrRL/460S9CQtU4WlrtfEI22
+ UceMtU//jLVP/4u0Tf+dwGn/9Pju///////y9+z/nL9o/4u0Tf+MtU//jLVP/4u0Tv+bvmb/5O3V////
+ /////////////9jmxf+Wu17/irNL/6TEdP/4+vT//////+3z5P+XvF//i7RO/4y1T/+MtU//jLVP0I62
+ UhaVvGIQjLdVx4q2Uv+LtlP/ibVQ/6XGef/5+/f//////+fw3P+Rul3/irZS/4u2U/+LtlP/ibVQ/8PZ
+ pv/////////////////Y58b/lLxi/4m1Uf+KtVH/l71l/+/15///////9Pjv/5zBbf+JtVH/i7ZT/4u2
+ U/+LtlPQjbdWFpS9ZRCKt1jHibdW/4m3Vv+HtlT/pch+//r8+P//////5e/Z/4+6Xv+Jtlb/ibdW/4m3
+ Vv+HtlT/ttKX//3+/P//////1+fG/5O9Zf+ItlT/ibdW/4i2Vf+UvWb/7fTl///////1+fH/nMNy/4i2
+ VP+Jt1b/ibdW/4m3VtCLuFkWkr5pEIm4XMeHt1r/h7da/4a3WP+dxXj/9vrz///////t9Ob/k75q/4e3
+ Wf+Ht1r/h7da/4e3Wf+MumD/sdCU/7bUm/+RvWf/hrdY/4e4Wv+Ht1r/hrdY/5rDdP/0+PD///////D2
+ 6/+WwG7/h7dY/4e3Wv+Ht1r/iLha0Iq5XRaRv2wQh7lfx4a4Xf+GuF3/hbhd/5C+bP/r8+T///////r8
+ +f+my4n/hLdb/4a4Xf+GuF3/hrhd/4a4Xf+Et1v/hLdb/4W4Xf+GuF3/hrhd/4a4Xf+Et1v/sNGW//3+
+ /f//////4u7Y/4u8Zf+GuF3/hrhd/4a4Xf+GuF7QiLphFo+/bxCGumPHhLlh/4S5Yf+EuWH/hbpi/9Dk
+ wv///////////9HlxP+GumP/hLlh/4S5Yf+EuWH/hLlh/4S5Yf+EuWH/hLlh/4S5Yf+EuWH/hLlg/4m8
+ aP/b6tH////////////E3rT/g7lg/4S5Yf+EuWH/hLlh/4W5YdCHumQWjsByEIS7ZseDumT/g7pk/4O6
+ ZP+BuWL/pc2Q//r8+P//////+fz4/67Smv+BuWL/g7pk/4O6ZP+DumT/g7pk/4O6ZP+DumT/g7pk/4K6
+ ZP+CumP/uNem//z9/P//////9fnz/5zIhP+BuWL/g7pk/4O6ZP+DumT/g7pk0IW7ZxaMwXQQg7xox4G7
+ Z/+Bu2f/gbtn/4G7Zv+FvWv/0ufJ////////////8vjv/6vSmf+CvGj/f7tl/4G7Zv+Bu2f/gbtn/4G7
+ Zv9/umX/g71q/7PWo//2+vT////////////H4bz/grxo/4G7Z/+Bu2f/gbtn/4G7Z/+BvGfQg71qFovD
+ dxCBvWvHf71q/3+9av9/vWr/f71q/368aP+Tx4H/6PPk////////////+Pv2/8njv/+ay4n/hsBy/4G+
+ bP+Bvmz/h8Fz/57Mjf/P5sb/+v35////////////4O/b/43Eev9+vGn/f71q/3+9av9/vWr/f71q/4C9
+ atCCvm0WhsJ3Dn++bsV+vm3/fr5t/36+bf9+vm3/fr5t/3y9a/+bzY7/6fTm//////////////////b6
+ 9f/j8d//1urQ/9fq0f/l8uH/+Pv3/////////////////+Lx3/+UyYb/fL1r/36+bf9+vm3/fr5t/36+
+ bf9+vm3/f75uzoXBdRSFw3kKfb9xvHy/cP98v3D/fL9w/3y/cP98v3D/fL9w/3u+bv+Syoj/1evR//z9
+ +/////////////////////////////////////////////r8+f/O58r/jceD/3u+bv98v3D/fL9w/3y/
+ cP98v3D/fL9w/3y/cP99v3HGg8J4D5XNjQJ7wXSlesBz/3rAc/96wHP/esBz/3rAc/96wHP/esBz/3nA
+ cf+Aw3n/ptWi/9Tr0//w+O//+/37//7+/v/+/v7/+v36/+737f/Q6c7/odOc/37Cdv95wHH/esBz/3rA
+ c/96wHP/esBz/3rAc/96wHP/esBz/3vBdLCIxoAFdcByAHrCd3J4wXb/eMF2/3jBdv94wXb/eMF2/3jB
+ dv94wXb/eMF2/3jBdf92wHT/e8N5/4vKif+b0pr/pdak/6XWpP+a0Zn/icmH/3rCeP92wHT/eMF1/3jB
+ dv94wXb/eMF2/3jBdv94wXb/eMF2/3jBdv94wXb/esJ3fnG+bwB5w3oAesR7KXfDeOB2wnj/dsJ4/3bC
+ eP92wnj/dsJ4/3bCeP92wnj/dsJ4/3bCeP92wnj/dcJ3/3TBdv90wXb/dMF2/3TBdv91wnf/dsJ4/3bC
+ eP92wnj/dsJ4/3bCeP92wnj/dsJ4/3bCeP92wnj/dsJ4/3fDeOd5w3sxeMN5AIHJhgBbuWYAdsR8aXTE
+ e/d0xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv/dMR7/3TE
+ e/90xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv/dMR7/3TEe/90xHv5dsR8c8vlvQB/x4MAfseBAHjG
+ gAB5yIUEdMV/bnPFfuhyxX7/csV+/3LFfv9yxX7/csV+/3LFfv9yxX7/csV+/3LFfv9yxX7/csV+/3LF
+ fv9yxX7/csV+/3LFfv9yxX7/csV+/3LFfv9yxX7/csV+/3LFfv9yxX7/c8V+63TFf3Z6yIUHeMaAAH3G
+ gAAAAAAAdsV/AHfGgQDZ//wAdMaCNHLGgYpyxoG+ccaB1HHGgd1xxoHfccaB33HGgd9xxoHfccaB33HG
+ gd9xxoHfccaB33HGgd9xxoHfccaB33HGgd9xxoHfccaB33HGgd1xxoHVcsaBwHLGgY10xoI5iNKaAXfG
+ gQB3xoAAAAAAAAAAAAAAAAAAeciFAHzJhwBzxoEAYLtqAHjKigx2yYcZdMiGIXbIhyR2yYgkdsmIJHbJ
+ iCR2yYgkdsmIJHbJiCR2yYgkdsmIJHbJiCR2yYgkdsmIJHbJiCR2yIckdMiGIXbJhxp4yooMV7VfAHPG
+ gAB6yIYAeMeEAAAAAAAAAAAAwAAAA4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAM=
+
+
\ No newline at end of file
diff --git a/Source/VSoft_Dll/IconViewEx.cs b/Source/VSoft_Dll/IconViewEx.cs
index 346188b..c8eb023 100644
--- a/Source/VSoft_Dll/IconViewEx.cs
+++ b/Source/VSoft_Dll/IconViewEx.cs
@@ -124,9 +124,11 @@ namespace ryControls
private void DrawText(DrawListViewItemEventArgs e, Graphics g, Rectangle r, int paddingHeight)
{
TextFormatFlags flags = GetFormatFlags(HorizontalAlignment.Center);
- var r1 = new Rectangle(r.Location,r.Size);
- r1.Y=r.Y+ paddingHeight+2;//重绘图标时,文本右移
- r1.Height = r.Height - paddingHeight - 2;
+ var r1 = new Rectangle(r.Location, r.Size)
+ {
+ Y = r.Y + paddingHeight + 2,//重绘图标时,文本右移
+ Height = r.Height - paddingHeight - 2
+ };
TextRenderer.DrawText(
g,
e.Item.Text,
diff --git a/Source/VSoft_Dll/Prams/GlobalMouseHandler.cs b/Source/VSoft_Dll/Prams/GlobalMouseHandler.cs
new file mode 100644
index 0000000..c28d600
--- /dev/null
+++ b/Source/VSoft_Dll/Prams/GlobalMouseHandler.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace VSoft.Prams
+{
+ public delegate void MouseMovedEvent();
+ public delegate void MouseMDownEvent();
+ public delegate void MouseMUpEvent();
+ public class GlobalMouseHandler : IMessageFilter
+ {
+ private const int WM_MOUSEMOVE = 0x0200;
+ private const int WM_MBUTTONDOWN = 0x0207;
+ private const int WM_MBUTTONUP = 0x0208;
+ public event MouseMovedEvent TheMouseMoved;
+ public event MouseMDownEvent TheMouseMDown;
+ public event MouseMUpEvent TheMouseMUp;
+ #region IMessageFilter Members
+ public bool PreFilterMessage(ref Message m)
+ {
+ if (m.Msg == WM_MOUSEMOVE)
+ if (TheMouseMoved != null)
+ TheMouseMoved();
+ if (m.Msg == WM_MBUTTONDOWN)
+ if (TheMouseMDown != null)
+ TheMouseMDown();
+ if (m.Msg == WM_MBUTTONUP)
+ if (TheMouseMUp != null)
+ TheMouseMUp();
+ // Always allow message to continue to the next filter control
+ return false;
+ }
+ #endregion
+ }
+}
diff --git a/Source/VSoft_Dll/Prams/MouseHook.cs b/Source/VSoft_Dll/Prams/MouseHook.cs
new file mode 100644
index 0000000..8c6b7c1
--- /dev/null
+++ b/Source/VSoft_Dll/Prams/MouseHook.cs
@@ -0,0 +1,207 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Windows.Forms;
+
+namespace VSoft.Prams
+{
+ ///
+ /// 鼠标全局钩子
+ ///
+ public class MouseHook
+ {
+ private const int WM_MOUSEMOVE = 0x200;
+ private const int WM_LBUTTONDOWN = 0x201;
+ private const int WM_RBUTTONDOWN = 0x204;
+ private const int WM_MBUTTONDOWN = 0x207;
+ private const int WM_LBUTTONUP = 0x202;
+ private const int WM_RBUTTONUP = 0x205;
+ private const int WM_MBUTTONUP = 0x208;
+ private const int WM_XBUTTON1 = 0x20B;
+ private const int WM_XBUTTON2 = 0x20C;
+ private const int WM_LBUTTONDBLCLK = 0x203;
+ private const int WM_RBUTTONDBLCLK = 0x206;
+ private const int WM_MBUTTONDBLCLK = 0x209;
+
+ ///
+ /// 点
+ ///
+ [StructLayout(LayoutKind.Sequential)]
+ public class POINT
+ {
+ public int x;
+ public int y;
+ }
+
+ ///
+ /// 钩子结构体
+ ///
+ [StructLayout(LayoutKind.Sequential)]
+ public class MouseHookStruct
+ {
+ public POINT pt;
+ public int hWnd;
+ public int wHitTestCode;
+ public int dwExtraInfo;
+ }
+
+ public const int WH_MOUSE_LL = 14; // mouse hook constant
+
+ // 装置钩子的函数
+ [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hInstance, int threadId);
+
+ // 卸下钩子的函数
+ [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern bool UnhookWindowsHookEx(int idHook);
+
+ // 下一个钩挂的函数
+ [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int CallNextHookEx(int idHook, int nCode, Int32 wParam, IntPtr lParam);
+ [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ private static extern IntPtr GetModuleHandle(string lpModuleName);
+
+ // 全局的鼠标事件
+ public event MouseEventHandler OnMouseActivity;
+
+ // 钩子回调函数
+ public delegate int HookProc(int nCode, Int32 wParam, IntPtr lParam);
+
+ // 声明鼠标钩子事件类型
+ private HookProc _mouseHookProcedure;
+ private static int _hMouseHook = 0; // 鼠标钩子句柄
+
+ ///
+ /// 构造函数
+ ///
+ public MouseHook()
+ {
+
+ }
+
+ ///
+ /// 析构函数
+ ///
+ ~MouseHook()
+ {
+ Stop();
+ }
+
+ ///
+ /// 启动全局钩子
+ ///
+ public void Start()
+ {
+ // 安装鼠标钩子
+ if (_hMouseHook == 0)
+ {
+ // 生成一个HookProc的实例.
+ _mouseHookProcedure = new HookProc(MouseHookProc);
+
+ _hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, _mouseHookProcedure, IntPtr.Zero, 0);
+
+ //假设装置失败停止钩子
+ if (_hMouseHook == 0)
+ {
+ Stop();
+ throw new Exception("SetWindowsHookEx failed.");
+ }
+ }
+ }
+
+ ///
+ /// 停止全局钩子
+ ///
+ public void Stop()
+ {
+ bool retMouse = true;
+
+ if (_hMouseHook != 0)
+ {
+ retMouse = UnhookWindowsHookEx(_hMouseHook);
+ _hMouseHook = 0;
+ }
+
+ // 假设卸下钩子失败
+ //if (!(retMouse))
+ // throw new Exception("UnhookWindowsHookEx failed.");
+ }
+
+ ///
+ /// 鼠标钩子回调函数
+ ///
+ private int MouseHookProc(int nCode, Int32 wParam, IntPtr lParam)
+ {
+ // 假设正常执行而且用户要监听鼠标的消息
+ if ((nCode >= 0) && (OnMouseActivity != null))
+ {
+ MouseButtons button = MouseButtons.None;
+ int clickCount = 0;
+
+ switch (wParam)
+ {
+ case WM_LBUTTONDOWN:
+ button = MouseButtons.Left;
+ clickCount = 1;
+ break;
+ case WM_LBUTTONUP:
+ button = MouseButtons.Left;
+ clickCount = 1;
+ break;
+ case WM_LBUTTONDBLCLK:
+ button = MouseButtons.Left;
+ clickCount = 2;
+ break;
+ case WM_RBUTTONDOWN:
+ button = MouseButtons.Right;
+ clickCount = 1;
+ break;
+ case WM_RBUTTONUP:
+ button = MouseButtons.Right;
+ clickCount = 1;
+ break;
+ case WM_RBUTTONDBLCLK:
+ button = MouseButtons.Right;
+ clickCount = 2;
+ break;
+ case WM_MBUTTONDOWN:
+ button = MouseButtons.Middle;
+ clickCount = 1;
+ break;
+ //case WM_MBUTTONUP:
+ // button = MouseButtons.Middle;
+ // clickCount = 1;
+ // break;
+ case WM_XBUTTON1:
+ button = MouseButtons.XButton1;
+ clickCount = 1;
+ break;
+ case WM_XBUTTON2:
+ button = MouseButtons.XButton2;
+ clickCount = 1;
+ break;
+ default:
+ break;
+ }
+
+ // 从回调函数中得到鼠标的信息
+ MouseHookStruct MyMouseHookStruct = (MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseHookStruct));
+ MouseEventArgs e = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.x, MyMouseHookStruct.pt.y, 0);
+
+ // 假设想要限制鼠标在屏幕中的移动区域能够在此处设置
+ // 后期须要考虑实际的x、y的容差
+ if (!Screen.PrimaryScreen.Bounds.Contains(e.X, e.Y))
+ {
+ //return 1;
+ }
+
+ OnMouseActivity(this, e);
+ }
+
+ // 启动下一次钩子
+ return CallNextHookEx(_hMouseHook, nCode, wParam, lParam);
+ }
+ }
+}
diff --git a/Source/VSoft_Dll/Prams/Run.cs b/Source/VSoft_Dll/Prams/Run.cs
index ac5aa47..22fd4a7 100644
--- a/Source/VSoft_Dll/Prams/Run.cs
+++ b/Source/VSoft_Dll/Prams/Run.cs
@@ -1,139 +1,139 @@
-using ryCommon;
-using ryCommonDb;
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Linq;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Windows.Forms;
-
-namespace VSoft.Prams
-{
- public static class Run
- {
- [DllImportAttribute("shell32.dll")]
- private static extern int SHEmptyRecycleBin(IntPtr handle, string root, int falgs);
- const int SHERB_NOCONFIRMATION = 0x000001;
- const int SHERB_NOPROGRESSUI = 0x000002;
- const int SHERB_NOSOUND = 0x000004;
- ///
- /// 打开软件
- ///
- ///
- ///
- ///
- public static int Open(SoftInfo info, bool RunasAdmin)
- {
- var path = info.TruePath;
- var parm = info.RunPram;
- var StartPath = info.StartPath;
- var SetJson = info.SetJson;
- if (info.SoftType == 1)
- {
- #region 重新载入数据
- DataProvider mydb = new DataProvider();
- IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
- if (db.ConnDb(info.Path) == 1)
- {
- RyQuickSQL mySQL = new RyQuickSQL("Softs");
- string where = "";
- if(parm.StartsWith("cmdid=",StringComparison.OrdinalIgnoreCase))
- {
- where = "CmdId=@CmdId";
- mySQL.AddField("CmdId", parm.Substring(6));
- }
- else if (parm.StartsWith("id=", StringComparison.OrdinalIgnoreCase))
- {
- where = "id=@id";
- mySQL.AddField("id", parm.Substring(3).ToInt());
- }
- if (where.Length > 0)
- {
- DataSet ds = db.ReadData("select * from Softs where " + where, mySQL);
- if (mydb.HaveData(ds))
- {
- DataRow row = ds.Tables[0].Rows[0];
- path = RyFiles.GetRealPath(row["Path"].ToString());
- parm = row["RunPram"].ToString();
- SetJson = row["SetJson"].ToString();
- StartPath = row["StartPath"].ToString();
- }
- }
- db.Free();
- }
- #endregion
- }
- if (StartPath.Length == 0)
- {
+using ryCommon;
+using ryCommonDb;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Windows.Forms;
+
+namespace VSoft.Prams
+{
+ public static class Run
+ {
+ [DllImportAttribute("shell32.dll")]
+ private static extern int SHEmptyRecycleBin(IntPtr handle, string root, int falgs);
+ const int SHERB_NOCONFIRMATION = 0x000001;
+ const int SHERB_NOPROGRESSUI = 0x000002;
+ const int SHERB_NOSOUND = 0x000004;
+ ///
+ /// 打开软件
+ ///
+ ///
+ ///
+ ///
+ public static int Open(SoftInfo info, bool RunasAdmin)
+ {
+ var path = info.TruePath;
+ var parm = info.RunPram;
+ var StartPath = info.StartPath;
+ var SetJson = info.SetJson;
+ if (info.SoftType == 1)
+ {
+ #region 重新载入数据
+ DataProvider mydb = new DataProvider();
+ IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+ if (db.ConnDb(info.Path) == 1)
+ {
+ RyQuickSQL mySQL = new RyQuickSQL("Softs");
+ string where = "";
+ if(parm.StartsWith("cmdid=",StringComparison.OrdinalIgnoreCase))
+ {
+ where = "CmdId=@CmdId";
+ mySQL.AddField("CmdId", parm.Substring(6));
+ }
+ else if (parm.StartsWith("id=", StringComparison.OrdinalIgnoreCase))
+ {
+ where = "id=@id";
+ mySQL.AddField("id", parm.Substring(3).ToInt());
+ }
+ if (where.Length > 0)
+ {
+ DataSet ds = db.ReadData("select * from Softs where " + where, mySQL);
+ if (mydb.HaveData(ds))
+ {
+ DataRow row = ds.Tables[0].Rows[0];
+ path = RyFiles.GetRealPath(row["Path"].ToString());
+ parm = row["RunPram"].ToString();
+ SetJson = row["SetJson"].ToString();
+ StartPath = row["StartPath"].ToString();
+ }
+ }
+ db.Free();
+ }
+ #endregion
+ }
+ if (StartPath.Length == 0)
+ {
if (System.IO.File.Exists(path) || System.IO.Directory.Exists(path))
{
StartPath = System.IO.Path.GetDirectoryName(path.TrimEnd('\\'));
- }
+ }
else
{
StartPath = null;
- }
- }
- if (path.StartsWith("@", StringComparison.OrdinalIgnoreCase)) //如果路径是@开头,则表示这个是一个命令
- {
- switch(path.Substring(1).ToLower())
- {
- case "emptyrecyclebin"://清空回收站
-
- switch (MessageBox.Show("是否确认要清空回收站?\r\n\r\n该操作不可逆!!!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2))
- {
- case DialogResult.Yes:
- SHEmptyRecycleBin(IntPtr.Zero, "", SHERB_NOCONFIRMATION + SHERB_NOPROGRESSUI + SHERB_NOSOUND);
- return 1;
- }
- break;
- }
- return 0;
- }
- if (RunasAdmin)
- {
- return RunProcessAsAdmin(path, parm, StartPath);
- }
- else
- {
- Json json = new Json(SetJson);
- if (json.GetJsonValue("RunAsAdmin", false))
- {
- return RunProcessAsAdmin(path, parm, StartPath);
- }
- else
- {
- return RyFiles.RunFile(path, parm, StartPath);
- }
- }
- }
- ///
- /// 以管理员方式打开
- ///
- ///
- ///
- ///
- ///
- public static int RunProcessAsAdmin(string exeName, string parameters, string CurrentDirectory)
- {
- try
- {
- System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
- startInfo.UseShellExecute = true;
- startInfo.WorkingDirectory = CurrentDirectory;
- startInfo.FileName = exeName;
- startInfo.Verb = "runas";
- //MLHIDE
- startInfo.Arguments = parameters;
- startInfo.ErrorDialog = true;
- var process = System.Diagnostics.Process.Start(startInfo);
- return 37;
- }
- catch
- {
- return -1;
- }
- }
- }
-}
+ }
+ }
+ if (path.StartsWith("@", StringComparison.OrdinalIgnoreCase)) //如果路径是@开头,则表示这个是一个命令
+ {
+ switch(path.Substring(1).ToLower())
+ {
+ case "emptyrecyclebin"://清空回收站
+
+ switch (MessageBox.Show("是否确认要清空回收站?\r\n\r\n该操作不可逆!!!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2))
+ {
+ case DialogResult.Yes:
+ SHEmptyRecycleBin(IntPtr.Zero, "", SHERB_NOCONFIRMATION + SHERB_NOPROGRESSUI + SHERB_NOSOUND);
+ return 1;
+ }
+ break;
+ }
+ return 0;
+ }
+ if (RunasAdmin)
+ {
+ return RunProcessAsAdmin(path, parm, StartPath);
+ }
+ else
+ {
+ Json json = new Json(SetJson);
+ if (json.GetJsonValue("RunAsAdmin", false))
+ {
+ return RunProcessAsAdmin(path, parm, StartPath);
+ }
+ else
+ {
+ return RyFiles.RunFile(path, parm, StartPath);
+ }
+ }
+ }
+ ///
+ /// 以管理员方式打开
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static int RunProcessAsAdmin(string exeName, string parameters, string CurrentDirectory)
+ {
+ try
+ {
+ System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.UseShellExecute = true;
+ startInfo.WorkingDirectory = CurrentDirectory;
+ startInfo.FileName = exeName;
+ startInfo.Verb = "runas";
+ //MLHIDE
+ startInfo.Arguments = parameters;
+ startInfo.ErrorDialog = true;
+ var process = System.Diagnostics.Process.Start(startInfo);
+ return 37;
+ }
+ catch
+ {
+ return -1;
+ }
+ }
+ }
+}
diff --git a/Source/VSoft_Dll/Prams/SoftInfo.cs b/Source/VSoft_Dll/Prams/SoftInfo.cs
index dd7f49b..50a2a34 100644
--- a/Source/VSoft_Dll/Prams/SoftInfo.cs
+++ b/Source/VSoft_Dll/Prams/SoftInfo.cs
@@ -4,13 +4,13 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
-
+using ryControls.Interface;
namespace VSoft.Prams
{
///
/// 软件信息
///
- public class SoftInfo
+ public class SoftInfo: IItemInfo
{
///
/// id
diff --git a/Source/VSoft_Dll/Properties/AssemblyInfo.cs b/Source/VSoft_Dll/Properties/AssemblyInfo.cs
index 4b1330c..595f001 100644
--- a/Source/VSoft_Dll/Properties/AssemblyInfo.cs
+++ b/Source/VSoft_Dll/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.2012.0801")]
-[assembly: AssemblyFileVersion("1.0.2012.0801")]
\ No newline at end of file
+[assembly: AssemblyVersion("1.0.2012.2701")]
+[assembly: AssemblyFileVersion("1.0.2012.2701")]
\ No newline at end of file
diff --git a/Source/VSoft_Dll/TabList.cs b/Source/VSoft_Dll/TabList.cs
index 06169ca..1f26748 100644
--- a/Source/VSoft_Dll/TabList.cs
+++ b/Source/VSoft_Dll/TabList.cs
@@ -1,5 +1,6 @@
using System.ComponentModel;
using System.Drawing;
+using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace ryControls
@@ -92,19 +93,73 @@ namespace ryControls
this.DrawText(e, g, r);
}
}
- private Color _SelectedBackColor = Color.LightSkyBlue;
- [Description("选择项的背景颜色")]
- public Color SelectedBackColor
- {
- get
- {
- return _SelectedBackColor;
- }
- set
- {
- _SelectedBackColor = value;
- this.Refresh();
- }
+ private Color _SelectedStartBackColor = Color.LightSkyBlue;
+ ///
+ /// 选择项的背景开始颜色
+ ///
+ [Description("选择项的背景开始颜色")]
+ public Color SelectedStartBackColor
+ {
+ get
+ {
+ return _SelectedStartBackColor;
+ }
+ set
+ {
+ _SelectedStartBackColor = value;
+ this.Refresh();
+ }
+ }
+ private Color _SelectedEndBackColor = Color.FromArgb(255, 236, 181);
+ ///
+ /// 选择项的背景结束颜色
+ ///
+ [Description("选择项的背景结束颜色")]
+ public Color SelectedEndBackColor
+ {
+ get
+ {
+ return _SelectedEndBackColor;
+ }
+ set
+ {
+ _SelectedEndBackColor = value;
+ this.Refresh();
+ }
+ }
+ private Color _SelectedBorderColor = Color.FromArgb(229, 195, 101);
+ ///
+ /// 选择项的边框颜色
+ ///
+ [Description("选择项的边框颜色")]
+ public Color SelectedBorderColor
+ {
+ get
+ {
+ return _SelectedBorderColor;
+ }
+ set
+ {
+ _SelectedBorderColor = value;
+ this.Refresh();
+ }
+ }
+ private Color _SelectedForeColor = Color.Black;
+ ///
+ /// 选择项的字体颜色
+ ///
+ [Description("选择项的字体颜色")]
+ public Color SelectedForeColor
+ {
+ get
+ {
+ return _SelectedForeColor;
+ }
+ set
+ {
+ _SelectedForeColor = value;
+ this.Refresh();
+ }
}
///
/// 重绘选中时背景
@@ -112,11 +167,25 @@ namespace ryControls
private void DrawSelectedBackground(DrawListViewItemEventArgs e, Graphics g, Rectangle r)
{
if (e.Item.Selected)
- {
- using (SolidBrush brush = new SolidBrush(_SelectedBackColor))
- {
- g.FillRectangle(brush, r);
- }
+ {
+ //渐变画刷
+ LinearGradientBrush brush = new LinearGradientBrush(e.Bounds, _SelectedStartBackColor,
+ _SelectedEndBackColor, LinearGradientMode.Vertical);
+ //填充区域
+ //Rectangle borderRect = new Rectangle(r, e.Bounds.Y, e.Bounds.Width - 5, e.Bounds.Height - 2);
+ e.Graphics.FillRectangle(brush, r);
+ brush.Dispose();
+ ////画边框
+ Pen pen = new Pen(_SelectedBorderColor);
+ Rectangle borderRect = r;
+ borderRect.Width--;
+ borderRect.Height--;
+ e.Graphics.DrawRectangle(pen, borderRect);
+ pen.Dispose();
+ //using (SolidBrush brush = new SolidBrush(_SelectedBackColor))
+ //{
+ // g.FillRectangle(brush, r);
+ //}
}
}
@@ -156,7 +225,7 @@ namespace ryControls
e.Item.Text,
e.Item.Font,
r,
- e.Item.ForeColor,
+ e.Item.Selected?SelectedForeColor: e.Item.ForeColor,
flags);
}
diff --git a/Source/VSoft_Dll/VSoft.csproj b/Source/VSoft_Dll/VSoft.csproj
index 44e3651..b59eaa6 100644
--- a/Source/VSoft_Dll/VSoft.csproj
+++ b/Source/VSoft_Dll/VSoft.csproj
@@ -1,177 +1,173 @@
-
-
-
-
- Debug
- AnyCPU
- {13C45E68-2DA3-4C9E-9BCA-E63D0FA9A760}
- Library
- Properties
- VSoft
- VSoft
- v4.0
- 512
- true
-
-
- true
- full
- false
- ..\..\Bin\Debug\VSoft\
- DEBUG;TRACE
- prompt
- 4
- x86
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
- False
- ..\..\Bin\Debug\VSoft\MyDb.dll
-
-
- ..\..\Bin\Debug\VSoft\MyDb_SQLite.dll
-
-
- False
- ..\..\..\..\..\C#\私人代码\QO流程管理\Bin\Debug\RySpider\Newtonsoft.Json.dll
-
-
- ..\..\Bin\Debug\VSoft\ryControls.dll
-
-
- ..\..\..\..\..\公共代码\C#\公用控件组\Bin\Debug\CommonControls\.NET4\ryUpdate.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Form
-
-
- frmSetting.cs
-
-
-
- Form
-
-
- FrmAbout.cs
-
-
- Form
-
-
- FrmAddType.cs
-
-
- Form
-
-
- FrmAddColumn.cs
-
-
- Form
-
-
- FrmAddSoft.cs
-
-
- Form
-
-
- FrmInCMD.cs
-
-
- Form
-
-
- FrmVSoft.cs
-
-
-
-
-
-
- Component
-
-
- Component
-
-
-
-
-
-
-
-
-
-
-
- True
- True
- Resources.resx
-
-
-
-
- frmSetting.cs
-
-
- FrmAbout.cs
-
-
- FrmAddType.cs
-
-
- FrmAddColumn.cs
-
-
- FrmAddSoft.cs
-
-
- FrmInCMD.cs
-
-
- FrmVSoft.cs
-
-
- TabList.cs
-
-
- IconViewEx.cs
-
-
- ResXFileCodeGenerator
- Resources.Designer.cs
-
-
-
-
- {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}
- 1
- 0
- 0
- tlbimp
- False
- True
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {13C45E68-2DA3-4C9E-9BCA-E63D0FA9A760}
+ Library
+ Properties
+ VSoft
+ VSoft
+ v4.0
+ 512
+ true
+
+
+ true
+ full
+ false
+ ..\..\Bin\Debug\VSoft\
+ DEBUG;TRACE
+ prompt
+ 4
+ x86
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ False
+ ..\..\Bin\Debug\VSoft\MyDb.dll
+
+
+ ..\..\Bin\Debug\VSoft\MyDb_SQLite.dll
+
+
+ False
+ ..\..\Bin\Debug\VSoft\Newtonsoft.Json.dll
+
+
+ ..\..\Bin\Debug\VSoft\ryControls.dll
+
+
+ ..\..\Bin\Debug\VSoft\ryUpdate.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ frmSetting.cs
+
+
+
+ Form
+
+
+ FrmAbout.cs
+
+
+ Form
+
+
+ FrmAddType.cs
+
+
+ Form
+
+
+ FrmAddColumn.cs
+
+
+ Form
+
+
+ FrmAddSoft.cs
+
+
+ Form
+
+
+ FrmInCMD.cs
+
+
+ Form
+
+
+ FrmVSoft.cs
+
+
+
+
+
+
+
+
+ Component
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+ frmSetting.cs
+
+
+ FrmAbout.cs
+
+
+ FrmAddType.cs
+
+
+ FrmAddColumn.cs
+
+
+ FrmAddSoft.cs
+
+
+ FrmInCMD.cs
+
+
+ FrmVSoft.cs
+
+
+ TabList.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+
+ {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}
+ 1
+ 0
+ 0
+ tlbimp
+ False
+ True
+
+
+
\ No newline at end of file