Compare commits

..

9 Commits

Author SHA1 Message Date
0e070635ae 升级到.NET 4.6.2之前备份 2023-12-04 09:26:50 +08:00
4afd0f7c6f ### 2022-11-30更新
------
#### VSoft    V1.0.2211.3001
- *.[改进]翻译多线程进行,并解决不能多行翻译的BUG。
2022-11-30 09:08:29 +08:00
28d84616e8 ### 2022-04-16更新
------
#### VSoft    V1.0.2204.1601
- *.[改进]启动时加载图标缓存,增加切换分组的流畅度。
2022-04-16 20:43:45 +08:00
鑫Intel
96e9feaa03 ### 2022-02-20更新
------
#### VSoft    V1.0.2202.2001
- *.[改进]删除鼠标移上去提示功能。
2022-04-16 19:38:02 +08:00
鑫Intel
8648407df3 ### 2022-02-10更新
------
#### VSoft    V1.0.2202.1001
- *.[改进]优化点击分组时的卡顿问题。
2022-02-11 17:01:10 +08:00
鑫Intel
a4462136c9 ### 2021-10-18更新
------
#### VSoft    V1.0.2110.1801
- *.[修复]修复在流程软件目录下,无法准确获取数据库目录的BUG。
2021-10-19 08:33:12 +08:00
鑫Intel
574e29870d ### 2021-10-08更新
------
#### VSoft    V1.0.2110.0801
- *.[新增]新增支持将分类绑定快捷键。
- *.[修复]修复新增软件后,热键可能设置不正确的BUG
2021-10-08 16:52:51 +08:00
鑫Intel
150b39ca18 ### 2021-09-07更新
------

#### VSoft    V1.0.2109.0701
- *.[新增]新增支持设置软件全局快捷键。
2021-09-07 17:29:44 +08:00
64e190aa7b ### 2021-07-05更新
------
#### VSoft    V1.0.2107.0501
- *.[新增]新增适配原生64位系统。
- *.[修复]修复将侧键作为热键时,点击两个侧键都会激活软件的BUG。
- *.[修复]修复点击主界面中设置按钮,设置按钮没在父窗体居中的BUG。
- *.[修复]修复在右键菜单中无法编辑和新增软件的BUG。
- *.[修复]修复主界面右键菜单打开的窗体没居中的BUG。
2021-07-05 21:44:49 +08:00
75 changed files with 15220 additions and 3731 deletions

3
.gitignore vendored
View File

@ -3,4 +3,5 @@ Res/
**/obj
*.pdb
**/dcu
*.dcu
*.dcu
/Source/.vs

Binary file not shown.

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -358,6 +358,30 @@
<param name="Parameter"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(ryCommonDb.RyQuickSQL,System.String,System.Boolean)">
<summary>
执行SQL语句
</summary>
<param name="mySQL"></param>
<param name="wheresql">只针对IsAdd为false才生效where 以后的sql语句</param>
<param name="IsAdd">是新增还是更新</param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.Insert(ryCommonDb.RyQuickSQL)">
<summary>
插入数据库
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.Update(ryCommonDb.RyQuickSQL,System.String)">
<summary>
更新数据库
</summary>
<param name="mySQL"></param>
<param name="wheresql">where 以后的sql语句</param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(System.String,ryCommonDb.RyQuickSQL)">
<summary>

Binary file not shown.

BIN
Bin/Debug/VSoft/RaUI.dll Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

View File

@ -1,3 +1,3 @@
<root>
<list id="Setting" ShowMainHotKey="1+88" OpenByClick="0" HideAfterRun="1" ShowMainMouseKeyOn="1" ShowMainMouseKey="1" />
<list id="Setting" ShowMainHotKey="1+88" OpenByClick="0" HideAfterRun="1" ShowMainMouseKeyOn="1" ShowMainMouseKey="2" />
</root>

Binary file not shown.

Binary file not shown.

View File

@ -1,8 +1,8 @@
[VSoft]
hwnd=1577024
width=733
height=570
hwnd=331696
width=745
height=543
[VSoft_Test]
hwnd=987400
hwnd=657946
width=733
height=570

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>

View File

@ -1,3 +1,3 @@
<root>
<list id="LastUpdateTime" Value="2021/6/15 10:04:53" />
<list id="LastUpdateTime" Value="2021/9/7 13:56:03" />
</root>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,56 @@
### 2021-03-08更新
### 2022-11-30更新
------
#### VSoft V1.0.2211.3001
- *.[改进]翻译多线程进行,并解决不能多行翻译的BUG。
### 2022-04-16更新
------
#### VSoft V1.0.2204.1601
- *.[改进]启动时加载图标缓存,增加切换分组的流畅度。
### 2022-02-20更新
------
#### VSoft V1.0.2202.2001
- *.[改进]删除鼠标移上去提示功能。
### 2022-02-10更新
------
#### VSoft V1.0.2202.1001
- *.[改进]优化点击分组时的卡顿问题。
### 2021-10-18更新
------
#### VSoft V1.0.2110.1801
- *.[修复]修复在流程软件目录下无法准确获取数据库目录的BUG。
### 2021-10-09更新
------
#### VSoft V1.0.2110.0901
- *.[修复]修复添加软件和添加分类时,相同热键依然能添加的BUG。
### 2021-10-08更新
------
#### VSoft V1.0.2110.0801
- *.[新增]新增支持将分类绑定快捷键。
- *.[修复]修复新增软件后,热键可能设置不正确的BUG
### 2021-09-07更新
------
#### VSoft V1.0.2109.0701
- *.[新增]新增支持设置软件全局快捷键。
### 2021-07-05更新
------
#### VSoft V1.0.2107.0501
- *.[新增]新增适配原生64位系统。
- *.[修复]修复将侧键作为热键时,点击两个侧键都会激活软件的BUG。
- *.[修复]修复点击主界面中设置按钮设置按钮没在父窗体居中的BUG。
- *.[修复]修复在右键菜单中无法编辑和新增软件的BUG。
- *.[修复]修复主界面右键菜单打开的窗体没居中的BUG。
#### VSoftBox V1.0.2107.0401
- *.[新增]新增适配原生64位系统。
### 2021-03-08更新
------
#### VSoft V1.0.2103.0801
- *.[改进]改进公司条件下的皮肤,更美观。

Binary file not shown.

View File

@ -8,19 +8,21 @@
<OutputType>WinExe</OutputType>
<RootNamespace>DyLine</RootNamespace>
<AssemblyName>DyLine</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\Bin\Debug\VSoft\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DefineConstants>DEBUG;TRACE;DY;TEST</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -30,6 +32,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@ -45,18 +48,9 @@
</ItemGroup>
<ItemGroup>
<Compile Include="clsMsg.cs" />
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ryMemoryShare.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
@ -65,7 +59,9 @@
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>

View File

@ -1,48 +0,0 @@

namespace DyLine
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.SuspendLayout();
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(251, 125);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
}
}

View File

@ -1,19 +0,0 @@
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 DyLine
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}

View File

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

View File

@ -26,6 +26,7 @@ namespace DyLine
clsMsg ryMsg = new clsMsg();
ryMsg.SendMsgToryProcess(0, item);//向流程软件发送连接信息
}
}
}
}

View File

@ -1,36 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("当游命令行执行工具")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DyLine")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("8ee4505a-7d76-4209-85d5-274357a81fb8")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("当游命令行执行工具")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DyLine")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("8ee4505a-7d76-4209-85d5-274357a81fb8")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.2110.1801")]
[assembly: AssemblyFileVersion("2.0.2110.1801")]

View File

@ -1,70 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace DyLine.Properties
{
/// <summary>
/// 强类型资源类,用于查找本地化字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// 返回此类使用的缓存 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DyLine.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace DyLine.Properties {
using System;
/// <summary>
/// 一个强类型的资源类,用于查找本地化的字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// 返回此类使用的缓存的 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DyLine.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@ -1,29 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DyLine.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace DyLine.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.2.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

3
Source/DyLine/app.config Normal file
View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>

29
Source/VSoftBox/Init.cs Normal file
View File

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using VSoft.Config;
namespace VSoftBox
{
class Init
{
static System.Threading.Mutex run;
public static void Show(string[] args)
{
Soft_Info.UserDataFolder = ryCommon.RyFiles.GetRealPath(Soft_Info.UserDataFolder);
run = new System.Threading.Mutex(true, Soft_Info.Soft_Id, out bool runone);
if (!runone) //已经运行了
{
ryCommon.Ini ini = new ryCommon.Ini(Soft_Info.UserDataFolder + "\\Win.dat");
ryControls.Win32.SendMessage((IntPtr)ini.ReadIni(Soft_Info.Soft_Id, "hwnd", 0), 17189, 100, 100);
}
else
{
Application.Run(new VSoft.FrmVSoft(args));
//Application.Run(new WindowsFormsApp2.Form1());
}
}
}
}

View File

@ -1,6 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
#if DY
using System.Reflection;
#endif
using System.Windows.Forms;
using VSoft.Config;
@ -8,27 +11,49 @@ namespace VSoftBox
{
static class Program
{
static System.Threading.Mutex run;
#if DY
/// <summary>
/// 流程软件路径
/// </summary>
static string ProcessPath;
#endif
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
#if DY
var sub_dir = @"\SysDb\Tools\VSoft";
if (Application.StartupPath.EndsWith(sub_dir, StringComparison.OrdinalIgnoreCase))
{
ProcessPath = Application.StartupPath.Substring(0, Application.StartupPath.Length - sub_dir.Length);
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
Soft_Info.UserDataFolder = ProcessPath+"\\UserDb\\Tools\\VSoft";
}
#endif
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Soft_Info.UserDataFolder = ryCommon.RyFiles.GetRealPath(Soft_Info.UserDataFolder);
run = new System.Threading.Mutex(true, Soft_Info.Soft_Id, out bool runone);
if (!runone) //已经运行了
Init.Show(args);
}
#if DY
static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
AssemblyName assemblyName = new AssemblyName(args.Name);
if (System.IO.File.Exists(ProcessPath + @"\" + assemblyName.Name + ".dll"))
{
ryCommon.Ini ini = new ryCommon.Ini(Soft_Info.UserDataFolder + "\\Win.dat");
ryControls.Win32.SendMessage((IntPtr)ini.ReadIni(Soft_Info.Soft_Id, "hwnd", 0), 17189, 100, 100);
return Assembly.LoadFrom(ProcessPath + @"\" + assemblyName.Name + ".dll");
}
else if (System.IO.File.Exists(ProcessPath + @"\Bin\dlls\" + assemblyName.Name + ".dll"))
{
return Assembly.LoadFrom(ProcessPath + @"\Bin\dlls\" + assemblyName.Name + ".dll");
}
else
{
Application.Run(new VSoft.FrmVSoft(args));
//Application.Run(new WindowsFormsApp2.Form1());
return args.RequestingAssembly;
}
}
#endif
}
}

View File

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

View File

@ -1,69 +1,61 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// 对此文件的更改可能导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace VSoftBox.Properties
{
namespace VSoftBox.Properties {
using System;
/// <summary>
/// 强类型资源类,用于查找本地化字符串等。
/// 一个强类型资源类,用于查找本地化字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// 若要添加或除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
internal Resources() {
}
/// <summary>
/// 返回此类使用的缓存 ResourceManager 实例。
/// 返回此类使用的缓存 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VSoftBox.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 覆盖当前线程的 CurrentUICulture 属性
/// 使用此强类型资源类的资源查找。
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set
{
set {
resourceCulture = value;
}
}

View File

@ -1,28 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace VSoftBox.Properties
{
namespace VSoftBox.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
public static Settings Default {
get {
return defaultInstance;
}
}

View File

@ -8,19 +8,21 @@
<OutputType>WinExe</OutputType>
<RootNamespace>VSoftBox</RootNamespace>
<AssemblyName>VSoftBox</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\Bin\Debug\VSoft\</OutputPath>
<DefineConstants>TRACE;DEBUG</DefineConstants>
<DefineConstants>TRACE;DEBUG;DY</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -30,18 +32,15 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>项目5.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="MyDb, Version=2.1.2011.901, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="RaUI, Version=4.0.2302.1401, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Bin\Debug\VSoft\MyDb.dll</HintPath>
</Reference>
<Reference Include="ryControls, Version=2.1.2006.3001, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Bin\Debug\VSoft\ryControls.dll</HintPath>
<HintPath>..\..\Bin\Debug\VSoft\RaUI.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
@ -55,6 +54,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Init.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Properties\Resources.resx">
@ -65,7 +65,9 @@
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>

View File

@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace VSoft.Config
{
@ -39,6 +40,14 @@ namespace VSoft.Config
/// 启动软件后隐藏自身
/// </summary>
public static bool HideAfterRun = true;
public static Form MainForm { get; set; }
/// <summary>
/// 当前软件加载的热键列表
/// </summary>
public static List<HotKeyItem> HotKeyList = new List<HotKeyItem>();
/// <summary>
/// 获取设置
/// </summary>
public static void LoadSetting()
{
ryCommon.Storage Stor = new Storage();
@ -51,5 +60,69 @@ namespace VSoft.Config
ShowMainMouseKey = Stor.GetAttrValue("ShowMainMouseKey", 0);
//low_count = Stor.GetAttrValue("LowCount", 10);
}
/// <summary>
/// 设置热键到列表中
/// </summary>
/// <param name="id"></param>
/// <param name="name"></param>
/// <param name="hotkey"></param>
/// <returns>返回热键在列表中的位置</returns>
public static int SetHotKeyList(string id,string name,string hotkey)
{
var index= HotKeyList.FindIndex(a => a.ID == id);
if(index!=-1)
{
HotKeyList[index].Name = name;
HotKeyList[index].HotKey = hotkey;
return index;
}
else
{
HotKeyList.Add(new HotKeyItem() { ID=id, Name=name, HotKey=hotkey });
return HotKeyList.Count - 1;
}
}
/// <summary>
/// 从列表中删除热键
/// </summary>
/// <param name="id"></param>
/// <returns>返回热键在原来列表中的位置</returns>
public static int RemoveHotKeyList(string id)
{
var index = HotKeyList.FindIndex(a => a.ID == id);
if (index != -1)
{
HotKeyList.RemoveAt(index);
}
return index;
}
/// <summary>
/// 在列表中查找热键是否已存在
/// </summary>
/// <param name="hotkey"></param>
/// <returns>返回热键在原来列表中的位置</returns>
public static int IsHotKeyExistInList(string hotkey)
{
var index = HotKeyList.FindIndex(a => a.HotKey == hotkey);
return index;
}
}
public class HotKeyItem
{
/// <summary>
/// ID
/// </summary>
public string ID { get; set; } = "";
/// <summary>
/// 热键名称
/// </summary>
public string Name { get; set; } = "";
/// <summary>
/// 热键
/// </summary>
public string HotKey { get; set; } = "";
}
}

View File

@ -60,8 +60,9 @@
// 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(488, 462);
this.btnCancel.BaseColor = System.Drawing.Color.Teal;
this.btnCancel.ColorGradient = true;
this.btnCancel.Location = new System.Drawing.Point(393, 389);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(79, 30);
this.btnCancel.TabIndex = 22;
@ -72,8 +73,9 @@
// 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(403, 462);
this.btnOK.BaseColor = System.Drawing.Color.Teal;
this.btnOK.ColorGradient = true;
this.btnOK.Location = new System.Drawing.Point(308, 389);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(79, 30);
this.btnOK.TabIndex = 21;
@ -96,7 +98,7 @@
this.chromeTabControl1.SelectedIndex = 0;
this.chromeTabControl1.ShowAddButton = false;
this.chromeTabControl1.ShowCloseButton = false;
this.chromeTabControl1.Size = new System.Drawing.Size(568, 426);
this.chromeTabControl1.Size = new System.Drawing.Size(473, 353);
this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.chromeTabControl1.TabContextMenuStrip = null;
this.chromeTabControl1.TabIndex = 23;
@ -115,7 +117,7 @@
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(566, 396);
this.tabPage2.Size = new System.Drawing.Size(471, 323);
this.tabPage2.TabIndex = 0;
this.tabPage2.Text = "普通";
this.tabPage2.UseVisualStyleBackColor = true;
@ -203,13 +205,13 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(577, 504);
this.ClientSize = new System.Drawing.Size(482, 431);
this.Controls.Add(this.chromeTabControl1);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOK);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
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);

View File

@ -1,4 +1,5 @@
using ryCommon;
using ryCommonDb;
using ryControls;
using System;
using System.Collections.Generic;
@ -8,6 +9,7 @@ using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using VSoft.Prams;
namespace VSoft.Config
{
@ -29,6 +31,26 @@ namespace VSoft.Config
private void BtnOK_Click(object sender, EventArgs e)
{
if (hotkeyTextBox1.HaveHotKey)
{
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.SQLConnStr) == 1)
{
var ds = db.ReadData("select * from Softs where Hotkey='" + hotkeyTextBox1.HotKey + "' limit 1");
if (ds.HaveData())
{
Msg.ShowMsg("当前热键已经存在,请更换热键。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
ds.Dispose(); return;
}
ds.Dispose();
}
db.Free();
Config.Soft_Config.SetHotKeyList("showmain", "显示主界面", hotkeyTextBox1.HotKey);
}
else
{
Config.Soft_Config.RemoveHotKeyList("showmain");
}
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);

View File

@ -78,7 +78,7 @@
this.label7.AutoSize = true;
this.label7.BackColor = System.Drawing.Color.Transparent;
this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.label7.Location = new System.Drawing.Point(13, 321);
this.label7.Location = new System.Drawing.Point(13, 333);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(467, 12);
this.label7.TabIndex = 20;
@ -101,7 +101,7 @@
this.label3.AutoSize = true;
this.label3.BackColor = System.Drawing.Color.Transparent;
this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.label3.Location = new System.Drawing.Point(12, 343);
this.label3.Location = new System.Drawing.Point(12, 355);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(365, 12);
this.label3.TabIndex = 18;
@ -164,7 +164,7 @@
this.pnlTopLogo.Dock = System.Windows.Forms.DockStyle.Top;
this.pnlTopLogo.Location = new System.Drawing.Point(1, 27);
this.pnlTopLogo.Name = "pnlTopLogo";
this.pnlTopLogo.Size = new System.Drawing.Size(491, 59);
this.pnlTopLogo.Size = new System.Drawing.Size(493, 59);
this.pnlTopLogo.TabIndex = 8;
//
// lblTitle
@ -184,7 +184,7 @@
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(493, 362);
this.ClientSize = new System.Drawing.Size(495, 374);
this.Controls.Add(this.label1);
this.Controls.Add(this.label7);
this.Controls.Add(this.label6);
@ -196,11 +196,10 @@
this.Controls.Add(this.lblVisitUrl);
this.Controls.Add(this.label2);
this.Controls.Add(this.pnlTopLogo);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "FrmAbout";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "关于";
this.Load += new System.EventHandler(this.FrmAbout_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();

View File

@ -40,8 +40,9 @@
// 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(264, 131);
this.BtnCancel.BaseColor = System.Drawing.Color.Teal;
this.BtnCancel.ColorGradient = true;
this.BtnCancel.Location = new System.Drawing.Point(262, 130);
this.BtnCancel.Name = "BtnCancel";
this.BtnCancel.Size = new System.Drawing.Size(75, 27);
this.BtnCancel.TabIndex = 10;
@ -52,8 +53,9 @@
// 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(183, 131);
this.BtnOK.BaseColor = System.Drawing.Color.Teal;
this.BtnOK.ColorGradient = true;
this.BtnOK.Location = new System.Drawing.Point(181, 130);
this.BtnOK.Name = "BtnOK";
this.BtnOK.Size = new System.Drawing.Size(75, 27);
this.BtnOK.TabIndex = 9;
@ -123,14 +125,14 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(350, 165);
this.ClientSize = new System.Drawing.Size(348, 164);
this.Controls.Add(this.label2);
this.Controls.Add(this.TxtDes);
this.Controls.Add(this.label1);
this.Controls.Add(this.TxtName);
this.Controls.Add(this.BtnCancel);
this.Controls.Add(this.BtnOK);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "FrmAddColumn";

View File

@ -28,394 +28,416 @@
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAddSoft));
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.使ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.of_File = new System.Windows.Forms.OpenFileDialog();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.TxtCmdId = new ryControls.TextBoxEx2();
this.label6 = new System.Windows.Forms.Label();
this.LblCustomImg = new System.Windows.Forms.Label();
this.TxtDes = new ryControls.TextBoxEx2();
this.label4 = new System.Windows.Forms.Label();
this.chromeTabControl1 = new ryControls.ChromeTabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.ChkRunAsAdmin = new System.Windows.Forms.CheckBox();
this.BtnBrowser = new ryControls.ButtonEx();
this.TxtStartPath = new ryControls.TextBoxEx2();
this.label5 = new System.Windows.Forms.Label();
this.TxtPath = new ryControls.TextBoxEx2();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.TxtRunPram = new ryControls.TextBoxEx2();
this.BtnCancel = new ryControls.ButtonEx();
this.BtnOK = new ryControls.ButtonEx();
this.PicImg = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.TxtName = new ryControls.TextBoxEx2();
this.contextMenuStrip1.SuspendLayout();
this.chromeTabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.PicImg)).BeginInit();
this.SuspendLayout();
//
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem,
this.使ToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(173, 48);
//
// 选择图标ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "选择图标ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(172, 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(172, 22);
this.使ToolStripMenuItem.Text = "使用当前应用图标";
this.使ToolStripMenuItem.Click += new System.EventHandler(this.使ToolStripMenuItem_Click);
//
// openFileDialog1
//
this.openFileDialog1.Filter = "图片文件|*.jpg;*.gif;*.bmp;*.png;*.jpeg;*.ico|应用程序|*.exe";
//
// of_File
//
this.of_File.Filter = "所有文件|*.*";
//
// TxtCmdId
//
this.TxtCmdId.BackColor = System.Drawing.Color.White;
this.TxtCmdId.EmptyText = "默认为空";
this.TxtCmdId.Location = new System.Drawing.Point(310, 35);
this.TxtCmdId.MaxLength = 999999999;
this.TxtCmdId.Multiline = false;
this.TxtCmdId.Name = "TxtCmdId";
this.TxtCmdId.OnlyNumeric = false;
this.TxtCmdId.PasswordChar = '\0';
this.TxtCmdId.ReadOnly = false;
this.TxtCmdId.SelectedText = "";
this.TxtCmdId.SelectionLength = 0;
this.TxtCmdId.SelectionStart = 0;
this.TxtCmdId.Size = new System.Drawing.Size(133, 22);
this.TxtCmdId.TabIndex = 14;
this.TxtCmdId.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtCmdId.ToolTip = "当输入了唯一命令ID后用户可以根据该ID来运行当前软件\r\n或执行当前命令。\r\n\r\n*.命令ID只支持英文和数字字符";
this.TxtCmdId.WordWrap = true;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(239, 39);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(65, 12);
this.label6.TabIndex = 13;
this.label6.Text = "唯一命令ID";
//
// LblCustomImg
//
this.LblCustomImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.LblCustomImg.BackColor = System.Drawing.Color.Transparent;
this.LblCustomImg.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.LblCustomImg.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.LblCustomImg.ForeColor = System.Drawing.Color.DodgerBlue;
this.LblCustomImg.Location = new System.Drawing.Point(448, 125);
this.LblCustomImg.Name = "LblCustomImg";
this.LblCustomImg.Size = new System.Drawing.Size(86, 18);
this.LblCustomImg.TabIndex = 12;
this.LblCustomImg.Text = "自动获取";
this.LblCustomImg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// TxtDes
//
this.TxtDes.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtDes.BackColor = System.Drawing.Color.White;
this.TxtDes.EmptyText = "";
this.TxtDes.Location = new System.Drawing.Point(57, 65);
this.TxtDes.MaxLength = 999999999;
this.TxtDes.Multiline = true;
this.TxtDes.Name = "TxtDes";
this.TxtDes.OnlyNumeric = false;
this.TxtDes.PasswordChar = '\0';
this.TxtDes.ReadOnly = false;
this.TxtDes.SelectedText = "";
this.TxtDes.SelectionLength = 0;
this.TxtDes.SelectionStart = 0;
this.TxtDes.Size = new System.Drawing.Size(385, 80);
this.TxtDes.TabIndex = 11;
this.TxtDes.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtDes.ToolTip = "";
this.TxtDes.WordWrap = true;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(12, 65);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(29, 12);
this.label4.TabIndex = 10;
this.label4.Text = "备注";
//
// 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.tabPage1);
this.chromeTabControl1.Cursor = System.Windows.Forms.Cursors.Default;
this.chromeTabControl1.ItemSize = new System.Drawing.Size(100, 25);
this.chromeTabControl1.Location = new System.Drawing.Point(12, 155);
this.chromeTabControl1.Name = "chromeTabControl1";
this.chromeTabControl1.SelectedIndex = 0;
this.chromeTabControl1.ShowAddButton = false;
this.chromeTabControl1.ShowCloseButton = false;
this.chromeTabControl1.Size = new System.Drawing.Size(522, 306);
this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.chromeTabControl1.TabContextMenuStrip = null;
this.chromeTabControl1.TabIndex = 9;
this.chromeTabControl1.TabMaxWidth = 100;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.ChkRunAsAdmin);
this.tabPage1.Controls.Add(this.BtnBrowser);
this.tabPage1.Controls.Add(this.TxtStartPath);
this.tabPage1.Controls.Add(this.label5);
this.tabPage1.Controls.Add(this.TxtPath);
this.tabPage1.Controls.Add(this.label2);
this.tabPage1.Controls.Add(this.label3);
this.tabPage1.Controls.Add(this.TxtRunPram);
this.tabPage1.Location = new System.Drawing.Point(1, 29);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(520, 276);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "运行";
this.tabPage1.UseVisualStyleBackColor = true;
//
// ChkRunAsAdmin
//
this.ChkRunAsAdmin.AutoSize = true;
this.ChkRunAsAdmin.Location = new System.Drawing.Point(8, 131);
this.ChkRunAsAdmin.Name = "ChkRunAsAdmin";
this.ChkRunAsAdmin.Size = new System.Drawing.Size(144, 16);
this.ChkRunAsAdmin.TabIndex = 9;
this.ChkRunAsAdmin.Text = "强制以管理员方式启动";
this.ChkRunAsAdmin.UseVisualStyleBackColor = true;
//
// BtnBrowser
//
this.BtnBrowser.BaseColor = System.Drawing.Color.DarkGreen;
this.BtnBrowser.ColorGradient = true;
this.BtnBrowser.Location = new System.Drawing.Point(463, 20);
this.BtnBrowser.Name = "BtnBrowser";
this.BtnBrowser.Size = new System.Drawing.Size(33, 27);
this.BtnBrowser.TabIndex = 8;
this.BtnBrowser.Text = "...";
this.BtnBrowser.UseVisualStyleBackColor = true;
this.BtnBrowser.Click += new System.EventHandler(this.BtnBrowser_Click);
//
// TxtStartPath
//
this.TxtStartPath.BackColor = System.Drawing.Color.White;
this.TxtStartPath.EmptyText = "留空则表示使用默认设置";
this.TxtStartPath.Location = new System.Drawing.Point(8, 103);
this.TxtStartPath.MaxLength = 999999999;
this.TxtStartPath.Multiline = false;
this.TxtStartPath.Name = "TxtStartPath";
this.TxtStartPath.OnlyNumeric = false;
this.TxtStartPath.PasswordChar = '\0';
this.TxtStartPath.ReadOnly = false;
this.TxtStartPath.SelectedText = "";
this.TxtStartPath.SelectionLength = 0;
this.TxtStartPath.SelectionStart = 0;
this.TxtStartPath.Size = new System.Drawing.Size(449, 22);
this.TxtStartPath.TabIndex = 7;
this.TxtStartPath.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtStartPath.ToolTip = "";
this.TxtStartPath.WordWrap = true;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(6, 88);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(53, 12);
this.label5.TabIndex = 6;
this.label5.Text = "当前路径";
//
// TxtPath
//
this.TxtPath.BackColor = System.Drawing.Color.White;
this.TxtPath.EmptyText = "";
this.TxtPath.Location = new System.Drawing.Point(6, 23);
this.TxtPath.MaxLength = 999999999;
this.TxtPath.Multiline = false;
this.TxtPath.Name = "TxtPath";
this.TxtPath.OnlyNumeric = false;
this.TxtPath.PasswordChar = '\0';
this.TxtPath.ReadOnly = false;
this.TxtPath.SelectedText = "";
this.TxtPath.SelectionLength = 0;
this.TxtPath.SelectionStart = 0;
this.TxtPath.Size = new System.Drawing.Size(451, 22);
this.TxtPath.TabIndex = 3;
this.TxtPath.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtPath.ToolTip = "";
this.TxtPath.WordWrap = true;
this.TxtPath.TextChanged2 += new System.EventHandler(this.TxtPath_TextChanged2);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(6, 8);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(29, 12);
this.label2.TabIndex = 2;
this.label2.Text = "路径";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 48);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(29, 12);
this.label3.TabIndex = 4;
this.label3.Text = "参数";
//
// TxtRunPram
//
this.TxtRunPram.BackColor = System.Drawing.Color.White;
this.TxtRunPram.EmptyText = "";
this.TxtRunPram.Location = new System.Drawing.Point(6, 63);
this.TxtRunPram.MaxLength = 999999999;
this.TxtRunPram.Multiline = false;
this.TxtRunPram.Name = "TxtRunPram";
this.TxtRunPram.OnlyNumeric = false;
this.TxtRunPram.PasswordChar = '\0';
this.TxtRunPram.ReadOnly = false;
this.TxtRunPram.SelectedText = "";
this.TxtRunPram.SelectionLength = 0;
this.TxtRunPram.SelectionStart = 0;
this.TxtRunPram.Size = new System.Drawing.Size(451, 22);
this.TxtRunPram.TabIndex = 5;
this.TxtRunPram.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtRunPram.ToolTip = "";
this.TxtRunPram.WordWrap = 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.DarkGreen;
this.BtnCancel.ColorGradient = true;
this.BtnCancel.Location = new System.Drawing.Point(458, 467);
this.BtnCancel.Name = "BtnCancel";
this.BtnCancel.Size = new System.Drawing.Size(75, 27);
this.BtnCancel.TabIndex = 8;
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.DarkGreen;
this.BtnOK.ColorGradient = true;
this.BtnOK.Location = new System.Drawing.Point(377, 467);
this.BtnOK.Name = "BtnOK";
this.BtnOK.Size = new System.Drawing.Size(75, 27);
this.BtnOK.TabIndex = 7;
this.BtnOK.Text = "确定";
this.BtnOK.UseVisualStyleBackColor = true;
this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click);
//
// PicImg
//
this.PicImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.PicImg.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.PicImg.ContextMenuStrip = this.contextMenuStrip1;
this.PicImg.Cursor = System.Windows.Forms.Cursors.Hand;
this.PicImg.Location = new System.Drawing.Point(448, 36);
this.PicImg.Name = "PicImg";
this.PicImg.Size = new System.Drawing.Size(86, 86);
this.PicImg.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.PicImg.TabIndex = 6;
this.PicImg.TabStop = false;
this.PicImg.Click += new System.EventHandler(this.PicImg_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 39);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(41, 12);
this.label1.TabIndex = 1;
this.label1.Text = "软件名";
//
// TxtName
//
this.TxtName.BackColor = System.Drawing.Color.White;
this.TxtName.EmptyText = "";
this.TxtName.Location = new System.Drawing.Point(57, 35);
this.TxtName.MaxLength = 999999999;
this.TxtName.Multiline = false;
this.TxtName.Name = "TxtName";
this.TxtName.OnlyNumeric = false;
this.TxtName.PasswordChar = '\0';
this.TxtName.ReadOnly = false;
this.TxtName.SelectedText = "";
this.TxtName.SelectionLength = 0;
this.TxtName.SelectionStart = 0;
this.TxtName.Size = new System.Drawing.Size(175, 22);
this.TxtName.TabIndex = 0;
this.TxtName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtName.ToolTip = "";
this.TxtName.WordWrap = true;
//
// FrmAddSoft
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(543, 506);
this.Controls.Add(this.TxtCmdId);
this.Controls.Add(this.label6);
this.Controls.Add(this.LblCustomImg);
this.Controls.Add(this.TxtDes);
this.Controls.Add(this.label4);
this.Controls.Add(this.chromeTabControl1);
this.Controls.Add(this.BtnCancel);
this.Controls.Add(this.BtnOK);
this.Controls.Add(this.PicImg);
this.Controls.Add(this.label1);
this.Controls.Add(this.TxtName);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmAddSoft";
this.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.ShadowWidth = 0;
this.ShowShadow = true;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "添加软件";
this.Load += new System.EventHandler(this.FrmAddSoft_Load);
this.contextMenuStrip1.ResumeLayout(false);
this.chromeTabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.PicImg)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAddSoft));
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.使ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.of_File = new System.Windows.Forms.OpenFileDialog();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.TxtCmdId = new ryControls.TextBoxEx2();
this.label6 = new System.Windows.Forms.Label();
this.LblCustomImg = new System.Windows.Forms.Label();
this.TxtDes = new ryControls.TextBoxEx2();
this.label4 = new System.Windows.Forms.Label();
this.chromeTabControl1 = new ryControls.ChromeTabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.label7 = new System.Windows.Forms.Label();
this.hotkeyTextBox1 = new ryControls.HotkeyTextBox();
this.ChkRunAsAdmin = new System.Windows.Forms.CheckBox();
this.BtnBrowser = new ryControls.ButtonEx();
this.TxtStartPath = new ryControls.TextBoxEx2();
this.label5 = new System.Windows.Forms.Label();
this.TxtPath = new ryControls.TextBoxEx2();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.TxtRunPram = new ryControls.TextBoxEx2();
this.BtnCancel = new ryControls.ButtonEx();
this.BtnOK = new ryControls.ButtonEx();
this.PicImg = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.TxtName = new ryControls.TextBoxEx2();
this.contextMenuStrip1.SuspendLayout();
this.chromeTabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.PicImg)).BeginInit();
this.SuspendLayout();
//
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem,
this.使ToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(173, 48);
//
// 选择图标ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "选择图标ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(172, 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(172, 22);
this.使ToolStripMenuItem.Text = "使用当前应用图标";
this.使ToolStripMenuItem.Click += new System.EventHandler(this.使ToolStripMenuItem_Click);
//
// openFileDialog1
//
this.openFileDialog1.Filter = "图片文件|*.jpg;*.gif;*.bmp;*.png;*.jpeg;*.ico|应用程序|*.exe";
//
// of_File
//
this.of_File.Filter = "所有文件|*.*";
//
// TxtCmdId
//
this.TxtCmdId.BackColor = System.Drawing.Color.White;
this.TxtCmdId.EmptyText = "默认为空";
this.TxtCmdId.Location = new System.Drawing.Point(310, 35);
this.TxtCmdId.MaxLength = 999999999;
this.TxtCmdId.Multiline = false;
this.TxtCmdId.Name = "TxtCmdId";
this.TxtCmdId.OnlyNumeric = false;
this.TxtCmdId.PasswordChar = '\0';
this.TxtCmdId.ReadOnly = false;
this.TxtCmdId.SelectedText = "";
this.TxtCmdId.SelectionLength = 0;
this.TxtCmdId.SelectionStart = 0;
this.TxtCmdId.Size = new System.Drawing.Size(133, 22);
this.TxtCmdId.TabIndex = 14;
this.TxtCmdId.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtCmdId.ToolTip = "当输入了唯一命令ID后用户可以根据该ID来运行当前软件\r\n或执行当前命令。\r\n\r\n*.命令ID只支持英文和数字字符";
this.TxtCmdId.WordWrap = true;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(239, 38);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(65, 12);
this.label6.TabIndex = 13;
this.label6.Text = "唯一命令ID";
//
// LblCustomImg
//
this.LblCustomImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.LblCustomImg.BackColor = System.Drawing.Color.Transparent;
this.LblCustomImg.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.LblCustomImg.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.LblCustomImg.ForeColor = System.Drawing.Color.DodgerBlue;
this.LblCustomImg.Location = new System.Drawing.Point(576, 125);
this.LblCustomImg.Name = "LblCustomImg";
this.LblCustomImg.Size = new System.Drawing.Size(86, 18);
this.LblCustomImg.TabIndex = 12;
this.LblCustomImg.Text = "自动获取";
this.LblCustomImg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// TxtDes
//
this.TxtDes.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtDes.BackColor = System.Drawing.Color.White;
this.TxtDes.EmptyText = "";
this.TxtDes.Location = new System.Drawing.Point(57, 65);
this.TxtDes.MaxLength = 999999999;
this.TxtDes.Multiline = true;
this.TxtDes.Name = "TxtDes";
this.TxtDes.OnlyNumeric = false;
this.TxtDes.PasswordChar = '\0';
this.TxtDes.ReadOnly = false;
this.TxtDes.SelectedText = "";
this.TxtDes.SelectionLength = 0;
this.TxtDes.SelectionStart = 0;
this.TxtDes.Size = new System.Drawing.Size(513, 80);
this.TxtDes.TabIndex = 11;
this.TxtDes.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtDes.ToolTip = "";
this.TxtDes.WordWrap = true;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(12, 65);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(29, 12);
this.label4.TabIndex = 10;
this.label4.Text = "备注";
//
// 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.tabPage1);
this.chromeTabControl1.Cursor = System.Windows.Forms.Cursors.Default;
this.chromeTabControl1.ItemSize = new System.Drawing.Size(100, 25);
this.chromeTabControl1.Location = new System.Drawing.Point(12, 155);
this.chromeTabControl1.Name = "chromeTabControl1";
this.chromeTabControl1.SelectedIndex = 0;
this.chromeTabControl1.ShowAddButton = false;
this.chromeTabControl1.ShowCloseButton = false;
this.chromeTabControl1.Size = new System.Drawing.Size(650, 415);
this.chromeTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.chromeTabControl1.TabContextMenuStrip = null;
this.chromeTabControl1.TabIndex = 9;
this.chromeTabControl1.TabMaxWidth = 100;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.label7);
this.tabPage1.Controls.Add(this.hotkeyTextBox1);
this.tabPage1.Controls.Add(this.ChkRunAsAdmin);
this.tabPage1.Controls.Add(this.BtnBrowser);
this.tabPage1.Controls.Add(this.TxtStartPath);
this.tabPage1.Controls.Add(this.label5);
this.tabPage1.Controls.Add(this.TxtPath);
this.tabPage1.Controls.Add(this.label2);
this.tabPage1.Controls.Add(this.label3);
this.tabPage1.Controls.Add(this.TxtRunPram);
this.tabPage1.Location = new System.Drawing.Point(1, 29);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(648, 385);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "运行";
this.tabPage1.UseVisualStyleBackColor = true;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(6, 153);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(53, 12);
this.label7.TabIndex = 11;
this.label7.Text = "运行热键";
//
// hotkeyTextBox1
//
this.hotkeyTextBox1.BackColor = System.Drawing.Color.White;
this.hotkeyTextBox1.HotKey = "0+0";
this.hotkeyTextBox1.Location = new System.Drawing.Point(8, 168);
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 = 10;
//
// ChkRunAsAdmin
//
this.ChkRunAsAdmin.AutoSize = true;
this.ChkRunAsAdmin.Location = new System.Drawing.Point(8, 131);
this.ChkRunAsAdmin.Name = "ChkRunAsAdmin";
this.ChkRunAsAdmin.Size = new System.Drawing.Size(144, 16);
this.ChkRunAsAdmin.TabIndex = 9;
this.ChkRunAsAdmin.Text = "强制以管理员方式启动";
this.ChkRunAsAdmin.UseVisualStyleBackColor = true;
//
// BtnBrowser
//
this.BtnBrowser.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.BtnBrowser.ColorGradient = true;
this.BtnBrowser.Location = new System.Drawing.Point(463, 20);
this.BtnBrowser.Name = "BtnBrowser";
this.BtnBrowser.Size = new System.Drawing.Size(33, 27);
this.BtnBrowser.TabIndex = 8;
this.BtnBrowser.Text = "...";
this.BtnBrowser.UseVisualStyleBackColor = true;
this.BtnBrowser.Click += new System.EventHandler(this.BtnBrowser_Click);
//
// TxtStartPath
//
this.TxtStartPath.BackColor = System.Drawing.Color.White;
this.TxtStartPath.EmptyText = "留空则表示使用默认设置";
this.TxtStartPath.Location = new System.Drawing.Point(8, 103);
this.TxtStartPath.MaxLength = 999999999;
this.TxtStartPath.Multiline = false;
this.TxtStartPath.Name = "TxtStartPath";
this.TxtStartPath.OnlyNumeric = false;
this.TxtStartPath.PasswordChar = '\0';
this.TxtStartPath.ReadOnly = false;
this.TxtStartPath.SelectedText = "";
this.TxtStartPath.SelectionLength = 0;
this.TxtStartPath.SelectionStart = 0;
this.TxtStartPath.Size = new System.Drawing.Size(449, 22);
this.TxtStartPath.TabIndex = 7;
this.TxtStartPath.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtStartPath.ToolTip = "";
this.TxtStartPath.WordWrap = true;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(6, 88);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(53, 12);
this.label5.TabIndex = 6;
this.label5.Text = "当前路径";
//
// TxtPath
//
this.TxtPath.BackColor = System.Drawing.Color.White;
this.TxtPath.EmptyText = "";
this.TxtPath.Location = new System.Drawing.Point(6, 23);
this.TxtPath.MaxLength = 999999999;
this.TxtPath.Multiline = false;
this.TxtPath.Name = "TxtPath";
this.TxtPath.OnlyNumeric = false;
this.TxtPath.PasswordChar = '\0';
this.TxtPath.ReadOnly = false;
this.TxtPath.SelectedText = "";
this.TxtPath.SelectionLength = 0;
this.TxtPath.SelectionStart = 0;
this.TxtPath.Size = new System.Drawing.Size(451, 22);
this.TxtPath.TabIndex = 3;
this.TxtPath.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtPath.ToolTip = "";
this.TxtPath.WordWrap = true;
this.TxtPath.TextChanged2 += new System.EventHandler(this.TxtPath_TextChanged2);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(6, 8);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(29, 12);
this.label2.TabIndex = 2;
this.label2.Text = "路径";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 48);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(29, 12);
this.label3.TabIndex = 4;
this.label3.Text = "参数";
//
// TxtRunPram
//
this.TxtRunPram.BackColor = System.Drawing.Color.White;
this.TxtRunPram.EmptyText = "";
this.TxtRunPram.Location = new System.Drawing.Point(6, 63);
this.TxtRunPram.MaxLength = 999999999;
this.TxtRunPram.Multiline = false;
this.TxtRunPram.Name = "TxtRunPram";
this.TxtRunPram.OnlyNumeric = false;
this.TxtRunPram.PasswordChar = '\0';
this.TxtRunPram.ReadOnly = false;
this.TxtRunPram.SelectedText = "";
this.TxtRunPram.SelectionLength = 0;
this.TxtRunPram.SelectionStart = 0;
this.TxtRunPram.Size = new System.Drawing.Size(451, 22);
this.TxtRunPram.TabIndex = 5;
this.TxtRunPram.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtRunPram.ToolTip = "";
this.TxtRunPram.WordWrap = 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)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.BtnCancel.ColorGradient = true;
this.BtnCancel.Location = new System.Drawing.Point(586, 576);
this.BtnCancel.Name = "BtnCancel";
this.BtnCancel.Size = new System.Drawing.Size(75, 27);
this.BtnCancel.TabIndex = 8;
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)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.BtnOK.ColorGradient = true;
this.BtnOK.Location = new System.Drawing.Point(505, 576);
this.BtnOK.Name = "BtnOK";
this.BtnOK.Size = new System.Drawing.Size(75, 27);
this.BtnOK.TabIndex = 7;
this.BtnOK.Text = "确定";
this.BtnOK.UseVisualStyleBackColor = true;
this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click);
//
// PicImg
//
this.PicImg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.PicImg.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.PicImg.ContextMenuStrip = this.contextMenuStrip1;
this.PicImg.Cursor = System.Windows.Forms.Cursors.Hand;
this.PicImg.Location = new System.Drawing.Point(576, 36);
this.PicImg.Name = "PicImg";
this.PicImg.Size = new System.Drawing.Size(86, 86);
this.PicImg.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.PicImg.TabIndex = 6;
this.PicImg.TabStop = false;
this.PicImg.Click += new System.EventHandler(this.PicImg_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 38);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(41, 12);
this.label1.TabIndex = 1;
this.label1.Text = "软件名";
//
// TxtName
//
this.TxtName.BackColor = System.Drawing.Color.White;
this.TxtName.EmptyText = "";
this.TxtName.Location = new System.Drawing.Point(57, 35);
this.TxtName.MaxLength = 999999999;
this.TxtName.Multiline = false;
this.TxtName.Name = "TxtName";
this.TxtName.OnlyNumeric = false;
this.TxtName.PasswordChar = '\0';
this.TxtName.ReadOnly = false;
this.TxtName.SelectedText = "";
this.TxtName.SelectionLength = 0;
this.TxtName.SelectionStart = 0;
this.TxtName.Size = new System.Drawing.Size(175, 22);
this.TxtName.TabIndex = 0;
this.TxtName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtName.ToolTip = "";
this.TxtName.WordWrap = true;
//
// FrmAddSoft
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(671, 615);
this.Controls.Add(this.TxtCmdId);
this.Controls.Add(this.label6);
this.Controls.Add(this.LblCustomImg);
this.Controls.Add(this.TxtDes);
this.Controls.Add(this.label4);
this.Controls.Add(this.chromeTabControl1);
this.Controls.Add(this.BtnCancel);
this.Controls.Add(this.BtnOK);
this.Controls.Add(this.PicImg);
this.Controls.Add(this.label1);
this.Controls.Add(this.TxtName);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmAddSoft";
this.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "添加软件";
this.Load += new System.EventHandler(this.FrmAddSoft_Load);
this.contextMenuStrip1.ResumeLayout(false);
this.chromeTabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.PicImg)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
@ -445,6 +467,8 @@
private System.Windows.Forms.CheckBox ChkRunAsAdmin;
private System.Windows.Forms.Label label6;
private ryControls.TextBoxEx2 TxtCmdId;
private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.Label label7;
public ryControls.HotkeyTextBox hotkeyTextBox1;
}
}

View File

@ -65,6 +65,7 @@ namespace VSoft
TxtPath.Text = reader["Path"].ToString();
TxtRunPram.Text = reader["RunPram"].ToString();
TxtStartPath.Text = reader["StartPath"].ToString();
hotkeyTextBox1.HotKey = reader["Hotkey"].ToString();
Json json = new Json(reader["SetJson"].ToString());
ChkRunAsAdmin.Checked = json.GetJsonValue("RunAsAdmin", false);
var _IconPath = reader["IconPath"].ToString();
@ -84,7 +85,10 @@ namespace VSoft
}
db.Free();
}
/// <summary>
/// 当前操作的id
/// </summary>
public int Op_Id { get; set; } = -1;
private void BtnOK_Click(object sender, EventArgs e)
{
if (TxtName.Text.Length == 0)
@ -126,6 +130,26 @@ namespace VSoft
}
ds.Dispose();
}
if (hotkeyTextBox1.HaveHotKey)
{
var ds_soft = db.ReadData("select * from " + tableName + " where Hotkey='" + hotkeyTextBox1.HotKey + "' and id<>" + SelectId + " limit 1");
var ds_type = db.ReadData("select * from Columns where Hotkey='" + hotkeyTextBox1.HotKey + "' limit 1");
if (mydb.HaveData(ds_soft) || ds_type.HaveData())
{
Msg.ShowMsg("当前热键已经存在,请更换热键。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
ds_soft.Dispose(); ds_type.Dispose(); return;
}
else
{
if(Config.Soft_Config.IsHotKeyExistInList(hotkeyTextBox1.HotKey)>=0)
{
Msg.ShowMsg("当前热键已经存在,请更换热键。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
ds_soft.Dispose(); ds_type.Dispose(); return;
}
}
ds_soft.Dispose();
ds_type.Dispose();
}
RyQuickSQL mySQL = new RyQuickSQL(tableName);
mySQL.AddField("Name", TxtName.Text);
mySQL.AddField("CmdId", TxtCmdId.Text);
@ -136,7 +160,8 @@ namespace VSoft
Json json = new Json("");
json.Add("RunAsAdmin", ChkRunAsAdmin.Checked);
mySQL.AddField("SetJson", json.Text);//设置
mySQL.AddField("Des", TxtDes.Text);//备注
mySQL.AddField("Des", TxtDes.Text);//备注
mySQL.AddField("Hotkey", hotkeyTextBox1.HaveHotKey?hotkeyTextBox1.HotKey:"");//快捷键
mySQL.AddField("Pinyin", ryCommon.PinYin.Convert(TxtName.Text) + "\r\n" + ryCommon.PinYin.ConvertFirstPY(TxtName.Text));
mySQL.AddField("editTime", DateTime.Now);
if (IsAdd >= 1)
@ -146,11 +171,17 @@ namespace VSoft
mySQL.AddField("ColumnId",ColumnId);
mySQL.AddField("sortindex",Itrycn_Db.GetSoftCount(db, ColumnId) + 1);
mySQL.AddField("addTime", DateTime.Now);
db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
var ds= db.ReadData(mySQL.GetInsertSQL()+";select last_insert_rowid();", mySQL);
if (ds.HaveData())
{
Op_Id = ds.GetFirstRowCellValue();
}
ds.Dispose();
}
else
{
db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + SelectId, mySQL);
Op_Id = SelectId;
}
}
db.Free();

View File

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

View File

@ -28,117 +28,142 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAddType));
this.label2 = new System.Windows.Forms.Label();
this.TxtDes = new ryControls.TextBoxEx2();
this.label1 = new System.Windows.Forms.Label();
this.TxtName = new ryControls.TextBoxEx2();
this.BtnCancel = new ryControls.ButtonEx();
this.BtnOK = new ryControls.ButtonEx();
this.SuspendLayout();
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(12, 81);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(29, 12);
this.label2.TabIndex = 16;
this.label2.Text = "备注";
//
// TxtDes
//
this.TxtDes.BackColor = System.Drawing.Color.White;
this.TxtDes.EmptyText = "";
this.TxtDes.Location = new System.Drawing.Point(12, 101);
this.TxtDes.MaxLength = 999999999;
this.TxtDes.Multiline = false;
this.TxtDes.Name = "TxtDes";
this.TxtDes.OnlyNumeric = false;
this.TxtDes.PasswordChar = '\0';
this.TxtDes.ReadOnly = false;
this.TxtDes.SelectedText = "";
this.TxtDes.SelectionLength = 0;
this.TxtDes.SelectionStart = 0;
this.TxtDes.Size = new System.Drawing.Size(327, 22);
this.TxtDes.TabIndex = 15;
this.TxtDes.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtDes.ToolTip = "";
this.TxtDes.WordWrap = true;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 34);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(29, 12);
this.label1.TabIndex = 12;
this.label1.Text = "名称";
//
// TxtName
//
this.TxtName.BackColor = System.Drawing.Color.White;
this.TxtName.EmptyText = "";
this.TxtName.Location = new System.Drawing.Point(12, 54);
this.TxtName.MaxLength = 999999999;
this.TxtName.Multiline = false;
this.TxtName.Name = "TxtName";
this.TxtName.OnlyNumeric = false;
this.TxtName.PasswordChar = '\0';
this.TxtName.ReadOnly = false;
this.TxtName.SelectedText = "";
this.TxtName.SelectionLength = 0;
this.TxtName.SelectionStart = 0;
this.TxtName.Size = new System.Drawing.Size(327, 22);
this.TxtName.TabIndex = 11;
this.TxtName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtName.ToolTip = "";
this.TxtName.WordWrap = 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(264, 128);
this.BtnCancel.Name = "BtnCancel";
this.BtnCancel.Size = new System.Drawing.Size(75, 27);
this.BtnCancel.TabIndex = 10;
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(183, 128);
this.BtnOK.Name = "BtnOK";
this.BtnOK.Size = new System.Drawing.Size(75, 27);
this.BtnOK.TabIndex = 9;
this.BtnOK.Text = "确定";
this.BtnOK.UseVisualStyleBackColor = true;
this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click);
//
// FrmAddType
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(350, 162);
this.Controls.Add(this.label2);
this.Controls.Add(this.TxtDes);
this.Controls.Add(this.label1);
this.Controls.Add(this.TxtName);
this.Controls.Add(this.BtnCancel);
this.Controls.Add(this.BtnOK);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "FrmAddType";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "添加分类";
this.ResumeLayout(false);
this.PerformLayout();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAddType));
this.label2 = new System.Windows.Forms.Label();
this.TxtDes = new ryControls.TextBoxEx2();
this.label1 = new System.Windows.Forms.Label();
this.TxtName = new ryControls.TextBoxEx2();
this.BtnCancel = new ryControls.ButtonEx();
this.BtnOK = new ryControls.ButtonEx();
this.label7 = new System.Windows.Forms.Label();
this.hotkeyTextBox1 = new ryControls.HotkeyTextBox();
this.SuspendLayout();
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(12, 77);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(29, 12);
this.label2.TabIndex = 16;
this.label2.Text = "备注";
//
// TxtDes
//
this.TxtDes.BackColor = System.Drawing.Color.White;
this.TxtDes.EmptyText = "";
this.TxtDes.Location = new System.Drawing.Point(12, 95);
this.TxtDes.MaxLength = 999999999;
this.TxtDes.Multiline = false;
this.TxtDes.Name = "TxtDes";
this.TxtDes.OnlyNumeric = false;
this.TxtDes.PasswordChar = '\0';
this.TxtDes.ReadOnly = false;
this.TxtDes.SelectedText = "";
this.TxtDes.SelectionLength = 0;
this.TxtDes.SelectionStart = 0;
this.TxtDes.Size = new System.Drawing.Size(327, 22);
this.TxtDes.TabIndex = 15;
this.TxtDes.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtDes.ToolTip = "";
this.TxtDes.WordWrap = true;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 34);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(29, 12);
this.label1.TabIndex = 12;
this.label1.Text = "名称";
//
// TxtName
//
this.TxtName.BackColor = System.Drawing.Color.White;
this.TxtName.EmptyText = "";
this.TxtName.Location = new System.Drawing.Point(12, 50);
this.TxtName.MaxLength = 999999999;
this.TxtName.Multiline = false;
this.TxtName.Name = "TxtName";
this.TxtName.OnlyNumeric = false;
this.TxtName.PasswordChar = '\0';
this.TxtName.ReadOnly = false;
this.TxtName.SelectedText = "";
this.TxtName.SelectionLength = 0;
this.TxtName.SelectionStart = 0;
this.TxtName.Size = new System.Drawing.Size(327, 22);
this.TxtName.TabIndex = 11;
this.TxtName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtName.ToolTip = "";
this.TxtName.WordWrap = 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)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.BtnCancel.ColorGradient = true;
this.BtnCancel.Location = new System.Drawing.Point(263, 180);
this.BtnCancel.Name = "BtnCancel";
this.BtnCancel.Size = new System.Drawing.Size(75, 27);
this.BtnCancel.TabIndex = 10;
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)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.BtnOK.ColorGradient = true;
this.BtnOK.Location = new System.Drawing.Point(182, 180);
this.BtnOK.Name = "BtnOK";
this.BtnOK.Size = new System.Drawing.Size(75, 27);
this.BtnOK.TabIndex = 9;
this.BtnOK.Text = "确定";
this.BtnOK.UseVisualStyleBackColor = true;
this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click);
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(12, 121);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(53, 12);
this.label7.TabIndex = 18;
this.label7.Text = "运行热键";
//
// hotkeyTextBox1
//
this.hotkeyTextBox1.BackColor = System.Drawing.Color.White;
this.hotkeyTextBox1.HotKey = "0+0";
this.hotkeyTextBox1.Location = new System.Drawing.Point(12, 140);
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 = 17;
//
// FrmAddType
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(349, 214);
this.Controls.Add(this.label7);
this.Controls.Add(this.hotkeyTextBox1);
this.Controls.Add(this.label2);
this.Controls.Add(this.TxtDes);
this.Controls.Add(this.label1);
this.Controls.Add(this.TxtName);
this.Controls.Add(this.BtnCancel);
this.Controls.Add(this.BtnOK);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "FrmAddType";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "添加分类";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
@ -148,6 +173,8 @@
private System.Windows.Forms.Label label1;
public ryControls.TextBoxEx2 TxtName;
private System.Windows.Forms.Label label2;
public ryControls.TextBoxEx2 TxtDes;
public ryControls.TextBoxEx2 TxtDes;
private System.Windows.Forms.Label label7;
public ryControls.HotkeyTextBox hotkeyTextBox1;
}
}

View File

@ -1,81 +1,114 @@
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using VSoft.Prams;
namespace VSoft
{
public partial class FrmAddType : Skins.SKinForm
{
public string SQLConnStr { get; set; } = Itrycn_Db.SQLConnStr;
public FrmAddType()
{
InitializeComponent();
}
public string tableName = "Columns";
public int IsAdd { get; set; } = 1;
public int SelectId { get; set; } = -1;
public int ParentId { get; set; } = -1;
public void GetInfo(int id)
{
SelectId = id;
Text = "修改分类";
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1)
{
DataSet ds = db.ReadData(tableName, id.ToString());
if (mydb.HaveData(ds))
{
DataRow reader = ds.Tables[0].Rows[0];
#region
TxtName.Text = reader["Name"].ToString();
TxtDes.Text = reader["Des"].ToString();
#endregion
}
ds.Dispose();
}
db.Free();
}
private void BtnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
private void BtnOK_Click(object sender, EventArgs e)
{
if (TxtName.Text.Length == 0)
{
Msg.ShowMsg("名称不能为空。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
RyQuickSQL mySQL = new RyQuickSQL(tableName);
mySQL.AddField("Name", TxtName.Text);
mySQL.AddField("Des", TxtDes.Text);
mySQL.AddField("editTime", DateTime.Now);
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1)
{
if (IsAdd >= 1)
{
mySQL.AddField("sortindex", Itrycn_Db.GetColumnCount(db, ParentId) + 1);
mySQL.AddField("parentId", ParentId);
mySQL.AddField("addTime", DateTime.Now);
db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
}
else
{
db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + SelectId, mySQL);
}
}
db.Free();
DialogResult = DialogResult.OK;
}
}
}
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using VSoft.Prams;
namespace VSoft
{
public partial class FrmAddType : Skins.SKinForm
{
public string SQLConnStr { get; set; } = Itrycn_Db.SQLConnStr;
public FrmAddType()
{
InitializeComponent();
}
public string tableName = "Columns";
public int IsAdd { get; set; } = 1;
public int SelectId { get; set; } = -1;
public int ParentId { get; set; } = -1;
/// <summary>
/// 当前操作的id
/// </summary>
public int Op_Id { get; set; } = -1;
public void GetInfo(int id)
{
SelectId = id;
Text = "修改分类";
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1)
{
DataSet ds = db.ReadData(tableName, id.ToString());
if (mydb.HaveData(ds))
{
DataRow reader = ds.Tables[0].Rows[0];
#region
TxtName.Text = reader["Name"].ToString();
TxtDes.Text = reader["Des"].ToString();
hotkeyTextBox1.HotKey = reader["Hotkey"].ToString();
#endregion
}
ds.Dispose();
}
db.Free();
}
private void BtnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
private void BtnOK_Click(object sender, EventArgs e)
{
if (TxtName.Text.Length == 0)
{
Msg.ShowMsg("名称不能为空。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
RyQuickSQL mySQL = new RyQuickSQL(tableName);
mySQL.AddField("Name", TxtName.Text);
mySQL.AddField("Des", TxtDes.Text);
mySQL.AddField("Hotkey", hotkeyTextBox1.HaveHotKey ? hotkeyTextBox1.HotKey : "");//快捷键
mySQL.AddField("editTime", DateTime.Now);
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1)
{
if (hotkeyTextBox1.HaveHotKey)
{
var ds_type = db.ReadData("select * from " + tableName + " where Hotkey='" + hotkeyTextBox1.HotKey + "' and id<>" + SelectId + " limit 1");
var ds_soft = db.ReadData("select * from Softs where Hotkey='" + hotkeyTextBox1.HotKey + "' limit 1");
if (ds_soft.HaveData() || ds_type.HaveData())
{
Msg.ShowMsg("当前热键已经存在,请更换热键。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
ds_soft.Dispose(); ds_type.Dispose(); return;
}
else
{
if (Config.Soft_Config.IsHotKeyExistInList(hotkeyTextBox1.HotKey) >= 0)
{
Msg.ShowMsg("当前热键已经存在,请更换热键。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
ds_soft.Dispose(); ds_type.Dispose(); return;
}
}
ds_soft.Dispose();
ds_type.Dispose();
}
if (IsAdd >= 1)
{
mySQL.AddField("sortindex", Itrycn_Db.GetColumnCount(db, ParentId) + 1);
mySQL.AddField("parentId", ParentId);
mySQL.AddField("addTime", DateTime.Now);
var ds = db.ReadData(mySQL.GetInsertSQL() + ";select last_insert_rowid();", mySQL);
if (ds.HaveData())
{
Op_Id = ds.GetFirstRowCellValue();
}
ds.Dispose();
}
else
{
db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + SelectId, mySQL);
Op_Id = SelectId;
}
}
db.Free();
DialogResult = DialogResult.OK;
}
}
}

View File

@ -1,167 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAGBgAAAEAIACICQAAFgAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAA
AAAAAAAUAAAAagAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAA
AI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACNAAAAVAAAAAgAAABOAAAA5AAAAPkAAAD4AAAA+AAA
APgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAA
APgAAAD6AAAAywAAACYBAQFrAQEB+wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEB
Af8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB6gEBATgDAwNrBAQE+gQE
BP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQE
BP8EBAT/BAQE/wQEBP8EBAT/BAQE6gMDAzgGBgZrBwcH+gcHCP8HBwj/BwcI/wcHCP8HBwf/BQUF/wQE
BP8EBAT/BAQE/wYGBv8HBwj/BwcI/wcHCP8HBwj/BwcI/wcHCP8HBwj/BwcI/wcHCP8HBwj/BwcH6gUF
BTgICAlrCwsL+gsLC/8LCwv/CwsL/wsLC/8NDQ3/Li4v/zc3N/83Nzf/Nzc3/yAgIP8KCgr/CwsL/wsL
C/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CgoL6gcHBzgLCwxrDw8P+g8PD/8PDw//Dw8P/w0N
Df8qKiv/n5+f/66urv+tra3/r6+v/3l5ef8RERH/Dg4P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8P
D/8PDw//Dg4O6gkJCjgPDw9rExMU+hMTFP8TExT/ExMU/xAQEf9fX1//u7u7/76+vv+/v7//vb29/6mp
qf8uLi//ERES/xMTFP8TExT/ExMU/xMTFP8TExT/ExMU/xMTFP8TExT/EhIT6gwMDDgSEhNrFxcY+hcX
GP8XFxj/FxcY/x8fIP+ZmZn/ycnJ/87Ozv/Q0ND/zMzM/8XFxf9kZGT/FBQV/xgYGf8XFxj/FxcY/xcX
GP8XFxj/FxcY/xcXGP8YGBn/FhYX6g8PDzgWFhZrHBwd+h0dHf8dHR3/GRka/0ZGR//CwsL/1NTU/9zc
3P/e3t7/2dnZ/9LS0v+enp7/IyMk/xwcHf8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/Gxsc6hIS
EzgZGRprICAh+iEhIv8hISL/Hh4f/4CAgP/U1NT/3t7e/+Xl5f/o6Oj/4+Pj/9ra2v/Fxcb/SUlK/x4e
H/8hISL/ISEi/yEhIv8hISL/ISEi/yEhIv8hISL/Hx8h6hUVFjgdHR5rJSUn+iYmJ/8kJCb/NDQ1/7W1
tf/c3Nz/5eXl/+Dg4P/Fxcb/6enp/+Hh4f/Y2Nj/goKD/yMjJP8mJif/JiYn/yYmJ/8mJij/JiYo/yYm
J/8mJif/JCQm6hgYGTghISJrKyss+iwsLf8nJyj/YmJj/9TU1P/i4uL/7Ozs/729vf9ra2v/4+Pj/+jo
6P/f39//t7e3/zg4Of8qKiv/Kyst/ycnKP8hISL/IyMk/yoqK/8sLC3/Kior6hsbHDglJSZrLy8w+i8v
Mf8vLzD/nJyd/+Dg4P/p6en/7u7u/4aGh/84ODn/wcHB/+7u7v/l5eX/1tbW/2VlZf8rKy3/LCwt/0BA
Qf9ubm//X19f/zAwMf8vLzD/Li4v6h4eHzgoKClrMzM1+jIyNP9MTE3/ysrK/+fn5//u7u7/29vb/1RU
Vf8vLzH/iYmK/+/v7//s7Oz/4+Pj/56en/8yMjP/QkJD/6qqqv/Kysr/x8fG/3t7fP8yMjT/MjI06iEh
IjgsLC1rODg6+jQ0Nv9+foD/4eHh/+3t7f/09PP/sLCx/zw8Pv83Nzn/WFha/93d3v/y8vL/6enp/83N
zv9MTE7/Xl5g/8/Pz//V1dX/1tbW/6qqqv89PT//NjY56iQkJTgvLzFrPDw++kRERf+3t7f/6urq//Pz
8//v7+//enp7/zs7Pf89PT//QUFC/7OztP/29vb/8PDw/+bm5v+FhYX/S0tN/7y8vP/l5eX/3t7e/4mJ
iv89PT//Ozs96icnKDgyMjRrQEBC+k1NT/9+fn//iYmK/42Njv+FhYb/Tk5Q/0FBQ/9CQkT/QEBC/2Rk
Zf+NjY7/i4uM/4iIif9wcHH/QkJE/1paXP+FhYb/d3d4/0lJS/9BQUP/Pz9B6ioqKzg2NjdrRUVH+kVF
SP9DQ0X/QkJF/0JCRf9DQ0X/RUVH/0ZGSP9GRkj/RkZI/0RERv9CQkX/QkJF/0JCRf9EREb/RkZI/0RE
R/9CQkX/Q0NF/0VFSP9GRkj/Q0NF6iwsLTg5OTprSEhL+kpKTP9KSkz/SkpM/0pKTP9KSkz/SUlM/0lJ
TP9JSUz/SUlM/0pKTP9KSkz/SkpM/0pKTP9KSkz/SUlM/0lJTP9KSkz/SkpM/0lJTP9KSkz/R0dJ6i4u
MDg7Oz1rS0tN+k1NT/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//TU1P/01N
T/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//SkpM6jExMjg/P0FoTk5R+09PUv9PT1L/T09S/09P
Uv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09P
Uv9PT1L/TExP6jQ0NjZMTE9AVlZZ31VVWPlVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVV
WPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVn6VlZZw0RERRxgYGIFcXF1PW1t
cVpsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxs
cFlsbHBZbGxwWWxscFltbXJZcHBzLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA=
</value>
</data>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAGBgAAAEAIACICQAAFgAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAA
AAAAAAAUAAAAagAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAA
AI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACNAAAAVAAAAAgAAABOAAAA5AAAAPkAAAD4AAAA+AAA
APgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAA
APgAAAD6AAAAywAAACYBAQFrAQEB+wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEB
Af8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB6gEBATgDAwNrBAQE+gQE
BP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQE
BP8EBAT/BAQE/wQEBP8EBAT/BAQE6gMDAzgGBgZrBwcH+gcHCP8HBwj/BwcI/wcHCP8HBwf/BQUF/wQE
BP8EBAT/BAQE/wYGBv8HBwj/BwcI/wcHCP8HBwj/BwcI/wcHCP8HBwj/BwcI/wcHCP8HBwj/BwcH6gUF
BTgICAlrCwsL+gsLC/8LCwv/CwsL/wsLC/8NDQ3/Li4v/zc3N/83Nzf/Nzc3/yAgIP8KCgr/CwsL/wsL
C/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CgoL6gcHBzgLCwxrDw8P+g8PD/8PDw//Dw8P/w0N
Df8qKiv/n5+f/66urv+tra3/r6+v/3l5ef8RERH/Dg4P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8P
D/8PDw//Dg4O6gkJCjgPDw9rExMU+hMTFP8TExT/ExMU/xAQEf9fX1//u7u7/76+vv+/v7//vb29/6mp
qf8uLi//ERES/xMTFP8TExT/ExMU/xMTFP8TExT/ExMU/xMTFP8TExT/EhIT6gwMDDgSEhNrFxcY+hcX
GP8XFxj/FxcY/x8fIP+ZmZn/ycnJ/87Ozv/Q0ND/zMzM/8XFxf9kZGT/FBQV/xgYGf8XFxj/FxcY/xcX
GP8XFxj/FxcY/xcXGP8YGBn/FhYX6g8PDzgWFhZrHBwd+h0dHf8dHR3/GRka/0ZGR//CwsL/1NTU/9zc
3P/e3t7/2dnZ/9LS0v+enp7/IyMk/xwcHf8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/Gxsc6hIS
EzgZGRprICAh+iEhIv8hISL/Hh4f/4CAgP/U1NT/3t7e/+Xl5f/o6Oj/4+Pj/9ra2v/Fxcb/SUlK/x4e
H/8hISL/ISEi/yEhIv8hISL/ISEi/yEhIv8hISL/Hx8h6hUVFjgdHR5rJSUn+iYmJ/8kJCb/NDQ1/7W1
tf/c3Nz/5eXl/+Dg4P/Fxcb/6enp/+Hh4f/Y2Nj/goKD/yMjJP8mJif/JiYn/yYmJ/8mJij/JiYo/yYm
J/8mJif/JCQm6hgYGTghISJrKyss+iwsLf8nJyj/YmJj/9TU1P/i4uL/7Ozs/729vf9ra2v/4+Pj/+jo
6P/f39//t7e3/zg4Of8qKiv/Kyst/ycnKP8hISL/IyMk/yoqK/8sLC3/Kior6hsbHDglJSZrLy8w+i8v
Mf8vLzD/nJyd/+Dg4P/p6en/7u7u/4aGh/84ODn/wcHB/+7u7v/l5eX/1tbW/2VlZf8rKy3/LCwt/0BA
Qf9ubm//X19f/zAwMf8vLzD/Li4v6h4eHzgoKClrMzM1+jIyNP9MTE3/ysrK/+fn5//u7u7/29vb/1RU
Vf8vLzH/iYmK/+/v7//s7Oz/4+Pj/56en/8yMjP/QkJD/6qqqv/Kysr/x8fG/3t7fP8yMjT/MjI06iEh
IjgsLC1rODg6+jQ0Nv9+foD/4eHh/+3t7f/09PP/sLCx/zw8Pv83Nzn/WFha/93d3v/y8vL/6enp/83N
zv9MTE7/Xl5g/8/Pz//V1dX/1tbW/6qqqv89PT//NjY56iQkJTgvLzFrPDw++kRERf+3t7f/6urq//Pz
8//v7+//enp7/zs7Pf89PT//QUFC/7OztP/29vb/8PDw/+bm5v+FhYX/S0tN/7y8vP/l5eX/3t7e/4mJ
iv89PT//Ozs96icnKDgyMjRrQEBC+k1NT/9+fn//iYmK/42Njv+FhYb/Tk5Q/0FBQ/9CQkT/QEBC/2Rk
Zf+NjY7/i4uM/4iIif9wcHH/QkJE/1paXP+FhYb/d3d4/0lJS/9BQUP/Pz9B6ioqKzg2NjdrRUVH+kVF
SP9DQ0X/QkJF/0JCRf9DQ0X/RUVH/0ZGSP9GRkj/RkZI/0RERv9CQkX/QkJF/0JCRf9EREb/RkZI/0RE
R/9CQkX/Q0NF/0VFSP9GRkj/Q0NF6iwsLTg5OTprSEhL+kpKTP9KSkz/SkpM/0pKTP9KSkz/SUlM/0lJ
TP9JSUz/SUlM/0pKTP9KSkz/SkpM/0pKTP9KSkz/SUlM/0lJTP9KSkz/SkpM/0lJTP9KSkz/R0dJ6i4u
MDg7Oz1rS0tN+k1NT/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//TU1P/01N
T/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//SkpM6jExMjg/P0FoTk5R+09PUv9PT1L/T09S/09P
Uv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09P
Uv9PT1L/TExP6jQ0NjZMTE9AVlZZ31VVWPlVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVV
WPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVn6VlZZw0RERRxgYGIFcXF1PW1t
cVpsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxs
cFlsbHBZbGxwWWxscFltbXJZcHBzLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA=
</value>
</data>
</root>

View File

@ -78,7 +78,7 @@
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(587, 417);
this.panelEx1.Size = new System.Drawing.Size(730, 474);
this.panelEx1.TabIndex = 1;
this.panelEx1.TileBackColor = System.Drawing.Color.White;
//
@ -106,7 +106,7 @@
this.IconViewEx1.SelectedForeColor = System.Drawing.Color.Black;
this.IconViewEx1.SelectedStartBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(251)))), ((int)(((byte)(237)))));
this.IconViewEx1.ShowItemToolTips = true;
this.IconViewEx1.Size = new System.Drawing.Size(581, 381);
this.IconViewEx1.Size = new System.Drawing.Size(724, 438);
this.IconViewEx1.TabIndex = 0;
this.IconViewEx1.TextHeight = 20;
this.IconViewEx1.TileSize = new System.Drawing.Size(90, 90);
@ -192,7 +192,7 @@
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(3, 3);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(581, 30);
this.panel1.Size = new System.Drawing.Size(724, 30);
this.panel1.TabIndex = 1;
this.panel1.Visible = false;
//
@ -222,7 +222,7 @@
//
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(649, 65);
this.BtnAddColumn.Location = new System.Drawing.Point(792, 65);
this.BtnAddColumn.Name = "BtnAddColumn";
this.BtnAddColumn.Size = new System.Drawing.Size(27, 28);
this.BtnAddColumn.TabIndex = 3;
@ -323,7 +323,7 @@
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(83, 414);
this.TabList_Type.Size = new System.Drawing.Size(83, 471);
this.TabList_Type.TabIndex = 4;
this.TabList_Type.TileSize = new System.Drawing.Size(80, 28);
this.TabList_Type.UseCompatibleStateImageBehavior = false;
@ -361,7 +361,7 @@
this.TabList_Column.SelectedEndBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(236)))), ((int)(((byte)(181)))));
this.TabList_Column.SelectedForeColor = System.Drawing.Color.Black;
this.TabList_Column.SelectedStartBackColor = System.Drawing.Color.LightSkyBlue;
this.TabList_Column.Size = new System.Drawing.Size(556, 29);
this.TabList_Column.Size = new System.Drawing.Size(699, 29);
this.TabList_Column.TabIndex = 1;
this.TabList_Column.TileSize = new System.Drawing.Size(70, 28);
this.TabList_Column.UseCompatibleStateImageBehavior = false;
@ -377,7 +377,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(689, 529);
this.ClientSize = new System.Drawing.Size(832, 586);
this.Controls.Add(this.LblDrag);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.TabList_Type);

View File

@ -199,6 +199,8 @@ namespace VSoft
private void FrmVSoft_Load(object sender, EventArgs e)
{
Config.Soft_Info.UserDataFolder = ryCommon.RyFiles.GetRealPath(Config.Soft_Info.UserDataFolder);
Itrycn_Db.SQLConnStr = Config.Soft_Info.UserDataFolder + "\\Softs.dat|";
Itrycn_Db.SQLConnStr_Logs = Config.Soft_Info.UserDataFolder + "\\logs.dat|";
VSoft.Prams.Itrycn_Db.CreateTable();
VSoft.Config.Soft_Config.LoadSetting();
LoadColumn();
@ -528,6 +530,7 @@ namespace VSoft
ColumnId = ColumnId,
TopMost=TopMost
};
frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK)
{
LoadDb();
@ -546,6 +549,7 @@ namespace VSoft
TopMost=TopMost
};
frm.GetInfo(info.Id);
frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK)
{
SetSoftRow(info.Id, IconViewEx1.SelectedItems[0].Index);

View File

@ -136,7 +136,7 @@
<data name="IconViewEx1.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
EwAACxMBAJqcGAAABvRJREFUeF7tnE2IHEUUxwcjIjkE1JMREnMWD7phd7uzfuBJEPSkd0+55BLQc9ds
DwAACw8BkvkDpQAABvRJREFUeF7tnE2IHEUUxwcjIjkE1JMREnMWD7phd7uzfuBJEPSkd0+55BLQc9ds
ooIXT+bix8kgbtSYgxA1hsWLImLAPYTEXBRUNGiMEojpnpTvdWpIT2/Nm+6e7uqerv+DH0tPVfVs7/t1
ffTHDopEoPS9QTQ6FKrkbKjiC/TzCqFBp6CcpLk5G6h4GK7rYKD0HSaF1WL5iN4XqOR4ECU3cl8GFoAg
ii8eWNePmXQWjyWld4ZRcox2kuR3ChYPOonfeVLpu0165TgQ6d3UlWzZdgQWF+oNvufcmjTbIzyq99KZ
@ -188,7 +188,7 @@
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAFAAAAA8CAYAAADxJz2MAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAu
IwAALiMBeKU/dgAABJxJREFUeF7tmM1tGzEQhX3OIYDvObkFt6ACcnELbkFIBVEJcQtqQYc0ICBpwC24
IgAALiIBquLdkgAABJxJREFUeF7tmM1tGzEQhX3OIYDvObkFt6ACcnELbkFIBVEJcQtqQYc0ICBpwC24
BeW9zcxiyB2Rsz/6WYMDfIA05JIzs49c7j6cTqfGDFxnI47rbMRxnY04rrMRx3U24rjORhzX2YjjOhtx
XGcjzk3ty5+fe3AAr15wa+BmxqKBk+GdPi/Ie+ZmhmIdTfHyQj57wd4jNzEUaGMK5tEKWDIUiPueVzhy
8AK9V65uKFBNfRsv0Hvl6oYCldT37gV5z2hSj2ALPiSR7f+WZQ3jPsn451jfUxhB28Ip/P8oeS9mGPPN

View File

@ -52,7 +52,6 @@
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.Menu修改分类 = new System.Windows.Forms.ToolStripMenuItem();
this.Menu删除分类 = new System.Windows.Forms.ToolStripMenuItem();
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);
@ -153,7 +152,7 @@
//
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(685, 36);
this.BtnAddColumn.Location = new System.Drawing.Point(681, 36);
this.BtnAddColumn.Name = "BtnAddColumn";
this.BtnAddColumn.Size = new System.Drawing.Size(27, 28);
this.BtnAddColumn.TabIndex = 3;
@ -222,15 +221,6 @@
this.Menu删除分类.Text = "删除分类";
this.Menu删除分类.Click += new System.EventHandler(this.Menu删除分类_Click);
//
// LblDrag
//
this.LblDrag.BackColor = System.Drawing.Color.Black;
this.LblDrag.Location = new System.Drawing.Point(123, 54);
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;
@ -297,7 +287,7 @@
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.White;
this.LblSetting.Location = new System.Drawing.Point(580, 9);
this.LblSetting.Location = new System.Drawing.Point(576, 9);
this.LblSetting.Name = "LblSetting";
this.LblSetting.Size = new System.Drawing.Size(29, 12);
this.LblSetting.TabIndex = 7;
@ -311,7 +301,7 @@
this.PnlLeft.Dock = System.Windows.Forms.DockStyle.Left;
this.PnlLeft.Location = new System.Drawing.Point(2, 32);
this.PnlLeft.Name = "PnlLeft";
this.PnlLeft.Size = new System.Drawing.Size(81, 497);
this.PnlLeft.Size = new System.Drawing.Size(81, 509);
this.PnlLeft.TabIndex = 8;
//
// TabList_Type
@ -340,7 +330,7 @@
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, 394);
this.TabList_Type.Size = new System.Drawing.Size(77, 406);
this.TabList_Type.TabIndex = 4;
this.TabList_Type.TileSize = new System.Drawing.Size(77, 28);
this.TabList_Type.UseCompatibleStateImageBehavior = false;
@ -364,12 +354,12 @@
this.rySearch1.ButtonRoundBackColor = System.Drawing.SystemColors.Control;
this.rySearch1.ColorGradient = true;
this.rySearch1.EmptyText = "输入名称或拼音搜索";
this.rySearch1.Location = new System.Drawing.Point(537, 36);
this.rySearch1.Location = new System.Drawing.Point(533, 36);
this.rySearch1.Name = "rySearch1";
this.rySearch1.Size = new System.Drawing.Size(142, 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);
this.rySearch1.OnSearch += new System.EventHandler(this.RySearch1_OnSearch);
this.rySearch1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.RySearch1_KeyDown);
//
// panelEx1
//
@ -378,17 +368,16 @@
| 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.LblDrag);
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(628, 462);
this.panelEx1.Size = new System.Drawing.Size(656, 473);
this.panelEx1.TabIndex = 1;
this.panelEx1.TileBackColor = System.Drawing.Color.White;
this.panelEx1.Resize += new System.EventHandler(this.panelEx1_Resize);
this.panelEx1.Resize += new System.EventHandler(this.PanelEx1_Resize);
//
// LblEmpty
//
@ -426,7 +415,8 @@
this.IconViewEx1.SelectedEndBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(236)))), ((int)(((byte)(181)))));
this.IconViewEx1.SelectedForeColor = System.Drawing.Color.Black;
this.IconViewEx1.SelectedStartBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(251)))), ((int)(((byte)(237)))));
this.IconViewEx1.Size = new System.Drawing.Size(622, 456);
this.IconViewEx1.ShowGroups = false;
this.IconViewEx1.Size = new System.Drawing.Size(650, 467);
this.IconViewEx1.TabIndex = 0;
this.IconViewEx1.TextHeight = 20;
this.IconViewEx1.TileSize = new System.Drawing.Size(100, 100);
@ -439,6 +429,7 @@
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.MouseMove += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseMove);
this.IconViewEx1.Resize += new System.EventHandler(this.IconViewEx1_Resize);
//
// TabList_Column
@ -464,7 +455,7 @@
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(450, 29);
this.TabList_Column.Size = new System.Drawing.Size(446, 29);
this.TabList_Column.TabIndex = 1;
this.TabList_Column.TileSize = new System.Drawing.Size(70, 30);
this.TabList_Column.UseCompatibleStateImageBehavior = false;
@ -483,7 +474,7 @@
this.BackColor = System.Drawing.Color.White;
this.BorderWidth = 2;
this.CaptionHeight = 30;
this.ClientSize = new System.Drawing.Size(717, 531);
this.ClientSize = new System.Drawing.Size(745, 543);
this.ControlBoxOffset = new System.Drawing.Point(8, 8);
this.Controls.Add(this.rySearch1);
this.Controls.Add(this.PnlLeft);
@ -495,7 +486,6 @@
this.MinimumSize = new System.Drawing.Size(160, 60);
this.Name = "FrmVSoft";
this.SideResizeWidth = 4;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "VSoft";
themeForm1.BorderWidth = 2;
themeForm1.CaptionBackColorBottom = System.Drawing.Color.White;
@ -662,7 +652,6 @@
private System.Windows.Forms.ToolStripMenuItem Menu修改分类;
private System.Windows.Forms.ToolStripMenuItem Menu删除分类;
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;

View File

@ -10,25 +10,31 @@ using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using VSoft.Config;
using VSoft.Prams;
using VSoft.Skins;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Header;
namespace VSoft
{
public partial class FrmVSoft : SKinForm
{
string[] prog_args;
string SQLConnStr = Itrycn_Db.SQLConnStr;
MouseHook mouse = new MouseHook();
readonly string[] prog_args;
readonly string SQLConnStr = Itrycn_Db.SQLConnStr;
readonly 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;
Text = Config.Soft_Info.Soft_Title + " V" + RySoft.GetVersionStr(Application.ExecutablePath);
#if TEST
Text +=" V内部测试版";
#endif
if (!Config.Soft_Info.ShowTray) { notifyIcon1.Visible = false; }
#if DY
ToolStripMenuItem.Text = "关于";
@ -45,6 +51,7 @@ namespace VSoft
PnlLeft.BackColor = backcolor;
}
private readonly System.Windows.Forms.ToolTip lvTp = new System.Windows.Forms.ToolTip();
private void FrmVSoft_FormClosed(object sender, FormClosedEventArgs e)
{
mouse.Stop();
@ -65,7 +72,7 @@ namespace VSoft
}
if (e.Button== button)
{
ryCommon.RyFiles.WriteAllText(Application.StartupPath+"\\1.txt",e.Button.ToString(),Encoding.UTF8);
//ryCommon.RyFiles.WriteAllText(Application.StartupPath+"\\1.txt",e.Button.ToString(),Encoding.UTF8);
if(Math.Abs((dt_lastMouse-DateTime.Now).TotalMilliseconds)<500)
{
clickcount++;
@ -90,7 +97,8 @@ namespace VSoft
{
LoadDb(false);
}
Dictionary<string, Image> dictCacheImg = new Dictionary<string, Image>();
readonly Dictionary<string, Image> dictCacheImg = new Dictionary<string, Image>();
private void LoadDb(bool isSearch)
{
IconViewEx1.Items.Clear();
@ -122,16 +130,18 @@ namespace VSoft
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();
SoftInfo info = new SoftInfo
{
Id = row["id"].ToInt(),
SoftType = row["SoftType"].ToInt(),
ColumnId = row["ColumnId"].ToInt(),
Name = row["Name"].ToString(),
Path = row["Path"].ToString(),
RunPram = row["RunPram"].ToString(),
SetJson = row["SetJson"].ToString(),
StartPath = row["StartPath"].ToString(),
IconPath = row["IconPath"].ToString()
};
string img_path;
if (info.IconPath.Length == 0)
{
@ -139,7 +149,7 @@ namespace VSoft
}
else
{
img_path = RyFiles.GetRealPath(row["IconPath"].ToString());
img_path = RyFiles.GetRealPath(info.IconPath);
}
if(dictCacheImg.ContainsKey(img_path))
{
@ -150,6 +160,7 @@ namespace VSoft
info.Image = API.GetImg(img_path, 128);
dictCacheImg.Add(img_path, info.Image);
}
Application.DoEvents();
IconViewEx1.Items.Add(info.Name).Tag = info ;
}
IconViewEx1.EndUpdate();
@ -160,6 +171,7 @@ namespace VSoft
}
else { LblEmpty.Visible = false; }
}
db.Free();
}
private void LoadColumn()
{
@ -239,12 +251,57 @@ namespace VSoft
TabList_Type.Items[0].Selected = true;
}
}
int hot_index = 0;
/// <summary>
/// 注册热键
/// </summary>
private void RegisterHotkey()
{
hotkey.UnHotKey();
IDbInterface db2 = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db2.ConnDb(SQLConnStr) == 1)
{
var index = 100;
HotkeyValue hot = new HotkeyValue(Soft_Config.ShowMainHotKey);
hotkey.RegHotKey(100, hot.Modifiers_Int, hot.KeyCode);
var ds_type = db2.ReadData("select * from Columns where Hotkey<>''");
if (ds_type.HaveData())
{
for (int i = 0; i < ds_type.Tables[0].Rows.Count; i++)
{
index++;
var item = ds_type.GetRow(i);
hot.LoadHotKeyStr(item["HotKey"].ToString());
hotkey.RegHotKey(index, "type_" + item["id"].ToInt(), hot.Modifiers_Int, hot.KeyCode);
}
}
ds_type.Dispose();
var ds = db2.ReadData("select * from Softs where Hotkey<>''");
if (ds.HaveData())
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
index++;
var item = ds.GetRow(i);
hot.LoadHotKeyStr(item["HotKey"].ToString());
hotkey.RegHotKey(index, "soft_" + item["id"].ToInt(), hot.Modifiers_Int, hot.KeyCode);
}
}
ds.Dispose();
hot_index = index;
}
db2.Free();
}
SysFuns.WinHotReg hotkey;
private void FrmVSoft_Load(object sender, EventArgs e)
{
//IconViewEx1.SetInterval(100, 100);
Config.Soft_Config.MainForm = this;
MinimumSize = new Size(400, 200);
LblEmpty.Left =((panelEx1.Width - LblEmpty.Width) / 2);
Config.Soft_Info.UserDataFolder = ryCommon.RyFiles.GetRealPath(Config.Soft_Info.UserDataFolder);
Itrycn_Db.SQLConnStr = Soft_Info.UserDataFolder + "\\Softs.dat|";
Itrycn_Db.SQLConnStr_Logs = Soft_Info.UserDataFolder + "\\logs.dat|";
VSoft.Prams.Itrycn_Db.CreateTable();
var dbver = Itrycn_Db.GetDbVer();
if (dbver == 2) //当前要求的数据库
@ -299,9 +356,37 @@ namespace VSoft
// Msg.ShowMsg("管理员模式下启动本软件,可能会导致无法拖放图标到本软件。", "提示", 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;
RegisterHotkey();
#region
IDbInterface db2 = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db2.ConnDb(SQLConnStr) == 1)
{
DataSet ds = db2.ReadData("select * from Softs");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow row = ds.Tables[0].Rows[i];
var IconPath = row["IconPath"].ToString();
var TruePath = RyFiles.GetRealPath(row["Path"].ToString());
string img_path;
Image image;
if (IconPath.Length == 0)
{
img_path = TruePath;
}
else
{
img_path = RyFiles.GetRealPath(IconPath);
}
if (!dictCacheImg.ContainsKey(img_path))
{
image = API.GetImg(img_path, 128);
dictCacheImg.Add(img_path, image);
}
}
}
db2.Free();
#endregion
ryCommon.RyRegedit.RegRoot = Microsoft.Win32.RegistryHive.CurrentUser;
//如果开机启动没有启动
if(!ryCommon.RyRegedit.IsAutoRun(Soft_Info.Soft_Id, "\"" + Application.ExecutablePath.Replace("/", "\\") + "\" " + Soft_Info.Soft_Pram))
@ -313,8 +398,12 @@ namespace VSoft
break;
}
}
ShowInCenter(null);
#if DY
#else
LiveUpdate.RyUpdate update = new LiveUpdate.RyUpdate(Soft_Info.Update_Url);
update.CheckUpdate();
#endif
mouse.OnMouseActivity += Mouse_OnMouseActivity;
mouse.Start();
}
@ -326,6 +415,79 @@ namespace VSoft
case 100:
ShowOrHideUI();
break;
default:
var ids=hotkey.GetTag(HotKeyID);
if(ids.IndexOfEx("type_")==0)
{
#region
var id = ids.Substring(5).ToInt();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1)
{
//var sql = "select * from Columns where id=" + id;
DataSet ds = db.ReadData("select * from Columns where id=" + id);
if (ds.HaveData())
{
DataRow row = ds.GetFirstRowData();
var parentId=row["parentId"].ToInt();
if(parentId>0)
{
for (int i = 0; i < TabList_Column.Items.Count; i++)
{
if (TabList_Column.Items[i].Tag.ToInt()==parentId)
{
TabList_Column.Items[i].Selected = true;
for (int m = 0; m < TabList_Type.Items.Count; m++)
{
if (TabList_Type.Items[m].Tag.ToInt() == row["id"].ToInt())
{
TabList_Type.Items[m].Selected = true;
ShowOrHideUI(true);
break;
}
}
break;
}
}
}
}
db.Free();
}
db.Free();
#endregion
}
else if (ids.IndexOfEx("soft_") == 0)
{
#region
var id = ids.Substring(5).ToInt();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1)
{
//var sql = "select * from Softs where id=" + id;
DataSet ds = db.ReadData("select * from Softs where id=" + id);
if (ds.HaveData())
{
DataRow row = ds.GetFirstRowData();
SoftInfo info = new SoftInfo
{
Id = row["id"].ToInt(),
SoftType = row["SoftType"].ToInt(),
ColumnId = row["ColumnId"].ToInt(),
Name = row["Name"].ToString(),
Path = row["Path"].ToString(),
RunPram = row["RunPram"].ToString(),
SetJson = row["SetJson"].ToString(),
StartPath = row["StartPath"].ToString(),
IconPath = row["IconPath"].ToString()
};
VSoft.Prams.Run.Open(info, false);
}
db.Free();
}
db.Free();
#endregion
}
break;
}
}
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
@ -333,9 +495,9 @@ namespace VSoft
/// <summary>
/// 显示或隐藏UI
/// </summary>
private void ShowOrHideUI()
private void ShowOrHideUI(bool ForceShow=false)
{
if (this.Visible && RyForm.GetActiveWindow() == Handle)
if (this.Visible && RyForm.GetActiveWindow() == Handle && !ForceShow)
{
this.Hide();
}
@ -405,7 +567,7 @@ namespace VSoft
}
}
private void rySearch1_OnSearch(object sender, EventArgs e)
private void RySearch1_OnSearch(object sender, EventArgs e)
{
if(rySearch1.Text.Length==0)
{
@ -441,8 +603,11 @@ namespace VSoft
}
private void BtnAddColumn_Click(object sender, EventArgs e)
{
FrmAddColumn frm = new FrmAddColumn();
frm.TopMost = TopMost;
FrmAddColumn frm = new FrmAddColumn
{
TopMost = TopMost
};
frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK)
{
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
@ -464,10 +629,13 @@ namespace VSoft
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (TabList_Column.SelectedItems.Count == 0) { return; }
FrmAddColumn frm = new FrmAddColumn();
frm.TopMost = TopMost;
frm.IsAdd = 0;
FrmAddColumn frm = new FrmAddColumn
{
TopMost = TopMost,
IsAdd = 0
};
frm.GetInfo(TabList_Column.SelectedItems[0].Tag.ToInt());
frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK)
{
SetColumnRow(TabList_Column.SelectedItems[0].Tag.ToInt(), TabList_Column.SelectedItems[0].Index);
@ -550,14 +718,20 @@ namespace VSoft
return;
}
var id = TabList_Column.SelectedItems[0].Tag.ToInt();
FrmAddType frm = new FrmAddType();
frm.TopMost = TopMost;
frm.ParentId = id;
FrmAddType frm = new FrmAddType
{
TopMost = TopMost,
ParentId = id
};
frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK)
{
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1)
{
hot_index++;
HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey);
hotkey.RegHotKey(hot_index,"type_"+frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
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)
@ -565,6 +739,7 @@ namespace VSoft
DataRow row = ds.Tables[0].Rows[0];
TabList_Type.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
}
ds.Dispose();
TabList_Type.EndUpdate();
db.Free();
}
@ -589,13 +764,34 @@ namespace VSoft
Msg.ShowMsg("默认分类不支持修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
FrmAddType frm = new FrmAddType();
frm.TopMost = TopMost;
frm.IsAdd = 0;
FrmAddType frm = new FrmAddType
{
TopMost = TopMost,
IsAdd = 0
};
frm.GetInfo(id);
frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK)
{
SetTypeRow(id, TabList_Type.SelectedItems[0].Index);
HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey);
var index = hotkey.GetHotId("type_" + frm.Op_Id);
if (index >= 0)
{
hotkey.UnHotKey(index);
if (frm.hotkeyTextBox1.HaveHotKey)
{
hotkey.RegHotKey(index, "type_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
}
}
else
{
if (frm.hotkeyTextBox1.HaveHotKey)
{
hot_index++;
hotkey.RegHotKey(hot_index, "type_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
}
}
}
frm.Dispose();
}
@ -629,10 +825,15 @@ namespace VSoft
}
}
ds.Dispose();
var index = hotkey.GetHotId("type_" + column_id);
if (index >= 0)
{
hotkey.UnHotKey(index);
}
db.DelById("Columns", column_id.ToString());
TabList_Type.SelectedItems[0].Remove();
db.BeginTransaction();
for (int i = 1; i < TabList_Type.Items.Count; i++)
for (int i = 0; i < TabList_Type.Items.Count; i++)
{
var id = TabList_Type.Items[i].Tag.ToInt();
RyQuickSQL mySQL = new RyQuickSQL("Columns");
@ -708,11 +909,17 @@ namespace VSoft
Msg.ShowMsg("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
FrmAddSoft frm = new FrmAddSoft();
frm.TopMost = TopMost;
frm.ColumnId = ColumnId;
FrmAddSoft frm = new FrmAddSoft
{
TopMost = TopMost,
ColumnId = ColumnId
};
frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK)
{
hot_index++;
HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey);
hotkey.RegHotKey(hot_index, "soft_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
LoadDb();
}
frm.Dispose();
@ -721,13 +928,34 @@ namespace VSoft
{
if (IconViewEx1.SelectedItems.Count == 0) { return; }
var info = (SoftInfo)IconViewEx1.SelectedItems[0].Tag;
FrmAddSoft frm = new FrmAddSoft();
frm.TopMost = TopMost;
frm.SelectId = info.Id;
frm.IsAdd = 0;
FrmAddSoft frm = new FrmAddSoft
{
TopMost = TopMost,
SelectId = info.Id,
IsAdd = 0
};
frm.GetInfo(info.Id);
frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK)
{
HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey);
var index = hotkey.GetHotId("soft_" + frm.Op_Id);
if (index >= 0)
{
hotkey.UnHotKey(index);
if (frm.hotkeyTextBox1.HaveHotKey)
{
hotkey.RegHotKey(index, "soft_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
}
}
else
{
if (frm.hotkeyTextBox1.HaveHotKey)
{
hot_index++;
hotkey.RegHotKey(hot_index, "soft_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
}
}
SetSoftRow(info.Id, IconViewEx1.SelectedItems[0].Index);
}
frm.Dispose();
@ -749,6 +977,11 @@ namespace VSoft
{
RyFiles.DeleteFile(RyFiles.GetRealPath(info.IconPath));
}
var index = hotkey.GetHotId("soft_" + info.Id);
if (index >= 0)
{
hotkey.UnHotKey(index);
}
db.DelById("Softs", info.Id.ToString());
IconViewEx1.SelectedItems[i].Remove();
if (IconViewEx1.Items.Count == 0)
@ -782,8 +1015,18 @@ namespace VSoft
{
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(); }
Thread th = new Thread(Start);
th.Start();
void Start()
{
var result = VSoft.Prams.Run.Open(info, RunasAdmin);
if (result > 36 && VSoft.Config.Soft_Config.HideAfterRun) {
this.Invoke(new Action(() =>
{
this.Hide();
}));
}
}
}
private void IconViewEx1_KeyDown(object sender, KeyEventArgs e)
{
@ -864,8 +1107,6 @@ namespace VSoft
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)
{
@ -879,7 +1120,6 @@ namespace VSoft
}
private void IconViewEx1_DragDrop(object sender, DragEventArgs e)
{
LblDrag.Visible = false;
var filedrop = e.Data.GetData(DataFormats.FileDrop);
if (filedrop != null)
{
@ -906,66 +1146,77 @@ namespace VSoft
Msg.ShowMsg("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
var path = ((string[])filedrop)[0];
var pram = "";
var StartPath = "";
var des = "";
var name = System.IO.Path.GetFileNameWithoutExtension(path);
IDbInterface db3 = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db3.ConnDb(SQLConnStr) == 1)
{
if (System.IO.Path.GetExtension(path).ToLower() == ".lnk")
var filelist = (string[])filedrop;
for (int f = 0; f < filelist.Length; f++)
{
var shortcut = API.ReadShortcut(path);
path = shortcut.TargetPath;
pram = shortcut.Arguments;
StartPath = shortcut.WorkDir;
des = shortcut.Description;
var path = filelist[f];
var pram = "";
var StartPath = "";
var des = "";
var icon = "";
var name = System.IO.Path.GetFileNameWithoutExtension(path);
if (System.IO.Path.GetExtension(path).ToLower() == ".lnk")
{
var shortcut = API.ReadShortcut(path);
path = shortcut.TargetPath;
pram = shortcut.Arguments;
StartPath = shortcut.WorkDir;
if(shortcut.IconLocation!= path)
{
icon = shortcut.IconLocation;
}
des = shortcut.Description;
}
else
{
path = RyFiles.GetRelativePath(path);
}
RyQuickSQL mySQL = new RyQuickSQL("Softs");
mySQL.AddField("Name", name);
mySQL.AddField("CmdId", "");
mySQL.AddField("Path", path);
mySQL.AddField("RunPram", pram);
mySQL.AddField("StartPath", StartPath);//起始路径
mySQL.AddField("IconPath", icon);//图标路径
Json json = new Json("");
json.Add("RunAsAdmin", false);
mySQL.AddField("SetJson", json.Text);//设置
mySQL.AddField("Des", des);//备注
mySQL.AddField("Pinyin", ryCommon.PinYin.Convert(name) + "\r\n" + ryCommon.PinYin.ConvertFirstPY(name));
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("SoftType", 0);//0表示运行文件,1表示执行快速命令,2表示执行脚本
mySQL.AddField("ClickCount", 0);//点击量
mySQL.AddField("ColumnId", ColumnId);
mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db3, ColumnId) + 1);
mySQL.AddField("addTime", DateTime.Now);
var ds = db3.ReadData(mySQL.GetInsertSQL() + ";select last_insert_rowid();", mySQL);
SoftInfo info = new SoftInfo
{
Id = ds.Tables[0].Rows[0][0].ToInt(),
SoftType = 0,
ColumnId = ColumnId,
Name = name,
Path = path,
RunPram = pram,
SetJson = json.Text,
StartPath = StartPath,
IconPath = ""
};
string img_path = info.TruePath;
if (dictCacheImg.ContainsKey(img_path))
{
info.Image = dictCacheImg[img_path];
}
else
{
info.Image = API.GetImg(img_path, 128);
dictCacheImg.Add(img_path, info.Image);
}
IconViewEx1.Items.Add(info.Name).Tag = info;
}
else
{
path = RyFiles.GetRelativePath(path);
}
RyQuickSQL mySQL = new RyQuickSQL("Softs");
mySQL.AddField("Name", name);
mySQL.AddField("CmdId", "");
mySQL.AddField("Path", path);
mySQL.AddField("RunPram", pram);
mySQL.AddField("StartPath", StartPath);//起始路径
mySQL.AddField("IconPath", "");//图标路径
Json json = new Json("");
json.Add("RunAsAdmin", false);
mySQL.AddField("SetJson", json.Text);//设置
mySQL.AddField("Des", des);//备注
mySQL.AddField("Pinyin", ryCommon.PinYin.Convert(name) + "\r\n" + ryCommon.PinYin.ConvertFirstPY(name));
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("SoftType", 0);//0表示运行文件,1表示执行快速命令,2表示执行脚本
mySQL.AddField("ClickCount", 0);//点击量
mySQL.AddField("ColumnId", ColumnId);
mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db3, ColumnId) + 1);
mySQL.AddField("addTime", DateTime.Now);
var ds= db3.ReadData(mySQL.GetInsertSQL()+ ";select last_insert_rowid();", mySQL);
SoftInfo info = new SoftInfo();
info.Id = ds.Tables[0].Rows[0][0].ToInt();
info.SoftType =0;
info.ColumnId = ColumnId;
info.Name = name;
info.Path = path;
info.RunPram = pram;
info.SetJson = json.Text;
info.StartPath = StartPath;
info.IconPath ="";
string img_path = info.TruePath;
if (dictCacheImg.ContainsKey(img_path))
{
info.Image = dictCacheImg[img_path];
}
else
{
info.Image = API.GetImg(img_path, 128);
dictCacheImg.Add(img_path, info.Image);
}
IconViewEx1.Items.Add(info.Name).Tag = info;
}
db3.Free();
return;
@ -974,6 +1225,9 @@ namespace VSoft
Point pt;
pt = ((IconViewEx)(sender)).PointToClient(new Point(e.X, e.Y));
var to_item = IconViewEx1.GetItemAt(pt.X, pt.Y);
IconViewEx1.InsertionMark.Index = -1;
TabList_Type.InsertionMark.Index = -1;
TabList_Column.InsertionMark.Index = -1;
if (to_item == null) { return; }
//获得拖放中的项
ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
@ -995,53 +1249,61 @@ namespace VSoft
}
private void IconViewEx1_DragOver(object sender, DragEventArgs e)
{
ListViewItem item = null;
if (sender is IconViewEx)
if (sender is IconViewEx list)
{
var filedrop = e.Data.GetData(DataFormats.FileDrop);
if (filedrop != null) {
if (LblDrag.Visible) { LblDrag.Visible = false; }
return;
if (filedrop != null)
{
list.InsertionMark.Index = -1;
return;
}
var lvi = e.Data.GetData(typeof(ListViewItem));
if(lvi==null)
if (lvi == null)
{
if (LblDrag.Visible) { LblDrag.Visible = false; }
list.InsertionMark.Index = -1;
return;
}
else
{
var lvi2 = (ListViewItem)lvi;
if(lvi2.ListView!=IconViewEx1)
if (lvi2.ListView != IconViewEx1)
{
if (LblDrag.Visible){LblDrag.Visible = false;}
list.InsertionMark.Index = -1;
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)
int targetIndex = list.InsertionMark.NearestIndex(pt);
if (targetIndex > -1)
{
LblDrag.Visible = false;
// Determine whether the mouse pointer is to the left or
// the right of the midpoint of the closest item and set
// the InsertionMark.AppearsAfterItem property accordingly.
Rectangle itemBounds = list.GetItemRect(targetIndex);
if (pt.X > itemBounds.Left + (itemBounds.Width / 2))
{
list.InsertionMark.AppearsAfterItem = true;
}
else
{
list.InsertionMark.AppearsAfterItem = false;
}
}
list.InsertionMark.Index = targetIndex;
list.InsertionMark.Color = Color.Black; ;
//item = list.GetItemAt(pt.X, pt.Y);
}
else
else if (sender is TabList list2)
{
if (!LblDrag.Visible)
var pt = list2.PointToClient(new Point(e.X, e.Y));
int targetIndex = list2.InsertionMark.NearestIndex(pt);
if (targetIndex > -1)
{
LblDrag.Visible = true;
// Rectangle itemBounds = list2.GetItemRect(targetIndex);
list2.InsertionMark.AppearsAfterItem = false;
}
LblDrag.Location = item.Position;
list2.InsertionMark.Index = targetIndex;
list2.InsertionMark.Color = Color.Black; ;
}
}
#endregion
@ -1052,15 +1314,15 @@ namespace VSoft
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;
IconViewEx1.InsertionMark.Index = -1;
TabList_Type.InsertionMark.Index = -1;
TabList_Column.InsertionMark.Index = -1;
pt = ((TabList)(sender)).PointToClient(new Point(e.X, e.Y));
var item = TabList_Column.GetItemAt(pt.X, pt.Y);
if (item == null) { return; }
@ -1139,16 +1401,16 @@ namespace VSoft
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;
IconViewEx1.InsertionMark.Index = -1;
TabList_Type.InsertionMark.Index = -1;
TabList_Column.InsertionMark.Index = -1;
pt = ((TabList)(sender)).PointToClient(new Point(e.X, e.Y));
var item = TabList_Type.GetItemAt(pt.X, pt.Y);
if (item == null) { return; }
@ -1292,16 +1554,18 @@ namespace VSoft
private void ShowSetting(bool ShowInScreenCenter)
{
hotkey.Enabled = false;
FrmSetting frm = new FrmSetting();
frm.TopMost = TopMost;
if(!ShowInScreenCenter)
FrmSetting frm = new FrmSetting
{
frm.StartPosition = FormStartPosition.CenterParent;
TopMost = TopMost
};
if (!ShowInScreenCenter)
{
frm.ShowInCenter(this);
}
if (frm.ShowDialog() == DialogResult.OK)
{
VSoft.Config.Soft_Config.LoadSetting();
hotkey.UnHotKey();
hotkey.UnHotKey(100);
HotkeyValue hot = new HotkeyValue(Soft_Config.ShowMainHotKey);
hotkey.RegHotKey(100, hot.Modifiers_Int, hot.KeyCode);
}
@ -1362,7 +1626,7 @@ namespace VSoft
}
}
private void rySearch1_KeyDown(object sender, KeyEventArgs e)
private void RySearch1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
@ -1420,8 +1684,11 @@ namespace VSoft
Msg.ShowMsg("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
FrmInCMD frm = new FrmInCMD();
frm.TopMost = TopMost;
FrmInCMD frm = new FrmInCMD
{
TopMost = TopMost
};
frm.ShowInCenter(this);
if (frm.ShowDialog()==DialogResult.OK)
{
var info = frm.SelectedInfo;
@ -1519,7 +1786,7 @@ namespace VSoft
}
private void panelEx1_Resize(object sender, EventArgs e)
private void PanelEx1_Resize(object sender, EventArgs e)
{
// LblEmpty.Left = panelEx1.Left + ((panelEx1.Width - LblEmpty.Width) / 2);
}
@ -1538,5 +1805,27 @@ namespace VSoft
this.Hide();
}
}
private ListViewItem currentItem = new ListViewItem();
private void IconViewEx1_MouseMove(object sender, MouseEventArgs e)
{
ListViewItem lvi = IconViewEx1.GetItemAt(e.X, e.Y);
if (lvi != null && lvi != currentItem)
{
currentItem = lvi;
if (lvi.Text.Length > 10)
{
lvTp.Show(lvi.Text, IconViewEx1, e.Location);
}
else
{
lvTp.Hide(IconViewEx1);
}
}
else if (lvi == null)
{
lvTp.Hide(IconViewEx1);
}
currentItem = lvi;
}
}
}

View File

@ -124,7 +124,7 @@
<data name="以管理员方式启动ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAYRJREFUOE+NkztPwlAUx8/gakIYWFwYHB1w8FUQCEpI1KiTYpSHQVQisviYjZsJ
wAAADsABataJCQAAAYRJREFUOE+NkztPwlAUx8/gakIYWFwYHB1w8FUQCEpI1KiTYpSHQVQisviYjZsJ
k4OJMT6ILhgTFheDiongc4AP4HdgcO/xnPZWaG81/JN/Qu49v1972wJ2iUQiQWqFiqL82yO2/w4Nuann
DA3MrqMrWcDaSRB30uOGiPfcYrwVWuQr1HnIPxXFnsQxQvYDYeMd1Scf1Yt3hwGMz4UNEc9WBK4JsHfx
AJ0r1wibBAoYMizwolpR9D6OYOPCh5f7AU0kcF0AuU8JhsybCVYfhvXeD9kIbGBYEwILrJYHZYEzVZRg
@ -137,7 +137,7 @@
<data name="新增内置功能ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIpJREFUOE/tktEGxDAQRef/v6NLly5dQpfQtSXkixJJHu661R36NC/70NJhiDnH
wAAADsABataJCQAAAIpJREFUOE/tktEGxDAQRef/v6NLly5dQpfQtSXkixJJHu661R36NC/70NJhiDnH
mImRv0SMESEELJ8F73mG9x6vacKGTS6ErbVdOudUsLiwM4s55zX5fo6jChYXjvUTUkqoteIxDCpYXLgT
BSZhKQX3vlfB4sIP4U4ci50Jb12ngsUPENcdnPsORL5USPZgYQ6cHAAAAABJRU5ErkJggg==
</value>
@ -182,7 +182,7 @@
<data name="IconViewEx1.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
EwAACxMBAJqcGAAABvRJREFUeF7tnE2IHEUUxwcjIjkE1JMREnMWD7phd7uzfuBJEPSkd0+55BLQc9ds
DwAACw8BkvkDpQAABvRJREFUeF7tnE2IHEUUxwcjIjkE1JMREnMWD7phd7uzfuBJEPSkd0+55BLQc9ds
ooIXT+bix8kgbtSYgxA1hsWLImLAPYTEXBRUNGiMEojpnpTvdWpIT2/Nm+6e7uqerv+DH0tPVfVs7/t1
ffTHDopEoPS9QTQ6FKrkbKjiC/TzCqFBp6CcpLk5G6h4GK7rYKD0HSaF1WL5iN4XqOR4ECU3cl8GFoAg
ii8eWNePmXQWjyWld4ZRcox2kuR3ChYPOonfeVLpu0165TgQ6d3UlWzZdgQWF+oNvufcmjTbIzyq99KZ

View File

@ -1,252 +1,254 @@
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using static ryCommonDb.DataProvider;
namespace VSoft.Prams
{
public class Itrycn_Db
{
public static string SQLConnStr_SysDb = "<app>\\SysDb\\SysConfig.dat";
public static string SQLConnStr = "<app>\\UserDb\\Softs.dat|";
public static string SQLConnStr_Logs = "<app>\\UserDb\\logs.dat|";
public static DataProvider.DataProviderType dataType = DataProvider.DataProviderType.SQLiteDataProvider;
public static IDbInterface CreateDataProvider(DataProviderType dataProviderType)
{
switch (dataProviderType)
{
//case DataProviderType.OdbcDataProvider:
// return new OdbcDataProvider();
//case DataProviderType.OleDbDataProvider:
// return new OleDbDataProvider();
//case DataProviderType.OracleDataProvider:
// return new OracleDataProvider();
case DataProviderType.SQLiteDataProvider:
return new SQLiteDataProvider();
default:
return null;
}
}
/// <summary>
/// 写入设置
/// </summary>
/// <param name="name"></param>
/// <param name="value"></param>
public static int SetSetting(string _SQLConnStr, string name, string value)
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(_SQLConnStr) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Setting");
mySQL.AddField("sName", name);
mySQL.AddField("sValue", value);
var result = db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where sName=@sName", mySQL);
if (result == 0)
{
result = db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
}
return result;
}
db.Free();
return -1000;
}
/// <summary>
/// 写入设置
/// </summary>
/// <param name="name"></param>
/// <param name="value"></param>
public static int SetSetting(string name, string value)
{
return SetSetting(SQLConnStr, name, value);
}
/// <summary>
/// 读取设置
/// </summary>
/// <param name="name"></param>
/// <param name="def_value"></param>
/// <returns></returns>
public static string GetSetting(string _SQLConnStr, string name, string def_value)
{
DataProvider mydb = new DataProvider();
IDbInterface db = CreateDataProvider(dataType);
string _value = def_value;
if (db.ConnDb(_SQLConnStr) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Setting");
mySQL.AddField("sName", name);
DataSet ds = db.ReadData("select * from Setting where sName=@sName", mySQL);
if (mydb.HaveData(ds))
{
DataRow reader = ds.Tables[0].Rows[0];
_value = reader["sValue"].ToString();
}
}
db.Free();
return _value;
}
/// <summary>
/// 读取设置
/// </summary>
/// <param name="name"></param>
/// <param name="def_value"></param>
/// <returns></returns>
public static string GetSetting(string name, string def_value)
{
return GetSetting(SQLConnStr, name, def_value);
}
public static int GetColumnCount(IDbInterface db, int ColumnId)
{
var ds = db.ReadData("select count(*) from Columns where parentId=" + ColumnId);
var icount = ds.Tables[0].Rows[0][0].ToInt();
ds.Dispose();
return icount;
}
public static int GetSoftCount(IDbInterface db, int ColumnId)
{
var ds = db.ReadData("select count(*) from Softs where ColumnId=" + ColumnId);
var icount = ds.Tables[0].Rows[0][0].ToInt();
ds.Dispose();
return icount;
}
/// <summary>
/// 获取指定栏目的第一个分类id
/// </summary>
/// <param name="db"></param>
/// <param name="ColumnId"></param>
/// <returns></returns>
public static int GetFirstColumnId(IDbInterface db, int ColumnId)
{
var ds = db.ReadData("select id from Columns where parentId=" + ColumnId+ " order by sortindex asc limit 1");
if (ds.Tables[0].Rows.Count == 0)
{ return -1; }
else
{
var icount = ds.Tables[0].Rows[0][0].ToInt();
ds.Dispose();
return icount;
}
}
/// <summary>
/// 获取数据库版本
/// </summary>
/// <returns></returns>
public static int GetDbVer()
{
return GetSetting("dbVer", "1").ToInt();
}
/// <summary>
/// 设置数据库版本
/// </summary>
/// <returns></returns>
public static int SetDbVer(int DbVer)
{
return SetSetting("dbVer", DbVer.ToString());
}
public static void CreateTable(DataProvider.DataProviderType dataType, string ConnStr)
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(ConnStr) == 1)
{
#region
RyQuickSQL mySQL = new RyQuickSQL("Softs");
mySQL.AddField("Name", "");
mySQL.AddField("CmdId", "");
mySQL.AddField("SoftType", 0);//0表示运行文件,1表示执行快速命令,2表示执行脚本
mySQL.AddField("Path", "");
mySQL.AddField("RunPram", "");
mySQL.AddField("StartPath", "");//起始路径
mySQL.AddField("IconPath","");//图标路径
mySQL.AddField("ClickCount",0);//点击量
mySQL.AddField("SetJson", "");//设置
mySQL.AddField("Des", "");//备注
mySQL.AddField("PinYin", "");//拼音
mySQL.AddField("ColumnId", 0);//栏目ID
mySQL.AddField("sortindex", 0);
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region
mySQL.Clear();
mySQL.TableName = "Columns";
mySQL.AddField("Name", "");
mySQL.AddField("sortindex", 0);
mySQL.AddField("depth", 0);//深度,0表示栏目,1表示分类
mySQL.AddField("parentId", 0);
mySQL.AddField("Des", "");//备注
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
//
#region
mySQL.Clear();
mySQL.TableName = "Setting";
mySQL.AddField("sName", "");
mySQL.AddField("sValue", "");
db.CreateDb(mySQL);
#endregion
}
db.Free();
}
public static void CreateSysTable(DataProvider.DataProviderType dataType, string ConnStr)
{
DataProvider mydb = new DataProvider();
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(ConnStr) == 1)
{
//
#region
RyQuickSQL mySQL = new RyQuickSQL("Setting");
mySQL.AddField("sName", "");
mySQL.AddField("sValue", "");
db.CreateDb(mySQL);
#endregion
}
db.Free();
}
public static void CreateTable_Logs(DataProvider.DataProviderType dataType)
{
DataProvider mydb = new DataProvider();
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(SQLConnStr_Logs) == 1)
{
#region
RyQuickSQL mySQL = new RyQuickSQL("Logs");
mySQL.AddField("LogId", "");
mySQL.AddField("LogStr", "");
mySQL.AddField("TaskId", 1);
mySQL.AddField("TaskGUID", "");
mySQL.AddField("LogResult", "");
mySQL.AddField("CreateId", 1);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
//
#region
mySQL.Clear();
mySQL.TableName = "Setting";
mySQL.AddField("sName", "");
mySQL.AddField("sValue", "");
db.CreateDb(mySQL);
#endregion
}
db.Free();
}
/// <summary>
/// 创建数据库
/// </summary>
public static void CreateTable()
{
CreateTable(dataType, SQLConnStr_SysDb);
CreateTable(dataType, SQLConnStr);
CreateTable_Logs(dataType);
//CreateSysTable(dataType, SQLConnStr_SysDb);
}
}
}
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using VSoft.Config;
using static ryCommonDb.DataProvider;
namespace VSoft.Prams
{
public class Itrycn_Db
{
public static string SQLConnStr_SysDb = "<app>\\SysDb\\SysConfig.dat";
public static string SQLConnStr = Soft_Info.UserDataFolder+ "\\Softs.dat|";
public static string SQLConnStr_Logs = Soft_Info.UserDataFolder + "\\logs.dat|";
public static DataProvider.DataProviderType dataType = DataProvider.DataProviderType.SQLiteDataProvider;
public static IDbInterface CreateDataProvider(DataProviderType dataProviderType)
{
switch (dataProviderType)
{
//case DataProviderType.OdbcDataProvider:
// return new OdbcDataProvider();
//case DataProviderType.OleDbDataProvider:
// return new OleDbDataProvider();
//case DataProviderType.OracleDataProvider:
// return new OracleDataProvider();
case DataProviderType.SQLiteDataProvider:
return new SQLiteDataProvider();
default:
return null;
}
}
/// <summary>
/// 写入设置
/// </summary>
/// <param name="name"></param>
/// <param name="value"></param>
public static int SetSetting(string _SQLConnStr, string name, string value)
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(_SQLConnStr) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Setting");
mySQL.AddField("sName", name);
mySQL.AddField("sValue", value);
var result = db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where sName=@sName", mySQL);
if (result == 0)
{
result = db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
}
return result;
}
db.Free();
return -1000;
}
/// <summary>
/// 写入设置
/// </summary>
/// <param name="name"></param>
/// <param name="value"></param>
public static int SetSetting(string name, string value)
{
return SetSetting(SQLConnStr, name, value);
}
/// <summary>
/// 读取设置
/// </summary>
/// <param name="name"></param>
/// <param name="def_value"></param>
/// <returns></returns>
public static string GetSetting(string _SQLConnStr, string name, string def_value)
{
DataProvider mydb = new DataProvider();
IDbInterface db = CreateDataProvider(dataType);
string _value = def_value;
if (db.ConnDb(_SQLConnStr) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Setting");
mySQL.AddField("sName", name);
DataSet ds = db.ReadData("select * from Setting where sName=@sName", mySQL);
if (mydb.HaveData(ds))
{
DataRow reader = ds.Tables[0].Rows[0];
_value = reader["sValue"].ToString();
}
}
db.Free();
return _value;
}
/// <summary>
/// 读取设置
/// </summary>
/// <param name="name"></param>
/// <param name="def_value"></param>
/// <returns></returns>
public static string GetSetting(string name, string def_value)
{
return GetSetting(SQLConnStr, name, def_value);
}
public static int GetColumnCount(IDbInterface db, int ColumnId)
{
var ds = db.ReadData("select count(*) from Columns where parentId=" + ColumnId);
var icount = ds.Tables[0].Rows[0][0].ToInt();
ds.Dispose();
return icount;
}
public static int GetSoftCount(IDbInterface db, int ColumnId)
{
var ds = db.ReadData("select count(*) from Softs where ColumnId=" + ColumnId);
var icount = ds.Tables[0].Rows[0][0].ToInt();
ds.Dispose();
return icount;
}
/// <summary>
/// 获取指定栏目的第一个分类id
/// </summary>
/// <param name="db"></param>
/// <param name="ColumnId"></param>
/// <returns></returns>
public static int GetFirstColumnId(IDbInterface db, int ColumnId)
{
var ds = db.ReadData("select id from Columns where parentId=" + ColumnId+ " order by sortindex asc limit 1");
if (ds.Tables[0].Rows.Count == 0)
{ return -1; }
else
{
var icount = ds.Tables[0].Rows[0][0].ToInt();
ds.Dispose();
return icount;
}
}
/// <summary>
/// 获取数据库版本
/// </summary>
/// <returns></returns>
public static int GetDbVer()
{
return GetSetting("dbVer", "1").ToInt();
}
/// <summary>
/// 设置数据库版本
/// </summary>
/// <returns></returns>
public static int SetDbVer(int DbVer)
{
return SetSetting("dbVer", DbVer.ToString());
}
public static void CreateTable(DataProvider.DataProviderType dataType, string ConnStr)
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(ConnStr) == 1)
{
#region
RyQuickSQL mySQL = new RyQuickSQL("Softs");
mySQL.AddField("Name", "");
mySQL.AddField("CmdId", "");
mySQL.AddField("SoftType", 0);//0表示运行文件,1表示执行快速命令,2表示执行脚本
mySQL.AddField("Path", "");
mySQL.AddField("RunPram", "");
mySQL.AddField("StartPath", "");//起始路径
mySQL.AddField("IconPath","");//图标路径
mySQL.AddField("ClickCount",0);//点击量
mySQL.AddField("SetJson", "");//设置
mySQL.AddField("Des", "");//备注
mySQL.AddField("Hotkey", "");//快捷键
mySQL.AddField("PinYin", "");//拼音
mySQL.AddField("ColumnId", 0);//栏目ID
mySQL.AddField("sortindex", 0);
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region
mySQL.Clear();
mySQL.TableName = "Columns";
mySQL.AddField("Name", "");
mySQL.AddField("sortindex", 0);
mySQL.AddField("depth", 0);//深度,0表示栏目,1表示分类
mySQL.AddField("parentId", 0);
mySQL.AddField("Hotkey", "");//快捷键
mySQL.AddField("Des", "");//备注
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
//
#region
mySQL.Clear();
mySQL.TableName = "Setting";
mySQL.AddField("sName", "");
mySQL.AddField("sValue", "");
db.CreateDb(mySQL);
#endregion
}
db.Free();
}
public static void CreateSysTable(DataProvider.DataProviderType dataType, string ConnStr)
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(ConnStr) == 1)
{
//
#region
RyQuickSQL mySQL = new RyQuickSQL("Setting");
mySQL.AddField("sName", "");
mySQL.AddField("sValue", "");
db.CreateDb(mySQL);
#endregion
}
db.Free();
}
public static void CreateTable_Logs(DataProvider.DataProviderType dataType)
{
DataProvider mydb = new DataProvider();
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(SQLConnStr_Logs) == 1)
{
#region
RyQuickSQL mySQL = new RyQuickSQL("Logs");
mySQL.AddField("LogId", "");
mySQL.AddField("LogStr", "");
mySQL.AddField("TaskId", 1);
mySQL.AddField("TaskGUID", "");
mySQL.AddField("LogResult", "");
mySQL.AddField("CreateId", 1);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
//
#region
mySQL.Clear();
mySQL.TableName = "Setting";
mySQL.AddField("sName", "");
mySQL.AddField("sValue", "");
db.CreateDb(mySQL);
#endregion
}
db.Free();
}
/// <summary>
/// 创建数据库
/// </summary>
public static void CreateTable()
{
CreateTable(dataType, SQLConnStr_SysDb);
CreateTable(dataType, SQLConnStr);
CreateTable_Logs(dataType);
//CreateSysTable(dataType, SQLConnStr_SysDb);
}
}
}

View File

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
@ -16,6 +17,7 @@ namespace VSoft.Prams
private const int WM_LBUTTONDOWN = 0x201;
private const int WM_RBUTTONDOWN = 0x204;
private const int WM_MBUTTONDOWN = 0x207;
private const int WM_XBUTTONDOWN = 0x20B;
private const int WM_LBUTTONUP = 0x202;
private const int WM_RBUTTONUP = 0x205;
private const int WM_MBUTTONUP = 0x208;
@ -38,13 +40,43 @@ namespace VSoft.Prams
/// <summary>
/// 钩子结构体
/// </summary>
[StructLayout(LayoutKind.Sequential)]
[StructLayout(LayoutKind.Explicit)]
public class MouseHookStruct
{
public POINT pt;
public int hWnd;
public int wHitTestCode;
public int dwExtraInfo;
/// <summary>
/// Specifies a Point structure that contains the X- and Y-coordinates of the cursor, in screen coordinates.
/// </summary>
[FieldOffset(0x00)] public System.Drawing.Point Point;
/// <summary>
/// Specifies information associated with the message.
/// </summary>
/// <remarks>
/// The possible values are:
/// <list type="bullet">
/// <item>
/// <description>0 - No Information</description>
/// </item>
/// <item>
/// <description>1 - X-Button1 Click</description>
/// </item>
/// <item>
/// <description>2 - X-Button2 Click</description>
/// </item>
/// <item>
/// <description>120 - Mouse Scroll Away from User</description>
/// </item>
/// <item>
/// <description>-120 - Mouse Scroll Toward User</description>
/// </item>
/// </list>
/// </remarks>
[FieldOffset(0x0A)] public short MouseData;
/// <summary>
/// Returns a Timestamp associated with the input, in System Ticks.
/// </summary>
[FieldOffset(0x10)] public int Timestamp;
}
public const int WH_MOUSE_LL = 14; // mouse hook constant
@ -88,7 +120,6 @@ namespace VSoft.Prams
{
Stop();
}
/// <summary>
/// 启动全局钩子
/// </summary>
@ -100,7 +131,7 @@ namespace VSoft.Prams
// 生成一个HookProc的实例.
_mouseHookProcedure = new HookProc(MouseHookProc);
_hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, _mouseHookProcedure, IntPtr.Zero, 0);
_hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, _mouseHookProcedure, Process.GetCurrentProcess().MainModule.BaseAddress, 0);
//假设装置失败停止钩子
if (_hMouseHook == 0)
@ -139,7 +170,8 @@ namespace VSoft.Prams
{
MouseButtons button = MouseButtons.None;
int clickCount = 0;
// 从回调函数中得到鼠标的信息
MouseHookStruct MyMouseHookStruct = (MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseHookStruct));
switch (wParam)
{
case WM_LBUTTONDOWN:
@ -174,29 +206,23 @@ namespace VSoft.Prams
// button = MouseButtons.Middle;
// clickCount = 1;
// break;
case WM_XBUTTON1:
button = MouseButtons.XButton1;
clickCount = 1;
break;
case WM_XBUTTON2:
button = MouseButtons.XButton2;
case WM_XBUTTONDOWN:
button = MyMouseHookStruct.MouseData == 1
? MouseButtons.XButton1
: 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);
MouseEventArgs e = new MouseEventArgs(button, clickCount, MyMouseHookStruct.Point.X, MyMouseHookStruct.Point.Y, 0);
// 假设想要限制鼠标在屏幕中的移动区域能够在此处设置
// 后期须要考虑实际的x、y的容差
if (!Screen.PrimaryScreen.Bounds.Contains(e.X, e.Y))
{
//return 1;
}
//if (!Screen.PrimaryScreen.Bounds.Contains(e.X, e.Y))
//{
// //return 1;
//}
OnMouseActivity(this, e);
}

View File

@ -32,7 +32,6 @@ namespace VSoft.Prams
if (info.SoftType == 1)
{
#region
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(info.Path) == 1)
{
@ -51,7 +50,7 @@ namespace VSoft.Prams
if (where.Length > 0)
{
DataSet ds = db.ReadData("select * from Softs where " + where, mySQL);
if (mydb.HaveData(ds))
if (ds.HaveData())
{
DataRow row = ds.Tables[0].Rows[0];
path = RyFiles.GetRealPath(row["Path"].ToString());
@ -59,6 +58,13 @@ namespace VSoft.Prams
SetJson = row["SetJson"].ToString();
StartPath = row["StartPath"].ToString();
}
else
{
ds.Dispose();
db.Free();
return -1;
}
ds.Dispose();
}
db.Free();
}
@ -80,14 +86,19 @@ namespace VSoft.Prams
switch(path.Substring(1).ToLower())
{
case "emptyrecyclebin"://清空回收站
switch (Msg.ShowMsg("是否确认要清空回收站?\r\n\r\n该操作不可逆", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2))
{
case DialogResult.Yes:
SHEmptyRecycleBin(IntPtr.Zero, "", SHERB_NOCONFIRMATION + SHERB_NOPROGRESSUI + SHERB_NOSOUND);
return 1;
return 37;
}
break;
case "trans"://翻译
Config.Soft_Config.MainForm.Invoke(new Action(() =>
{
RyForm.ShowOne(new Tools.FrmTrans());
}));
return 37;
}
return 0;
}

View File

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

View File

@ -19,7 +19,7 @@ namespace VSoft.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
@ -47,8 +47,8 @@ namespace VSoft.Properties {
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {

View File

@ -29,66 +29,65 @@ namespace VSoft.Skins
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMessageBox));
this.lblMsg = new ryControls.LabelTx();
this.btnCancel = new ryControls.ButtonEx();
this.btnYes = new ryControls.ButtonEx();
this.SuspendLayout();
//
// lblMsg
//
this.lblMsg.BackColor = System.Drawing.Color.Transparent;
this.lblMsg.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblMsg.LineDistance = 5;
this.lblMsg.Location = new System.Drawing.Point(11, 39);
this.lblMsg.Name = "lblMsg";
this.lblMsg.Size = new System.Drawing.Size(339, 21);
this.lblMsg.TabIndex = 85;
this.lblMsg.Text = "提示";
this.lblMsg.TextChanged += new System.EventHandler(this.LblMsg_TextChanged);
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.BaseColor = System.Drawing.Color.Teal;
this.btnCancel.ColorGradient = true;
this.btnCancel.Location = new System.Drawing.Point(285, 141);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(65, 27);
this.btnCancel.TabIndex = 84;
this.btnCancel.Text = "取消";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnYes
//
this.btnYes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnYes.BaseColor = System.Drawing.Color.Teal;
this.btnYes.ColorGradient = true;
this.btnYes.Location = new System.Drawing.Point(214, 141);
this.btnYes.Name = "btnYes";
this.btnYes.Size = new System.Drawing.Size(65, 27);
this.btnYes.TabIndex = 83;
this.btnYes.Text = "确定";
this.btnYes.UseVisualStyleBackColor = true;
this.btnYes.Click += new System.EventHandler(this.btnYes_Click);
//
// FrmMessageBox
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(355, 172);
this.Controls.Add(this.lblMsg);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnYes);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FrmMessageBox";
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.ResumeLayout(false);
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMessageBox));
this.lblMsg = new ryControls.LabelTx();
this.btnCancel = new ryControls.ButtonEx();
this.btnYes = new ryControls.ButtonEx();
this.SuspendLayout();
//
// lblMsg
//
this.lblMsg.BackColor = System.Drawing.Color.Transparent;
this.lblMsg.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblMsg.LineDistance = 5;
this.lblMsg.Location = new System.Drawing.Point(11, 39);
this.lblMsg.Name = "lblMsg";
this.lblMsg.Size = new System.Drawing.Size(339, 21);
this.lblMsg.TabIndex = 85;
this.lblMsg.Text = "提示";
this.lblMsg.TextChanged += new System.EventHandler(this.LblMsg_TextChanged);
//
// 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)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.btnCancel.ColorGradient = true;
this.btnCancel.Location = new System.Drawing.Point(317, 206);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(65, 27);
this.btnCancel.TabIndex = 84;
this.btnCancel.Text = "取消";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnYes
//
this.btnYes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnYes.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.btnYes.ColorGradient = true;
this.btnYes.Location = new System.Drawing.Point(246, 206);
this.btnYes.Name = "btnYes";
this.btnYes.Size = new System.Drawing.Size(65, 27);
this.btnYes.TabIndex = 83;
this.btnYes.Text = "确定";
this.btnYes.UseVisualStyleBackColor = true;
this.btnYes.Click += new System.EventHandler(this.btnYes_Click);
//
// FrmMessageBox
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(387, 237);
this.Controls.Add(this.lblMsg);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnYes);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FrmMessageBox";
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.ResumeLayout(false);
}
#endregion

File diff suppressed because it is too large Load Diff

View File

@ -29,18 +29,21 @@ namespace VSoft.Skins
/// </summary>
private void InitializeComponent()
{
this.SuspendLayout();
//
// SKinForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(594, 521);
this.Name = "SKinForm";
this.Text = "SKinForm";
this.Load += new System.EventHandler(this.SKinForm_Load);
this.ResumeLayout(false);
this.SuspendLayout();
//
// SKinForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(663, 496);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Location = new System.Drawing.Point(0, 0);
this.Name = "SKinForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "SKinForm";
this.Load += new System.EventHandler(this.SKinForm_Load);
this.ResumeLayout(false);
}
#endregion

View File

@ -20,6 +20,31 @@ namespace VSoft.Skins
{
InitializeComponent();
}
/// <summary>
/// 显示在父窗体中间,如果没有父窗体,则显示在显示器中间
/// </summary>
/// <param name="parent"></param>
public void ShowInCenter(Form parent)
{
this.StartPosition = FormStartPosition.Manual;
var screen = Screen.FromControl(this);
if (parent == null) //如果没有父窗体,则显示在显示器中间
{
Location = new Point((screen.WorkingArea.Width - Width) / 2, (screen.WorkingArea.Height - Height) / 2);
return;
}
var x = parent.Left + (parent.Width - Width) / 2;
var y = parent.Top + (parent.Height - Height) / 2;
if ((x + Width) > screen.WorkingArea.X + screen.WorkingArea.Width)
{
x = screen.WorkingArea.X + screen.WorkingArea.Width - Width;
}
if ((y + Height) > screen.WorkingArea.Y + screen.WorkingArea.Height)
{
y = screen.WorkingArea.Y + screen.WorkingArea.Height - Height;
}
Location = new Point(x, y);
}
private void SKinForm_Load(object sender, EventArgs e)
{
if (!this.DesignMode)

View File

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

View File

@ -36,7 +36,7 @@ namespace VSoft.Skins
SideResizeWidth = 4;
UseDefaultTopRoundingFormRegion = false;
ShadowWidth = 1;
RoundedStyle = RoundStyle.None;
FormBorderOutterColor = Color.Gray;
FormBorderInnerColor = Color.White;

View File

@ -0,0 +1,182 @@
namespace VSoft.Tools
{
partial class FrmTrans
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmTrans));
this.label1 = new System.Windows.Forms.Label();
this.RichText = new ryControls.Controls.RichTextBox2();
this.label2 = new System.Windows.Forms.Label();
this.RichResult = new ryControls.Controls.RichTextBox2();
this.CbbLngFrom = new ryControls.RyComboBox();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.CbbLngTo = new ryControls.RyComboBox();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 69);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(65, 12);
this.label1.TabIndex = 0;
this.label1.Text = "待翻译文本";
//
// RichText
//
this.RichText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.RichText.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichText.DetectUrls = false;
this.RichText.EmptyText = "";
this.RichText.Font = new System.Drawing.Font("Courier New", 10F);
this.RichText.Location = new System.Drawing.Point(12, 84);
this.RichText.Name = "RichText";
this.RichText.OnlyInputText = false;
this.RichText.Size = new System.Drawing.Size(686, 181);
this.RichText.TabIndex = 1;
this.RichText.Text = "";
this.RichText.WordWrap = false;
this.RichText.TextChanged += new System.EventHandler(this.RichText_TextChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(10, 269);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(65, 12);
this.label2.TabIndex = 2;
this.label2.Text = "待翻译文本";
//
// RichResult
//
this.RichResult.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.RichResult.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.RichResult.DetectUrls = false;
this.RichResult.EmptyText = "";
this.RichResult.Font = new System.Drawing.Font("Courier New", 10F);
this.RichResult.Location = new System.Drawing.Point(12, 285);
this.RichResult.Name = "RichResult";
this.RichResult.OnlyInputText = false;
this.RichResult.Size = new System.Drawing.Size(686, 260);
this.RichResult.TabIndex = 3;
this.RichResult.Text = "";
this.RichResult.WordWrap = false;
//
// CbbLngFrom
//
this.CbbLngFrom.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbLngFrom.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CbbLngFrom.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbLngFrom.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbLngFrom.FormattingEnabled = true;
this.CbbLngFrom.Items.AddRange(new object[] {
"自动",
"英文",
"中文",
"韩语",
"日语"});
this.CbbLngFrom.Location = new System.Drawing.Point(33, 36);
this.CbbLngFrom.Name = "CbbLngFrom";
this.CbbLngFrom.Size = new System.Drawing.Size(93, 24);
this.CbbLngFrom.TabIndex = 4;
this.CbbLngFrom.SelectedIndexChanged += new System.EventHandler(this.CbbFrom_SelectedIndexChanged);
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(10, 41);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(17, 12);
this.label3.TabIndex = 5;
this.label3.Text = "从";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(132, 41);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(41, 12);
this.label4.TabIndex = 6;
this.label4.Text = "翻译成";
//
// CbbLngTo
//
this.CbbLngTo.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.CbbLngTo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CbbLngTo.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.CbbLngTo.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.CbbLngTo.FormattingEnabled = true;
this.CbbLngTo.Items.AddRange(new object[] {
"英文",
"中文",
"韩语",
"日语"});
this.CbbLngTo.Location = new System.Drawing.Point(179, 36);
this.CbbLngTo.Name = "CbbLngTo";
this.CbbLngTo.Size = new System.Drawing.Size(93, 24);
this.CbbLngTo.TabIndex = 7;
this.CbbLngTo.SelectedIndexChanged += new System.EventHandler(this.CbbTo_SelectedIndexChanged);
//
// FrmTrans
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(714, 559);
this.Controls.Add(this.CbbLngTo);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.CbbLngFrom);
this.Controls.Add(this.RichResult);
this.Controls.Add(this.label2);
this.Controls.Add(this.RichText);
this.Controls.Add(this.label1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmTrans";
this.Text = "快速翻译";
this.Load += new System.EventHandler(this.FrmTrans_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private ryControls.Controls.RichTextBox2 RichText;
private System.Windows.Forms.Label label2;
private ryControls.Controls.RichTextBox2 RichResult;
private ryControls.RyComboBox CbbLngFrom;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private ryControls.RyComboBox CbbLngTo;
}
}

View File

@ -0,0 +1,138 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace VSoft.Tools
{
public partial class FrmTrans : Skins.SKinForm
{
public FrmTrans()
{
InitializeComponent();
CbbLngFrom.SelectedIndex = 0;
CbbLngTo.SelectedIndex = 0;
}
private string Tran(string from_txt,string lng_from,string lng_to)
{
try
{
if (from_txt.Length == 0) { return ""; }
// 原文
string q = from_txt;
// 源语言
string from = lng_from;
// 目标语言
string to = lng_to;
// 改成您的APP ID
string appId = "20220508001207657";
Random rd = new Random();
string salt = rd.Next(100000).ToString();
// 改成您的密钥
string secretKey = "l6ngE7GjtdvRESJqQzDL";
RyWeb.QuickWeb web = new RyWeb.QuickWeb();
string sign = EncryptString(appId + q + salt + secretKey);
string post_data = "q=" + web.UrlEncode(q);
post_data += "&from=" + from;
post_data += "&to=" + to;
post_data += "&appid=" + appId;
post_data += "&salt=" + salt;
post_data += "&sign=" + sign;
var http= web.Post("http://api.fanyi.baidu.com/api/trans/vip/translate", post_data);
JObject jo = JObject.Parse(http.Html);
var trans_result = jo["trans_result"];
if (trans_result != null)
{
var jarr = (JArray)trans_result;
var text = "";
for (int i = 0; i < jarr.Count; i++)
{
if (text.Length > 0) { text += "\r\n"; }
if (jarr[i] != null)
{
var dst = jarr[i]["dst"];
if (dst != null) { text+= dst.ToString(); }
}
}
last_text = from_txt;
return text;
}
return "";
}
catch(Exception ex) { return "错误=>"+ex.Message; }
}
string last_text = "";
// 计算MD5值
public static string EncryptString(string str)
{
MD5 md5 = MD5.Create();
// 将字符串转换成字节数组
byte[] byteOld = Encoding.UTF8.GetBytes(str);
// 调用加密方法
byte[] byteNew = md5.ComputeHash(byteOld);
// 将加密结果转换为字符串
StringBuilder sb = new StringBuilder();
foreach (byte b in byteNew)
{
// 将字节转换成16进制表示的字符串
sb.Append(b.ToString("x2"));
}
// 返回加密的字符串
return sb.ToString();
}
private void Trans()
{
var lng_from = lng_convert(CbbLngFrom.Text);
var lng_to = lng_convert(CbbLngTo.Text);
string lng_convert(string lng_text)
{
if (lng_text == "自动") { return "auto"; }
else if (lng_text == "中文") { return "zh"; }
else if (lng_text == "英文") { return "en"; }
else if (lng_text == "日语") { return "jp"; }
else if (lng_text == "韩语") { return "kor"; }
else { return ""; }
}
var from_text = RichText.Text;
Thread th = new Thread(Start);
th.Start();
void Start()
{
var to_text= Tran(from_text, lng_from, lng_to);
this.Invoke(new Action(() =>
{
RichResult.Text = to_text;
}));
}
}
private void CbbFrom_SelectedIndexChanged(object sender, EventArgs e)
{
Trans();
}
private void CbbTo_SelectedIndexChanged(object sender, EventArgs e)
{
Trans();
}
private void RichText_TextChanged(object sender, EventArgs e)
{
Trans();
}
private void FrmTrans_Load(object sender, EventArgs e)
{
var screen = Screen.FromPoint(MousePosition).WorkingArea;
this.Location = new Point(screen.Left+ ((screen.Width-this.Width)/2),screen.Top+ ((screen.Height - this.Height) / 2));
}
}
}

View File

@ -0,0 +1,287 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP7+/gz///9x////zv7+/vT///////////7+/v7////////////////+/v7+//////7+
/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+
/v7////////////////+/v7+///////////+/v7+///////////+/v7+///////////+/v70////zv//
/3H+/v4MAAAAAAAAAAAAAAAA////Gf7+/r7////+//////7+/v7///////////7+/v7/////////////
///+/v7+//////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+
/v7///////////7+/v7////////////////+/v7+///////////+/v7+///////////+/v7+////////
///+/v7+//////////7+/v6+////GQAAAAD+/v4M/v7+wv7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+wv7+/gz///9w/////v7+/v7////v////gP7+
/h8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4f////gP///+/+/v7+/////v7+/nD////L//////7+
/v7///91AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///3X+/v7+//////7+
/sv+/v70/v7+/v7+/v7+/v4iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
/iL+/v7+/v7+/v7+/vT///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7+/v7+/v7+/v7+/v4AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+/v7///////////7+
/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+
/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9n////f/7+
/n////87AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD+/v7+//////7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP7+/jf///9o////AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD////P//////7+/v7///93AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7+/v7+/v7+/v7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/v7+C/7+/sz+/v79/v7+lf7+/gkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7O/v7+/v7+/v7+/v53AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+/v7///////////7+/v4AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////bP7+/v7//////////f7+/q3///8PAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////P//////7+/v7///93AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7+/v7+/v7+/v7+
/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Ov7+/vD+/v7+/v7+/v7+
/v7+/v67/v7+FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7O/v7+/v7+/v7+/v53AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+
/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
/rL///////////7+/v7/////////0v7+/iP///8K////Uf7+/lf///9X////V/7+/lf////b//////7+
/v7///+f////V////1f+/v5X////V////zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD+/v7+//////7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP7+/qf///////////7+/vb////9//////7+/sL///8Q////5/7+/v7///////////7+
/v7///////////7+/v7////////////////+/v7+/////////4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7+/v7+/v7+/v7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/qf+/v7+/v7+/v7+/pT+/v5a/v7+yv7+/s7+/v4Q/v7+5/7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/ocAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+/v7///////////7+/v4AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/qf///////////7+/ocAAAAA////CP7+
/m////8Q////vf7+/s/////P////z/7+/s/////z//////7+/v7////h////z////8/+/v7P////z///
/28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7///////////7+
/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/qf///////////7+
/ocAAAAAAAAAAP7+/gP///8B////B/7+/gf///8H////B/7+/gf////P//////7+/v7///95////B///
/wf+/v4H////B////wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+
/v7+/v7+/v7+/v7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
/qf+/v7+/v7+/v7+/ocAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4v/v7+L/7+/i/+/v7O/v7+/v7+
/v7+/v6M/v7+L/7+/i/+/v4jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD+/v7+/v7+/v7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP7+/qf///////////7+/ocAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////7+
/v7///////////7+/v7////////////////+/v6nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/qf///////////7+/ocAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///////////7+/v7///////////7+/v7////////////////+/v6nAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7+/v7+/v7+/v7+/v4AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/qf+/v7+/v7+/v7+/ocAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v6nAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+/v7///////////7+
/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/qf///////////7+
/ocAAAAAAAAAAAAAAAD///8s////Iv7+/gEAAAAAAAAAAAAAAAD////P//////7+/v7///93AAAAAAAA
AAAAAAAA////Cf///yn+/v4+////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+
/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////C////xf+/v4X////F/7+
/q3///////////7+/ocAAAAAAAAAAP7+/gP////d////8P7+/sv///+F////P/7+/gr///+9////5/7+
/uf///9u////C////0H+/v6Z////3f////T+/v7t////FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD+/v7+//////7+/v7+/v7+/v7+/v7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+d/7+
/u7+/v7u/v7+7v7+/vT+/v7+/v7+/v7+/ocAAAAAAAAAAP7+/kr+/v7+/v7+/v7+/v7+/v7+/v7+/P7+
/tD+/v6G/v7+KP7+/hr+/v58/v7+0f7+/vz+/v7+/v7+/v7+/v7+/v7+/v7+OwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA////f//////+/v7+//////7+/v7///////////7+/ocAAAAA////Av7+/pb////x/////v7+
/v7///////////7+/v7/////////+f7+/u/////////////////+/v7x////5////+D+/v7X////XQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7///////////7+/v4AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////e/////f+/v72////9/7+/vb////3////9/7+/oUAAAAA////Af7+
/g3///8a////Of7+/l7///+N////xf7+/vT///////////7+/v7/////////jf///yr+/v4Y////FP//
/xD+/v4M////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7+/v7+/v7+/v7+
/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+F/7+/i/+/v4v/v7+L/7+/i/+/v4v/v7+L/7+
/h0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Fv7+/s/+/v7+/v7+/v7+/v7+/v7+/v7+5/7+
/kQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+
/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA////I/7+/iIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8a////y/7+/v7/////////q/7+
/oj////7//////////z+/v5h////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD+/v7+//////7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD///8d////0P7+/sL///8HAAAAAAAAAAAAAAAAAAAAAP7+/g3////L//////7+
/v7///+w////Df7+/gL///9e////9f/////+/v75////ZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/hH////L//////7+/v7///+U////BAAAAAAAAAAAAAAAAP7+
/mn///////////7+/vj///8jAAAAAAAAAAAAAAAA////h//////+/v7+////7v///zYAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7+/v7+/v7+/v7+/v4AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+G/7+/sn+/v7+/v7+/v7+/v7+/v75/v7+QwAA
AAD+/v6H/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/ocAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+/v7///////////7+
/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4j////0f7+/v7///////////7+
/vf///9w////BgAAAAD///+H//////7+/v7///////////7+/v7///////////7+/v7/////////////
///+/v7+/////////4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+
/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v41////8P7+
/v7/////////5f7+/lIAAAAAAAAAAAAAAAD///+H//////7+/v7///////////7+/v7///////////7+
/v7////////////////+/v7+/////////4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD+/v7+//////7+/v7+/v7+/v7+/v7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA/v7+af7+/vr+/v6n/v7+GgAAAAAAAAAAAAAAAAAAAAD+/v4d/v7+L/7+/i/+/v4v/v7+L/7+
/i/+/v4v/v7+L/7+/i/+/v4v/v7+L/7+/i/+/v4v/v7+L/7+/h0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////Bf7+/kb///8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7///////////7+/v4AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7+/v7+/v7+/v7+
/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v7+/v7+/v7+
/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD+/v7+//////7+/v7///////////7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v7+//////7+/v7+/v70/v7+/v7+/v7+/v4iAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iL+/v7+/v7+/v7+/vT////L//////7+/v7///91AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///3X+/v7+//////7+/sv///9w/////v7+
/v7////v////gP7+/h8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4f////gP///+/+/v7+/////v7+
/nD+/v4M/v7+wv7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+wv7+/gwAAAAA////Gf7+/r7////+//////7+/v7///////////7+/v7/////////////
///+/v7+//////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+
/v7///////////7+/v7////////////////+/v7+///////////+/v7+///////////+/v7+////////
///+/v7+//////////7+/v6+////GQAAAAAAAAAAAAAAAP7+/gz+/v5x/v7+zv7+/vT+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v70/v7+zv7+/nH+/v4MAAAAAAAAAADAAAAAAAMAAIAAAAAAAQAAAAAAAAAA
AAAD/////8AAAA//////8AAAD//////wAAAf//////gAAB//////+AAAH//////4AAAf//////gAAB//
/+H/+AAAH/x/4f/4AAAf+D/h//gAAB/4H+H/+AAAH/gP4f/4AAAf/AAAD/gAAB/8AAAP+AAAH/wAAA/4
AAAf/CAAD/gAAB/8MAAP+AAAH/w/AD/4AAAf/D8AP/gAAB/8PwA/+AAAH/w/AD/4AAAf/Djhw/gAAB/A
MAAD+AAAH8AwAAP4AAAfwCAAA/gAAB/AIAAD+AAAH8A/gH/4AAAf/z8AH/gAAB/+HgAf+AAAH/wODg/4
AAAf+AgAD/gAAB/wCAAP+AAAH/A4AA/4AAAf+HgAD/gAAB/4////+AAAH//////4AAAf//////gAAB//
////+AAAH//////4AAAP//////AAAA//////8AAAA//////AAAAAAAAAAAAAAIAAAAAAAQAAwAAAAAAD
AAA=
</value>
</data>
</root>

View File

@ -9,19 +9,21 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>VSoft</RootNamespace>
<AssemblyName>VSoft</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\Bin\Debug\VSoft\</OutputPath>
<DefineConstants>TRACE;DEBUG</DefineConstants>
<DefineConstants>TRACE;DEBUG;DY</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -30,28 +32,21 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="MyDb, Version=2.1.2005.1901, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Bin\Debug\VSoft\MyDb.dll</HintPath>
</Reference>
<Reference Include="MyDb_SQLite">
<HintPath>..\..\Bin\Debug\VSoft\MyDb_SQLite.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Bin\Debug\VSoft\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="ryControls">
<HintPath>..\..\Bin\Debug\VSoft\ryControls.dll</HintPath>
</Reference>
<Reference Include="ryUpdate">
<HintPath>..\..\Bin\Debug\VSoft\ryUpdate.dll</HintPath>
<Reference Include="RaUI, Version=4.0.2302.1401, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Bin\Debug\VSoft\RaUI.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
@ -141,6 +136,12 @@
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Tools\Trans\FrmTrans.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Tools\Trans\FrmTrans.Designer.cs">
<DependentUpon>FrmTrans.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Config\frmSetting.resx">
@ -177,6 +178,9 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Tools\Trans\FrmTrans.resx">
<DependentUpon>FrmTrans.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<COMReference Include="IWshRuntimeLibrary">