编译失败, Compilation, (14,18): error CS0234: 命名空间“System.Web”中不存在类型或命名空间名“Script”(是否缺少程序集引用?)
(164,30): error CS0246: 未能找到类型或命名空间名“JavaScriptSerializer”(是否缺少 using 指令或程序集引用?)
(282,30): error CS0246: 未能找到类型或命名空间名“JavaScriptSerializer”(是否缺少 using 指令或程序集引用?)
代码: 1. using System;
2. using System.Text;
3. using System.Reflection;
4. using System.IO;
5. using System.Net;
6. using System.Net.Http;
7. using System.Collections;
8. using System.Collections.Generic;
9. using System.Collections.Concurrent;
10. using System.Text.RegularExpressions;
11. using System.Threading.Tasks;
12. using System.Linq;
13. using System.Diagnostics;
14. using System.Web.Script.Serialization;
15. using System.Windows.Forms;
16.
17. namespace __ScriptExecution {
18.
19. public class __8b8v659h
20. {
21.
22.
23. // .cs 文件类型,便于外部编辑时使用
24. //css_ref System.Web.Extensions.dll;
25. // 引用必要的命名空间
26. // using System;
27. // using System.Collections.Generic;
28. // using System.Diagnostics;
29. // using System.IO;
30. // using System.Linq;
31. // using System.Text;
32. // using System.Text.RegularExpressions;
33. // using System.Threading.Tasks;
34. // using System.Web.Script.Serialization;
35. // using System.Windows.Forms;
36.
37. //*************************************************************************************
38. //*
39. //* 文 件 名: %OCR4.0%
40. //* 描 述: 实现RapidOCR-json.exe调用,支持单语言或多语言并行识别与结果智能合并
41. //*
42. //* 版 本: V2.3
43. //* 创 建 者: %Qyu%
44. //* 创建时间: 20250717
45. //* ======================================
46. //* 历史更新记录
47. //* 版本:V2.3 修改时间:20250722 修改人:Qyu
48. //* 修改内容:
49. //* 1.引入多线程多语言OCR功能
50. //* 2.根据输入文本的字符特征检测语言,再提取多语言分数最高的文本
51. //* ======================================
52. //*************************************************************************************
53.
54.
55. //Classes OcrResponse: 用于映射和存储JSON返回的数据
56. public class OcrResponse { public int code { get; set; } public object data { get; set; } }
57. public class OcrDataItem { public List<List<long>> box { get; set; } public double score { get; set; } public string text { get; set; } }
58. public class OcrTextBlock { public string Text { get; set; } public long Top { get; set; } public long Left { get; set; } }
59.
60.
61. // Quicker 将会调用的主函数
62. public class QuickerScript
63. {
64. private class OcrLanguageConfig
65. {
66. public string RecModel { get; set; }
67. public string KeysFile { get; set; }
68. }
69.
70. private static string DetectLanguage(string text)
71. {
72. if (string.IsNullOrEmpty(text)) return "未知";
73. if (Regex.IsMatch(text, @"[\u3040-\u309F\u30A0-\u30FF]")) return "日文";
74. if (Regex.IsMatch(text, @"[\uAC00-\uD7A3]")) return "韩文";
75. if (Regex.IsMatch(text, @"[\u0400-\u04FF]")) return "俄文";
76. if (Regex.IsMatch(text, @"[\u4e00-\u9fa5]")) return "中文";
77. if (Regex.IsMatch(text, @"[a-zA-Z]")) return "英文";
78. return "未知";
79. }
80.
81. public static void Exec(Quicker.Public.IStepContext context)
82. {
83. string ocrDirectory = context.GetVarValue("WorkingDirectory") as string;
84. if (string.IsNullOrWhiteSpace(ocrDirectory)) { MessageBox.Show("配置错误:\n\nQuicker变量 'WorkingDirectory' 未设置或为空。", "变量未找到", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
85. string imagePath = context.GetVarValue("imageToOcr") as string;
86. if (string.IsNullOrWhiteSpace(imagePath) || !File.Exists(imagePath)) { MessageBox.Show("配置错误:\n\nQuicker变量 'imageToOcr' 未设置、为空或文件不存在。", "变量或文件未找到", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
87. bool performViolentReplacement = context.GetVarValue("violentReplacement") as bool? ?? false;
88. string wayValue = context.GetVarValue("WayValue") as string;
89. bool useMultilingualOcr = context.GetVarValue("multilingualOcr") as bool? ?? false;
90. bool isImg = context.GetVarValue("isImg") as bool? ?? false;
91. string rawOutput;
92. if (useMultilingualOcr)
93. {
94. rawOutput = CallOcrProcessMultilingual(ocrDirectory, imagePath);
95. }
96. else
97. {
98. string modelsPath = Path.Combine(ocrDirectory, "models");
99. string arguments = string.Format("--models=\"{0}\" --det=ch_PP-OCRv4_det_infer.onnx --cls=ch_ppocr_mobile_v2.0_cls_infer.onnx --rec=rec_ch_PP-OCRv4_infer.onnx --keys=ppocr_keys_v1.txt --doAngle=0 --image_path=\"{1}\"", modelsPath, imagePath);
100. rawOutput = CallOcrProcess(ocrDirectory, arguments);
101. }
102. if (string.IsNullOrWhiteSpace(rawOutput) || rawOutput.StartsWith("Error:"))
103. {
104. MessageBox.Show(rawOutput, "OCR 过程出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
105. return;
106. }
107. string formattedText = ProcessOcrResponse(rawOutput, wayValue, performViolentReplacement);
108. if (formattedText != null)
109. {
110. context.SetVarValue("formattedText", formattedText);
111. if(!isImg){
112. Clipboard.SetText(formattedText);
113. }
114. }
115. }
116.
117. private static string CallOcrProcessMultilingual(string ocrDirectory, string imagePath)
118. {
119. var languages = new Dictionary<string, OcrLanguageConfig>
120. {
121. {"Chinese_Simplified", new OcrLanguageConfig { RecModel = "rec_ch_PP-OCRv4_infer.onnx", KeysFile = "ppocr_keys_v1.txt" }},
122. {"Chinese_Traditional", new OcrLanguageConfig { RecModel = "rec_chinese_cht_PP-OCRv3_infer.onnx", KeysFile = "dict_chinese_cht.txt" }},
123. //{"English", new OcrLanguageConfig { RecModel = "rec_en_PP-OCRv3_infer.onnx", KeysFile = "dict_en.txt" }},
124. {"Korean", new OcrLanguageConfig { RecModel = "rec_korean_PP-OCRv3_infer.onnx", KeysFile = "dict_korean.txt" }},
125. {"Japanese", new OcrLanguageConfig { RecModel = "rec_japan_PP-OCRv3_infer.onnx", KeysFile = "dict_japan.txt" }},
126. {"Cyrillic", new OcrLanguageConfig { RecModel = "rec_cyrillic_PP-OCRv3_infer.onnx", KeysFile = "dict_cyrillic.txt" }}
127. };
128. var tasks = new List<Task<Tuple<string, string>>>();
129. string modelsPath = Path.Combine(ocrDirectory, "models");
130. if (!Directory.Exists(modelsPath)) return string.Format("Error: 找不到 models 文件夹!\n请检查路径:{0}", modelsPath);
131.
132. const string commonArgs = "--det=ch_PP-OCRv4_det_infer.onnx --cls=ch_ppocr_mobile_v2.0_cls_infer.onnx --doAngle=0";
133.
134. foreach (var langPair in languages)
135. {
136. string langName = langPair.Key;
137. OcrLanguageConfig langConfig = langPair.Value;
138. string arguments = string.Format("--models=\"{0}\" {1} --rec={2} --keys={3} --image_path=\"{4}\"",
139. modelsPath, commonArgs, langConfig.RecModel, langConfig.KeysFile, imagePath);
140.
141. tasks.Add(Task.Run(() =>
142. {
143. string result = CallOcrProcess(ocrDirectory, arguments);
144. return new Tuple<string, string>(langName, result);
145. }));
146. }
147.
148. Task.WhenAll(tasks).Wait();
149.
150. var languageToJsonResults = tasks
151. .Where(t => t.Result != null && !string.IsNullOrWhiteSpace(t.Result.Item2) && !t.Result.Item2.StartsWith("Error:"))
152. .ToDictionary(t => t.Result.Item1, t => t.Result.Item2);
153.
154. if (languageToJsonResults.Count == 0)
155. {
156. return "Error: 所有语言的OCR识别均失败或未返回有效数据。";
157. }
158.
159. return MergeOcrResults(languageToJsonResults);
160. }
161.
162. private static string MergeOcrResults(Dictionary<string, string> languageToJsonResults)
163. {
164. var serializer = new JavaScriptSerializer();
165. var priorityLockedResults = new Dictionary<string, OcrDataItem>();
166. var bestOverallResults = new Dictionary<string, OcrDataItem>();
167.
168. foreach (var langResultPair in languageToJsonResults)
169. {
170. string langName = langResultPair.Key;
171. string json = langResultPair.Value;
172.
173. try
174. {
175. var response = serializer.Deserialize<OcrResponse>(json);
176. if (response == null || response.code != 100 || response.data == null) continue;
177. var dataItems = serializer.ConvertToType<List<OcrDataItem>>(response.data);
178. if (dataItems == null) continue;
179.
180. foreach (var item in dataItems)
181. {
182. if (item.box == null || item.box.Count < 4) continue;
183. var boxKeyBuilder = new StringBuilder();
184. foreach (var point in item.box) { boxKeyBuilder.Append(point[0]).Append(',').Append(point[1]).Append(';'); }
185. string boxKey = boxKeyBuilder.ToString();
186.
187. if (priorityLockedResults.ContainsKey(boxKey)) continue;
188.
189. bool isLocked = false;
190. string detectedLanguage = DetectLanguage(item.text);
191.
192. if ((langName == "Korean" && detectedLanguage == "韩文" && item.score >= 0.88) ||
193. (langName == "Japanese" && detectedLanguage == "日文" && item.score >= 0.88) ||
194. (langName == "Cyrillic" && detectedLanguage == "俄文" && item.score >= 0.88) ||
195. (langName == "English" && detectedLanguage == "英文" && item.score >= 0.9) ||
196. (langName == "Chinese_Traditional" && detectedLanguage == "中文" && item.score >= 0.95))
197. {
198. priorityLockedResults[boxKey] = item;
199. isLocked = true;
200. }
201.
202. if (!isLocked)
203. {
204. if (!bestOverallResults.ContainsKey(boxKey) || item.score > bestOverallResults[boxKey].score)
205. {
206. bestOverallResults[boxKey] = item;
207. }
208. }
209. }
210. }
211. catch (Exception) { /* 忽略解析失败 */ }
212. }
213.
214. foreach (var lockedPair in priorityLockedResults)
215. {
216. bestOverallResults[lockedPair.Key] = lockedPair.Value;
217. }
218.
219. if (bestOverallResults.Count == 0)
220. {
221. return "{\"code\":101,\"data\":\"在所有语言的有效结果中未能合并任何文本。\"}";
222. }
223.
224. var finalData = new List<OcrDataItem>(bestOverallResults.Values);
225. finalData.Sort((a, b) =>
226. {
227. long topA = a.box[0][1];
228. long topB = b.box[0][1];
229. if (Math.Abs(topA - topB) <= 10) return a.box[0][0].CompareTo(b.box[0][0]);
230. return topA.CompareTo(topB);
231. });
232.
233. var finalResponse = new OcrResponse { code = 100, data = finalData };
234. return serializer.Serialize(finalResponse);
235. }
236.
237. private static string CallOcrProcess(string ocrDirectory, string arguments)
238. {
239. string exeFullPath = Path.Combine(ocrDirectory, "RapidOCR-json.exe");
240. if (!File.Exists(exeFullPath)) return string.Format("Error: 找不到 OCR 程序文件!\n请检查路径:{0}", exeFullPath);
241. var processStartInfo = new ProcessStartInfo
242. {
243. FileName = exeFullPath,
244. Arguments = arguments,
245. WorkingDirectory = ocrDirectory,
246. UseShellExecute = false,
247. RedirectStandardOutput = true,
248. RedirectStandardError = true,
249. CreateNoWindow = true,
250. StandardOutputEncoding = Encoding.UTF8,
251. StandardErrorEncoding = Encoding.UTF8
252. };
253. try
254. {
255. using (var process = new Process { StartInfo = processStartInfo })
256. {
257. process.Start();
258. string output = process.StandardOutput.ReadToEnd();
259. string error = process.StandardError.ReadToEnd();
260. if (!process.WaitForExit(15000))
261. {
262. try { process.Kill(); } catch { }
263. return "Error: OCR 执行超时(超过15秒)!";
264. }
265. if (process.ExitCode == 0 && string.IsNullOrWhiteSpace(error))
266. {
267. int jsonStartIndex = output.IndexOf('{');
268. if (jsonStartIndex != -1) return output.Substring(jsonStartIndex).Trim();
269. return string.Format("Error: OCR进程成功执行,但输出中未找到JSON数据。\n原始输出:\n{0}", output);
270. }
271. return string.Format("Error: OCR 执行失败!\n退出码: {0}\n错误日志:\n{1}\n标准输出:\n{2}", process.ExitCode, error, output);
272. }
273. }
274. catch (Exception ex)
275. {
276. return "Error: 运行脚本时发生严重异常: \n" + ex.ToString();
277. }
278. }
279.
280. private static string ProcessOcrResponse(string json, string wayValue, bool performViolentReplacement)
281. {
282. var serializer = new JavaScriptSerializer();
283. try
284. {
285. var response = serializer.Deserialize<OcrResponse>(json);
286. if (response == null) {
287. MessageBox.Show("解析JSON时返回了null。\n\n接收到的原始文本:\n" + json, "JSON解析失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
288. return null;
289. }
290. switch (response.code)
291. {
292. case 100:
293. var dataItems = serializer.ConvertToType<List<OcrDataItem>>(response.data);
294. if (dataItems == null || dataItems.Count == 0)
295. {
296. MessageBox.Show("OCR成功返回(Code 100),但data数组为空。", "解析警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
297. return null;
298. }
299. var textBlocks = dataItems.Select(item => new OcrTextBlock {
300. Left = item.box[0][0],
301. Top = item.box[0][1],
302. Text = item.text
303. }).ToList();
304. string formattedText;
305. switch (wayValue)
306. {
307. case "line": formattedText = FormatTextWithLineMerging(textBlocks, false); break;
308. case "uniline": formattedText = ConvertToSingleLine(FormatTextWithLineMerging(textBlocks, false)); break;
309. case "Code": default: formattedText = FormatTextWithLineMerging(textBlocks, true); break;
310. }
311. if (performViolentReplacement) { formattedText = PerformViolentReplacement(formattedText); }
312. return formattedText;
313. case 101:
314. MessageBox.Show(string.Format("未识别到任何文字。\n\n信息: {0}", response.data), "OCR 结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
315. return null;
316. case 200:
317. MessageBox.Show(string.Format("图片路径不存在。\n\n信息: {0}", response.data), "OCR 错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
318. return null;
319. default:
320. MessageBox.Show(string.Format("OCR返回了未知的状态码: {0}\n\n数据: {1}", response.code, response.data), "未知状态", MessageBoxButtons.OK, MessageBoxIcon.Warning);
321. return null;
322. }
323. }
324. catch (Exception ex)
325. {
326. MessageBox.Show("解析JSON时发生严重错误。这通常意味着OCR工具返回了非标准的文本。\n\n错误详情: " + ex.Message + "\n\n接收到的原始文本:\n" + json, "JSON解析失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
327. return null;
328. }
329. }
330.
331. public static string FormatTextWithLineMerging(List<OcrTextBlock> blocks, bool includeIndentation)
332. {
333. if (blocks == null || blocks.Count == 0) return "";
334. int yTolerance = 10;
335. blocks.Sort((a, b) => {
336. if (Math.Abs(a.Top - b.Top) <= yTolerance) return a.Left.CompareTo(b.Left);
337. return a.Top.CompareTo(b.Top);
338. });
339. var resultBuilder = new StringBuilder();
340. if (blocks.Count == 0) return "";
341. long lastTop = -1;
342. int pixelsPerIndentLevel = 48;
343. for (int i = 0; i < blocks.Count; i++)
344. {
345. var block = blocks[i];
346. if (i > 0 && Math.Abs(block.Top - lastTop) > yTolerance)
347. {
348. resultBuilder.AppendLine();
349. }
350. if (includeIndentation && (i == 0 || resultBuilder.ToString().EndsWith("\n") || resultBuilder.ToString().EndsWith("\r\n")))
351. {
352. int numTabs = (int)Math.Round((double)block.Left / pixelsPerIndentLevel);
353. if (numTabs > 0) resultBuilder.Append(new string('\t', numTabs));
354. }
355. resultBuilder.Append(block.Text);
356. lastTop = block.Top;
357. }
358. return resultBuilder.ToString();
359. }
360.
361. private static string ConvertToSingleLine(string multilineText)
362. {
363. if (string.IsNullOrEmpty(multilineText)) return "";
364. return multilineText.Replace("\r\n", " ").Replace("\n", " ").Replace("\r", " ").Trim();
365. }
366.
367. private static string PerformViolentReplacement(string text)
368. {
369. if (string.IsNullOrEmpty(text)) return text;
370. text = text.Replace("‘", "'").Replace("’", "'").Replace("“", "\"").Replace("”", "\"").Replace("(", "(").Replace(")", ")").Replace("【", "[").Replace("】", "]").Replace("{", "{").Replace("}", "}").Replace(",", ",").Replace(":", ":");
371. text = text.Replace("[o]", "\"[0]\"");
372. var lines = text.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
373. var resultBuilder = new StringBuilder();
374. foreach (var line in lines)
375. {
376. if (string.IsNullOrWhiteSpace(line)) { resultBuilder.AppendLine(); continue; }
377. string trimmedLine = line.Trim();
378. if (trimmedLine.Length == 1)
379. {
380. int indentIndex = line.IndexOf(trimmedLine[0]);
381. string indent = (indentIndex >= 0) ? line.Substring(0, indentIndex) : "";
382. if (trimmedLine == "3" || trimmedLine == "}" || trimmedLine == "》") { resultBuilder.AppendLine(indent + "}"); }
383. else if (trimmedLine == "1" || trimmedLine == "t" || trimmedLine == "T" || trimmedLine == "{" || trimmedLine == "《") { resultBuilder.AppendLine(indent + "{"); }
384. else { resultBuilder.AppendLine(line); }
385. }
386. else { resultBuilder.AppendLine(line); }
387. }
388. return resultBuilder.ToString().TrimEnd('\r', '\n', ' ');
389. }
390. }
391.
392.
393. }
394. }
当前引用:C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\Microsoft.CSharp.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\Microsoft.Win32.Primitives.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\Microsoft.Win32.Registry.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\mscorlib.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\netstandard.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Collections.Concurrent.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Collections.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Collections.Immutable.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Collections.NonGeneric.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Collections.Specialized.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.ComponentModel.Annotations.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.ComponentModel.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.ComponentModel.EventBasedAsync.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.ComponentModel.Primitives.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.ComponentModel.TypeConverter.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Console.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Core.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Data.Common.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Diagnostics.Debug.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Diagnostics.DiagnosticSource.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Diagnostics.FileVersionInfo.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Diagnostics.Process.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Diagnostics.StackTrace.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Diagnostics.TraceSource.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Diagnostics.Tracing.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Drawing.Primitives.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Globalization.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.IO.Compression.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.IO.FileSystem.Watcher.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.IO.Pipes.AccessControl.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.IO.Pipes.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Linq.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Linq.Expressions.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Linq.Parallel.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Linq.Queryable.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Memory.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Net.Http.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Net.NameResolution.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Net.Primitives.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Net.Requests.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Net.Security.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Net.Sockets.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Net.WebClient.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Net.WebHeaderCollection.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Net.WebProxy.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Numerics.Vectors.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.ObjectModel.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Private.CoreLib.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Private.DataContractSerialization.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Private.Uri.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Private.Xml.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Private.Xml.Linq.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Reflection.Emit.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Reflection.Emit.ILGeneration.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Reflection.Emit.Lightweight.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Reflection.Metadata.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Reflection.Primitives.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Resources.Writer.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.CompilerServices.VisualC.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.Extensions.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.InteropServices.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.Intrinsics.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.Loader.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.Numerics.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.Serialization.Formatters.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.Serialization.Json.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.Serialization.Primitives.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Runtime.Serialization.Xml.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Security.AccessControl.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Security.Claims.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Security.Cryptography.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Security.Principal.Windows.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Text.Encoding.CodePages.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Text.Encoding.Extensions.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Text.Encodings.Web.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Text.Json.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Text.RegularExpressions.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Threading.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Threading.Overlapped.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Threading.Tasks.Parallel.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Threading.Thread.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Threading.ThreadPool.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Web.HttpUtility.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Xml.Linq.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Xml.ReaderWriter.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Xml.XDocument.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Xml.XmlSerializer.dll
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.8\System.Xml.XPath.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\Accessibility.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\DirectWriteForwarder.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\Microsoft.Win32.SystemEvents.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\PresentationCore.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\PresentationFramework-SystemCore.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\PresentationFramework-SystemData.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\PresentationFramework-SystemXml.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\PresentationFramework-SystemXmlLinq.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\PresentationFramework.Aero2.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\PresentationFramework.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Configuration.ConfigurationManager.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Diagnostics.EventLog.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Drawing.Common.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Drawing.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.IO.Packaging.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Private.Windows.Core.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Private.Windows.GdiPlus.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Security.Cryptography.ProtectedData.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Windows.Controls.Ribbon.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Windows.Extensions.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Windows.Forms.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Windows.Forms.Primitives.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Windows.Primitives.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\System.Xaml.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\UIAutomationProvider.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\UIAutomationTypes.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\WindowsBase.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\WindowsFormsIntegration.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\zh-Hans\PresentationCore.resources.dll
C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.8\zh-Hans\PresentationFramework.resources.dll
C:\Program Files\Quicker\CommunityToolkit.Mvvm.dll
C:\Program Files\Quicker\CSScriptLibrary.dll
C:\Program Files\Quicker\Dapper.StrongName.dll
C:\Program Files\Quicker\DotNetProjects.SVGImage.dll
C:\Program Files\Quicker\DotNetProjects.Wpf.Extended.Toolkit.dll
C:\Program Files\Quicker\DynamicData.dll
C:\Program Files\Quicker\DynamicExpresso.Core.dll
C:\Program Files\Quicker\FontAwesomeIconsWpf.dll
C:\Program Files\Quicker\GongSolutions.WPF.DragDrop.dll
C:\Program Files\Quicker\HandyControl.dll
C:\Program Files\Quicker\HL.dll
C:\Program Files\Quicker\ICSharpCode.AvalonEdit.dll
C:\Program Files\Quicker\log4net.dll
C:\Program Files\Quicker\MdXaml.SyntaxHigh.dll
C:\Program Files\Quicker\Microsoft.CodeAnalysis.CSharp.dll
C:\Program Files\Quicker\Microsoft.CodeAnalysis.dll
C:\Program Files\Quicker\Microsoft.Data.Sqlite.dll
C:\Program Files\Quicker\Microsoft.Extensions.Caching.Abstractions.dll
C:\Program Files\Quicker\Microsoft.Extensions.Caching.Memory.dll
C:\Program Files\Quicker\Microsoft.Extensions.Configuration.Abstractions.dll
C:\Program Files\Quicker\Microsoft.Extensions.Configuration.Binder.dll
C:\Program Files\Quicker\Microsoft.Extensions.Configuration.CommandLine.dll
C:\Program Files\Quicker\Microsoft.Extensions.Configuration.dll
C:\Program Files\Quicker\Microsoft.Extensions.Configuration.EnvironmentVariables.dll
C:\Program Files\Quicker\Microsoft.Extensions.Configuration.FileExtensions.dll
C:\Program Files\Quicker\Microsoft.Extensions.Configuration.Json.dll
C:\Program Files\Quicker\Microsoft.Extensions.Configuration.UserSecrets.dll
C:\Program Files\Quicker\Microsoft.Extensions.DependencyInjection.Abstractions.dll
C:\Program Files\Quicker\Microsoft.Extensions.DependencyInjection.dll
C:\Program Files\Quicker\Microsoft.Extensions.Diagnostics.Abstractions.dll
C:\Program Files\Quicker\Microsoft.Extensions.Diagnostics.dll
C:\Program Files\Quicker\Microsoft.Extensions.FileProviders.Abstractions.dll
C:\Program Files\Quicker\Microsoft.Extensions.FileProviders.Physical.dll
C:\Program Files\Quicker\Microsoft.Extensions.FileSystemGlobbing.dll
C:\Program Files\Quicker\Microsoft.Extensions.Hosting.Abstractions.dll
C:\Program Files\Quicker\Microsoft.Extensions.Hosting.dll
C:\Program Files\Quicker\Microsoft.Extensions.Logging.Abstractions.dll
C:\Program Files\Quicker\Microsoft.Extensions.Logging.Configuration.dll
C:\Program Files\Quicker\Microsoft.Extensions.Logging.Console.dll
C:\Program Files\Quicker\Microsoft.Extensions.Logging.Debug.dll
C:\Program Files\Quicker\Microsoft.Extensions.Logging.dll
C:\Program Files\Quicker\Microsoft.Extensions.Logging.EventLog.dll
C:\Program Files\Quicker\Microsoft.Extensions.Logging.EventSource.dll
C:\Program Files\Quicker\Microsoft.Extensions.Options.ConfigurationExtensions.dll
C:\Program Files\Quicker\Microsoft.Extensions.Options.dll
C:\Program Files\Quicker\Microsoft.Extensions.Primitives.dll
C:\Program Files\Quicker\Microsoft.Windows.SDK.NET.dll
C:\Program Files\Quicker\Microsoft.WindowsAPICodePack.dll
C:\Program Files\Quicker\Microsoft.WindowsAPICodePack.Shell.dll
C:\Program Files\Quicker\NAudio.Wasapi.dll
C:\Program Files\Quicker\Newtonsoft.Json.dll
C:\Program Files\Quicker\NuGet.Versioning.dll
C:\Program Files\Quicker\Python.Runtime.dll
C:\Program Files\Quicker\Quicker.3rd.dll
C:\Program Files\Quicker\Quicker.Common.dll
C:\Program Files\Quicker\Quicker.Contracts.dll
C:\Program Files\Quicker\Quicker.dll
C:\Program Files\Quicker\Quicker.ExpressionEngine.dll
C:\Program Files\Quicker\Quicker.PInvoke.dll
C:\Program Files\Quicker\Quicker.Public.dll
C:\Program Files\Quicker\Quicker.StepEngine.dll
C:\Program Files\Quicker\Quicker.Utilities.dll
C:\Program Files\Quicker\Quicker.Wpf.dll
C:\Program Files\Quicker\Sentry.dll
C:\Program Files\Quicker\SharpVectors.Converters.Wpf.dll
C:\Program Files\Quicker\SharpVectors.Core.dll
C:\Program Files\Quicker\SharpVectors.Css.dll
C:\Program Files\Quicker\SharpVectors.Dom.dll
C:\Program Files\Quicker\SharpVectors.Model.dll
C:\Program Files\Quicker\SharpVectors.Rendering.Wpf.dll
C:\Program Files\Quicker\SharpVectors.Runtime.Wpf.dll
C:\Program Files\Quicker\SimpleNamedPipe.dll
C:\Program Files\Quicker\SQLite3MC.PCLRaw.provider.dll
C:\Program Files\Quicker\SQLitePCLRaw.batteries_v2.dll
C:\Program Files\Quicker\SQLitePCLRaw.core.dll
C:\Program Files\Quicker\System.Management.dll
C:\Program Files\Quicker\System.Net.Http.Formatting.dll
C:\Program Files\Quicker\System.Reactive.dll
C:\Program Files\Quicker\System.Speech.dll
C:\Program Files\Quicker\ToastNotifications.dll
C:\Program Files\Quicker\ToastNotifications.Messages.dll
C:\Program Files\Quicker\WindowsInput.dll
C:\Program Files\Quicker\WinRT.Runtime.dll
C:\Program Files\Quicker\Z.Expressions.Eval.dll
C:\Program Files\Quicker\zh-Hans\Microsoft.CodeAnalysis.CSharp.resources.dll
C:\Users\Administrator\Documents\Quicker\_packages\cea.quicker-expression-enhanced\1.0.25\QuickerExpressionEnhanced.1.0.25.0.dll
C:\Users\Administrator\Documents\Quicker\ActionPanel_Ceastld\ActionPanelControl1.8805.exe
(----离线OCR4.0v15:运行C#代码----)