From 240971952b84d0ecfcf28116a337205531d0f885 Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期一, 09 六月 2025 14:15:43 +0800
Subject: [PATCH] 1

---
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/Properties/Resources.resx                                |  124 +++
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/FaceSdkX64Register.csproj                                |   53 +
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/FrmRegister.Designer.cs                                  |   93 ++
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/MyOpaqueLayer.cs                                         |  138 +++
 project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                    |   75 
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/Properties/LoadingImg.gif                                |    0 
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/Program.cs                                               |   17 
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Service/FaceSdkX64Service.csproj                                  |    9 
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Service/ConfigHelper.cs                                           |   15 
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db-wal             |    0 
 project/人脸识别插件/FaceSdkX64/FaceSdkX64.sln                                                              |   77 +
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Service/TH_Faces.cs                                               |  210 +++++
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.670.39694/SemanticSymbols.db            |    0 
 project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/SemanticSymbols.db |    0 
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/OpaqueCommand.cs                                         |   55 +
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.json                                      |  260 ++++++
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Service/HttpServer.cs                                             |   86 ++
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db                 |    0 
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/v17/ResourceExplorer/settings.json                           |   16 
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db-wal        |    0 
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Service/CHS_Capture.cs                                            |   49 +
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.backup.json                               |  244 +++++
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/FrmRegister.cs                                           |  501 ++++++++++++
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/App.config                                               |    6 
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/FrmRegister.resx                                         |  129 +++
 project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                           |  188 ++--
 project/人脸识别插件/FaceSdkX64/FaceSdkX64Register/Properties/Resources.Designer.cs                         |   73 +
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db            |    0 
 project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/DownLoad/face-plugin.zip                              |    0 
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db-shm        |    0 
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db-shm             |    0 
 project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/CodeChunks.db      |    0 
 project/人脸识别插件/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.670.39694/CodeChunks.db                 |    0 
 33 files changed, 2,295 insertions(+), 123 deletions(-)

diff --git a/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/CodeChunks.db b/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/CodeChunks.db
index 567f6cd..756e2d6 100644
--- a/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/CodeChunks.db
+++ b/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/CodeChunks.db
Binary files differ
diff --git a/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/SemanticSymbols.db b/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/SemanticSymbols.db
index d12f45b..cbf34d6 100644
--- a/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/SemanticSymbols.db
+++ b/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/SemanticSymbols.db
Binary files differ
diff --git a/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json b/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json
index 1c022c2..1a0421c 100644
--- a/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json
+++ b/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json
@@ -3,6 +3,10 @@
   "WorkspaceRootPath": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+    },
+    {
       "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\parametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\parametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
@@ -41,10 +45,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_parameters.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
       "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_parameters.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_tasks\\ssg\\alarmresetjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -338,23 +338,11 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 1,
+          "SelectedChildIndex": 6,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "MaintenanceService.cs",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
-              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
-              "ViewState": "AgIAABIAAAAAAAAAAAAAAA0AAAA8AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-04-07T08:11:35.497Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
+              "DocumentIndex": 1,
               "Title": "ParametersService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\ParametersService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\ParametersService.cs",
@@ -367,7 +355,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 4,
               "Title": "MaintenanceTeamService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
@@ -379,7 +367,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
+              "DocumentIndex": 6,
               "Title": "AlarmResetHsyServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
@@ -391,7 +379,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 2,
               "Title": "IParametersService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IParametersService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IParametersService.cs",
@@ -403,7 +391,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 5,
               "Title": "DepartmentService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\DepartmentService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\DepartmentService.cs",
@@ -415,7 +403,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 7,
               "Title": "Dt_UnitCategory.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_UnitCategory.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_UnitCategory.cs",
@@ -427,7 +415,32 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
+              "DocumentIndex": 0,
+              "Title": "appsettings.json",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-06-03T09:07:10.755Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "MaintenanceService.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "ViewState": "AgIAABIAAAAAAAAAAAAAAA0AAAA8AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-04-07T08:11:35.497Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
               "Title": "UnitCategoryServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
@@ -463,7 +476,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 8,
+              "DocumentIndex": 9,
               "Title": "WIDESEAWCS_ITaskInfoService.csproj",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
@@ -488,18 +501,6 @@
             {
               "$type": "Document",
               "DocumentIndex": 10,
-              "Title": "appsettings.json",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
-              "ViewState": "AgIAABIAAAAAAAAAAADwvysAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-06-03T09:07:10.755Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 9,
               "Title": "Dt_Parameters.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Parameters.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Parameters.cs",
diff --git a/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json b/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
index 1a0421c..505e93e 100644
--- a/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
+++ b/project/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,6 +3,10 @@
   "WorkspaceRootPath": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_userfacecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_userfacecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     },
@@ -338,11 +342,24 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 6,
+          "SelectedChildIndex": 0,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 0,
+              "Title": "Sys_UserFaceController.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserFaceController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserFaceController.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserFaceController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserFaceController.cs",
+              "ViewState": "AgIAAC8AAAAAAAAAAAAgwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-06T07:20:39.768Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
               "Title": "ParametersService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\ParametersService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\ParametersService.cs",
@@ -350,12 +367,11 @@
               "RelativeToolTip": "WIDESEAWCS_TelescopicService\\ParametersService.cs",
               "ViewState": "AgIAALgAAAAAAAAAAAAqwM4AAAAVAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-05-19T09:19:36.589Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-05-19T09:19:36.589Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 5,
               "Title": "MaintenanceTeamService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
@@ -367,7 +383,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 7,
               "Title": "AlarmResetHsyServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
@@ -379,7 +395,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 3,
               "Title": "IParametersService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IParametersService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IParametersService.cs",
@@ -391,7 +407,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
+              "DocumentIndex": 6,
               "Title": "DepartmentService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\DepartmentService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\DepartmentService.cs",
@@ -403,7 +419,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
+              "DocumentIndex": 8,
               "Title": "Dt_UnitCategory.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_UnitCategory.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_UnitCategory.cs",
@@ -415,7 +431,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
+              "DocumentIndex": 1,
               "Title": "appsettings.json",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
@@ -428,7 +444,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 4,
               "Title": "MaintenanceService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
@@ -440,7 +456,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 8,
+              "DocumentIndex": 9,
               "Title": "UnitCategoryServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
@@ -452,7 +468,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 11,
+              "DocumentIndex": 12,
               "Title": "AlarmResetJob.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
@@ -464,7 +480,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 12,
+              "DocumentIndex": 13,
               "Title": "ISys_RoleService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
@@ -476,7 +492,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 9,
+              "DocumentIndex": 10,
               "Title": "WIDESEAWCS_ITaskInfoService.csproj",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
@@ -488,7 +504,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 15,
+              "DocumentIndex": 16,
               "Title": "IAuthorizationRecordServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
@@ -500,7 +516,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 10,
+              "DocumentIndex": 11,
               "Title": "Dt_Parameters.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Parameters.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Parameters.cs",
@@ -512,7 +528,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 17,
+              "DocumentIndex": 18,
               "Title": "IAlarmResetHsyServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
@@ -524,7 +540,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 13,
+              "DocumentIndex": 14,
               "Title": "ISys_RoleAuthService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
@@ -536,7 +552,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 14,
+              "DocumentIndex": 15,
               "Title": "IMaintenanceService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
@@ -548,7 +564,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 16,
+              "DocumentIndex": 17,
               "Title": "AuthorizationRecordServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
@@ -560,7 +576,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 18,
+              "DocumentIndex": 19,
               "Title": "ISys_UserService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
@@ -572,7 +588,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 19,
+              "DocumentIndex": 20,
               "Title": "IUnitCategoryServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
@@ -584,7 +600,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 20,
+              "DocumentIndex": 21,
               "Title": "ITeamCategoryServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
@@ -596,7 +612,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 21,
+              "DocumentIndex": 22,
               "Title": "IMaintenanceTeamService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
@@ -608,7 +624,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 22,
+              "DocumentIndex": 23,
               "Title": "ILoginhsyService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
@@ -620,7 +636,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 23,
+              "DocumentIndex": 24,
               "Title": "IDepartmentService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
@@ -632,7 +648,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 24,
+              "DocumentIndex": 25,
               "Title": "IStockInfo_HtyService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
@@ -644,7 +660,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 26,
+              "DocumentIndex": 27,
               "Title": "LocationInfoController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
@@ -656,7 +672,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 27,
+              "DocumentIndex": 28,
               "Title": "RouterController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
@@ -668,7 +684,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 32,
+              "DocumentIndex": 33,
               "Title": "Sys_UserService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
@@ -680,7 +696,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 31,
+              "DocumentIndex": 32,
               "Title": "Sys_MenuService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
@@ -692,7 +708,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 25,
+              "DocumentIndex": 26,
               "Title": "IStockQuantityChangeRecordService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
@@ -704,7 +720,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 29,
+              "DocumentIndex": 30,
               "Title": "FaceDraw.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
@@ -716,7 +732,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 28,
+              "DocumentIndex": 29,
               "Title": "MaintenanceController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
@@ -728,7 +744,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 30,
+              "DocumentIndex": 31,
               "Title": "LocationInfoService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationInfoService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\LocationInfoService.cs",
@@ -740,7 +756,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 33,
+              "DocumentIndex": 34,
               "Title": "LoginhsyService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
@@ -752,7 +768,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 34,
+              "DocumentIndex": 35,
               "Title": "TaskService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
@@ -764,7 +780,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 35,
+              "DocumentIndex": 36,
               "Title": "anime.min.js",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\js\\anime.min.js",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\wwwroot\\js\\anime.min.js",
@@ -776,7 +792,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 36,
+              "DocumentIndex": 37,
               "Title": "AlarmResetHsyController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
@@ -788,7 +804,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 38,
+              "DocumentIndex": 39,
               "Title": "Dt_AlarmResetHsy.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
@@ -800,7 +816,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 37,
+              "DocumentIndex": 38,
               "Title": "BatchController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
@@ -812,7 +828,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 39,
+              "DocumentIndex": 40,
               "Title": "Sys_UserController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
@@ -824,7 +840,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 40,
+              "DocumentIndex": 41,
               "Title": "UnitCategoryController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
@@ -836,7 +852,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 42,
+              "DocumentIndex": 43,
               "Title": "Sys_TenantController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
@@ -848,7 +864,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 41,
+              "DocumentIndex": 42,
               "Title": "Sys_RoleController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
@@ -860,7 +876,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 43,
+              "DocumentIndex": 44,
               "Title": "Dt_Maintenance.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
@@ -872,7 +888,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 44,
+              "DocumentIndex": 45,
               "Title": "Dt_TeamCategory.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_TeamCategory.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_TeamCategory.cs",
@@ -884,7 +900,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 45,
+              "DocumentIndex": 46,
               "Title": "ParametersController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
@@ -896,7 +912,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 46,
+              "DocumentIndex": 47,
               "Title": "TeamCategoryController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
@@ -908,7 +924,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 47,
+              "DocumentIndex": 48,
               "Title": "MaintenanceTeamController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
@@ -920,7 +936,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 48,
+              "DocumentIndex": 49,
               "Title": "TeamCategoryServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
@@ -932,7 +948,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 49,
+              "DocumentIndex": 50,
               "Title": "Sys_User.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
@@ -944,7 +960,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 50,
+              "DocumentIndex": 51,
               "Title": "Sys_DictionaryListController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
@@ -956,7 +972,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 51,
+              "DocumentIndex": 52,
               "Title": "Dt_AuthorizationRecord.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
@@ -968,7 +984,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 53,
+              "DocumentIndex": 54,
               "Title": "AuthorizationRecordController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
@@ -980,7 +996,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 52,
+              "DocumentIndex": 53,
               "Title": "Dt_FaceRecognition.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
@@ -992,7 +1008,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 54,
+              "DocumentIndex": 55,
               "Title": "DepartmentController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
@@ -1004,7 +1020,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 55,
+              "DocumentIndex": 56,
               "Title": "UserPermissions.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
@@ -1016,7 +1032,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 56,
+              "DocumentIndex": 57,
               "Title": "FaceRecognitionController .cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
@@ -1028,7 +1044,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 57,
+              "DocumentIndex": 58,
               "Title": "IFaceRecognitionServer .cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
@@ -1040,7 +1056,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 58,
+              "DocumentIndex": 59,
               "Title": "Sys_Role.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Role.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Role.cs",
@@ -1052,7 +1068,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 59,
+              "DocumentIndex": 60,
               "Title": "FaceRecognitionServer.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
@@ -1064,7 +1080,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 60,
+              "DocumentIndex": 61,
               "Title": "LoginhsyController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
@@ -1076,7 +1092,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 61,
+              "DocumentIndex": 62,
               "Title": "Sys_Tenant.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
@@ -1088,7 +1104,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 62,
+              "DocumentIndex": 63,
               "Title": "SSGTwoJob.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
@@ -1100,7 +1116,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 63,
+              "DocumentIndex": 64,
               "Title": "SSGOneJob.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
@@ -1112,7 +1128,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 64,
+              "DocumentIndex": 65,
               "Title": "StockQuantityChangeRecordController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
@@ -1124,7 +1140,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 67,
+              "DocumentIndex": 68,
               "Title": "ITaskService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
@@ -1136,7 +1152,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 66,
+              "DocumentIndex": 67,
               "Title": "OHTJob.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
@@ -1148,7 +1164,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 65,
+              "DocumentIndex": 66,
               "Title": "StockInfoDetailController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
@@ -1160,7 +1176,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 68,
+              "DocumentIndex": 69,
               "Title": "Dt_MaintenanceTeam.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
@@ -1172,7 +1188,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 69,
+              "DocumentIndex": 70,
               "Title": "launchSettings.json",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Properties\\launchSettings.json",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Properties\\launchSettings.json",
@@ -1184,7 +1200,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 70,
+              "DocumentIndex": 71,
               "Title": "Microsoft.Common.CurrentVersion.targets",
               "DocumentMoniker": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
               "ToolTip": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\amd64\\Microsoft.Common.CurrentVersion.targets",
@@ -1194,7 +1210,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 71,
+              "DocumentIndex": 72,
               "Title": "WebSocketSetup.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
@@ -1206,7 +1222,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 72,
+              "DocumentIndex": 73,
               "Title": "WebSocketHostService.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
@@ -1218,7 +1234,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 82,
+              "DocumentIndex": 83,
               "Title": "Sys_DictionaryList.tsv",
               "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Sys_DictionaryList.tsv",
               "RelativeDocumentMoniker": "..\\..\\..\\..\\..\\..\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Sys_DictionaryList.tsv",
@@ -1230,7 +1246,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 73,
+              "DocumentIndex": 74,
               "Title": "DBSeed.cs",
               "DocumentMoniker": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\21701ff9ac1c4559ce6e7320e3be3c080710baae7b9b8389cc7919101855e43d\\DBSeed.cs",
               "ToolTip": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\21701ff9ac1c4559ce6e7320e3be3c080710baae7b9b8389cc7919101855e43d\\DBSeed.cs",
@@ -1240,7 +1256,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 74,
+              "DocumentIndex": 75,
               "Title": "LoginInfo.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\LoginInfo.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\LoginInfo.cs",
@@ -1252,7 +1268,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 76,
+              "DocumentIndex": 77,
               "Title": "UserDTO.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
@@ -1264,7 +1280,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 81,
+              "DocumentIndex": 82,
               "Title": "SpeedDTO.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
@@ -1276,7 +1292,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 75,
+              "DocumentIndex": 76,
               "Title": "UpstreamIDTO.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
@@ -1288,7 +1304,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 77,
+              "DocumentIndex": 78,
               "Title": "PaginationDTO.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
@@ -1300,7 +1316,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 78,
+              "DocumentIndex": 79,
               "Title": "AddUserDTO.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
@@ -1312,7 +1328,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 79,
+              "DocumentIndex": 80,
               "Title": "Face.cs",
               "DocumentMoniker": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\b700ba3c32194731a3eaca4d8eaddd483d62abecc7fa3ee9e8c64e80596c22fa\\Face.cs",
               "ToolTip": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\b700ba3c32194731a3eaca4d8eaddd483d62abecc7fa3ee9e8c64e80596c22fa\\Face.cs",
@@ -1322,7 +1338,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 80,
+              "DocumentIndex": 81,
               "Title": "index.html",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u7F8E\u65B0\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\index.html",
diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/DownLoad/face-plugin.zip b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/DownLoad/face-plugin.zip
index b667e28..ab3f21e 100644
--- a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/DownLoad/face-plugin.zip
+++ b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/DownLoad/face-plugin.zip
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.670.39694/CodeChunks.db" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.670.39694/CodeChunks.db"
new file mode 100644
index 0000000..ff3175f
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.670.39694/CodeChunks.db"
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.670.39694/SemanticSymbols.db" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.670.39694/SemanticSymbols.db"
new file mode 100644
index 0000000..3aebee5
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.670.39694/SemanticSymbols.db"
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db"
new file mode 100644
index 0000000..aa5d6e1
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db"
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db-shm" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db-shm"
new file mode 100644
index 0000000..8420d52
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db-shm"
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db-wal" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db-wal"
new file mode 100644
index 0000000..419ea57
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/CodeChunks.db-wal"
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db"
new file mode 100644
index 0000000..330f6d0
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db"
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db-shm" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db-shm"
new file mode 100644
index 0000000..2dcdd6f
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db-wal" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db-wal"
new file mode 100644
index 0000000..53bec62
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/CopilotIndices/17.14.734.62261/SemanticSymbols.db-wal"
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.backup.json" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.backup.json"
new file mode 100644
index 0000000..ffe1ae3
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.backup.json"
@@ -0,0 +1,244 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\facesdkx64register.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\facesdkx64register.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\th_faces.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\th_faces.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\chs_capture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\chs_capture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|F:\\\u6D4B\u8BD5\\FaceSdkX64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\properties\\resources.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\properties\\resources.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\properties\\resources.resx||{81828910-B8B3-4D2B-99A3-067027C180C1}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\properties\\resources.resx||{81828910-B8B3-4D2B-99A3-067027C180C1}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\myopaquelayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\myopaquelayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\opaquecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\opaquecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|F:\\\u6D4B\u8BD5\\FaceSdkX64\\facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
+      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64\\facesdkx64.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\facesdkx64.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+    }
+  ],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 2,
+          "Children": [
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "TH_Faces.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\TH_Faces.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Service\\TH_Faces.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\TH_Faces.cs",
+              "RelativeToolTip": "FaceSdkX64Service\\TH_Faces.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAABCAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-08T03:19:03.556Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "CHS_Capture.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\CHS_Capture.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Service\\CHS_Capture.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\CHS_Capture.cs",
+              "RelativeToolTip": "FaceSdkX64Service\\CHS_Capture.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-08T03:18:57.128Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "FaceSdkX64Register.csproj",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "RelativeToolTip": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAApAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-06-06T07:14:47.187Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "HttpServer.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Service\\HttpServer.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
+              "RelativeToolTip": "FaceSdkX64Service\\HttpServer.cs",
+              "ViewState": "AgIAABwAAAAAAAAAAAAQwCIAAAANAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T07:43:03.48Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "Resources.Designer.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.Designer.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\Properties\\Resources.Designer.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.Designer.cs",
+              "RelativeToolTip": "FaceSdkX64Register\\Properties\\Resources.Designer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAEYAAAAJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T02:18:20.337Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 9,
+              "Title": "Resources.resx",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.resx",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\Properties\\Resources.resx",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.resx",
+              "RelativeToolTip": "FaceSdkX64Register\\Properties\\Resources.resx",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001005|",
+              "WhenOpened": "2025-05-29T02:16:24.157Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "Title": "MyOpaqueLayer.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\MyOpaqueLayer.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\MyOpaqueLayer.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\MyOpaqueLayer.cs",
+              "RelativeToolTip": "FaceSdkX64Register\\MyOpaqueLayer.cs",
+              "ViewState": "AgIAADsAAAAAAAAAAAAYwE0AAAA0AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T02:12:52.072Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
+              "Title": "FaceSdkX64",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FaceSdkX64.csproj",
+              "RelativeDocumentMoniker": "FaceSdkX64\\FaceSdkX64.csproj",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FaceSdkX64.csproj",
+              "RelativeToolTip": "FaceSdkX64\\FaceSdkX64.csproj",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-05-28T08:39:06.348Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "FrmRegister.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
+              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs",
+              "ViewState": "AgIAAAgAAAAAAAAAAAAxwCgAAABCAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T07:25:57.103Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "App.config",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\App.config",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\App.config",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\App.config",
+              "RelativeToolTip": "FaceSdkX64Register\\App.config",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
+              "WhenOpened": "2025-06-05T01:57:45.621Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "FrmRegister.cs [\u8BBE\u8BA1]",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs [\u8BBE\u8BA1]",
+              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs [\u8BBE\u8BA1]",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T08:36:25.753Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "FrmFaceCheck.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64\\FrmFaceCheck.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
+              "RelativeToolTip": "FaceSdkX64\\FrmFaceCheck.cs",
+              "ViewState": "AgIAAAoCAAAAAAAAAAAvwAkCAAAbAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T06:42:06.783Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "Title": "OpaqueCommand.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\OpaqueCommand.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\OpaqueCommand.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\OpaqueCommand.cs",
+              "RelativeToolTip": "FaceSdkX64Register\\OpaqueCommand.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAuwBIAAAAUAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T02:23:19.143Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "Title": "FrmFaceCheck.cs [\u8BBE\u8BA1]",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64\\FrmFaceCheck.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs [\u8BBE\u8BA1]",
+              "RelativeToolTip": "FaceSdkX64\\FrmFaceCheck.cs [\u8BBE\u8BA1]",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T06:42:03.078Z"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.json" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.json"
new file mode 100644
index 0000000..aa55d5c
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/v17/DocumentLayout.json"
@@ -0,0 +1,260 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\facesdkx64register.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\facesdkx64register.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\facesdkx64register.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\facesdkx64register.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\th_faces.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\th_faces.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\httpserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64service\\chs_capture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6D18B477-E291-4014-B992-9266DA280C6B}|FaceSdkX64Service\\FaceSdkX64Service.csproj|solutionrelative:facesdkx64service\\chs_capture.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|F:\\\u6D4B\u8BD5\\FaceSdkX64\\facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\frmregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\properties\\resources.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\properties\\resources.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\properties\\resources.resx||{81828910-B8B3-4D2B-99A3-067027C180C1}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\properties\\resources.resx||{81828910-B8B3-4D2B-99A3-067027C180C1}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\myopaquelayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\myopaquelayer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64register\\opaquecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{EB4DDD28-77FA-427F-A757-8C7C98A6665F}|FaceSdkX64Register\\FaceSdkX64Register.csproj|solutionrelative:facesdkx64register\\opaquecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|F:\\\u6D4B\u8BD5\\FaceSdkX64\\facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
+      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\frmfacecheck.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|f:\\\u6D4B\u8BD5\\facesdkx64\\facesdkx64\\facesdkx64.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+      "RelativeMoniker": "D:0:0:{A1CAC745-A3C3-42B5-9826-4358006B3CBD}|FaceSdkX64\\FaceSdkX64.csproj|solutionrelative:facesdkx64\\facesdkx64.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+    }
+  ],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 0,
+          "Children": [
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "FaceSdkX64Register",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "RelativeToolTip": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-06-09T06:11:55.423Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "TH_Faces.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\TH_Faces.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Service\\TH_Faces.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\TH_Faces.cs",
+              "RelativeToolTip": "FaceSdkX64Service\\TH_Faces.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAABCAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-08T03:19:03.556Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "CHS_Capture.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\CHS_Capture.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Service\\CHS_Capture.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\CHS_Capture.cs",
+              "RelativeToolTip": "FaceSdkX64Service\\CHS_Capture.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-08T03:18:57.128Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "FaceSdkX64Register.csproj",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\FaceSdkX64Register.csproj",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FaceSdkX64Register.csproj*",
+              "RelativeToolTip": "FaceSdkX64Register\\FaceSdkX64Register.csproj*",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAApAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-06-06T07:14:47.187Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "HttpServer.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Service\\HttpServer.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Service\\HttpServer.cs",
+              "RelativeToolTip": "FaceSdkX64Service\\HttpServer.cs",
+              "ViewState": "AgIAABwAAAAAAAAAAAAQwCIAAAANAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T07:43:03.48Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 9,
+              "Title": "Resources.Designer.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.Designer.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\Properties\\Resources.Designer.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.Designer.cs",
+              "RelativeToolTip": "FaceSdkX64Register\\Properties\\Resources.Designer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAEYAAAAJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T02:18:20.337Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "Title": "Resources.resx",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.resx",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\Properties\\Resources.resx",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\Properties\\Resources.resx",
+              "RelativeToolTip": "FaceSdkX64Register\\Properties\\Resources.resx",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001005|",
+              "WhenOpened": "2025-05-29T02:16:24.157Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "Title": "MyOpaqueLayer.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\MyOpaqueLayer.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\MyOpaqueLayer.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\MyOpaqueLayer.cs",
+              "RelativeToolTip": "FaceSdkX64Register\\MyOpaqueLayer.cs",
+              "ViewState": "AgIAADsAAAAAAAAAAAAYwE0AAAA0AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T02:12:52.072Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 14,
+              "Title": "FaceSdkX64",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FaceSdkX64.csproj",
+              "RelativeDocumentMoniker": "FaceSdkX64\\FaceSdkX64.csproj",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FaceSdkX64.csproj",
+              "RelativeToolTip": "FaceSdkX64\\FaceSdkX64.csproj",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-05-28T08:39:06.348Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "FrmRegister.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
+              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs",
+              "ViewState": "AgIAAAgAAAAAAAAAAAAxwCgAAABCAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T07:25:57.103Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "App.config",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\App.config",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\App.config",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\App.config",
+              "RelativeToolTip": "FaceSdkX64Register\\App.config",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
+              "WhenOpened": "2025-06-05T01:57:45.621Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "FrmRegister.cs [\u8BBE\u8BA1]",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\FrmRegister.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\FrmRegister.cs [\u8BBE\u8BA1]",
+              "RelativeToolTip": "FaceSdkX64Register\\FrmRegister.cs [\u8BBE\u8BA1]",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T08:36:25.753Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "FrmFaceCheck.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64\\FrmFaceCheck.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
+              "RelativeToolTip": "FaceSdkX64\\FrmFaceCheck.cs",
+              "ViewState": "AgIAAAoCAAAAAAAAAAAvwAkCAAAbAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T06:42:06.783Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "Title": "OpaqueCommand.cs",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\OpaqueCommand.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64Register\\OpaqueCommand.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64Register\\OpaqueCommand.cs",
+              "RelativeToolTip": "FaceSdkX64Register\\OpaqueCommand.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAuwBIAAAAUAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T02:23:19.143Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
+              "Title": "FrmFaceCheck.cs [\u8BBE\u8BA1]",
+              "DocumentMoniker": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs",
+              "RelativeDocumentMoniker": "FaceSdkX64\\FrmFaceCheck.cs",
+              "ToolTip": "F:\\\u6D4B\u8BD5\\FaceSdkX64\\FaceSdkX64\\FrmFaceCheck.cs [\u8BBE\u8BA1]",
+              "RelativeToolTip": "FaceSdkX64\\FrmFaceCheck.cs [\u8BBE\u8BA1]",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T06:42:03.078Z"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/v17/ResourceExplorer/settings.json" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/v17/ResourceExplorer/settings.json"
new file mode 100644
index 0000000..f1501bc
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/.vs/FaceSdkX64/v17/ResourceExplorer/settings.json"
@@ -0,0 +1,16 @@
+{
+  "ShowEmptyProjects": false,
+  "SelectedGroups": [],
+  "ExpandedProjects": [],
+  "EnableSpellChecker": true,
+  "ColumnOrder": [
+    "name",
+    "type",
+    "neutral-value",
+    "neutral-comment"
+  ],
+  "VisibleColumnKeys": [
+    "name",
+    "neutral-value"
+  ]
+}
\ No newline at end of file
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64.sln" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64.sln"
new file mode 100644
index 0000000..3e22f9b
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64.sln"
@@ -0,0 +1,77 @@
+锘�
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36109.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaceSdkX64", "FaceSdkX64\FaceSdkX64.csproj", "{A1CAC745-A3C3-42B5-9826-4358006B3CBD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaceSdkX64Register", "FaceSdkX64Register\FaceSdkX64Register.csproj", "{EB4DDD28-77FA-427F-A757-8C7C98A6665F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaceSdkX64Service", "FaceSdkX64Service\FaceSdkX64Service.csproj", "{6D18B477-E291-4014-B992-9266DA280C6B}"
+EndProject
+Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "FacePlugin", "FacePlugin\FacePlugin.vdproj", "{967F0B76-B20B-D70C-BDE0-80E287558C7D}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|x64.Build.0 = Debug|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Debug|x86.Build.0 = Debug|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|x64.ActiveCfg = Release|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|x64.Build.0 = Release|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|x86.ActiveCfg = Release|Any CPU
+		{A1CAC745-A3C3-42B5-9826-4358006B3CBD}.Release|x86.Build.0 = Release|Any CPU
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Debug|x64.ActiveCfg = Debug|x64
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Debug|x64.Build.0 = Debug|x64
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Debug|x86.ActiveCfg = Debug|x86
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Debug|x86.Build.0 = Debug|x86
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Release|x64.ActiveCfg = Release|x64
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Release|x64.Build.0 = Release|x64
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Release|x86.ActiveCfg = Release|x86
+		{EB4DDD28-77FA-427F-A757-8C7C98A6665F}.Release|x86.Build.0 = Release|x86
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Debug|x64.Build.0 = Debug|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Debug|x86.Build.0 = Debug|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Release|x64.ActiveCfg = Release|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Release|x64.Build.0 = Release|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Release|x86.ActiveCfg = Release|Any CPU
+		{6D18B477-E291-4014-B992-9266DA280C6B}.Release|x86.Build.0 = Release|Any CPU
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|Any CPU.ActiveCfg = Debug
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|x64.ActiveCfg = Debug
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|x64.Build.0 = Debug
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|x86.ActiveCfg = Debug
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Debug|x86.Build.0 = Debug
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|Any CPU.ActiveCfg = Release
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|x64.ActiveCfg = Release
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|x64.Build.0 = Release
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|x86.ActiveCfg = Release
+		{967F0B76-B20B-D70C-BDE0-80E287558C7D}.Release|x86.Build.0 = Release
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {29E4C756-E74A-4FA4-89BB-7F19037564AB}
+	EndGlobalSection
+EndGlobal
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/App.config" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/App.config"
new file mode 100644
index 0000000..828be55
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/App.config"
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+	<appSettings>
+		<add key="port" value="9298"/>
+	</appSettings>
+</configuration>
\ No newline at end of file
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FaceSdkX64Register.csproj" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FaceSdkX64Register.csproj"
new file mode 100644
index 0000000..5645711
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FaceSdkX64Register.csproj"
@@ -0,0 +1,53 @@
+锘�<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>WinExe</OutputType>
+    <TargetFramework>net6.0-windows</TargetFramework>
+    <Nullable>enable</Nullable>
+    <UseWindowsForms>true</UseWindowsForms>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <BaseOutputPath>..\bin\</BaseOutputPath>
+    <PlatformTarget>x86</PlatformTarget>
+    <Platforms>AnyCPU;x64;x86</Platforms>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <None Remove="Properties\LoadingImg.gif" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Content Include="Properties\LoadingImg.gif" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\FaceSdkX64Service\FaceSdkX64Service.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Compile Update="Properties\Resources.Designer.cs">
+      <DesignTime>True</DesignTime>
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+  </ItemGroup>
+
+  <ItemGroup>
+    <EmbeddedResource Update="Properties\Resources.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Update="camera.ini">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+    <None Update="IdFaceSdk.dll">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+    <None Update="SmCameraPreview.dll">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FrmRegister.Designer.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FrmRegister.Designer.cs"
new file mode 100644
index 0000000..2f6c48d
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FrmRegister.Designer.cs"
@@ -0,0 +1,93 @@
+锘縩amespace FaceSdkX64Register
+{
+    partial class FrmRegister
+    {
+        /// <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()
+        {
+            components = new System.ComponentModel.Container();
+            pictureBox1 = new PictureBox();
+            label1 = new Label();
+            timer1 = new System.Windows.Forms.Timer(components);
+            timer2 = new System.Windows.Forms.Timer(components);
+            timer3 = new System.Windows.Forms.Timer(components);
+            ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
+            SuspendLayout();
+            // 
+            // pictureBox1
+            // 
+            pictureBox1.Location = new Point(23, 12);
+            pictureBox1.Name = "pictureBox1";
+            pictureBox1.Size = new Size(1280, 960);
+            pictureBox1.TabIndex = 0;
+            pictureBox1.TabStop = false;
+            // 
+            // label1
+            // 
+            label1.AutoSize = true;
+            label1.Location = new Point(589, 29);
+            label1.Name = "label1";
+            label1.Size = new Size(63, 24);
+            label1.TabIndex = 1;
+            label1.Text = "label1";
+            // 
+            // timer1
+            // 
+            timer1.Tick += timer1_Tick;
+            // 
+            // timer2
+            // 
+            timer2.Tick += timer2_Tick;
+            // 
+            // timer3
+            // 
+            timer3.Tick += timer3_Tick;
+            // 
+            // FrmRegister
+            // 
+            AutoScaleDimensions = new SizeF(11F, 24F);
+            AutoScaleMode = AutoScaleMode.Font;
+            ClientSize = new Size(1331, 992);
+            Controls.Add(label1);
+            Controls.Add(pictureBox1);
+            Name = "FrmRegister";
+            StartPosition = FormStartPosition.CenterScreen;
+            Text = "浜鸿劯褰曞叆";
+            Load += FrmRegister_Load;
+            ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
+            ResumeLayout(false);
+            PerformLayout();
+        }
+
+        #endregion
+
+        private PictureBox pictureBox1;
+        private Label label1;
+        private System.Windows.Forms.Timer timer1;
+        private System.Windows.Forms.Timer timer2;
+        private System.Windows.Forms.Timer timer3;
+    }
+}
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FrmRegister.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FrmRegister.cs"
new file mode 100644
index 0000000..a9904bb
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FrmRegister.cs"
@@ -0,0 +1,501 @@
+using System;
+using System.Configuration;
+using System.Runtime.InteropServices;
+using System.Text;
+using FaceSdkX64Service;
+
+namespace FaceSdkX64Register
+{
+    public partial class FrmRegister : Form
+    {
+        Int32 VIDEO_WIDTH = 640, VIDEO_HEIGHT = 480; // 相机分辨率
+
+        Int32 nRotate = 0; /* 相机安装角度:0-正常安装,90-旋转90度安装,180-旋转180度安装,270-旋转270度安装 */
+
+        Int32 nWidth = 0, nHeight = 0; // 视频帧数据分辨率(相机正装时为相机分辨率,相机90度或270度倒装时为相机分辨率宽度对调)
+
+        // 界面显示及保存图象的人脸大小相对原始SDK检测出的人脸大小的放大倍数
+        float fExtendLeft = 0.15f, fExtendRight = 0.15f, fExtendTop = 0.15f, fExtendBottom = 0.20f; // 为0表示不放大
+
+        // 彩色及红外相机 VID/PID 配置(有配置则根据指定的VID/PID打开相机,无配置则根据选择的相机编号打开相机)
+        int nVid1 = 0, nPid1 = 0, nVid2 = 0, nPid2 = 0;
+
+        IntPtr hCamColor = IntPtr.Zero, hCamGray = IntPtr.Zero; // 相机对象
+        IntPtr hPreviewColor = IntPtr.Zero, hPreviewGray = IntPtr.Zero; // 视频帧显示对角
+
+        TH_Faces.FACE_DETECT_RESULT FaceColor, FaceColorExt; // SDK检测到的彩色图象原始人脸坐标,以及界面显示及保存图象的人脸坐标(在原始坐标基础上根据fExtend?变量放大)
+        TH_Faces.FACE_DETECT_RESULT FaceGray, FaceGrayExt; // SDK检测到的红外图象原始人脸坐标,以及界面显示及保存图象的人脸坐标(在原始坐标基础上根据fExtend?变量放大)
+
+        Boolean bSdkInit = false, bCamColorReady = false, bCamGrayReady = false, bFramesReady = false; // 状态标识
+
+        IntPtr pFrameColor, pFrameGray; // 保存彩色相机和红外相机的图象帧数据
+        IntPtr pFrameTemp, pFrameTemp2; // 临时图象帧数据缓冲区
+        OpaqueCommand oc;
+
+        bool loading = false;
+
+        public FrmRegister()
+        {
+            InitializeComponent();
+            oc = new OpaqueCommand();
+            CheckForIllegalCrossThreadCalls = false; // 允许跨线程调用控件、
+        }
+
+        private void FrmRegister_Load(object sender, EventArgs e)
+        {
+            loading = true;
+            timer3.Enabled = true; // 启动定时器,定时显示半透明蒙板层
+            Task.Run(() =>
+            {
+                try
+                {
+                    int i, nCameraNum = CHS_Capture.SmCameraGetCount(); // 检测连接的相机个数
+
+                    // 读相机配置文件 camera.ini (是否打开指定 VID/PID 的相机)
+                    string val;
+
+                    StringBuilder sb = new StringBuilder(256);
+                    ConfigHelper.GetPrivateProfileString("common", "vid1", "0", sb, 255, "./camera.ini"); // 读彩色相机的VID
+                    try
+                    {
+                        val = sb.ToString();
+                        nVid1 = Convert.ToInt32(val, 16);
+                    }
+                    catch
+                    {
+                        nVid1 = 0;
+                    }
+                    ConfigHelper.GetPrivateProfileString("common", "pid1", "0", sb, 255, "./camera.ini"); // 读彩色相机的PID
+                    try
+                    {
+                        val = sb.ToString();
+                        nPid1 = Convert.ToInt32(val, 16);
+                    }
+                    catch
+                    {
+                        nPid1 = 0;
+                    }
+                    ConfigHelper.GetPrivateProfileString("common", "vid2", "0", sb, 255, "./camera.ini"); // 读红外相机的VID
+                    try
+                    {
+                        val = sb.ToString();
+                        nVid2 = Convert.ToInt32(val, 16);
+                    }
+                    catch
+                    {
+                        nVid2 = 0;
+                    }
+                    ConfigHelper.GetPrivateProfileString("common", "pid2", "0", sb, 255, "./camera.ini"); // 读红外相机的PID
+                    try
+                    {
+                        val = sb.ToString();
+                        nPid2 = Convert.ToInt32(val, 16);
+                    }
+                    catch
+                    {
+                        nPid2 = 0;
+                    }
+
+                    if (nVid1 <= 0 || nPid1 <= 0) nVid1 = 0;
+                    if (nVid2 <= 0 || nPid2 <= 0) nVid2 = 0;
+
+                    if (nCameraNum == 0)
+                    {
+                        label1.Text = "没有检测到相机,请检查相机连接是否正常!";
+                        label1.ForeColor = Color.Red;
+                        return;
+                    }
+
+                    // SDK初始化
+                    int ret = TH_Faces.IdFaceSdkInit();
+                    if (ret < 0)
+                    {
+                        label1.Text = "算法初始化失败, 请插入加密狗 !";
+                        label1.ForeColor = Color.Red;
+
+                        IntPtr pRunCode = Marshal.AllocHGlobal(35 + 1);
+                        TH_Faces.IdFaceSdkGetRunCode(pRunCode);
+                        MessageBox.Show("SDK初始化失败 !\n\n设备运行码: " + Marshal.PtrToStringAnsi(pRunCode));
+                        Marshal.FreeHGlobal(pRunCode);
+                        return;
+                    }
+
+                    // 授权是否支持活体检测
+                    ret = TH_Faces.IdFaceSdkGetLiveFaceStatus();
+                    if (ret != 1)
+                    {
+                        TH_Faces.IdFaceSdkUninit();
+                        label1.Text = "活体检测授权未开通,请联系供应商 !";
+                        label1.ForeColor = Color.Red;
+                        return;
+                    }
+
+                    bSdkInit = true;
+
+                    // 分配彩色帧缓冲区、红外帧缓冲区及临时帧数据缓冲区
+                    pFrameColor = Marshal.AllocHGlobal(VIDEO_WIDTH * VIDEO_HEIGHT * 3);
+                    pFrameGray = Marshal.AllocHGlobal(VIDEO_WIDTH * VIDEO_HEIGHT * 3);
+                    pFrameTemp = Marshal.AllocHGlobal(VIDEO_WIDTH * VIDEO_HEIGHT * 3);
+                    pFrameTemp2 = Marshal.AllocHGlobal(VIDEO_WIDTH * VIDEO_HEIGHT * 3);
+
+                    // 分配彩色原始人脸坐标空间、彩色放大人脸坐标空间、红外原始人脸坐标空间、红外放大人脸坐标空间
+                    FaceColor = new TH_Faces.FACE_DETECT_RESULT();
+                    FaceColorExt = new TH_Faces.FACE_DETECT_RESULT();
+                    FaceGray = new TH_Faces.FACE_DETECT_RESULT();
+                    FaceGrayExt = new TH_Faces.FACE_DETECT_RESULT();
+
+                    Start();
+                }
+                catch (Exception ex)
+                {
+                    MessageBox.Show("初始化相机失败: " + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
+                }
+                finally
+                {
+                    loading = false;
+                }
+            });
+        }
+
+        private void Start()
+        {
+            if (nRotate == 90 || nRotate == 270)
+            {
+                nWidth = VIDEO_HEIGHT;
+                nHeight = VIDEO_WIDTH;
+            }
+            else
+            {
+                nWidth = VIDEO_WIDTH;
+                nHeight = VIDEO_HEIGHT;
+            }
+
+            // 打开彩色相机
+            if (nVid1 > 0) hCamColor = CHS_Capture.SmCameraOpenEx(nVid1, nPid1, VIDEO_WIDTH, VIDEO_HEIGHT);
+            hCamColor = CHS_Capture.SmCameraOpen(0, VIDEO_WIDTH, VIDEO_HEIGHT);
+
+            // 创建彩色帧显示对象
+            hPreviewColor = CHS_Capture.SmCameraPreviewCreate(nWidth, nHeight, pictureBox1.Handle);
+
+            bCamColorReady = (hCamColor != IntPtr.Zero);
+            bCamGrayReady = (hCamGray != IntPtr.Zero);
+            bFramesReady = false;
+
+
+            // 启动定时器
+            //timer1.Interval = 40;
+            //timer2.Interval = 200;
+            //timer1.Enabled = true;
+            //timer2.Enabled = true;
+        }
+
+        private void timer1_Tick(object sender, EventArgs e)
+        {
+            int ret;
+
+            // 如果彩色相机已打开,读取彩色视频帧
+            if (bCamColorReady)
+            {
+                if (nRotate == 90 || nRotate == 270)
+                {
+                    // 相机旋转90度或270度,先读到临时缓冲区
+                    ret = CHS_Capture.SmCameraGetFrame(hCamColor, pFrameTemp, 1, 0);
+
+                    // 将临时缓冲区中的图象数据旋转后放入 pFrameColor 缓冲区
+                    if (ret == 0) TH_Faces.RotateRgb24Data(pFrameTemp, VIDEO_WIDTH, VIDEO_HEIGHT, nRotate, 0, pFrameColor);
+                }
+                // 直接读取视频帧数据到 pFrameColor 缓冲区
+                else ret = CHS_Capture.SmCameraGetFrame(hCamColor, pFrameColor, 1, 0);
+
+                if (ret == 2) // 相机已断开连接,则关闭相机
+                {
+                    CHS_Capture.SmCameraClose(hCamColor);
+                    hCamColor = IntPtr.Zero;
+                    bCamColorReady = false;
+                    label1.Text = "彩色相机已断开";
+                    label1.ForeColor = Color.Red;
+                }
+            }
+
+            // 如果红外相机已打开,读取红外视频帧
+            if (bCamGrayReady)
+            {
+                if (nRotate == 90 || nRotate == 270)
+                {
+                    // 相机旋转90度或270度,先读到临时缓冲区
+                    ret = CHS_Capture.SmCameraGetFrame(hCamGray, pFrameTemp, 1, 0);
+
+                    // 将临时缓冲区中的图象数据旋转后放入 pFrameGray 缓冲区
+                    if (ret == 0) TH_Faces.RotateRgb24Data(pFrameTemp, VIDEO_WIDTH, VIDEO_HEIGHT, nRotate, 0, pFrameGray);
+                }
+                // 直接读取视频帧数据到 pFrameGray 缓冲区
+                else ret = CHS_Capture.SmCameraGetFrame(hCamGray, pFrameGray, 1, 0);
+
+                if (ret == 2) // 相机已断开连接,则关闭相机
+                {
+                    CHS_Capture.SmCameraClose(hCamGray);
+                    hCamGray = IntPtr.Zero;
+                    bCamGrayReady = false;
+                    label1.Text = "红外相机已断开";
+                    label1.ForeColor = Color.Red;
+                }
+            }
+
+            bFramesReady = (bCamColorReady || bCamGrayReady);
+
+            // 显示彩色帧图象
+            if (bCamColorReady) CHS_Capture.SmCameraPreviewFace(hPreviewColor, pFrameColor, FaceColorExt.rcFace.left, FaceColorExt.rcFace.top, FaceColorExt.rcFace.right, FaceColorExt.rcFace.bottom, 3, Color.Green.ToArgb());
+
+            // 显示红外帧图象
+            if (bCamGrayReady) CHS_Capture.SmCameraPreviewFace(hPreviewGray, pFrameGray, FaceGrayExt.rcFace.left, FaceGrayExt.rcFace.top, FaceGrayExt.rcFace.right, FaceGrayExt.rcFace.bottom, 3, Color.Green.ToArgb());
+        }
+
+        private void timer2_Tick(object sender, EventArgs e)
+        {
+            if (bFramesReady)
+            {
+                // 对彩色和红外帧图象分别检测人脸
+                int nNum1 = 0, nNum2 = 0;
+                if (bCamColorReady) nNum1 = TH_Faces.IdFaceSdkDetectFace(pFrameColor, nWidth, nHeight, ref FaceColor);
+                if (bCamGrayReady) nNum2 = TH_Faces.IdFaceSdkDetectFace(pFrameGray, nWidth, nHeight, ref FaceGray);
+
+                if (nNum1 < 1)
+                { // 彩色镜头未检测到人脸,清除彩色人脸坐标
+                    FaceColor.rcFace.left = FaceColor.rcFace.right = 0;
+                    FaceColor.rcFace.top = FaceColor.rcFace.bottom = 0;
+                    FaceColorExt = FaceColor;
+                }
+                else
+                { // 彩色镜头检测到人脸,更新彩色人脸放大坐标
+                    int w = FaceColor.rcFace.right - FaceColor.rcFace.left, h = FaceColor.rcFace.bottom - FaceColor.rcFace.top;
+                    int left = FaceColor.rcFace.left - (int)(w * fExtendLeft), right = FaceColor.rcFace.right + (int)(w * fExtendRight), top = FaceColor.rcFace.top - (int)(h * fExtendTop), bottom = FaceColor.rcFace.bottom + (int)(h * fExtendBottom);
+                    if (left < 0) left = 0;
+                    if (right >= nWidth) right = nWidth - 1;
+                    if (top < 0) top = 0;
+                    if (bottom >= nHeight) bottom = nHeight - 1;
+
+                    FaceColorExt.rcFace.left = left;
+                    FaceColorExt.rcFace.top = top;
+                    FaceColorExt.rcFace.right = right;
+                    FaceColorExt.rcFace.bottom = bottom;
+
+                }
+                if (nNum2 < 1)
+                { // 红外镜头未检测到人脸,清除红外人脸坐标
+                    FaceGray.rcFace.left = FaceGray.rcFace.right = 0;
+                    FaceGray.rcFace.top = FaceGray.rcFace.bottom = nHeight;
+                    FaceGrayExt = FaceGray;
+                }
+                else
+                { // 红外镜头检测到人脸,更新红外人脸放大坐标
+                    int w = FaceGray.rcFace.right - FaceGray.rcFace.left, h = FaceGray.rcFace.bottom - FaceGray.rcFace.top;
+                    int left = FaceGray.rcFace.left - (int)(w * fExtendLeft), right = FaceGray.rcFace.right + (int)(w * fExtendRight), top = FaceGray.rcFace.top - (int)(h * fExtendTop), bottom = FaceGray.rcFace.bottom + (int)(h * fExtendBottom);
+                    if (left < 0) left = 0;
+                    if (right >= nWidth) right = nWidth - 1;
+                    if (top < 0) top = 0;
+                    if (bottom >= nHeight) bottom = nHeight - 1;
+
+                    FaceGrayExt.rcFace.left = left;
+                    FaceGrayExt.rcFace.top = top;
+                    FaceGrayExt.rcFace.right = right;
+                    FaceGrayExt.rcFace.bottom = bottom;
+                }
+
+                if (nNum1 > 0 || nNum2 > 0) // 至少有一个相机能检测到人脸时,进行活体判别
+                {
+                    int nLiveFace = 0;
+
+                    if ((bCamColorReady == true && nNum1 < 1) || (bCamGrayReady == true && nNum2 < 1))
+                    { // 两个相机都打开了,但是只有一个相机能检测到人脸时,自动判为非活体
+                        label1.Text = "确认为非活体 !";
+                        label1.ForeColor = Color.Red;
+                    }
+                    else
+                    {
+                        int nScore = 0;
+
+                        if (nNum1 > 0 && nNum2 > 0) nLiveFace = TH_Faces.IdFaceSdkLiveFaceDetectEx(nWidth, nHeight, pFrameColor, ref FaceColor, (IntPtr)0, ref FaceGray, ref nScore);
+                        else if (nNum1 > 0) nLiveFace = TH_Faces.IdFaceSdkLiveFaceDetectEx(nWidth, nHeight, pFrameColor, ref FaceColor, IntPtr.Zero, ref FaceGray, ref nScore);
+                        else nLiveFace = TH_Faces.IdFaceSdkLiveFaceDetectEx(nWidth, nHeight, IntPtr.Zero, ref FaceColor, pFrameGray, ref FaceGray, ref nScore);
+
+                        if (nLiveFace == 1)
+                        {
+                            label1.Text = "确认为活体,分数 " + nScore.ToString();
+                            label1.ForeColor = Color.Green;
+
+                            if (nScore > 80)
+                            {
+                                string strTimeFlag = System.DateTime.Now.ToString("yyyyMMddHHmmss");
+
+                                string strFolder = Environment.CurrentDirectory + "\\Record";
+                                if (System.IO.Directory.Exists(strFolder) == false)
+                                    System.IO.Directory.CreateDirectory(strFolder);
+
+                                string strFileName = strFolder + "\\" + strTimeFlag + "_" + nLiveFace.ToString() + "_1.jpg";
+                                if (nNum1 > 0)
+                                {
+                                    IntPtr ptrFileName = Marshal.StringToHGlobalAnsi(strFileName);
+                                    TH_Faces.CropImage(pFrameColor, nWidth, nHeight, pFrameTemp2, FaceColorExt.rcFace.left, FaceColorExt.rcFace.top, FaceColorExt.rcFace.right - FaceColorExt.rcFace.left, FaceColorExt.rcFace.bottom - FaceColorExt.rcFace.top, 0);
+                                    TH_Faces.SaveJpegFile(ptrFileName, pFrameTemp2, FaceColorExt.rcFace.right - FaceColorExt.rcFace.left, FaceColorExt.rcFace.bottom - FaceColorExt.rcFace.top, 24, 90);
+                                }
+
+                                timer1.Enabled = false; // 停止定时器,避免连续检测
+                                timer2.Enabled = false;
+
+                                //MessageBox.Show("活体检测成功,分数 " + nScore.ToString() + ",人脸图片已保存到 Record 目录下!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+
+                                // 释放资源
+                                Stop();
+
+                                Release();
+
+                                this.Hide(); // 隐藏当前窗口
+                                int port = 9298;
+                                string? portStr = ConfigurationManager.AppSettings.Get("port");
+                                if (!string.IsNullOrEmpty(portStr) && int.TryParse(portStr, out int tempPort))
+                                {
+                                    port = tempPort; // 从配置文件读取端口号
+                                }
+
+                                DateTime startTime = DateTime.Now;
+                                Task.Run(() =>
+                                {
+                                    while (true) // 等待10秒钟
+                                    {
+                                        if (DateTime.Now - startTime > TimeSpan.FromSeconds(60))
+                                        {
+                                            Environment.Exit(0); // 退出应用程序
+                                        }
+
+                                    }
+                                });
+
+                                HttpServer httpServer = new HttpServer(port, strFileName); // 启动HTTP服务,提供人脸图片访问
+
+                                foreach (var item in Directory.GetFiles(strFolder))
+                                {
+                                    File.Delete(item);
+                                }
+
+                                Environment.Exit(0); // 退出应用程序
+                            }
+                        }
+                        else if (nLiveFace == 0)
+                        {
+                            label1.Text = "未确认为活体,分数 " + nScore.ToString();
+                            label1.ForeColor = Color.Magenta;
+                        }
+                        else
+                        {
+                            label1.Text = "活体检测失败,接口返回 " + nLiveFace.ToString();
+                            label1.ForeColor = Color.Red;
+                        }
+                    }
+
+                    //if (bSaveFace) // 是否保存人脸图片,每帧人脸图片都保存会占用较大磁盘空间
+                    //{
+                    //    string strTimeFlag = System.DateTime.Now.ToString("yyyyMMddHHmmss");
+
+                    //    string strFolder = Environment.CurrentDirectory + "\\Record";
+                    //    if (System.IO.Directory.Exists(strFolder) == false)
+                    //        System.IO.Directory.CreateDirectory(strFolder);
+
+                    //    // 保存彩色人脸图片
+                    //    if (nNum1 > 0)
+                    //    {
+                    //        string strFileName = strFolder + "\\" + strTimeFlag + "_" + nLiveFace.ToString() + "_1.jpg";
+                    //        IntPtr ptrFileName = Marshal.StringToHGlobalAnsi(strFileName);
+                    //        TH_Faces.CropImage(pFrameColor, nWidth, nHeight, pFrameTemp2, FaceColorExt.rcFace.left, FaceColorExt.rcFace.top, FaceColorExt.rcFace.right - FaceColorExt.rcFace.left, FaceColorExt.rcFace.bottom - FaceColorExt.rcFace.top, 0);
+                    //        TH_Faces.SaveJpegFile(ptrFileName, pFrameTemp2, FaceColorExt.rcFace.right - FaceColorExt.rcFace.left, FaceColorExt.rcFace.bottom - FaceColorExt.rcFace.top, 24, 90);
+                    //    }
+                    //    // 保存红外人脸图片
+                    //    if (nNum2 > 0)
+                    //    {
+                    //        string strFileName = strFolder + "\\" + strTimeFlag + "_" + nLiveFace.ToString() + "_2.jpg";
+                    //        IntPtr ptrFileName = Marshal.StringToHGlobalAnsi(strFileName);
+                    //        TH_Faces.CropImage(pFrameGray, nWidth, nHeight, pFrameTemp2, FaceGrayExt.rcFace.left, FaceGrayExt.rcFace.top, FaceGrayExt.rcFace.right - FaceGrayExt.rcFace.left, FaceGrayExt.rcFace.bottom - FaceGrayExt.rcFace.top, 0);
+                    //        TH_Faces.SaveJpegFile(ptrFileName, pFrameTemp2, FaceGrayExt.rcFace.right - FaceGrayExt.rcFace.left, FaceGrayExt.rcFace.bottom - FaceGrayExt.rcFace.top, 24, 90);
+                    //    }
+                    //}
+                }
+                else
+                { // 两个相机均未检测到人脸,则提示用户正视相机
+                    label1.Text = "请正视相机 !";
+                    label1.ForeColor = Color.Red;
+                }
+                bFramesReady = false;
+            }
+        }
+
+        void Stop()
+        {
+            bCamColorReady = bCamGrayReady = false;
+            bFramesReady = false;
+
+            // 关闭彩色相机
+            if (hCamColor != IntPtr.Zero)
+            {
+                CHS_Capture.SmCameraClose(hCamColor);
+                hCamColor = IntPtr.Zero;
+            }
+
+            // 关闭红外相机
+            if (hCamGray != IntPtr.Zero)
+            {
+                CHS_Capture.SmCameraClose(hCamGray);
+                hCamGray = IntPtr.Zero;
+            }
+
+            // 销毁彩色帧显示对象
+            if (hPreviewColor != IntPtr.Zero)
+            {
+                CHS_Capture.SmCameraPreviewDestroy(hPreviewColor);
+                hPreviewColor = IntPtr.Zero;
+            }
+
+            // 销毁红外帧显示对象
+            if (hPreviewGray != IntPtr.Zero)
+            {
+                CHS_Capture.SmCameraPreviewDestroy(hPreviewGray);
+                hPreviewGray = IntPtr.Zero;
+            }
+        }
+
+        void Release()
+        {
+            Marshal.FreeHGlobal(pFrameColor);
+            Marshal.FreeHGlobal(pFrameGray);
+            Marshal.FreeHGlobal(pFrameTemp);
+            Marshal.FreeHGlobal(pFrameTemp2);
+
+            if (bSdkInit)
+            {
+                bSdkInit = false;
+
+                // SDK反初始化,释放SDK资源
+                TH_Faces.IdFaceSdkUninit();
+            }
+        }
+
+        private void timer3_Tick(object sender, EventArgs e)
+        {
+            if (!loading)
+            {
+                loading = false;
+                oc.HideOpaqueLayer(); // 隐藏半透明蒙板层
+                timer3.Enabled = false; // 停止定时器
+                timer1.Interval = 40;
+                timer2.Interval = 200;
+                timer1.Enabled = true;
+                timer2.Enabled = true;
+                label1.Visible = true; // 隐藏提示信息
+            }
+            else
+            {
+                label1.Visible = false; // 隐藏提示信息
+                oc.ShowOpaqueLayer(this, 255, true);
+            }
+
+        }
+    }
+}
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FrmRegister.resx" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FrmRegister.resx"
new file mode 100644
index 0000000..fc1b8ab
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/FrmRegister.resx"
@@ -0,0 +1,129 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="timer2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>139, 17</value>
+  </metadata>
+  <metadata name="timer3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>261, 17</value>
+  </metadata>
+</root>
\ No newline at end of file
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/MyOpaqueLayer.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/MyOpaqueLayer.cs"
new file mode 100644
index 0000000..1f320fe
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/MyOpaqueLayer.cs"
@@ -0,0 +1,138 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FaceSdkX64Register
+{
+    [ToolboxBitmap(typeof(MyOpaqueLayer))]
+    public class MyOpaqueLayer : System.Windows.Forms.Control
+    {
+        private bool _transparentBG = true;//鏄惁浣跨敤閫忔槑
+        private int _alpha = 125;//璁剧疆閫忔槑搴�
+
+        private System.ComponentModel.Container components = new System.ComponentModel.Container();
+
+        public MyOpaqueLayer()
+            : this(125, true)
+        {
+        }
+
+        public MyOpaqueLayer(int Alpha, bool IsShowLoadingImage)
+        {
+            SetStyle(System.Windows.Forms.ControlStyles.Opaque, true);
+            base.CreateControl();
+
+            this._alpha = Alpha;
+            if (IsShowLoadingImage)
+            {
+                //Image.FromFile(@"C:\Users\Administrator\Desktop\5-121204193R0-50.gif"); 
+                PictureBox pictureBox_Loading = new PictureBox();
+                //pictureBox_Loading.BackColor = Color.Transparent;
+                //pictureBox_Loading.BackColor = System.Drawing.Color.White;
+
+                Image image = Image.FromStream(new MemoryStream(Properties.Resources.LoadingImg));//v1.10
+
+                pictureBox_Loading.Image = image;
+                pictureBox_Loading.Name = "pictureBox_Loading";
+                pictureBox_Loading.Size = new System.Drawing.Size(48, 48);
+                pictureBox_Loading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+                Point Location = new Point(this.Location.X + (this.Width - pictureBox_Loading.Width) / 2, this.Location.Y + (this.Height - pictureBox_Loading.Height) / 2);//灞呬腑
+                pictureBox_Loading.Location = Location;
+                pictureBox_Loading.Anchor = AnchorStyles.None;
+                this.Controls.Add(pictureBox_Loading);
+            }
+        }
+
+
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing)
+            {
+                if (!((components == null)))
+                {
+                    components.Dispose();
+                }
+            }
+            base.Dispose(disposing);
+        }
+
+        /// <summary>
+        /// 鑷畾涔夌粯鍒剁獥浣�
+        /// </summary>
+        /// <param name="e"></param>
+        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
+        {
+            float vlblControlWidth;
+            float vlblControlHeight;
+
+            Pen labelBorderPen;
+            SolidBrush labelBackColorBrush;
+
+            if (_transparentBG)
+            {
+                //v1.10
+
+                Color drawColor = Color.FromArgb(125, 0, 0, 1); //Color.FromArgb(this._alpha, this.BackColor);
+                labelBorderPen = new Pen(drawColor, 0);
+                labelBackColorBrush = new SolidBrush(drawColor);
+            }
+            else
+            {
+                labelBorderPen = new Pen(this.BackColor, 0);
+                labelBackColorBrush = new SolidBrush(this.BackColor);
+            }
+            base.OnPaint(e);
+            vlblControlWidth = this.Size.Width;
+            vlblControlHeight = this.Size.Height;
+            e.Graphics.DrawRectangle(labelBorderPen, 0, 0, vlblControlWidth, vlblControlHeight);
+            e.Graphics.FillRectangle(labelBackColorBrush, 0, 0, vlblControlWidth, vlblControlHeight);
+        }
+
+
+        protected override CreateParams CreateParams//v1.10 
+        {
+            get
+            {
+                CreateParams cp = base.CreateParams;
+                cp.ExStyle |= 0x00000020; //0x20;  // 寮�鍚� WS_EX_TRANSPARENT,浣挎帶浠舵敮鎸侀�忔槑
+                return cp;
+            }
+        }
+
+        /*
+         * [Category("myOpaqueLayer"), Description("鏄惁浣跨敤閫忔槑,榛樿涓篢rue")]
+         * 涓�鑸敤浜庤鏄庝綘鑷畾涔夋帶浠剁殑灞炴�э紙Property锛夈��
+         * Category鐢ㄤ簬璇存槑璇ュ睘鎬у睘浜庡摢涓垎绫伙紝Description鑷劧灏辨槸璇ュ睘鎬х殑鍚箟瑙i噴銆�
+         */
+        [Category("MyOpaqueLayer"), Description("鏄惁浣跨敤閫忔槑,榛樿涓篢rue")]
+        public bool TransparentBG
+        {
+            get
+            {
+                return _transparentBG;
+            }
+            set
+            {
+                _transparentBG = value;
+                this.Invalidate();
+            }
+        }
+
+        [Category("MyOpaqueLayer"), Description("璁剧疆閫忔槑搴�")]
+        public int Alpha
+        {
+            get
+            {
+                return _alpha;
+            }
+            set
+            {
+                _alpha = value;
+                this.Invalidate();
+            }
+        }
+    }
+}
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/OpaqueCommand.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/OpaqueCommand.cs"
new file mode 100644
index 0000000..e295c43
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/OpaqueCommand.cs"
@@ -0,0 +1,55 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FaceSdkX64Register
+{
+    public class OpaqueCommand
+    {
+        private MyOpaqueLayer m_OpaqueLayer = null;//鍗婇�忔槑钂欐澘灞�
+
+        /// <summary>
+        /// 鏄剧ず閬僵灞�
+        /// </summary>
+        /// <param name="control">鎺т欢</param>
+        /// <param name="alpha">閫忔槑搴�</param>
+        /// <param name="isShowLoadingImage">鏄惁鏄剧ず鍥炬爣</param>
+        public void ShowOpaqueLayer(Control control, int alpha, bool isShowLoadingImage = true)
+        {
+            try
+            {
+                if (m_OpaqueLayer == null)
+                {
+                    this.m_OpaqueLayer = new MyOpaqueLayer(alpha, isShowLoadingImage);
+                    control.Controls.Add(this.m_OpaqueLayer);
+                    this.m_OpaqueLayer.Dock = DockStyle.Fill;
+                    this.m_OpaqueLayer.BringToFront();
+                }
+                this.m_OpaqueLayer.Enabled = true;
+                this.m_OpaqueLayer.Visible = true;
+            }
+            catch(Exception ex) { }
+        }
+
+        /// <summary>
+        /// 闅愯棌閬僵灞�
+        /// </summary>
+        public void HideOpaqueLayer()
+        {
+            try
+            {
+                if (this.m_OpaqueLayer != null)
+                {
+                    this.m_OpaqueLayer.Visible = false;
+                    this.m_OpaqueLayer.Enabled = false;
+                }
+            }
+            catch (Exception ex)
+            {
+                //MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Program.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Program.cs"
new file mode 100644
index 0000000..808c078
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Program.cs"
@@ -0,0 +1,17 @@
+namespace FaceSdkX64Register
+{
+    internal static class Program
+    {
+        /// <summary>
+        ///  The main entry point for the application.
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            // To customize application configuration such as set high DPI settings or default font,
+            // see https://aka.ms/applicationconfiguration.
+            ApplicationConfiguration.Initialize();
+            Application.Run(new FrmRegister());
+        }
+    }
+}
\ No newline at end of file
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Properties/LoadingImg.gif" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Properties/LoadingImg.gif"
new file mode 100644
index 0000000..915c198
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Properties/LoadingImg.gif"
Binary files differ
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Properties/Resources.Designer.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Properties/Resources.Designer.cs"
new file mode 100644
index 0000000..390d288
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Properties/Resources.Designer.cs"
@@ -0,0 +1,73 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+//     姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+//     杩愯鏃剁増鏈�:4.0.30319.42000
+//
+//     瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+//     閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace FaceSdkX64Register.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   涓�涓己绫诲瀷鐨勮祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲鐨勫瓧绗︿覆绛夈��
+    /// </summary>
+    // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+    // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+    // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+    // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    public class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   杩斿洖姝ょ被浣跨敤鐨勭紦瀛樼殑 ResourceManager 瀹炰緥銆�
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FaceSdkX64Register.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�э紝瀵�
+        ///   浣跨敤姝ゅ己绫诲瀷璧勬簮绫荤殑鎵�鏈夎祫婧愭煡鎵炬墽琛岄噸鍐欍��
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   鏌ユ壘 System.Byte[] 绫诲瀷鐨勬湰鍦板寲璧勬簮銆�
+        /// </summary>
+        public static byte[] LoadingImg {
+            get {
+                object obj = ResourceManager.GetObject("LoadingImg", resourceCulture);
+                return ((byte[])(obj));
+            }
+        }
+    }
+}
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Properties/Resources.resx" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Properties/Resources.resx"
new file mode 100644
index 0000000..6ccff94
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Register/Properties/Resources.resx"
@@ -0,0 +1,124 @@
+锘�<?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.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="LoadingImg" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>LoadingImg.gif;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+</root>
\ No newline at end of file
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/CHS_Capture.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/CHS_Capture.cs"
new file mode 100644
index 0000000..ee830eb
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/CHS_Capture.cs"
@@ -0,0 +1,49 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FaceSdkX64Service
+{
+    // 鐩告満鍙栧抚鍙婂抚鍥捐薄鏄剧ず缁勪欢
+    public class CHS_Capture
+    {
+        // 杩斿洖鐩告満涓暟
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraGetCount", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern int SmCameraGetCount();
+
+        // 鎵撳紑鐩告満锛堟牴鎹浉鏈虹储寮曞彿 nDeviceId锛�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraOpen", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern IntPtr SmCameraOpen(int nDeviceId, int nWidth, int nHeight);
+
+        // 鎵撳紑鐩告満锛堟牴鎹浉鏈篤ID+PIC锛�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraOpenEx", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern IntPtr SmCameraOpenEx(int nVid, int nPid, int nWidth, int nHeight);
+
+        // 浠庢墦寮�鐨勭浉鏈烘彁鍙栦竴甯ц棰戞暟鎹�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraGetFrame", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern int SmCameraGetFrame(IntPtr hCamera, IntPtr pFrameBuf, int bMirror, int bFlip);
+
+        // 鍏抽棴鐩告満
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraClose", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void SmCameraClose(IntPtr hCamera);
+
+        // 鍒涘缓瑙嗛甯ф樉绀哄璞★紙nWidth * nHeight 涓鸿棰戝抚鐨勫垎杈ㄧ巼锛宧Wnd 涓烘樉绀虹獥鍙e彞鏌勶級
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraPreviewCreate", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern IntPtr SmCameraPreviewCreate(int nWidth, int nHeight, IntPtr hWND);
+
+        // 鏄剧ず瑙嗛甯�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraPreview", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void SmCameraPreview(IntPtr hCameraPreview, IntPtr pFrame);
+
+        // 鏄剧ず瑙嗛甯у強浜鸿劯妗嗭紙weight涓鸿竟妗嗙殑鍘氬害锛�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraPreviewFace", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void SmCameraPreviewFace(IntPtr hCameraPreview, IntPtr pFrame, int left, int top, int right, int bottom, int weight, int color);
+
+        // 閲婃斁瑙嗛甯ф樉绀哄璞�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraPreviewDestroy", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void SmCameraPreviewDestroy(IntPtr hCameraPreivew);
+    }
+}
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/ConfigHelper.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/ConfigHelper.cs"
new file mode 100644
index 0000000..b4ac3e4
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/ConfigHelper.cs"
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FaceSdkX64Service
+{
+    public class ConfigHelper
+    {
+        [DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern long GetPrivateProfileString(string section, string key, string defval, StringBuilder value, int size, string filename);
+    }
+}
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/FaceSdkX64Service.csproj" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/FaceSdkX64Service.csproj"
new file mode 100644
index 0000000..132c02c
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/FaceSdkX64Service.csproj"
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+</Project>
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/HttpServer.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/HttpServer.cs"
new file mode 100644
index 0000000..7f13da3
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/HttpServer.cs"
@@ -0,0 +1,86 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+using static FaceSdkX64Service.TH_Faces;
+
+namespace FaceSdkX64Service
+{
+    public class HttpServer
+    {
+        private string ImgPath = string.Empty;
+
+        HttpListener listener;
+
+        public HttpServer(int port, string imgPath)
+        {
+            ImgPath = imgPath;
+
+            listener = new HttpListener();
+            listener.Prefixes.Add($"http://+:{port}/");
+            listener.Start();
+
+            HttpListenerContext httpListenerContext = listener.GetContext();
+
+            GetConnect(httpListenerContext);
+
+            listener.Stop(); //鍏抽棴HttpListener
+        }
+
+        private void GetConnect(HttpListenerContext context)
+        {
+            try
+            {
+                // 绛夊緟瀹㈡埛绔繛鎺�
+                if (!context.Request.IsWebSocketRequest)
+                {
+                    if (context == null) return;
+                    var request = context.Request;
+                    var response = context.Response;
+
+                    response.StatusCode = 200;
+                    response.ContentType = "text/plain; charset=utf-8";
+                    response.Headers.Add("Access-Control-Allow-Origin", "*"); // 鍏佽璺ㄥ煙璁块棶
+
+                    using (var stream = response.OutputStream)
+                    {
+
+                        // 鎶婂鐞嗕俊鎭繑鍥炲埌瀹㈡埛绔�
+                        if (string.IsNullOrEmpty(ImgPath))
+                        {
+                            stream.Write(new byte[0], 0, 0);
+                        }
+                        else
+                        {
+                            string base64 = ImageToBase64(ImgPath); // 灏嗗浘鐗囪浆鎹负Base64瀛楃涓�
+                            byte[] buffer = Encoding.UTF8.GetBytes(base64);
+                            stream.Write(buffer, 0, buffer.Length);
+                        }
+
+                    }
+
+                }
+
+            }
+            catch (Exception ex)
+            {
+            }
+
+        }
+
+        private string ImageToBase64(string imagePath)
+        {
+            try
+            {
+                byte[] imageBytes = System.IO.File.ReadAllBytes(imagePath);
+                return Convert.ToBase64String(imageBytes);
+            }
+            catch (Exception ex)
+            {
+                return string.Empty;
+            }
+        }
+    }
+}
diff --git "a/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/TH_Faces.cs" "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/TH_Faces.cs"
new file mode 100644
index 0000000..2c06110
--- /dev/null
+++ "b/project/\344\272\272\350\204\270\350\257\206\345\210\253\346\217\222\344\273\266/FaceSdkX64/FaceSdkX64Service/TH_Faces.cs"
@@ -0,0 +1,210 @@
+锘縰sing System.Runtime.InteropServices;
+
+namespace FaceSdkX64Service
+{
+    public class TH_Faces // 浜鸿劯妫�娴嬪強璇嗗埆SDK鎺ュ彛锛屽彲鍙傝 IdFaceSdk.h锛堝唴鍚墍鏈夋帴鍙g殑鍔熻兘銆佸弬鏁般�佽繑鍥炲�肩殑鍏蜂綋鎻忚堪锛�
+    {
+        #region 缁撴瀯浣撳畾涔�
+
+        public struct RECT
+        {
+            public Int32 left;
+            public Int32 top;
+            public Int32 right;
+            public Int32 bottom;
+        };
+
+        public struct POINT
+        {
+            public Int32 x;
+            public Int32 y;
+        };
+
+        // 浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣鍙傛暟
+        public struct FACE_DETECT_RESULT
+        {
+            public RECT rcFace;//coordinate of face
+            public POINT ptLeftEye;//coordinate of left eye
+            public POINT ptRightEye;//coordinate of right eye
+            public POINT ptMouth;//coordinate of mouth
+            public POINT ptNose;//coordinate of nose								
+            public Int32 nAngleYaw, nAnglePitch, nAngleRoll;//value of face angle
+            public Int32 nQuality;//quality of face(from 0 to 100)
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 512)]
+            public Byte[] FaceData;
+        };
+
+        // 浜鸿劯璐ㄩ噺妫�娴嬭繑鍥炵殑浜鸿劯璐ㄩ噺鍙傛暟
+        public struct FACE_QUALITY_LEVEL
+        {
+            public Int32 nHalf; // 浜鸿劯瀹屾暣鎬�: 0-姝e父锛�1-浜鸿劯涓嶅お瀹屾暣锛�2-浜鸿劯闈炲父涓嶅畬鏁�
+            public Int32 nSmall; // 浜鸿劯澶у皬锛�0-姝e父锛�1-浜鸿劯杈冨皬锛�2-浜鸿劯澶皬
+            public Int32 nPosture; // 濮挎�侊細0-姝e父锛�1-鍋忓ご杈冨锛�2-鍋忓ご澶
+            public Int32 nMask; // 鑴搁儴閬尅: 0-姝e父锛�1-浜鸿劯鏈夐伄鎸★紝2-浜鸿劯閬尅澶
+            public Int32 nFaceMask; // 鍙g僵锛�0-姝e父锛�1-鏈夋埓鍙g僵锛�2-纭鎴村彛缃�
+            public Int32 nHat; // 甯藉瓙锛�0-姝e父锛�1-鏈夋埓甯斤紝2-甯藉瓙閬尅鑴搁儴
+            public Int32 nGlasses; // 鐪奸暅: 0-姝e父锛�1-鏈夋埓鐪奸暅锛�2-纭鎴寸溂闀�
+            public Int32 nGape; // 寮犲槾: 0-姝e父锛�1-寮犲槾锛�2-寮犲ぇ鍢�
+            public Int32 nBlur; // 妯$硦搴︼細0-姝e父锛�1-杈冩ā绯婏紝2-澶ā绯�
+            public Int32 nBright; // 鑴搁儴鏇濆厜搴︼細0-姝e父锛�1-澶殫锛�2-杩囩垎
+            public Int32 nLight; // 鍏夋簮鏂瑰悜: 0-姝e父锛�1-渚у厜锛�2-椤跺厜, 3-閫嗗厜       
+        };
+
+        #endregion
+
+        #region 鍒濆鍖栧強鍩烘湰鍔熻兘
+
+        // 杩斿洖SDK鐗堟湰鍙凤紙闅忔椂鍙皟鐢級
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkVer", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkVer();
+
+        // 杩斿洖璁惧杩愯鐮�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkGetRunCode", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkGetRunCode([Out] IntPtr pStrRunCode);
+
+        // SDK鍒濆鍖栵紝鎴愬姛杩斿洖0锛堝悗闈㈤櫎杈呭姪鎺ュ彛澶栫殑鎵�鏈夊姛鑳芥帴鍙i兘蹇呴』鏄疭DK鍒濆鍖栨垚鍔熷悗鎵嶆湁鐢級
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkInit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkInit();
+
+        // SDK鍙嶅垵濮嬪寲锛堝悗闈㈤櫎杈呭姪鎺ュ彛澶栫殑鎵�鏈夊姛鑳芥帴鍙e湪璋冪敤鍙嶅垵濮嬪寲鍚庡潎涓嶅彲鐢紝闄ら潪鍐嶆鍒濆鍖栵級
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkUninit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void IdFaceSdkUninit();
+
+        // 璁剧疆妫�娴嬪ぇ灏忥紙閽堝楂樺垎杈ㄧ巼涓斾汉鑴稿崰姣旇緝灏忔椂璁剧疆妫�娴嬪ぇ灏忥紝閫氬父涓嶅繀璋冪敤锛�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkSetDetectSize", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void IdFaceSdkSetDetectSize(Int32 nDetectSize);
+
+        // 杩斿洖鐗瑰緛鐮佸ぇ灏�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFeatureSize", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkFeatureSize();
+
+        // 杩斿洖褰撳墠鐨勬巿鏉冩槸鍚︽敮鎸佹椿浣撴娴�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkGetLiveFaceStatus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkGetLiveFaceStatus();
+
+        #endregion
+
+        #region 鍗曚汉鑴告娴�
+
+        // 妫�娴嬫渶澶т汉鑴�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkDetectFace", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkDetectFace(IntPtr pImage, Int32 nWidth, Int32 nHeight, ref FACE_DETECT_RESULT Face);
+
+        #endregion
+
+        #region 澶氫汉鑴告娴嬪苟鎻愬彇鐗瑰緛
+
+        // 妫�娴嬪浜鸿劯鍚屾椂鎻愬彇鍚勪汉鑴哥殑鐗瑰緛锛坣MaxFace 琛ㄧず鏈�澶氳妫�娴嬬殑浜鸿劯涓暟锛孎aces 蹇呴』鎸夋渶澶т汉鑴镐釜鏁板垎閰嶄汉鑴稿潗鏍囩┖闂达紝 pFeatures 蹇呴』鎸夋渶澶т汉鑴镐釜鏁板垎閰嶇壒寰佺爜绌洪棿锛宲Features 鍙傛暟浼� 0 鏃跺垯鍙娴嬩汉鑴镐笉鎻愮壒寰侊級
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFaceFeature", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkFaceFeature(IntPtr pImage, Int32 nWidth, Int32 nHeight, Int32 nMaxFace, [Out] FACE_DETECT_RESULT[] Faces, [Out] IntPtr pFeatures);
+
+        #endregion
+
+        #region 浜鸿劯璐ㄩ噺妫�娴�
+
+        // 妫�娴嬩汉鑴歌川閲忥紙闇�杈撳叆浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣锛�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFaceQualityLevel", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkFaceQualityLevel(IntPtr pImage, Int32 nWidth, Int32 nHeight, ref FACE_DETECT_RESULT Face, ref FACE_QUALITY_LEVEL FaceQualityLevel);
+
+        #endregion
+
+        #region SDK鐗瑰緛鎻愬彇
+
+        // 鎻愬彇浜鸿劯鐗瑰緛锛堥渶杈撳叆浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣锛宲Feature闇�鍒嗛厤涓嶅皬浜庝竴涓汉鑴哥壒寰佺殑绌洪棿锛�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFeatureGet", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkFeatureGet(IntPtr pImage, Int32 nWidth, Int32 nHeight, ref FACE_DETECT_RESULT Face, [Out] IntPtr pFeature);
+
+        #endregion
+
+        #region 涓�瀵逛竴姣斿锛�1:1锛屽鐢ㄤ簬浜鸿瘉鏍搁獙锛�
+
+        // 涓や釜浜鸿劯鐗瑰緛姣斿鍑虹浉浼煎害
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFeatureCompare", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Byte IdFaceSdkFeatureCompare(IntPtr pFeature1, IntPtr pFeature2);
+
+        #endregion
+
+        #region 涓�瀵瑰姣斿锛�1:N锛屽鐢ㄤ簬鏈嶅姟鍣ㄨ瘑鍒級
+
+        // 鍒涘缓涓�瀵瑰浜鸿劯姣斿鍒楄〃
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListCreate", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern IntPtr IdFaceSdkListCreate(Int32 nMaxFeatureNum);
+
+        // 鍚戜汉鑴告瘮瀵瑰垪琛ㄤ腑澧炲姞/鎻掑叆妯℃澘鐨勪汉鑴哥壒寰�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListInsert", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkListInsert(IntPtr hList, [In, Out] ref Int32 nPos, IntPtr pFeatures, Int32 nFeatureNum);
+
+        // 浠庝汉鑴告瘮瀵瑰垪琛ㄤ腑鍒犻櫎閮ㄥ垎浜鸿劯鐗瑰緛
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListRemove", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkListRemove(IntPtr hList, Int32 nPos, Int32 nFeatureNum);
+
+        // 娓呯┖浜鸿劯姣斿鍒楄〃涓殑鎵�鏈変汉鑴哥壒寰�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListClearAll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void IdFaceSdkListClearAll(IntPtr hList);
+
+        // 涓�瀵瑰浜鸿劯姣斿锛岃繑鍥炲弬涓庢瘮瀵圭殑鐗瑰緛鏁帮紝pnScores 闇�鍒嗛厤涓嶅皬浜庢ā鏉跨壒寰佹暟鐨勭┖闂达紝璋冪敤鍚庡皢杈撳嚭涓庢瘡涓ā鏉跨壒寰佹瘮瀵圭殑缁撴灉锛堢壒寰佺浉浼煎害锛�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListCompare", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkListCompare(IntPtr hList, IntPtr pFeature, Int32 nPosBegin, Int32 nFeatureNum, [Out] IntPtr pnScores);
+
+        // 閿�姣佷竴瀵瑰鐗瑰緛姣斿鍒楄〃
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListDestroy", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void IdFaceSdkListDestroy(IntPtr hList);
+
+        #endregion
+
+        #region 娲讳綋妫�娴�
+
+        // 娲讳綋妫�娴嬶紙杩斿洖1琛ㄧず娲讳綋锛夛紝闇�浼犲叆浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣锛宲ImageColor 涓� pImageBW 鍧囨湁鏁堝垯杩涜鍙岀洰娲讳綋妫�娴嬶紝濡� pImageBW 涓� 0 鍒欒繘琛屽僵鑹插崟鐩椿浣撴娴嬶紝pImageColor 涓� 0 鍒欒繘琛岀孩澶栧弻鐩椿浣撴娴�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkLiveFaceDetect", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkLiveFaceDetect(Int32 nWidth, Int32 nHeight, IntPtr pImageColor, ref FACE_DETECT_RESULT FaceColor, IntPtr pImageBW, ref FACE_DETECT_RESULT FaceBW);
+
+        // 娲讳綋妫�娴嬪苟杈撳嚭娲绘鍒嗘暟锛堝彲鏍规嵁娲绘鍒嗘暟鏄惁杈惧埌闃堝�煎垽鍒槸鍚︿负娲讳綋锛夛紝闇�浼犲叆浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣锛宲ImageColor 涓� pImageBW 鍧囨湁鏁堝垯杩涜鍙岀洰娲讳綋妫�娴嬶紝濡� pImageBW 涓� 0 鍒欒繘琛屽僵鑹插崟鐩椿浣撴娴嬶紝pImageColor 涓� 0 鍒欒繘琛岀孩澶栧弻鐩椿浣撴娴�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkLiveFaceDetectEx", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkLiveFaceDetectEx(Int32 nWidth, Int32 nHeight, IntPtr pImageColor, ref FACE_DETECT_RESULT FaceColor, IntPtr pImageBW, ref FACE_DETECT_RESULT FaceBW, ref Int32 nScore);
+
+        #endregion
+
+        #region 杈呭姪鎺ュ彛
+
+        // 璇诲浘璞℃枃浠跺埌RGB24鍥捐薄鏁版嵁缂撳啿鍖猴紝鏀寔BMP銆丣PG銆丳NG鍥捐薄鏂囦欢锛宲RgbBuf 蹇呴』鍒嗛厤瓒冲鐨勭紦鍐插尯锛堜笉灏忎簬 nWidth * nHeight * 3锛�,濡備笉鐭ラ亾鍥捐薄鍒嗚鲸鐜囧彲灏嗘鍙傛暟浼� 0 鍒欐湰娆¤皟鐢ㄥ彧杩斿洖鍥捐薄鍒嗚鲸鐜囷紝鐒跺悗鍒嗛厤瓒冲鐨勭紦鍐插尯鍐嶆璋冪敤璇诲嚭鍥捐薄鏁版嵁
+        [DllImport("IdFaceSdk.dll", EntryPoint = "ReadImageFile", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 ReadImageFile(IntPtr filename, [Out] IntPtr pRgbBuf, Int32 nBufSize, ref Int32 nWidth, ref Int32 nHeight, Int32 nDepth);
+
+        // 璇诲浘璞℃枃浠舵暟鎹埌RGB鍥捐薄鏁版嵁缂撳啿鍖猴紝鏀寔BMP銆丣PG銆丳NG鍥捐薄鏂囦欢锛宲RgbBuf 蹇呴』鍒嗛厤瓒冲鐨勭紦鍐插尯锛堜笉灏忎簬 nWidth * nHeight * 3锛�,濡備笉鐭ラ亾鍥捐薄鍒嗚鲸鐜囧彲灏嗘鍙傛暟浼� 0 鍒欐湰娆¤皟鐢ㄥ彧杩斿洖鍥捐薄鍒嗚鲸鐜囷紝鐒跺悗鍒嗛厤瓒冲鐨勭紦鍐插尯鍐嶆璋冪敤璇诲嚭鍥捐薄鏁版嵁
+        [DllImport("IdFaceSdk.dll", EntryPoint = "ReadImageFileData", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 ReadImageFileData(IntPtr pFileData, Int32 nFileDataSize, [Out] IntPtr pRgbBuf, Int32 nBufSize, ref Int32 nWidth, ref Int32 nHeight, Int32 nDepth);
+
+        // 鏃嬭浆RGB24鍥捐薄鏁版嵁锛宯Degree涓烘棆杞搴︼紙鏀寔0銆�90銆�180銆�270锛夛紝nMirror涓�0琛ㄧず涓嶉暅璞★紝涓�1琛ㄧず宸﹀彸闀滆薄
+        [DllImport("IdFaceSdk.dll", EntryPoint = "RotateRgb24Data", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 RotateRgb24Data(IntPtr pSrc, Int32 nWidth, Int32 nHeight, Int32 nDegree, Int32 nMirror, [Out] IntPtr pDst);
+
+        // 浠嶳GB24鍥捐薄鏁版嵁瑁佸壀鍑哄皬鍥�
+        // 杈撳叆鍙傛暟锛�
+        //           pSrc ---- 鍘熷浘鏁版嵁锛圧GB24鏍煎紡锛�
+        //           nSrcWidth ---- 鍘熷浘瀹藉害
+        //           nSrcHeight ---- 鍘熷浘楂樺害
+        //           nLeft ---- 瑁佸壀鍖哄煙宸︿笂瑙扻鍧愭爣
+        //           nTop ---- 瑁佸壀鍖哄煙宸︿笂瑙扽鍧愭爣
+        //           nWidth ---- 瑁佸壀鍖哄煙瀹藉害
+        //           nHeight ---- 瑁佸壀鍖哄煙楂樺害
+        //           nRate ---- 瑁佸壀鍥捐薄缂╁皬鍊嶆暟锛�0-涓嶇缉灏忥紝1-瀹介珮缂╁皬鑷冲師鏉ョ殑1/2锛�2-瀹介珮缂╁皬鑷冲師鏉ョ殑1/3锛�...锛�
+        // 杈撳嚭鍙傛暟锛�
+        //           pDst ---- 灏忓浘鏁版嵁(RGB24鏍煎紡锛岃皟鐢ㄥ墠闇�鍒嗘瀽瓒冲鐨勭紦鍐插尯)
+        // 杩斿洖鍊硷細
+        //        0 ---- 鎴愬姛
+        //       -1 ---- 鍙傛暟閿欒
+        // 澶囨敞锛氳鍓悗鐨勫浘璞″垎杈ㄧ巼涓猴細瀹藉害 = nWidth / (nRate + 1), 楂樺害 = nHeight / (nRate + 1)
+        [DllImport("IdFaceSdk.dll", EntryPoint = "CropImage", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 CropImage(IntPtr pSrc, Int32 nSrcWidth, Int32 nSrcHeight, [Out] IntPtr pDst, int nLeft, int nTop, int nWidth, int nHeight, int nRate);
+
+        // 灏哛GB24鍥捐薄鏁版嵁淇濆瓨涓篔PEG鏂囦欢
+        [DllImport("IdFaceSdk.dll", EntryPoint = "SaveJpegFile", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 SaveJpegFile(IntPtr filename, IntPtr pRgbData, Int32 nWidth, Int32 nHeight, Int32 nDepth, Int32 nQuality);
+
+        // 灏哛GB24鍥捐薄鏁版嵁淇濆瓨涓篔PEG鏂囦欢鏁版嵁
+        [DllImport("IdFaceSdk.dll", EntryPoint = "SaveJpegFileData", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 SaveJpegFileData(IntPtr pRgbData, Int32 nWidth, Int32 nHeight, Int32 nDepth, Int32 nQuality, [Out] IntPtr pFileDataBuf, Int32 nBufSize, ref Int32 nFileDataSize);
+
+        #endregion
+    }
+}

--
Gitblit v1.9.3