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