Skip to content

Commit 7602177

Browse files
committed
修复问题。
程序主体。
1 parent edd382a commit 7602177

113 files changed

Lines changed: 9064 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Coding/Quick.sln

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 14
4+
VisualStudioVersion = 14.0.24720.0
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Quick", "Quick\Quick.csproj", "{D26B7BEA-D131-4801-A19B-E0AFC6740322}"
7+
EndProject
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuickUpdate", "QuickUpdate\QuickUpdate.csproj", "{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}"
9+
EndProject
10+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuickPlugin", "QuickPlugin\QuickPlugin.csproj", "{EA358646-8755-4A40-AABC-200C03CF86CC}"
11+
EndProject
12+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuickUI", "QuickUI\QuickUI.csproj", "{F36B622E-4F74-4D69-912C-FB9DE8915362}"
13+
EndProject
14+
Global
15+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
16+
D4KSO|Any CPU = D4KSO|Any CPU
17+
D4KSO|Mixed Platforms = D4KSO|Mixed Platforms
18+
D4KSO|Win32 = D4KSO|Win32
19+
Debug|Any CPU = Debug|Any CPU
20+
Debug|Mixed Platforms = Debug|Mixed Platforms
21+
Debug|Win32 = Debug|Win32
22+
R4KSO|Any CPU = R4KSO|Any CPU
23+
R4KSO|Mixed Platforms = R4KSO|Mixed Platforms
24+
R4KSO|Win32 = R4KSO|Win32
25+
Release|Any CPU = Release|Any CPU
26+
Release|Mixed Platforms = Release|Mixed Platforms
27+
Release|Win32 = Release|Win32
28+
Template|Any CPU = Template|Any CPU
29+
Template|Mixed Platforms = Template|Mixed Platforms
30+
Template|Win32 = Template|Win32
31+
EndGlobalSection
32+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
33+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.D4KSO|Any CPU.ActiveCfg = D4KSO|Any CPU
34+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.D4KSO|Any CPU.Build.0 = D4KSO|Any CPU
35+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.D4KSO|Mixed Platforms.ActiveCfg = D4KSO|Any CPU
36+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.D4KSO|Mixed Platforms.Build.0 = D4KSO|Any CPU
37+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.D4KSO|Win32.ActiveCfg = D4KSO|Any CPU
38+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Debug|Any CPU.Build.0 = Debug|Any CPU
40+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
41+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
42+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Debug|Win32.ActiveCfg = Debug|Any CPU
43+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.R4KSO|Any CPU.ActiveCfg = R4KSO|Any CPU
44+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.R4KSO|Any CPU.Build.0 = R4KSO|Any CPU
45+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.R4KSO|Any CPU.Deploy.0 = R4KSO|Any CPU
46+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.R4KSO|Mixed Platforms.ActiveCfg = R4KSO|Any CPU
47+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.R4KSO|Mixed Platforms.Build.0 = R4KSO|Any CPU
48+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.R4KSO|Win32.ActiveCfg = R4KSO|Any CPU
49+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Release|Any CPU.ActiveCfg = Release|Any CPU
50+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Release|Any CPU.Build.0 = Release|Any CPU
51+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
52+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Release|Mixed Platforms.Build.0 = Release|Any CPU
53+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Release|Win32.ActiveCfg = Release|Any CPU
54+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Template|Any CPU.ActiveCfg = Release|Any CPU
55+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Template|Any CPU.Build.0 = Release|Any CPU
56+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
57+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Template|Mixed Platforms.Build.0 = Release|Any CPU
58+
{D26B7BEA-D131-4801-A19B-E0AFC6740322}.Template|Win32.ActiveCfg = Release|Any CPU
59+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.D4KSO|Any CPU.ActiveCfg = D4KSO|Any CPU
60+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.D4KSO|Any CPU.Build.0 = D4KSO|Any CPU
61+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.D4KSO|Any CPU.Deploy.0 = D4KSO|Any CPU
62+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.D4KSO|Mixed Platforms.ActiveCfg = D4KSO|Any CPU
63+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.D4KSO|Win32.ActiveCfg = D4KSO|Any CPU
64+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
65+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Debug|Any CPU.Build.0 = Debug|Any CPU
66+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
67+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Debug|Win32.ActiveCfg = Debug|Any CPU
68+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.R4KSO|Any CPU.ActiveCfg = R4KSO|Any CPU
69+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.R4KSO|Any CPU.Build.0 = R4KSO|Any CPU
70+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.R4KSO|Mixed Platforms.ActiveCfg = R4KSO|Any CPU
71+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.R4KSO|Win32.ActiveCfg = R4KSO|Any CPU
72+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Release|Any CPU.ActiveCfg = Release|Any CPU
73+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Release|Any CPU.Build.0 = Release|Any CPU
74+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
75+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Release|Win32.ActiveCfg = Release|Any CPU
76+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Template|Any CPU.ActiveCfg = Release|Any CPU
77+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
78+
{E197A7E7-B3E0-4ECF-AC0A-459BC80D2A28}.Template|Win32.ActiveCfg = Release|Any CPU
79+
{EA358646-8755-4A40-AABC-200C03CF86CC}.D4KSO|Any CPU.ActiveCfg = D4KSO|Any CPU
80+
{EA358646-8755-4A40-AABC-200C03CF86CC}.D4KSO|Any CPU.Build.0 = D4KSO|Any CPU
81+
{EA358646-8755-4A40-AABC-200C03CF86CC}.D4KSO|Mixed Platforms.ActiveCfg = D4KSO|Any CPU
82+
{EA358646-8755-4A40-AABC-200C03CF86CC}.D4KSO|Mixed Platforms.Build.0 = D4KSO|Any CPU
83+
{EA358646-8755-4A40-AABC-200C03CF86CC}.D4KSO|Win32.ActiveCfg = D4KSO|Any CPU
84+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
85+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
86+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
87+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
88+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Debug|Win32.ActiveCfg = Debug|Any CPU
89+
{EA358646-8755-4A40-AABC-200C03CF86CC}.R4KSO|Any CPU.ActiveCfg = R4KSO|Any CPU
90+
{EA358646-8755-4A40-AABC-200C03CF86CC}.R4KSO|Any CPU.Build.0 = R4KSO|Any CPU
91+
{EA358646-8755-4A40-AABC-200C03CF86CC}.R4KSO|Mixed Platforms.ActiveCfg = R4KSO|Any CPU
92+
{EA358646-8755-4A40-AABC-200C03CF86CC}.R4KSO|Mixed Platforms.Build.0 = R4KSO|Any CPU
93+
{EA358646-8755-4A40-AABC-200C03CF86CC}.R4KSO|Win32.ActiveCfg = R4KSO|Any CPU
94+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
95+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Release|Any CPU.Build.0 = Release|Any CPU
96+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
97+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
98+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Release|Win32.ActiveCfg = Release|Any CPU
99+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Template|Any CPU.ActiveCfg = Release|Any CPU
100+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Template|Any CPU.Build.0 = Release|Any CPU
101+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
102+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Template|Mixed Platforms.Build.0 = Release|Any CPU
103+
{EA358646-8755-4A40-AABC-200C03CF86CC}.Template|Win32.ActiveCfg = Release|Any CPU
104+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.D4KSO|Any CPU.ActiveCfg = D4KSO|Any CPU
105+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.D4KSO|Any CPU.Build.0 = D4KSO|Any CPU
106+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.D4KSO|Mixed Platforms.ActiveCfg = D4KSO|Any CPU
107+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.D4KSO|Mixed Platforms.Build.0 = D4KSO|Any CPU
108+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.D4KSO|Win32.ActiveCfg = D4KSO|Any CPU
109+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
110+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Debug|Any CPU.Build.0 = Debug|Any CPU
111+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
112+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
113+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Debug|Win32.ActiveCfg = Debug|Any CPU
114+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.R4KSO|Any CPU.ActiveCfg = R4KSO|Any CPU
115+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.R4KSO|Any CPU.Build.0 = R4KSO|Any CPU
116+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.R4KSO|Mixed Platforms.ActiveCfg = R4KSO|Any CPU
117+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.R4KSO|Mixed Platforms.Build.0 = R4KSO|Any CPU
118+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.R4KSO|Win32.ActiveCfg = R4KSO|Any CPU
119+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Release|Any CPU.ActiveCfg = Release|Any CPU
120+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Release|Any CPU.Build.0 = Release|Any CPU
121+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
122+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Release|Mixed Platforms.Build.0 = Release|Any CPU
123+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Release|Win32.ActiveCfg = Release|Any CPU
124+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Template|Any CPU.ActiveCfg = Release|Any CPU
125+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Template|Any CPU.Build.0 = Release|Any CPU
126+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Template|Mixed Platforms.ActiveCfg = Release|Any CPU
127+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Template|Mixed Platforms.Build.0 = Release|Any CPU
128+
{F36B622E-4F74-4D69-912C-FB9DE8915362}.Template|Win32.ActiveCfg = Release|Any CPU
129+
EndGlobalSection
130+
GlobalSection(SolutionProperties) = preSolution
131+
HideSolutionNode = FALSE
132+
EndGlobalSection
133+
EndGlobal

Coding/Quick/Config.cs

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
using System;
2+
using System.IO;
3+
using System.Windows.Forms;
4+
using System.Xml.Serialization;
5+
6+
namespace Froser.Quick
7+
{
8+
public class QuickConfig
9+
{
10+
public Boolean FirstRun { get; set; }
11+
public Keys HotKey { get; set; }
12+
public Int32 HotKeyFlags { get; set; }
13+
public Boolean SearchToogle { get; set; }
14+
15+
private static String ConfigDir
16+
{
17+
get
18+
{
19+
String strConfigDirector = Application.StartupPath;
20+
if (!Directory.Exists(strConfigDirector))
21+
{
22+
Directory.CreateDirectory(strConfigDirector);
23+
}
24+
return strConfigDirector;
25+
}
26+
}
27+
28+
private static String ConfigPath
29+
{
30+
get
31+
{
32+
return Path.Combine(ConfigDir, "quick.config");
33+
}
34+
}
35+
36+
private static QuickConfig _config;
37+
public static QuickConfig ThisConfig
38+
{
39+
get
40+
{
41+
if (_config == null)
42+
{
43+
_config = Load();
44+
}
45+
return _config;
46+
}
47+
}
48+
49+
private QuickConfig()
50+
{
51+
FirstRun = true;
52+
HotKey = Keys.Q;
53+
HotKeyFlags = (int)Hotkey.KeyFlags.MOD_CONTROL;
54+
SearchToogle = true;
55+
}
56+
57+
public bool TrySave()
58+
{
59+
return TrySave(this);
60+
}
61+
62+
/// <summary>
63+
/// 读取一个配置文件,并返回一个PluginConfig对象。若XML配置文件不存在,则会用初始化本类的方式(使用默认初始化值)来创建一个配置文件。
64+
/// </summary>
65+
private static QuickConfig Load()
66+
{
67+
QuickConfig instance;
68+
if (!File.Exists(ConfigPath))
69+
{
70+
//配置文件不存在,则创建一个新的实例
71+
instance = new QuickConfig();
72+
TrySave(instance);
73+
}
74+
else
75+
{
76+
//如果文件存在,则反序列化它
77+
XmlSerializer xmlsLoad = new XmlSerializer(typeof(QuickConfig));
78+
using (FileStream fs = new FileStream(ConfigPath, FileMode.Open, FileAccess.Read))
79+
{
80+
instance = (QuickConfig)xmlsLoad.Deserialize(fs);
81+
}
82+
}
83+
return instance;
84+
}
85+
86+
private static bool TrySave(QuickConfig instance)
87+
{
88+
try
89+
{
90+
//注意:以下操作线程不安全
91+
//将密码暂时加密
92+
XmlSerializer xmlsSave = new XmlSerializer(typeof(QuickConfig));
93+
using (FileStream fs = new FileStream(ConfigPath, FileMode.Create, FileAccess.Write))
94+
{
95+
xmlsSave.Serialize(fs, instance);
96+
}
97+
return true;
98+
}
99+
catch
100+
{
101+
return false;
102+
}
103+
}
104+
}
105+
}

Coding/Quick/Extension.cs

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
using System.Windows.Forms;
2+
using System;
3+
using System.Text.RegularExpressions;
4+
using System.Collections;
5+
using System.Collections.Generic;
6+
using System.Windows.Media.Imaging;
7+
using System.Drawing;
8+
using System.Windows.Interop;
9+
using System.Windows;
10+
using System.Windows.Input;
11+
12+
namespace Froser.Quick
13+
{
14+
public static class Extension
15+
{
16+
//判断某字符串是否按顺序含有子字符串,如abcd含有ac但是不含有ca
17+
public static bool HasString(this String str, String substr)
18+
{
19+
//包含在{}中的字符表示,不作为查找依据。例如,{x, y}中,忽略x, y这几个字符,当然{}本身也不包含在内
20+
Regex brace = new Regex(@"\{(.*?)\}");
21+
//先统一大小写
22+
str = str.ToLower();
23+
substr = substr.ToLower();
24+
25+
bool result = false;
26+
String rec_str = brace.Replace(str, "");
27+
for (int i = 0; i < substr.Length; i++)
28+
{
29+
int index = rec_str.IndexOf(substr[i]);
30+
if (index < 0)
31+
{
32+
return false;
33+
}
34+
else
35+
{
36+
if (rec_str.Length == 1) return ( i == substr.Length - 1);
37+
rec_str = rec_str.Substring(index + 1);
38+
result = true;
39+
}
40+
}
41+
42+
return result;
43+
}
44+
45+
public static int Plus(this object lhs, object addend)
46+
{
47+
if (lhs is int)
48+
{
49+
if (addend is int)
50+
{
51+
return (int)lhs + (int)addend;
52+
}
53+
else if (addend is float || addend is double)
54+
{
55+
return (int)((int)lhs + double.Parse(addend.ToString()));
56+
}
57+
else
58+
{
59+
throw new NotSupportedException();
60+
}
61+
}
62+
else if (lhs is float || lhs is double)
63+
{
64+
if (addend is int)
65+
{
66+
return (int)(double.Parse (lhs.ToString ()) + (int)addend);
67+
}
68+
else if (addend is float || addend is double)
69+
{
70+
return (int)(double.Parse(lhs.ToString()) + double.Parse(addend.ToString()));
71+
}
72+
else
73+
{
74+
throw new NotSupportedException();
75+
}
76+
}
77+
else
78+
{
79+
throw new NotSupportedException();
80+
}
81+
}
82+
83+
public static void ShowBalloonTip(this NotifyIcon notify, String text)
84+
{
85+
notify.ShowBalloonTip(500, System.Windows.Forms.Application.ProductName, text, ToolTipIcon.Info);
86+
}
87+
88+
public static void Swap(this IList list, object a, object b)
89+
{
90+
int indexOfB = list.IndexOf (b);
91+
list.Insert(list.IndexOf (a), b);
92+
list.Remove(a);
93+
list.Remove(b);
94+
list.Insert(indexOfB, a);
95+
}
96+
97+
public static string KeyToString(this Key key)
98+
{
99+
switch (key.ToString().ToLower())
100+
{
101+
case "oem3":
102+
return "`";
103+
default:
104+
return key.ToString();
105+
}
106+
}
107+
108+
public static bool ContainsKey<T>(this Dictionary<String, T> dic, String key, bool ignoreCase, out string keyInModel)
109+
{
110+
keyInModel = "";
111+
foreach (var item in dic.Keys)
112+
{
113+
if (String.Compare(item, key, ignoreCase) == 0) {
114+
keyInModel = item;
115+
return true;
116+
}
117+
}
118+
return false;
119+
}
120+
121+
public static BitmapSource ToBitmapSource(this Icon icon)
122+
{
123+
var bitmap = icon.ToBitmap();
124+
var hbitmap = bitmap.GetHbitmap();
125+
return Imaging.CreateBitmapSourceFromHBitmap(hbitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
126+
}
127+
}
128+
}

0 commit comments

Comments
 (0)