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

1
.gitignore vendored
View File

@ -4,3 +4,4 @@ Res/
*.pdb
**/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

@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DyLine")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("2.0.2110.1801")]
[assembly: AssemblyFileVersion("2.0.2110.1801")]

View File

@ -1,48 +1,44 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// 对此文件的更改可能导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace DyLine.Properties {
using System;
namespace DyLine.Properties
{
/// <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("DyLine.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
@ -55,14 +51,11 @@ namespace DyLine.Properties
/// 使用此强类型资源类的所有资源查找执行重写。
/// </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,27 +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 DyLine.Properties {
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
{
[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
{
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,49 +1,44 @@
//------------------------------------------------------------------------------
// <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;
}
@ -52,18 +47,15 @@ namespace VSoftBox.Properties
}
/// <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

@ -43,6 +43,8 @@
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();
@ -115,7 +117,7 @@
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(239, 39);
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;
@ -128,7 +130,7 @@
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.Location = new System.Drawing.Point(576, 125);
this.LblCustomImg.Name = "LblCustomImg";
this.LblCustomImg.Size = new System.Drawing.Size(86, 18);
this.LblCustomImg.TabIndex = 12;
@ -151,7 +153,7 @@
this.TxtDes.SelectedText = "";
this.TxtDes.SelectionLength = 0;
this.TxtDes.SelectionStart = 0;
this.TxtDes.Size = new System.Drawing.Size(385, 80);
this.TxtDes.Size = new System.Drawing.Size(513, 80);
this.TxtDes.TabIndex = 11;
this.TxtDes.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtDes.ToolTip = "";
@ -181,7 +183,7 @@
this.chromeTabControl1.SelectedIndex = 0;
this.chromeTabControl1.ShowAddButton = false;
this.chromeTabControl1.ShowCloseButton = false;
this.chromeTabControl1.Size = new System.Drawing.Size(522, 306);
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;
@ -189,6 +191,8 @@
//
// 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);
@ -200,11 +204,31 @@
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.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;
@ -217,7 +241,7 @@
//
// BtnBrowser
//
this.BtnBrowser.BaseColor = System.Drawing.Color.DarkGreen;
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";
@ -318,9 +342,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.DarkGreen;
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(458, 467);
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;
@ -331,9 +355,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.DarkGreen;
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(377, 467);
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;
@ -347,7 +371,7 @@
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.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;
@ -358,7 +382,7 @@
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 39);
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;
@ -388,7 +412,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(543, 506);
this.ClientSize = new System.Drawing.Size(671, 615);
this.Controls.Add(this.TxtCmdId);
this.Controls.Add(this.label6);
this.Controls.Add(this.LblCustomImg);
@ -403,8 +427,6 @@
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);
@ -446,5 +468,7 @@
private System.Windows.Forms.Label label6;
private ryControls.TextBoxEx2 TxtCmdId;
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);
@ -137,6 +161,7 @@ namespace VSoft
json.Add("RunAsAdmin", ChkRunAsAdmin.Checked);
mySQL.AddField("SetJson", json.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

@ -35,12 +35,14 @@
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, 81);
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;
@ -50,7 +52,7 @@
//
this.TxtDes.BackColor = System.Drawing.Color.White;
this.TxtDes.EmptyText = "";
this.TxtDes.Location = new System.Drawing.Point(12, 101);
this.TxtDes.Location = new System.Drawing.Point(12, 95);
this.TxtDes.MaxLength = 999999999;
this.TxtDes.Multiline = false;
this.TxtDes.Name = "TxtDes";
@ -79,7 +81,7 @@
//
this.TxtName.BackColor = System.Drawing.Color.White;
this.TxtName.EmptyText = "";
this.TxtName.Location = new System.Drawing.Point(12, 54);
this.TxtName.Location = new System.Drawing.Point(12, 50);
this.TxtName.MaxLength = 999999999;
this.TxtName.Multiline = false;
this.TxtName.Name = "TxtName";
@ -98,8 +100,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, 128);
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;
@ -110,8 +113,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, 128);
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;
@ -119,18 +123,39 @@
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(350, 162);
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.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "FrmAddType";
@ -149,5 +174,7 @@
public ryControls.TextBoxEx2 TxtName;
private System.Windows.Forms.Label label2;
public ryControls.TextBoxEx2 TxtDes;
private System.Windows.Forms.Label label7;
public ryControls.HotkeyTextBox hotkeyTextBox1;
}
}

View File

@ -1,4 +1,5 @@
using ryCommonDb;
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@ -22,6 +23,10 @@ namespace VSoft
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;
@ -37,6 +42,7 @@ namespace VSoft
#region
TxtName.Text = reader["Name"].ToString();
TxtDes.Text = reader["Des"].ToString();
hotkeyTextBox1.HotKey = reader["Hotkey"].ToString();
#endregion
}
ds.Dispose();
@ -58,20 +64,47 @@ namespace VSoft
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);
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

@ -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; }
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

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using VSoft.Config;
using static ryCommonDb.DataProvider;
namespace VSoft.Prams
@ -12,8 +13,8 @@ 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 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)
{
@ -164,6 +165,7 @@ namespace VSoft.Prams
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);
@ -178,6 +180,7 @@ namespace VSoft.Prams
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);
@ -196,7 +199,6 @@ namespace VSoft.Prams
}
public static void CreateSysTable(DataProvider.DataProviderType dataType, string ConnStr)
{
DataProvider mydb = new DataProvider();
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(ConnStr) == 1)
{

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

@ -50,9 +50,9 @@ namespace VSoft.Skins
// 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.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(285, 141);
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;
@ -63,9 +63,9 @@ namespace VSoft.Skins
// 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.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(214, 141);
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;
@ -77,11 +77,10 @@ namespace VSoft.Skins
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(355, 172);
this.ClientSize = new System.Drawing.Size(387, 237);
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;

View File

@ -35,8 +35,11 @@ namespace VSoft.Skins
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(594, 521);
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);

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

@ -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">