diff --git a/Form1.Designer.cs b/Form1.Designer.cs index e7b7ffd..5bc7ce0 100644 --- a/Form1.Designer.cs +++ b/Form1.Designer.cs @@ -1,4 +1,11 @@ -namespace Vmianqian +#nullable enable + +using AntdUI; +using WinLabel = System.Windows.Forms.Label; +using WinPanel = System.Windows.Forms.Panel; +using WinTextBox = System.Windows.Forms.TextBox; + +namespace Vmianqian { partial class Form1 { @@ -22,22 +29,1142 @@ } /// - /// Minimal designer stub. UI is built fully in code with AntdUI. + /// Required method for Designer support. /// private void InitializeComponent() { + DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle dataGridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle dataGridViewCellStyle3 = new DataGridViewCellStyle(); + DataGridViewCellStyle dataGridViewCellStyle4 = new DataGridViewCellStyle(); + homeSummaryCard = new System.Windows.Forms.Panel(); + lblSummaryTitle = new AntdUI.Label(); + lblSummaryDesc = new AntdUI.Label(); + homeConfigCard = new System.Windows.Forms.Panel(); + btnSaveConfig = new AntdUI.Button(); + btnHeartbeatCheck = new AntdUI.Button(); + chkHeartbeatEnabled = new Switch(); + lblHeartbeatDesc = new AntdUI.Label(); + lblServerUrlTitle = new AntdUI.Label(); + txtServerUrl = new Input(); + lblApiKeyTitle = new AntdUI.Label(); + txtApiKey = new Input(); + homeMemberCard = new System.Windows.Forms.Panel(); + lblMemberPlaceholder = new AntdUI.Label(); + homeLogCard = new System.Windows.Forms.Panel(); + btnClearLog = new AntdUI.Button(); + txtLog = new TextBox(); + wechatHookCard = new System.Windows.Forms.Panel(); + btnSelectWechatPath = new AntdUI.Button(); + btnWechatHookStart = new AntdUI.Button(); + txtWechatPath = new Input(); + wechatProtocolCard = new System.Windows.Forms.Panel(); + btnWechatSidAuto = new AntdUI.Button(); + numWechatInterval = new NumericUpDown(); + chkWheel = new Checkbox(); + btnWechatProtocolStart = new AntdUI.Button(); + lblWechatSidTitle = new AntdUI.Label(); + txtWechatId = new Input(); + lblWechatFrequencyTitle = new AntdUI.Label(); + lblWechatPollingTitle = new AntdUI.Label(); + wechatLogCard = new System.Windows.Forms.Panel(); + btnClearWechatLog = new AntdUI.Button(); + gridWechatLogs = new DataGridView(); + alipayConfigCard = new System.Windows.Forms.Panel(); + numAlipayInterval = new NumericUpDown(); + lblAlipayDesc = new AntdUI.Label(); + txtAliPath = new Input(); + txtAliAppId = new Input(); + txtAliPid = new Input(); + alipayLogCard = new System.Windows.Forms.Panel(); + gridAlipayLogs = new DataGridView(); + settingsListenCard = new System.Windows.Forms.Panel(); + lblSettingsInfo = new AntdUI.Label(); + txtServicePort = new Input(); + txtListenPath = new Input(); + settingsEmailCard = new System.Windows.Forms.Panel(); + btnEmailSave = new AntdUI.Button(); + btnEmailTest = new AntdUI.Button(); + lblSenderEmailTitle = new AntdUI.Label(); + txtSenderEmail = new Input(); + lblSmtpHostTitle = new AntdUI.Label(); + txtSmtpHost = new Input(); + lblSmtpPortTitle = new AntdUI.Label(); + txtSmtpPort = new Input(); + lblNotifyEmailTitle = new AntdUI.Label(); + txtNotifyEmail = new Input(); + lblEmailAuthCodeTitle = new AntdUI.Label(); + txtEmailAuthCode = new Input(); + titlebar = new PageHeader(); + lblTopNotice = new AntdUI.Label(); + lblAlipayStatusValue = new AntdUI.Label(); + lblWechatStatusValue = new AntdUI.Label(); + bottomBar = new PageHeader(); + lblRuntimeBottom = new System.Windows.Forms.Label(); + buttonCollapse = new AntdUI.Button(); + menu = new AntdUI.Menu(); + contentHost = new System.Windows.Forms.Panel(); + pageSettings = new System.Windows.Forms.Panel(); + pageAlipay = new System.Windows.Forms.Panel(); + pageWechat = new System.Windows.Forms.Panel(); + pageHome = new System.Windows.Forms.Panel(); + dataGridViewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn2 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn4 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn5 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn6 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn7 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn8 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn9 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn10 = new DataGridViewTextBoxColumn(); + dataGridViewTextBoxColumn11 = new DataGridViewTextBoxColumn(); + homeSummaryCard.SuspendLayout(); + homeConfigCard.SuspendLayout(); + homeMemberCard.SuspendLayout(); + homeLogCard.SuspendLayout(); + wechatHookCard.SuspendLayout(); + wechatProtocolCard.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)numWechatInterval).BeginInit(); + wechatLogCard.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)gridWechatLogs).BeginInit(); + alipayConfigCard.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)numAlipayInterval).BeginInit(); + alipayLogCard.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)gridAlipayLogs).BeginInit(); + settingsListenCard.SuspendLayout(); + settingsEmailCard.SuspendLayout(); + titlebar.SuspendLayout(); + bottomBar.SuspendLayout(); + contentHost.SuspendLayout(); + pageSettings.SuspendLayout(); + pageAlipay.SuspendLayout(); + pageWechat.SuspendLayout(); + pageHome.SuspendLayout(); SuspendLayout(); // + // homeSummaryCard + // + homeSummaryCard.BackColor = Color.White; + homeSummaryCard.Controls.Add(lblSummaryTitle); + homeSummaryCard.Controls.Add(lblSummaryDesc); + homeSummaryCard.Location = new Point(31, 28); + homeSummaryCard.Margin = new Padding(5, 4, 5, 4); + homeSummaryCard.Name = "homeSummaryCard"; + homeSummaryCard.Size = new Size(1697, 169); + homeSummaryCard.TabIndex = 3; + homeSummaryCard.Tag = "home-summary"; + // + // lblSummaryTitle + // + lblSummaryTitle.AutoSizeMode = TAutoSize.Auto; + lblSummaryTitle.Font = new Font("Microsoft YaHei UI", 22F); + lblSummaryTitle.Location = new Point(44, 34); + lblSummaryTitle.Margin = new Padding(5, 4, 5, 4); + lblSummaryTitle.Name = "lblSummaryTitle"; + lblSummaryTitle.Size = new Size(610, 56); + lblSummaryTitle.TabIndex = 0; + lblSummaryTitle.Text = "欢迎使用 V免签 PC 监听客户端"; + // + // lblSummaryDesc + // + lblSummaryDesc.ForeColor = Color.DimGray; + lblSummaryDesc.Location = new Point(110, 90); + lblSummaryDesc.Margin = new Padding(5, 4, 5, 4); + lblSummaryDesc.Name = "lblSummaryDesc"; + lblSummaryDesc.Size = new Size(1540, 45); + lblSummaryDesc.TabIndex = 1; + lblSummaryDesc.Text = "当前阶段先打通“PC端本地监听 -> V免签服务端回调 -> 心跳检测”链路,整体布局按 AntdUI Demo 风格复刻。"; + // + // homeConfigCard + // + homeConfigCard.BackColor = Color.White; + homeConfigCard.Controls.Add(btnSaveConfig); + homeConfigCard.Controls.Add(btnHeartbeatCheck); + homeConfigCard.Controls.Add(chkHeartbeatEnabled); + homeConfigCard.Controls.Add(lblHeartbeatDesc); + homeConfigCard.Controls.Add(lblServerUrlTitle); + homeConfigCard.Controls.Add(txtServerUrl); + homeConfigCard.Controls.Add(lblApiKeyTitle); + homeConfigCard.Controls.Add(txtApiKey); + homeConfigCard.Location = new Point(31, 226); + homeConfigCard.Margin = new Padding(5, 4, 5, 4); + homeConfigCard.Name = "homeConfigCard"; + homeConfigCard.Size = new Size(836, 551); + homeConfigCard.TabIndex = 2; + homeConfigCard.Tag = "home-config"; + // + // btnSaveConfig + // + btnSaveConfig.Location = new Point(38, 333); + btnSaveConfig.Margin = new Padding(5, 4, 5, 4); + btnSaveConfig.Name = "btnSaveConfig"; + btnSaveConfig.Size = new Size(371, 78); + btnSaveConfig.TabIndex = 0; + btnSaveConfig.Text = "保存配置"; + btnSaveConfig.Type = TTypeMini.Primary; + btnSaveConfig.Click += btnSaveConfig_Click; + // + // btnHeartbeatCheck + // + btnHeartbeatCheck.Location = new Point(427, 333); + btnHeartbeatCheck.Margin = new Padding(5, 4, 5, 4); + btnHeartbeatCheck.Name = "btnHeartbeatCheck"; + btnHeartbeatCheck.Size = new Size(371, 78); + btnHeartbeatCheck.TabIndex = 1; + btnHeartbeatCheck.Text = "心跳检测"; + btnHeartbeatCheck.Type = TTypeMini.Primary; + btnHeartbeatCheck.Click += btnHeartbeatCheck_Click; + // + // chkHeartbeatEnabled + // + chkHeartbeatEnabled.Location = new Point(38, 432); + chkHeartbeatEnabled.Margin = new Padding(5, 4, 5, 4); + chkHeartbeatEnabled.Name = "chkHeartbeatEnabled"; + chkHeartbeatEnabled.Size = new Size(97, 78); + chkHeartbeatEnabled.TabIndex = 2; + chkHeartbeatEnabled.CheckedChanged += chkHeartbeatEnabled_CheckedChanged; + // + // lblHeartbeatDesc + // + lblHeartbeatDesc.AutoSizeMode = TAutoSize.Auto; + lblHeartbeatDesc.ForeColor = Color.DimGray; + lblHeartbeatDesc.Location = new Point(141, 439); + lblHeartbeatDesc.Margin = new Padding(5, 4, 5, 4); + lblHeartbeatDesc.Name = "lblHeartbeatDesc"; + lblHeartbeatDesc.Size = new Size(72, 23); + lblHeartbeatDesc.TabIndex = 3; + lblHeartbeatDesc.Text = "自动心跳"; + // + // lblServerUrlTitle + // + lblServerUrlTitle.AutoSizeMode = TAutoSize.Auto; + lblServerUrlTitle.Location = new Point(38, 28); + lblServerUrlTitle.Margin = new Padding(5, 4, 5, 4); + lblServerUrlTitle.Name = "lblServerUrlTitle"; + lblServerUrlTitle.Size = new Size(85, 23); + lblServerUrlTitle.TabIndex = 4; + lblServerUrlTitle.Text = "V免签地址"; + // + // txtServerUrl + // + txtServerUrl.Location = new Point(38, 67); + txtServerUrl.Margin = new Padding(5, 4, 5, 4); + txtServerUrl.Name = "txtServerUrl"; + txtServerUrl.PlaceholderText = "例如:https://你的域名/"; + txtServerUrl.Size = new Size(760, 78); + txtServerUrl.TabIndex = 5; + // + // lblApiKeyTitle + // + lblApiKeyTitle.AutoSizeMode = TAutoSize.Auto; + lblApiKeyTitle.Location = new Point(38, 164); + lblApiKeyTitle.Margin = new Padding(5, 4, 5, 4); + lblApiKeyTitle.Name = "lblApiKeyTitle"; + lblApiKeyTitle.Size = new Size(144, 23); + lblApiKeyTitle.TabIndex = 6; + lblApiKeyTitle.Text = "通信密钥 / Token"; + // + // txtApiKey + // + txtApiKey.Location = new Point(38, 204); + txtApiKey.Margin = new Padding(5, 4, 5, 4); + txtApiKey.Name = "txtApiKey"; + txtApiKey.PlaceholderText = "请输入与服务端密钥"; + txtApiKey.Size = new Size(760, 78); + txtApiKey.TabIndex = 7; + // + // homeMemberCard + // + homeMemberCard.BackColor = Color.White; + homeMemberCard.Controls.Add(lblMemberPlaceholder); + homeMemberCard.Location = new Point(893, 226); + homeMemberCard.Margin = new Padding(5, 4, 5, 4); + homeMemberCard.Name = "homeMemberCard"; + homeMemberCard.Size = new Size(836, 181); + homeMemberCard.TabIndex = 1; + homeMemberCard.Tag = "home-member"; + // + // lblMemberPlaceholder + // + lblMemberPlaceholder.ForeColor = Color.DimGray; + lblMemberPlaceholder.Location = new Point(38, 79); + lblMemberPlaceholder.Margin = new Padding(5, 4, 5, 4); + lblMemberPlaceholder.Name = "lblMemberPlaceholder"; + lblMemberPlaceholder.Size = new Size(761, 73); + lblMemberPlaceholder.TabIndex = 0; + lblMemberPlaceholder.Text = "预留区域:后续用于会员登录、设备绑定、解绑与状态展示。"; + // + // homeLogCard + // + homeLogCard.BackColor = Color.White; + homeLogCard.Controls.Add(btnClearLog); + homeLogCard.Controls.Add(txtLog); + homeLogCard.Location = new Point(31, 706); + homeLogCard.Margin = new Padding(5, 4, 5, 4); + homeLogCard.Name = "homeLogCard"; + homeLogCard.Size = new Size(1697, 424); + homeLogCard.TabIndex = 0; + homeLogCard.Tag = "home-log"; + // + // btnClearLog + // + btnClearLog.Anchor = AnchorStyles.Top | AnchorStyles.Right; + btnClearLog.Ghost = true; + btnClearLog.Location = new Point(1563, 16); + btnClearLog.Margin = new Padding(5, 4, 5, 4); + btnClearLog.Name = "btnClearLog"; + btnClearLog.Size = new Size(92, 36); + btnClearLog.TabIndex = 0; + btnClearLog.Text = "清空"; + btnClearLog.Type = TTypeMini.Primary; + btnClearLog.Click += btnClearLog_Click; + // + // txtLog + // + txtLog.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + txtLog.BackColor = Color.Black; + txtLog.BorderStyle = BorderStyle.FixedSingle; + txtLog.ForeColor = Color.Lime; + txtLog.Location = new Point(38, 71); + txtLog.Margin = new Padding(5, 4, 5, 4); + txtLog.Multiline = true; + txtLog.Name = "txtLog"; + txtLog.ReadOnly = true; + txtLog.ScrollBars = ScrollBars.Vertical; + txtLog.Size = new Size(1617, 315); + txtLog.TabIndex = 1; + // + // wechatHookCard + // + wechatHookCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + wechatHookCard.BackColor = Color.White; + wechatHookCard.Controls.Add(btnSelectWechatPath); + wechatHookCard.Controls.Add(btnWechatHookStart); + wechatHookCard.Controls.Add(txtWechatPath); + wechatHookCard.Location = new Point(31, 28); + wechatHookCard.Margin = new Padding(5, 4, 5, 4); + wechatHookCard.Name = "wechatHookCard"; + wechatHookCard.Size = new Size(2088, 395); + wechatHookCard.TabIndex = 2; + wechatHookCard.Tag = "wechat-hook"; + // + // btnSelectWechatPath + // + btnSelectWechatPath.Ghost = true; + btnSelectWechatPath.Location = new Point(497, 116); + btnSelectWechatPath.Margin = new Padding(5, 4, 5, 4); + btnSelectWechatPath.Name = "btnSelectWechatPath"; + btnSelectWechatPath.Size = new Size(92, 36); + btnSelectWechatPath.TabIndex = 0; + btnSelectWechatPath.Text = "选择路径"; + btnSelectWechatPath.Type = TTypeMini.Primary; + btnSelectWechatPath.Click += btnSelectWechatPath_Click; + // + // btnWechatHookStart + // + btnWechatHookStart.Location = new Point(38, 311); + btnWechatHookStart.Margin = new Padding(5, 4, 5, 4); + btnWechatHookStart.Name = "btnWechatHookStart"; + btnWechatHookStart.Size = new Size(168, 42); + btnWechatHookStart.TabIndex = 1; + btnWechatHookStart.Text = "1.启动微信"; + btnWechatHookStart.Type = TTypeMini.Primary; + btnWechatHookStart.Click += btnWechatHookStart_Click; + // + // txtWechatPath + // + txtWechatPath.Location = new Point(38, 116); + txtWechatPath.Margin = new Padding(5, 4, 5, 4); + txtWechatPath.Name = "txtWechatPath"; + txtWechatPath.PlaceholderText = "微信.exe 路径"; + txtWechatPath.Size = new Size(440, 78); + txtWechatPath.TabIndex = 2; + // + // wechatProtocolCard + // + wechatProtocolCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + wechatProtocolCard.BackColor = Color.White; + wechatProtocolCard.Controls.Add(btnWechatSidAuto); + wechatProtocolCard.Controls.Add(numWechatInterval); + wechatProtocolCard.Controls.Add(chkWheel); + wechatProtocolCard.Controls.Add(btnWechatProtocolStart); + wechatProtocolCard.Controls.Add(lblWechatSidTitle); + wechatProtocolCard.Controls.Add(txtWechatId); + wechatProtocolCard.Controls.Add(lblWechatFrequencyTitle); + wechatProtocolCard.Controls.Add(lblWechatPollingTitle); + wechatProtocolCard.Location = new Point(893, 28); + wechatProtocolCard.Margin = new Padding(5, 4, 5, 4); + wechatProtocolCard.Name = "wechatProtocolCard"; + wechatProtocolCard.Size = new Size(2088, 395); + wechatProtocolCard.TabIndex = 1; + wechatProtocolCard.Tag = "wechat-protocol"; + // + // btnWechatSidAuto + // + btnWechatSidAuto.Ghost = true; + btnWechatSidAuto.Location = new Point(616, 116); + btnWechatSidAuto.Margin = new Padding(5, 4, 5, 4); + btnWechatSidAuto.Name = "btnWechatSidAuto"; + btnWechatSidAuto.Size = new Size(92, 36); + btnWechatSidAuto.TabIndex = 0; + btnWechatSidAuto.Text = "自动获取"; + btnWechatSidAuto.Type = TTypeMini.Primary; + btnWechatSidAuto.Click += btnWechatSidAuto_Click; + // + // numWechatInterval + // + numWechatInterval.Location = new Point(38, 257); + numWechatInterval.Margin = new Padding(5, 4, 5, 4); + numWechatInterval.Maximum = new decimal(new int[] { 3600, 0, 0, 0 }); + numWechatInterval.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); + numWechatInterval.Name = "numWechatInterval"; + numWechatInterval.Size = new Size(96, 30); + numWechatInterval.TabIndex = 1; + numWechatInterval.Value = new decimal(new int[] { 5, 0, 0, 0 }); + // + // chkWheel + // + chkWheel.AutoSizeMode = TAutoSize.Auto; + chkWheel.Location = new Point(431, 280); + chkWheel.Margin = new Padding(5, 4, 5, 4); + chkWheel.Name = "chkWheel"; + chkWheel.Size = new Size(118, 46); + chkWheel.TabIndex = 2; + chkWheel.Text = "接口轮询"; + // + // btnWechatProtocolStart + // + btnWechatProtocolStart.Location = new Point(38, 311); + btnWechatProtocolStart.Margin = new Padding(5, 4, 5, 4); + btnWechatProtocolStart.Name = "btnWechatProtocolStart"; + btnWechatProtocolStart.Size = new Size(120, 42); + btnWechatProtocolStart.TabIndex = 3; + btnWechatProtocolStart.Text = "2.开始监听"; + btnWechatProtocolStart.Type = TTypeMini.Primary; + btnWechatProtocolStart.Click += btnWechatProtocolStart_Click; + // + // lblWechatSidTitle + // + lblWechatSidTitle.AutoSizeMode = TAutoSize.Auto; + lblWechatSidTitle.Location = new Point(38, 73); + lblWechatSidTitle.Margin = new Padding(5, 4, 5, 4); + lblWechatSidTitle.Name = "lblWechatSidTitle"; + lblWechatSidTitle.Size = new Size(71, 23); + lblWechatSidTitle.TabIndex = 4; + lblWechatSidTitle.Text = "微信 SID"; + // + // txtWechatId + // + txtWechatId.Location = new Point(38, 116); + txtWechatId.Margin = new Padding(5, 4, 5, 4); + txtWechatId.Name = "txtWechatId"; + txtWechatId.PlaceholderText = "可选"; + txtWechatId.Size = new Size(559, 78); + txtWechatId.TabIndex = 5; + // + // lblWechatFrequencyTitle + // + lblWechatFrequencyTitle.AutoSizeMode = TAutoSize.Auto; + lblWechatFrequencyTitle.Location = new Point(38, 204); + lblWechatFrequencyTitle.Margin = new Padding(5, 4, 5, 4); + lblWechatFrequencyTitle.Name = "lblWechatFrequencyTitle"; + lblWechatFrequencyTitle.Size = new Size(126, 23); + lblWechatFrequencyTitle.TabIndex = 6; + lblWechatFrequencyTitle.Text = "监控频率(秒)"; + // + // lblWechatPollingTitle + // + lblWechatPollingTitle.AutoSizeMode = TAutoSize.Auto; + lblWechatPollingTitle.Location = new Point(431, 204); + lblWechatPollingTitle.Margin = new Padding(5, 4, 5, 4); + lblWechatPollingTitle.Name = "lblWechatPollingTitle"; + lblWechatPollingTitle.Size = new Size(72, 23); + lblWechatPollingTitle.TabIndex = 7; + lblWechatPollingTitle.Text = "接口轮询"; + // + // wechatLogCard + // + wechatLogCard.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + wechatLogCard.BackColor = Color.White; + wechatLogCard.Controls.Add(btnClearWechatLog); + wechatLogCard.Controls.Add(gridWechatLogs); + wechatLogCard.Location = new Point(31, 452); + wechatLogCard.Margin = new Padding(5, 4, 5, 4); + wechatLogCard.Name = "wechatLogCard"; + wechatLogCard.Size = new Size(2949, 1912); + wechatLogCard.TabIndex = 0; + wechatLogCard.Tag = "wechat-log"; + // + // btnClearWechatLog + // + btnClearWechatLog.Anchor = AnchorStyles.Top | AnchorStyles.Right; + btnClearWechatLog.Ghost = true; + btnClearWechatLog.Location = new Point(2818, 16); + btnClearWechatLog.Margin = new Padding(5, 4, 5, 4); + btnClearWechatLog.Name = "btnClearWechatLog"; + btnClearWechatLog.Size = new Size(92, 36); + btnClearWechatLog.TabIndex = 0; + btnClearWechatLog.Text = "清空"; + btnClearWechatLog.Type = TTypeMini.Primary; + btnClearWechatLog.Click += btnClearWechatLog_Click; + // + // gridWechatLogs + // + gridWechatLogs.AllowUserToAddRows = false; + gridWechatLogs.AllowUserToDeleteRows = false; + gridWechatLogs.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + gridWechatLogs.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + gridWechatLogs.BackgroundColor = Color.White; + dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = SystemColors.Control; + dataGridViewCellStyle1.Font = new Font("Microsoft YaHei UI", 9F); + dataGridViewCellStyle1.ForeColor = SystemColors.WindowText; + dataGridViewCellStyle1.SelectionBackColor = SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True; + gridWechatLogs.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + gridWechatLogs.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + gridWechatLogs.Columns.AddRange(new DataGridViewColumn[] { dataGridViewTextBoxColumn1, dataGridViewTextBoxColumn2, dataGridViewTextBoxColumn3, dataGridViewTextBoxColumn4, dataGridViewTextBoxColumn5 }); + dataGridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = SystemColors.Window; + dataGridViewCellStyle2.Font = new Font("Microsoft YaHei UI", 9F); + dataGridViewCellStyle2.ForeColor = SystemColors.ControlText; + dataGridViewCellStyle2.SelectionBackColor = SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = DataGridViewTriState.False; + gridWechatLogs.DefaultCellStyle = dataGridViewCellStyle2; + gridWechatLogs.Location = new Point(38, 71); + gridWechatLogs.Margin = new Padding(5, 4, 5, 4); + gridWechatLogs.Name = "gridWechatLogs"; + gridWechatLogs.ReadOnly = true; + gridWechatLogs.RowHeadersVisible = false; + gridWechatLogs.RowHeadersWidth = 62; + gridWechatLogs.RowTemplate.Height = 25; + gridWechatLogs.Size = new Size(2872, 1810); + gridWechatLogs.TabIndex = 1; + // + // alipayConfigCard + // + alipayConfigCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + alipayConfigCard.BackColor = Color.White; + alipayConfigCard.Controls.Add(numAlipayInterval); + alipayConfigCard.Controls.Add(lblAlipayDesc); + alipayConfigCard.Controls.Add(txtAliPath); + alipayConfigCard.Controls.Add(txtAliAppId); + alipayConfigCard.Controls.Add(txtAliPid); + alipayConfigCard.Location = new Point(31, 28); + alipayConfigCard.Margin = new Padding(5, 4, 5, 4); + alipayConfigCard.Name = "alipayConfigCard"; + alipayConfigCard.Size = new Size(2949, 212); + alipayConfigCard.TabIndex = 1; + alipayConfigCard.Tag = "alipay-config"; + // + // numAlipayInterval + // + numAlipayInterval.Location = new Point(1179, 72); + numAlipayInterval.Margin = new Padding(5, 4, 5, 4); + numAlipayInterval.Maximum = new decimal(new int[] { 3600, 0, 0, 0 }); + numAlipayInterval.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); + numAlipayInterval.Name = "numAlipayInterval"; + numAlipayInterval.Size = new Size(96, 30); + numAlipayInterval.TabIndex = 0; + numAlipayInterval.Value = new decimal(new int[] { 5, 0, 0, 0 }); + // + // lblAlipayDesc + // + lblAlipayDesc.ForeColor = Color.DimGray; + lblAlipayDesc.Location = new Point(38, 144); + lblAlipayDesc.Margin = new Padding(5, 4, 5, 4); + lblAlipayDesc.Name = "lblAlipayDesc"; + lblAlipayDesc.Size = new Size(1509, 34); + lblAlipayDesc.TabIndex = 1; + lblAlipayDesc.Text = "后续这里接入支付宝真实到账监听逻辑,目前保留参数配置与回调结果展示。"; + // + // txtAliPath + // + txtAliPath.Location = new Point(38, 67); + txtAliPath.Margin = new Padding(5, 4, 5, 4); + txtAliPath.Name = "txtAliPath"; + txtAliPath.PlaceholderText = "程序路径"; + txtAliPath.Size = new Size(428, 78); + txtAliPath.TabIndex = 1; + // + // txtAliAppId + // + txtAliAppId.Location = new Point(499, 67); + txtAliAppId.Margin = new Padding(5, 4, 5, 4); + txtAliAppId.Name = "txtAliAppId"; + txtAliAppId.PlaceholderText = "AppId"; + txtAliAppId.Size = new Size(242, 78); + txtAliAppId.TabIndex = 2; + // + // txtAliPid + // + txtAliPid.Location = new Point(784, 67); + txtAliPid.Margin = new Padding(5, 4, 5, 4); + txtAliPid.Name = "txtAliPid"; + txtAliPid.PlaceholderText = "Pid/UserId"; + txtAliPid.Size = new Size(242, 78); + txtAliPid.TabIndex = 3; + // + // alipayLogCard + // + alipayLogCard.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + alipayLogCard.BackColor = Color.White; + alipayLogCard.Controls.Add(gridAlipayLogs); + alipayLogCard.Location = new Point(31, 268); + alipayLogCard.Margin = new Padding(5, 4, 5, 4); + alipayLogCard.Name = "alipayLogCard"; + alipayLogCard.Size = new Size(2949, 1985); + alipayLogCard.TabIndex = 0; + alipayLogCard.Tag = "alipay-log"; + // + // gridAlipayLogs + // + gridAlipayLogs.AllowUserToAddRows = false; + gridAlipayLogs.AllowUserToDeleteRows = false; + gridAlipayLogs.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + gridAlipayLogs.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + gridAlipayLogs.BackgroundColor = Color.White; + dataGridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle3.BackColor = SystemColors.Control; + dataGridViewCellStyle3.Font = new Font("Microsoft YaHei UI", 9F); + dataGridViewCellStyle3.ForeColor = SystemColors.WindowText; + dataGridViewCellStyle3.SelectionBackColor = SystemColors.Highlight; + dataGridViewCellStyle3.SelectionForeColor = SystemColors.HighlightText; + dataGridViewCellStyle3.WrapMode = DataGridViewTriState.True; + gridAlipayLogs.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3; + gridAlipayLogs.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + gridAlipayLogs.Columns.AddRange(new DataGridViewColumn[] { dataGridViewTextBoxColumn6, dataGridViewTextBoxColumn7, dataGridViewTextBoxColumn8, dataGridViewTextBoxColumn9, dataGridViewTextBoxColumn10, dataGridViewTextBoxColumn11 }); + dataGridViewCellStyle4.Alignment = DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = SystemColors.Window; + dataGridViewCellStyle4.Font = new Font("Microsoft YaHei UI", 9F); + dataGridViewCellStyle4.ForeColor = SystemColors.ControlText; + dataGridViewCellStyle4.SelectionBackColor = SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = DataGridViewTriState.False; + gridAlipayLogs.DefaultCellStyle = dataGridViewCellStyle4; + gridAlipayLogs.Location = new Point(38, 71); + gridAlipayLogs.Margin = new Padding(5, 4, 5, 4); + gridAlipayLogs.Name = "gridAlipayLogs"; + gridAlipayLogs.ReadOnly = true; + gridAlipayLogs.RowHeadersVisible = false; + gridAlipayLogs.RowHeadersWidth = 62; + gridAlipayLogs.RowTemplate.Height = 25; + gridAlipayLogs.Size = new Size(2872, 1810); + gridAlipayLogs.TabIndex = 0; + // + // settingsListenCard + // + settingsListenCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + settingsListenCard.BackColor = Color.White; + settingsListenCard.Controls.Add(lblSettingsInfo); + settingsListenCard.Controls.Add(txtServicePort); + settingsListenCard.Controls.Add(txtListenPath); + settingsListenCard.Location = new Point(31, 28); + settingsListenCard.Margin = new Padding(5, 4, 5, 4); + settingsListenCard.Name = "settingsListenCard"; + settingsListenCard.Size = new Size(2949, 282); + settingsListenCard.TabIndex = 1; + settingsListenCard.Tag = "settings-listen"; + // + // lblSettingsInfo + // + lblSettingsInfo.ForeColor = Color.DimGray; + lblSettingsInfo.Location = new Point(38, 152); + lblSettingsInfo.Margin = new Padding(5, 4, 5, 4); + lblSettingsInfo.Name = "lblSettingsInfo"; + lblSettingsInfo.Size = new Size(1446, 85); + lblSettingsInfo.TabIndex = 0; + lblSettingsInfo.Text = "这个页面用于维护本地监听、邮箱通知与项目说明。"; + // + // txtServicePort + // + txtServicePort.Location = new Point(38, 67); + txtServicePort.Margin = new Padding(5, 4, 5, 4); + txtServicePort.Name = "txtServicePort"; + txtServicePort.PlaceholderText = "8989"; + txtServicePort.Size = new Size(257, 78); + txtServicePort.TabIndex = 1; + // + // txtListenPath + // + txtListenPath.Location = new Point(342, 67); + txtListenPath.Margin = new Padding(5, 4, 5, 4); + txtListenPath.Name = "txtListenPath"; + txtListenPath.PlaceholderText = "/notify/"; + txtListenPath.Size = new Size(342, 78); + txtListenPath.TabIndex = 2; + // + // settingsEmailCard + // + settingsEmailCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + settingsEmailCard.BackColor = Color.White; + settingsEmailCard.Controls.Add(btnEmailSave); + settingsEmailCard.Controls.Add(btnEmailTest); + settingsEmailCard.Controls.Add(lblSenderEmailTitle); + settingsEmailCard.Controls.Add(txtSenderEmail); + settingsEmailCard.Controls.Add(lblSmtpHostTitle); + settingsEmailCard.Controls.Add(txtSmtpHost); + settingsEmailCard.Controls.Add(lblSmtpPortTitle); + settingsEmailCard.Controls.Add(txtSmtpPort); + settingsEmailCard.Controls.Add(lblNotifyEmailTitle); + settingsEmailCard.Controls.Add(txtNotifyEmail); + settingsEmailCard.Controls.Add(lblEmailAuthCodeTitle); + settingsEmailCard.Controls.Add(txtEmailAuthCode); + settingsEmailCard.Location = new Point(31, 333); + settingsEmailCard.Margin = new Padding(5, 4, 5, 4); + settingsEmailCard.Name = "settingsEmailCard"; + settingsEmailCard.Size = new Size(2949, 593); + settingsEmailCard.TabIndex = 0; + settingsEmailCard.Tag = "settings-email"; + // + // btnEmailSave + // + btnEmailSave.Location = new Point(38, 494); + btnEmailSave.Margin = new Padding(5, 4, 5, 4); + btnEmailSave.Name = "btnEmailSave"; + btnEmailSave.Size = new Size(110, 42); + btnEmailSave.TabIndex = 0; + btnEmailSave.Text = "保存配置"; + btnEmailSave.Type = TTypeMini.Primary; + btnEmailSave.Click += btnEmailSave_Click; + // + // btnEmailTest + // + btnEmailTest.Ghost = true; + btnEmailTest.Location = new Point(229, 494); + btnEmailTest.Margin = new Padding(5, 4, 5, 4); + btnEmailTest.Name = "btnEmailTest"; + btnEmailTest.Size = new Size(110, 42); + btnEmailTest.TabIndex = 1; + btnEmailTest.Text = "邮箱测试"; + btnEmailTest.Type = TTypeMini.Primary; + btnEmailTest.Click += btnEmailTest_Click; + // + // lblSenderEmailTitle + // + lblSenderEmailTitle.AutoSizeMode = TAutoSize.Auto; + lblSenderEmailTitle.Location = new Point(38, 73); + lblSenderEmailTitle.Margin = new Padding(5, 4, 5, 4); + lblSenderEmailTitle.Name = "lblSenderEmailTitle"; + lblSenderEmailTitle.Size = new Size(72, 23); + lblSenderEmailTitle.TabIndex = 2; + lblSenderEmailTitle.Text = "发送邮箱"; + // + // txtSenderEmail + // + txtSenderEmail.Location = new Point(38, 110); + txtSenderEmail.Margin = new Padding(5, 4, 5, 4); + txtSenderEmail.Name = "txtSenderEmail"; + txtSenderEmail.PlaceholderText = "例如:yunzer_cn@163.com"; + txtSenderEmail.Size = new Size(714, 78); + txtSenderEmail.TabIndex = 3; + // + // lblSmtpHostTitle + // + lblSmtpHostTitle.AutoSizeMode = TAutoSize.Auto; + lblSmtpHostTitle.Location = new Point(38, 204); + lblSmtpHostTitle.Margin = new Padding(5, 4, 5, 4); + lblSmtpHostTitle.Name = "lblSmtpHostTitle"; + lblSmtpHostTitle.Size = new Size(91, 23); + lblSmtpHostTitle.TabIndex = 4; + lblSmtpHostTitle.Text = "SMTP 主机"; + // + // txtSmtpHost + // + txtSmtpHost.Location = new Point(38, 243); + txtSmtpHost.Margin = new Padding(5, 4, 5, 4); + txtSmtpHost.Name = "txtSmtpHost"; + txtSmtpHost.PlaceholderText = "例如:smtp.163.com"; + txtSmtpHost.Size = new Size(714, 78); + txtSmtpHost.TabIndex = 5; + // + // lblSmtpPortTitle + // + lblSmtpPortTitle.AutoSizeMode = TAutoSize.Auto; + lblSmtpPortTitle.Location = new Point(38, 338); + lblSmtpPortTitle.Margin = new Padding(5, 4, 5, 4); + lblSmtpPortTitle.Name = "lblSmtpPortTitle"; + lblSmtpPortTitle.Size = new Size(91, 23); + lblSmtpPortTitle.TabIndex = 6; + lblSmtpPortTitle.Text = "SMTP 端口"; + // + // txtSmtpPort + // + txtSmtpPort.Location = new Point(38, 377); + txtSmtpPort.Margin = new Padding(5, 4, 5, 4); + txtSmtpPort.Name = "txtSmtpPort"; + txtSmtpPort.PlaceholderText = "例如:465"; + txtSmtpPort.Size = new Size(314, 78); + txtSmtpPort.TabIndex = 7; + // + // lblNotifyEmailTitle + // + lblNotifyEmailTitle.AutoSizeMode = TAutoSize.Auto; + lblNotifyEmailTitle.Location = new Point(38, 472); + lblNotifyEmailTitle.Margin = new Padding(5, 4, 5, 4); + lblNotifyEmailTitle.Name = "lblNotifyEmailTitle"; + lblNotifyEmailTitle.Size = new Size(72, 23); + lblNotifyEmailTitle.TabIndex = 8; + lblNotifyEmailTitle.Text = "通知邮箱"; + // + // txtNotifyEmail + // + txtNotifyEmail.Location = new Point(38, 511); + txtNotifyEmail.Margin = new Padding(5, 4, 5, 4); + txtNotifyEmail.Name = "txtNotifyEmail"; + txtNotifyEmail.PlaceholderText = "用于接收测试邮件"; + txtNotifyEmail.Size = new Size(714, 78); + txtNotifyEmail.TabIndex = 9; + // + // lblEmailAuthCodeTitle + // + lblEmailAuthCodeTitle.AutoSizeMode = TAutoSize.Auto; + lblEmailAuthCodeTitle.Location = new Point(799, 472); + lblEmailAuthCodeTitle.Margin = new Padding(5, 4, 5, 4); + lblEmailAuthCodeTitle.Name = "lblEmailAuthCodeTitle"; + lblEmailAuthCodeTitle.Size = new Size(54, 23); + lblEmailAuthCodeTitle.TabIndex = 10; + lblEmailAuthCodeTitle.Text = "授权码"; + // + // txtEmailAuthCode + // + txtEmailAuthCode.Location = new Point(799, 511); + txtEmailAuthCode.Margin = new Padding(5, 4, 5, 4); + txtEmailAuthCode.Name = "txtEmailAuthCode"; + txtEmailAuthCode.PlaceholderText = "用于发送测试邮件"; + txtEmailAuthCode.Size = new Size(456, 78); + txtEmailAuthCode.TabIndex = 11; + // + // titlebar + // + titlebar.Controls.Add(lblTopNotice); + titlebar.Controls.Add(lblAlipayStatusValue); + titlebar.Controls.Add(lblWechatStatusValue); + titlebar.DividerShow = true; + titlebar.Dock = DockStyle.Top; + titlebar.Location = new Point(0, 0); + titlebar.Margin = new Padding(5, 4, 5, 4); + titlebar.Name = "titlebar"; + titlebar.ShowButton = true; + titlebar.ShowIcon = true; + titlebar.Size = new Size(1886, 62); + titlebar.SubText = "V0.0.1"; + titlebar.TabIndex = 3; + titlebar.Text = "V免签PC客户端"; + // + // lblTopNotice + // + lblTopNotice.Dock = DockStyle.Fill; + lblTopNotice.ForeColor = Color.DimGray; + lblTopNotice.Location = new Point(237, 0); + lblTopNotice.Margin = new Padding(5, 4, 5, 4); + lblTopNotice.Name = "lblTopNotice"; + lblTopNotice.Size = new Size(1055, 62); + lblTopNotice.TabIndex = 0; + lblTopNotice.Text = "监听未启动"; + lblTopNotice.TextAlign = ContentAlignment.MiddleRight; + // + // lblAlipayStatusValue + // + lblAlipayStatusValue.Dock = DockStyle.Right; + lblAlipayStatusValue.ForeColor = Color.Red; + lblAlipayStatusValue.Location = new Point(1292, 0); + lblAlipayStatusValue.Margin = new Padding(5, 4, 5, 4); + lblAlipayStatusValue.Name = "lblAlipayStatusValue"; + lblAlipayStatusValue.Size = new Size(189, 62); + lblAlipayStatusValue.TabIndex = 1; + lblAlipayStatusValue.Text = "支付宝: 离线"; + lblAlipayStatusValue.TextAlign = ContentAlignment.MiddleRight; + // + // lblWechatStatusValue + // + lblWechatStatusValue.Dock = DockStyle.Right; + lblWechatStatusValue.ForeColor = Color.Red; + lblWechatStatusValue.Location = new Point(1481, 0); + lblWechatStatusValue.Margin = new Padding(5, 4, 5, 4); + lblWechatStatusValue.Name = "lblWechatStatusValue"; + lblWechatStatusValue.Size = new Size(189, 62); + lblWechatStatusValue.TabIndex = 2; + lblWechatStatusValue.Text = "微信: 离线"; + lblWechatStatusValue.TextAlign = ContentAlignment.MiddleRight; + // + // bottomBar + // + bottomBar.Controls.Add(lblRuntimeBottom); + bottomBar.Controls.Add(buttonCollapse); + bottomBar.DividerShow = true; + bottomBar.Dock = DockStyle.Bottom; + bottomBar.Location = new Point(0, 1356); + bottomBar.Margin = new Padding(5, 4, 5, 4); + bottomBar.Name = "bottomBar"; + bottomBar.Size = new Size(1886, 56); + bottomBar.TabIndex = 2; + bottomBar.UseLeftMargin = false; + // + // lblRuntimeBottom + // + lblRuntimeBottom.Dock = DockStyle.Right; + lblRuntimeBottom.ForeColor = Color.Gray; + lblRuntimeBottom.Location = new Point(1540, 0); + lblRuntimeBottom.Margin = new Padding(5, 0, 5, 0); + lblRuntimeBottom.Name = "lblRuntimeBottom"; + lblRuntimeBottom.Size = new Size(346, 56); + lblRuntimeBottom.TabIndex = 0; + lblRuntimeBottom.Text = "00天:00时:00分:00秒"; + lblRuntimeBottom.TextAlign = ContentAlignment.MiddleRight; + // + // buttonCollapse + // + buttonCollapse.Dock = DockStyle.Left; + buttonCollapse.Ghost = true; + buttonCollapse.IconRatio = 0.6F; + buttonCollapse.IconSvg = "MenuUnfoldOutlined"; + buttonCollapse.Location = new Point(0, 0); + buttonCollapse.Margin = new Padding(5, 4, 5, 4); + buttonCollapse.Name = "buttonCollapse"; + buttonCollapse.Radius = 0; + buttonCollapse.Size = new Size(79, 56); + buttonCollapse.TabIndex = 1; + buttonCollapse.Toggle = true; + buttonCollapse.ToggleIconSvg = "MenuFoldOutlined"; + buttonCollapse.WaveSize = 0; + buttonCollapse.Click += ButtonCollapse_Click; + // + // menu + // + menu.Dock = DockStyle.Left; + menu.Font = new Font("Microsoft YaHei UI", 9F); + menu.IconRatio = 1F; + menu.Indent = true; + menu.Location = new Point(0, 62); + menu.Margin = new Padding(5, 4, 5, 4); + menu.Name = "menu"; + menu.Radius = 0; + menu.Size = new Size(346, 1294); + menu.TabIndex = 1; + menu.Unique = true; + menu.SelectChanged += Menu_SelectChanged; + // + // contentHost + // + contentHost.BackColor = Color.White; + contentHost.Controls.Add(pageSettings); + contentHost.Controls.Add(pageAlipay); + contentHost.Controls.Add(pageWechat); + contentHost.Controls.Add(pageHome); + contentHost.Dock = DockStyle.Fill; + contentHost.Location = new Point(346, 62); + contentHost.Margin = new Padding(5, 4, 5, 4); + contentHost.Name = "contentHost"; + contentHost.Size = new Size(1540, 1294); + contentHost.TabIndex = 0; + // + // pageSettings + // + pageSettings.AutoScroll = true; + pageSettings.BackColor = Color.FromArgb(245, 247, 250); + pageSettings.Controls.Add(settingsEmailCard); + pageSettings.Controls.Add(settingsListenCard); + pageSettings.Dock = DockStyle.Fill; + pageSettings.Location = new Point(0, 0); + pageSettings.Margin = new Padding(5, 4, 5, 4); + pageSettings.Name = "pageSettings"; + pageSettings.Size = new Size(1540, 1294); + pageSettings.TabIndex = 0; + // + // pageAlipay + // + pageAlipay.AutoScroll = true; + pageAlipay.BackColor = Color.FromArgb(245, 247, 250); + pageAlipay.Controls.Add(alipayLogCard); + pageAlipay.Controls.Add(alipayConfigCard); + pageAlipay.Dock = DockStyle.Fill; + pageAlipay.Location = new Point(0, 0); + pageAlipay.Margin = new Padding(5, 4, 5, 4); + pageAlipay.Name = "pageAlipay"; + pageAlipay.Size = new Size(1540, 1294); + pageAlipay.TabIndex = 1; + // + // pageWechat + // + pageWechat.AutoScroll = true; + pageWechat.BackColor = Color.FromArgb(245, 247, 250); + pageWechat.Controls.Add(wechatLogCard); + pageWechat.Controls.Add(wechatProtocolCard); + pageWechat.Controls.Add(wechatHookCard); + pageWechat.Dock = DockStyle.Fill; + pageWechat.Location = new Point(0, 0); + pageWechat.Margin = new Padding(5, 4, 5, 4); + pageWechat.Name = "pageWechat"; + pageWechat.Size = new Size(1540, 1294); + pageWechat.TabIndex = 2; + // + // pageHome + // + pageHome.AutoScroll = true; + pageHome.BackColor = Color.FromArgb(245, 247, 250); + pageHome.Controls.Add(homeLogCard); + pageHome.Controls.Add(homeMemberCard); + pageHome.Controls.Add(homeConfigCard); + pageHome.Controls.Add(homeSummaryCard); + pageHome.Dock = DockStyle.Fill; + pageHome.Location = new Point(0, 0); + pageHome.Margin = new Padding(5, 4, 5, 4); + pageHome.Name = "pageHome"; + pageHome.Size = new Size(1540, 1294); + pageHome.TabIndex = 3; + // + // dataGridViewTextBoxColumn1 + // + dataGridViewTextBoxColumn1.HeaderText = "收款方"; + dataGridViewTextBoxColumn1.MinimumWidth = 8; + dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + dataGridViewTextBoxColumn1.ReadOnly = true; + // + // dataGridViewTextBoxColumn2 + // + dataGridViewTextBoxColumn2.HeaderText = "金额"; + dataGridViewTextBoxColumn2.MinimumWidth = 8; + dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + dataGridViewTextBoxColumn2.ReadOnly = true; + // + // dataGridViewTextBoxColumn3 + // + dataGridViewTextBoxColumn3.HeaderText = "时间"; + dataGridViewTextBoxColumn3.MinimumWidth = 8; + dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + dataGridViewTextBoxColumn3.ReadOnly = true; + // + // dataGridViewTextBoxColumn4 + // + dataGridViewTextBoxColumn4.HeaderText = "备注/订单号"; + dataGridViewTextBoxColumn4.MinimumWidth = 8; + dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + dataGridViewTextBoxColumn4.ReadOnly = true; + // + // dataGridViewTextBoxColumn5 + // + dataGridViewTextBoxColumn5.HeaderText = "回调状态"; + dataGridViewTextBoxColumn5.MinimumWidth = 8; + dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + dataGridViewTextBoxColumn5.ReadOnly = true; + // + // dataGridViewTextBoxColumn6 + // + dataGridViewTextBoxColumn6.HeaderText = "序号"; + dataGridViewTextBoxColumn6.MinimumWidth = 8; + dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + dataGridViewTextBoxColumn6.ReadOnly = true; + // + // dataGridViewTextBoxColumn7 + // + dataGridViewTextBoxColumn7.HeaderText = "订单号"; + dataGridViewTextBoxColumn7.MinimumWidth = 8; + dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; + dataGridViewTextBoxColumn7.ReadOnly = true; + // + // dataGridViewTextBoxColumn8 + // + dataGridViewTextBoxColumn8.HeaderText = "金额"; + dataGridViewTextBoxColumn8.MinimumWidth = 8; + dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; + dataGridViewTextBoxColumn8.ReadOnly = true; + // + // dataGridViewTextBoxColumn9 + // + dataGridViewTextBoxColumn9.HeaderText = "时间"; + dataGridViewTextBoxColumn9.MinimumWidth = 8; + dataGridViewTextBoxColumn9.Name = "dataGridViewTextBoxColumn9"; + dataGridViewTextBoxColumn9.ReadOnly = true; + // + // dataGridViewTextBoxColumn10 + // + dataGridViewTextBoxColumn10.HeaderText = "备注"; + dataGridViewTextBoxColumn10.MinimumWidth = 8; + dataGridViewTextBoxColumn10.Name = "dataGridViewTextBoxColumn10"; + dataGridViewTextBoxColumn10.ReadOnly = true; + // + // dataGridViewTextBoxColumn11 + // + dataGridViewTextBoxColumn11.HeaderText = "回调状态"; + dataGridViewTextBoxColumn11.MinimumWidth = 8; + dataGridViewTextBoxColumn11.Name = "dataGridViewTextBoxColumn11"; + dataGridViewTextBoxColumn11.ReadOnly = true; + // // Form1 // - AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleDimensions = new SizeF(11F, 24F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(1280, 820); - MinimumSize = new Size(1180, 760); + BackColor = Color.White; + ClientSize = new Size(1886, 1412); + Controls.Add(contentHost); + Controls.Add(menu); + Controls.Add(bottomBar); + Controls.Add(titlebar); + Font = new Font("Microsoft YaHei UI", 9F); + Margin = new Padding(5, 4, 5, 4); + MaximizeBox = false; + MaximumSize = new Size(1886, 1412); + MinimumSize = new Size(1886, 1412); Name = "Form1"; StartPosition = FormStartPosition.CenterScreen; - Text = "V免签 PC端监听客户端"; + Text = "V免签 Demo"; + homeSummaryCard.ResumeLayout(false); + homeSummaryCard.PerformLayout(); + homeConfigCard.ResumeLayout(false); + homeConfigCard.PerformLayout(); + homeMemberCard.ResumeLayout(false); + homeLogCard.ResumeLayout(false); + homeLogCard.PerformLayout(); + wechatHookCard.ResumeLayout(false); + wechatProtocolCard.ResumeLayout(false); + wechatProtocolCard.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)numWechatInterval).EndInit(); + wechatLogCard.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)gridWechatLogs).EndInit(); + alipayConfigCard.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)numAlipayInterval).EndInit(); + alipayLogCard.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)gridAlipayLogs).EndInit(); + settingsListenCard.ResumeLayout(false); + settingsEmailCard.ResumeLayout(false); + settingsEmailCard.PerformLayout(); + titlebar.ResumeLayout(false); + bottomBar.ResumeLayout(false); + contentHost.ResumeLayout(false); + pageSettings.ResumeLayout(false); + pageAlipay.ResumeLayout(false); + pageWechat.ResumeLayout(false); + pageHome.ResumeLayout(false); ResumeLayout(false); } + + private WinPanel homeSummaryCard; + private WinPanel homeConfigCard; + private WinPanel homeMemberCard; + private WinPanel homeLogCard; + private WinPanel wechatHookCard; + private WinPanel wechatProtocolCard; + private WinPanel wechatLogCard; + private WinPanel alipayConfigCard; + private AntdUI.Label lblAlipayDesc; + private WinPanel alipayLogCard; + private WinPanel settingsListenCard; + private AntdUI.Label lblSettingsInfo; + private WinPanel settingsEmailCard; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn8; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn9; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn10; + private DataGridViewTextBoxColumn dataGridViewTextBoxColumn11; } } diff --git a/Form1.cs b/Form1.cs index 105790f..2f94b90 100644 --- a/Form1.cs +++ b/Form1.cs @@ -1,16 +1,18 @@ -using System.Net; -using System.Net.Http.Json; +using AntdUI; +using MailKit.Net.Smtp; +using MailKit.Security; +using MimeKit; +using System.ComponentModel; using System.Diagnostics; -using System.Text.RegularExpressions; +using System.IO; +using System.Net; +using System.Net.Http; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; using System.Text.Json; using System.Text.Json.Serialization; -using AntdUI; -using MailKit.Net.Smtp; -using MailKit.Security; -using MimeKit; +using System.Text.RegularExpressions; using System.Windows.Automation; using WinLabel = System.Windows.Forms.Label; using WinPanel = System.Windows.Forms.Panel; @@ -129,75 +131,43 @@ namespace Vmianqian public Form1() { InitializeComponent(); - BuildAntdDemoStyleUi(); + InitializeDesignerLayout(); + ReloadMenuItems(); + SelectPage("home"); + + if (IsInDesigner()) return; + Load += Form1_Load; FormClosing += Form1_FormClosing; } - private void BuildAntdDemoStyleUi() + private static bool IsInDesigner() { - BackColor = Color.White; - Font = new Font("Microsoft YaHei UI", 9F); - Text = "V免签 Demo"; - var fixedWindowSize = new Size(1200, 1000); - MinimumSize = fixedWindowSize; - MaximumSize = fixedWindowSize; - Size = fixedWindowSize; - MaximizeBox = false; - - BuildTitlebar(); - BuildBottomBar(); - BuildMenu(); - BuildContentHost(); - - Controls.Add(contentHost); - Controls.Add(menu); - Controls.Add(bottomBar); - Controls.Add(titlebar); + return LicenseManager.UsageMode == LicenseUsageMode.Designtime; } - private void BuildTitlebar() + private void InitializeDesignerLayout() { - titlebar = new AntdUI.PageHeader - { - Dock = DockStyle.Top, - Height = 44, - DividerShow = true, - ShowButton = true, - ShowIcon = true, - Text = "V免签PC客户端", - SubText = "V0.0.1" - }; + pageHome.Resize += (_, _) => LayoutHomePage(); + pageWechat.Resize += (_, _) => LayoutWechatPage(); + pageAlipay.Resize += (_, _) => LayoutAlipayPage(); + pageSettings.Resize += (_, _) => LayoutSettingsPage(); - lblTopNotice = new AntdUI.Label - { - Dock = DockStyle.Fill, - Text = "监听未启动", - TextAlign = ContentAlignment.MiddleRight, - ForeColor = Color.DimGray - }; + pageHome.HorizontalScroll.Enabled = false; + pageHome.HorizontalScroll.Visible = false; + pageWechat.HorizontalScroll.Enabled = false; + pageWechat.HorizontalScroll.Visible = false; + pageAlipay.HorizontalScroll.Enabled = false; + pageAlipay.HorizontalScroll.Visible = false; + pageSettings.HorizontalScroll.Enabled = false; + pageSettings.HorizontalScroll.Visible = false; - lblAlipayStatusValue = new AntdUI.Label - { - Dock = DockStyle.Right, - Width = 120, - Text = "支付宝: 离线", - TextAlign = ContentAlignment.MiddleRight, - ForeColor = Color.Red - }; + LayoutHomePage(); + LayoutWechatPage(); + LayoutAlipayPage(); + LayoutSettingsPage(); - lblWechatStatusValue = new AntdUI.Label - { - Dock = DockStyle.Right, - Width = 120, - Text = "微信: 离线", - TextAlign = ContentAlignment.MiddleRight, - ForeColor = Color.Red - }; - - titlebar.Controls.Add(lblTopNotice); - titlebar.Controls.Add(lblAlipayStatusValue); - titlebar.Controls.Add(lblWechatStatusValue); + if (IsInDesigner()) return; EnableWindowDrag(titlebar); EnableWindowDrag(lblTopNotice); @@ -205,61 +175,6 @@ namespace Vmianqian EnableWindowDrag(lblAlipayStatusValue); } - private void BuildBottomBar() - { - bottomBar = new AntdUI.PageHeader - { - Dock = DockStyle.Bottom, - Height = 40, - DividerShow = true, - UseLeftMargin = false - }; - - buttonCollapse = new AntdUI.Button - { - Dock = DockStyle.Left, - Width = 50, - Ghost = true, - Radius = 0, - WaveSize = 0, - IconRatio = 0.6F, - IconSvg = "MenuUnfoldOutlined", - ToggleIconSvg = "MenuFoldOutlined", - Toggle = true - }; - buttonCollapse.Click += ButtonCollapse_Click; - - lblRuntimeBottom = new WinLabel - { - Dock = DockStyle.Right, - Width = 220, - TextAlign = ContentAlignment.MiddleRight, - ForeColor = Color.Gray, - Text = "00天:00时:00分:00秒" - }; - - bottomBar.Controls.Add(lblRuntimeBottom); - bottomBar.Controls.Add(buttonCollapse); - } - - private void BuildMenu() - { - menu = new AntdUI.Menu - { - Dock = DockStyle.Left, - Width = 220, - Collapsed = false, - Unique = true, - IconRatio = 1F, - Indent = true, - Round = false, - Radius = 0, - Font = new Font("Microsoft YaHei UI", 9F) - }; - menu.SelectChanged += Menu_SelectChanged; - ReloadMenuItems(); - } - private void ReloadMenuItems() { menu.Items.Clear(); @@ -269,58 +184,10 @@ namespace Vmianqian menu.Items.Add(new AntdUI.MenuItem { Text = "软件设置", IconSvg = "SettingOutlined", Tag = "settings" }); } - private void BuildContentHost() - { - contentHost = new WinPanel - { - Dock = DockStyle.Fill, - BackColor = Color.White - }; - - pageHome = CreatePagePanel(); - pageWechat = CreatePagePanel(); - pageAlipay = CreatePagePanel(); - pageSettings = CreatePagePanel(); - - contentHost.Controls.Add(pageSettings); - contentHost.Controls.Add(pageAlipay); - contentHost.Controls.Add(pageWechat); - contentHost.Controls.Add(pageHome); - - BuildHomePage(); - BuildWechatPage(); - BuildAlipayPage(); - BuildSettingsPage(); - - pageHome.Resize += (_, _) => LayoutHomePage(); - pageWechat.Resize += (_, _) => LayoutWechatPage(); - pageAlipay.Resize += (_, _) => LayoutAlipayPage(); - pageSettings.Resize += (_, _) => LayoutSettingsPage(); - - LayoutHomePage(); - LayoutWechatPage(); - LayoutAlipayPage(); - LayoutSettingsPage(); - } - - private WinPanel CreatePagePanel() - { - var panel = new WinPanel - { - Dock = DockStyle.Fill, - BackColor = Color.FromArgb(245, 247, 250), - AutoScroll = true - }; - panel.HorizontalScroll.Enabled = false; - panel.HorizontalScroll.Visible = false; - return panel; - } - private void LayoutHomePage() { const int margin = 20; const int gap = 16; - const int cardHeight = 420; var pageAvailableWidth = Math.Max(0, pageHome.ClientSize.Width - margin * 2); pageHome.SuspendLayout(); @@ -356,13 +223,14 @@ namespace Vmianqian memberCard.SuspendLayout(); var availableWidth = Math.Max(0, pageAvailableWidth); - var rowBottom = top + cardHeight; var rowWidth = Math.Max(0, availableWidth - gap); var leftWidth = rowWidth / 2; var rightWidth = rowWidth - leftWidth; + var configHeight = 390; + var memberHeight = 128; - configCard.Bounds = new Rectangle(margin, top, leftWidth, cardHeight); - memberCard.Bounds = new Rectangle(margin + leftWidth + gap, top, rightWidth, cardHeight); + configCard.Bounds = new Rectangle(margin, top, leftWidth, configHeight); + memberCard.Bounds = new Rectangle(margin + leftWidth + gap, top, rightWidth, memberHeight); const int contentLeft = 24; const int contentRight = 24; @@ -371,25 +239,24 @@ namespace Vmianqian lblServerUrlTitle.Location = new Point(contentLeft, 20); txtServerUrl.Location = new Point(contentLeft, 48); txtServerUrl.Width = inputWidth; - lblApiKeyTitle.Location = new Point(contentLeft, 94); - txtApiKey.Location = new Point(contentLeft, 122); + lblApiKeyTitle.Location = new Point(contentLeft, 118); + txtApiKey.Location = new Point(contentLeft, 146); txtApiKey.Width = inputWidth; - const int actionTop = 252; + const int actionTop = 236; const int buttonGap = 12; - var actionButtonWidth = Math.Max(72, (contentWidth - buttonGap * 2) / 3); + var actionButtonWidth = Math.Max(96, (contentWidth - buttonGap) / 2); btnSaveConfig.Location = new Point(24, actionTop); - btnSaveConfig.Size = new Size(actionButtonWidth, 36); - btnToggleService.Location = new Point(btnSaveConfig.Right + buttonGap, actionTop); - btnToggleService.Size = new Size(actionButtonWidth, 36); - btnHeartbeatCheck.Location = new Point(btnToggleService.Right + buttonGap, actionTop); - btnHeartbeatCheck.Size = new Size(actionButtonWidth, 34); + btnSaveConfig.Size = new Size(actionButtonWidth, 55); + btnHeartbeatCheck.Location = new Point(btnSaveConfig.Right + buttonGap, actionTop); + btnHeartbeatCheck.Size = new Size(actionButtonWidth, 55); - const int heartbeatTop = 300; + const int heartbeatTop = 310; chkHeartbeatEnabled.Location = new Point(contentLeft, heartbeatTop - 4); lblHeartbeatDesc.Location = new Point(chkHeartbeatEnabled.Right + 4, heartbeatTop + 1); lblMemberPlaceholder.Size = new Size(Math.Max(220, memberCard.ClientSize.Width - 48), 52); + var rowBottom = Math.Max(configCard.Bottom, memberCard.Bottom); var logCardTop = rowBottom + margin; var homeLogCard = FindCard(pageHome, "home-log"); if (homeLogCard != null) @@ -417,7 +284,11 @@ namespace Vmianqian } if (btnClearLog != null) { - btnClearLog.Location = new Point(Math.Max(24, logCard.ClientSize.Width - btnClearLog.Width - 24), 14); + btnClearLog.Size = new Size(92, 36); + btnClearLog.Location = new Point( + Math.Max(24, logCard.ClientSize.Width - btnClearLog.Width - 24), + 14 + ); } logCard.ResumeLayout(false); } @@ -441,27 +312,30 @@ namespace Vmianqian var totalWidth = Math.Max(0, pageWechat.ClientSize.Width - margin * 2 - gap); var hookWidth = totalWidth / 2; var protocolWidth = totalWidth - hookWidth; - hookCard.Bounds = new Rectangle(margin, 20, hookWidth, 240); - protocolCard.Bounds = new Rectangle(hookCard.Right + gap, 20, protocolWidth, 240); + hookCard.Bounds = new Rectangle(margin, 20, hookWidth, 280); + protocolCard.Bounds = new Rectangle(hookCard.Right + gap, 20, protocolWidth, 280); var hookPathWidth = Math.Max(140, hookCard.ClientSize.Width - 24 - 24 - btnSelectWechatPath.Width - 12); txtWechatPath.Width = hookPathWidth; + btnSelectWechatPath.Size = new Size(92, 36); btnSelectWechatPath.Location = new Point(txtWechatPath.Left + txtWechatPath.Width + 12, txtWechatPath.Top); - btnWechatHookStart.Size = new Size(120, 36); - btnWechatHookStart.Location = new Point(24, hookCard.ClientSize.Height - btnWechatHookStart.Height - 16); + btnWechatHookStart.Size = new Size(168, 42); + btnWechatHookStart.Location = new Point(24, 182); lblWechatSidTitle.Location = new Point(24, 54); + btnWechatSidAuto.Size = new Size(92, 36); var sidWidth = Math.Max(180, protocolCard.ClientSize.Width - 48 - btnWechatSidAuto.Width - 12); txtWechatId.Width = sidWidth; btnWechatSidAuto.Location = new Point(txtWechatId.Left + txtWechatId.Width + 12, txtWechatId.Top); var halfWidth = Math.Max(160, (sidWidth - 12) / 2); var rightColX = 24 + halfWidth + 12; - lblWechatFrequencyTitle.Location = new Point(24, 122); - numWechatInterval.Location = new Point(24, 150); - lblWechatPollingTitle.Location = new Point(rightColX, 122); - chkWheel.Location = new Point(rightColX, 150); - btnWechatProtocolStart.Size = new Size(120, 36); - btnWechatProtocolStart.Location = new Point(24, protocolCard.ClientSize.Height - btnWechatProtocolStart.Height - 16); + lblWechatFrequencyTitle.Location = new Point(24, 146); + numWechatInterval.Location = new Point(24, 182); + numWechatInterval.Size = new Size(96, 30); + lblWechatPollingTitle.Location = new Point(rightColX, 146); + chkWheel.Location = new Point(rightColX, 198); + btnWechatProtocolStart.Size = new Size(120, 42); + btnWechatProtocolStart.Location = new Point(24, btnWechatHookStart.Bottom - btnWechatProtocolStart.Height); } if (gridCard != null && hookCard != null) @@ -479,6 +353,7 @@ namespace Vmianqian if (btnClearWechatLog != null) { + btnClearWechatLog.Size = new Size(92, 36); btnClearWechatLog.Location = new Point(Math.Max(24, gridCard.ClientSize.Width - btnClearWechatLog.Width - 24), 14); } } @@ -493,6 +368,7 @@ namespace Vmianqian { var bottom = pageAlipay.ClientSize.Height - 20; gridCard.Height = Math.Max(260, bottom - gridCard.Top); + numAlipayInterval.Size = new Size(96, 30); if (gridAlipayLogs != null) { @@ -529,6 +405,8 @@ namespace Vmianqian lblEmailAuthCodeTitle.Location = new Point(authCodeLeft, 278); txtEmailAuthCode.Location = new Point(authCodeLeft, 306); txtEmailAuthCode.Width = authCodeWidth; + btnEmailSave.Size = new Size(110, 42); + btnEmailTest.Size = new Size(110, 42); btnEmailSave.Location = new Point(24, 350); btnEmailTest.Location = new Point(btnEmailSave.Right + 12, 350); } @@ -557,395 +435,6 @@ namespace Vmianqian return null; } - private void BuildHomePage() - { - var summaryCard = CreateCardPanel(new Rectangle(20, 20, 1080, 120)); - summaryCard.Tag = "home-summary"; - - lblSummaryTitle = new AntdUI.Label - { - Text = "欢迎使用 V免签 PC 监听客户端", - Font = new Font("Microsoft YaHei UI", 22F, FontStyle.Regular), - AutoSize = true, - Location = new Point(28, 24) - }; - - lblSummaryDesc = new AntdUI.Label - { - Text = "当前阶段先打通“PC端本地监听 -> V免签服务端回调 -> 心跳检测”链路,整体布局按 AntdUI Demo 风格复刻。", - AutoSize = false, - Location = new Point(70, 64), - ForeColor = Color.DimGray - }; - - summaryCard.Controls.Add(lblSummaryTitle); - summaryCard.Controls.Add(lblSummaryDesc); - - var configCard = CreateCardPanel(new Rectangle(20, 160, 1080, 360)); - configCard.Tag = "home-config"; - - lblServerUrlTitle = CreateTitleLabel("V免签地址", 24, 20); - configCard.Controls.Add(lblServerUrlTitle); - txtServerUrl = CreateInput(24, 48, 500, "例如:https://你的域名/"); - configCard.Controls.Add(txtServerUrl); - - lblApiKeyTitle = CreateTitleLabel("通信密钥 / Token", 24, 94); - configCard.Controls.Add(lblApiKeyTitle); - txtApiKey = CreateInput(24, 122, 500, "请输入与服务端密钥"); - configCard.Controls.Add(txtApiKey); - - btnSaveConfig = new AntdUI.Button - { - Text = "保存配置", - Type = TTypeMini.Primary, - Location = new Point(24, 252), - Size = new Size(110, 36), - }; - btnSaveConfig.Click += btnSaveConfig_Click; - - btnToggleService = new AntdUI.Button - { - Text = "启动监听", - Type = TTypeMini.Primary, - Location = new Point(146, 292), - Size = new Size(110, 36), - }; - btnToggleService.Click += btnToggleService_Click; - - configCard.Controls.Add(btnSaveConfig); - configCard.Controls.Add(btnToggleService); - - chkHeartbeatEnabled = new AntdUI.Switch - { - Location = new Point(24, 296), - Size = new Size(62, 28), - AutoSize = false - }; - chkHeartbeatEnabled.CheckedChanged += chkHeartbeatEnabled_CheckedChanged; - - lblHeartbeatDesc = new AntdUI.Label - { - Text = "自动心跳", - AutoSize = true, - Location = new Point(90, 301), - ForeColor = Color.DimGray - }; - - btnHeartbeatCheck = new AntdUI.Button - { - Text = "心跳检测", - Type = TTypeMini.Primary, - Location = new Point(268, 292), - Size = new Size(110, 34) - }; - btnHeartbeatCheck.Click += btnHeartbeatCheck_Click; - - configCard.Controls.Add(chkHeartbeatEnabled); - configCard.Controls.Add(lblHeartbeatDesc); - configCard.Controls.Add(btnHeartbeatCheck); - - var memberCard = CreateCardPanel(new Rectangle(660, 160, 440, 360)); - memberCard.Tag = "home-member"; - memberCard.Controls.Add(CreateTitleLabel("会员登录绑定", 24, 20)); - lblMemberPlaceholder = new AntdUI.Label - { - Text = "预留区域:后续用于会员登录、设备绑定、解绑与状态展示。", - AutoSize = false, - Location = new Point(24, 56), - Size = new Size(392, 52), - ForeColor = Color.DimGray - }; - memberCard.Controls.Add(lblMemberPlaceholder); - - var logCard = CreateCardPanel(new Rectangle(20, 500, 1080, 300)); - logCard.Tag = "home-log"; - - logCard.Controls.Add(CreateTitleLabel("运行日志", 24, 18)); - btnClearLog = new AntdUI.Button - { - Text = "清空", - Type = TTypeMini.Primary, - Ghost = true, - Location = new Point(980, 14), - Size = new Size(72, 30), - Anchor = AnchorStyles.Top | AnchorStyles.Right - }; - btnClearLog.Click += (_, _) => txtLog.Clear(); - logCard.Controls.Add(btnClearLog); - - txtLog = new WinTextBox - { - Location = new Point(24, 50), - Size = new Size(1030, 224), - Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right, - Multiline = true, - ScrollBars = ScrollBars.Vertical, - ReadOnly = true, - BackColor = Color.Black, - ForeColor = Color.Lime, - BorderStyle = BorderStyle.FixedSingle - }; - logCard.Controls.Add(txtLog); - - pageHome.Controls.Add(summaryCard); - pageHome.Controls.Add(configCard); - pageHome.Controls.Add(memberCard); - pageHome.Controls.Add(logCard); - } - - private void BuildWechatPage() - { - var hookCard = CreateCardPanel(new Rectangle(20, 20, 532, 240)); - hookCard.Tag = "wechat-hook"; - hookCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - hookCard.Controls.Add(CreateTitleLabel("Hook 功能", 24, 18)); - hookCard.Controls.Add(CreateTitleLabel("微信安装路径", 24, 54)); - txtWechatPath = CreateInput(24, 48, 390, "微信.exe 路径"); - txtWechatPath.Location = new Point(24, 82); - txtWechatPath.Width = 280; - hookCard.Controls.Add(txtWechatPath); - btnSelectWechatPath = new AntdUI.Button - { - Text = "选择路径", - Type = TTypeMini.Primary, - Ghost = true, - Location = new Point(316, 82), - Size = new Size(92, 36) - }; - btnSelectWechatPath.Click += btnSelectWechatPath_Click; - hookCard.Controls.Add(btnSelectWechatPath); - btnWechatHookStart = new AntdUI.Button - { - Text = "开始监听", - Type = TTypeMini.Primary, - Location = new Point(24, 128), - Size = new Size(120, 36) - }; - btnWechatHookStart.Click += btnWechatHookStart_Click; - hookCard.Controls.Add(btnWechatHookStart); - - var protocolCard = CreateCardPanel(new Rectangle(568, 20, 532, 240)); - protocolCard.Tag = "wechat-protocol"; - protocolCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - protocolCard.Controls.Add(CreateTitleLabel("协议功能", 24, 18)); - - lblWechatSidTitle = CreateTitleLabel("微信 SID", 24, 54); - protocolCard.Controls.Add(lblWechatSidTitle); - txtWechatId = CreateInput(24, 82, 356, "可选"); - protocolCard.Controls.Add(txtWechatId); - btnWechatSidAuto = new AntdUI.Button - { - Text = "自动获取", - Type = TTypeMini.Primary, - Ghost = true, - Location = new Point(392, 82), - Size = new Size(92, 36) - }; - btnWechatSidAuto.Click += btnWechatSidAuto_Click; - protocolCard.Controls.Add(btnWechatSidAuto); - - lblWechatFrequencyTitle = CreateTitleLabel("监控频率(秒)", 24, 122); - protocolCard.Controls.Add(lblWechatFrequencyTitle); - numWechatInterval = new NumericUpDown - { - Location = new Point(24, 150), - Size = new Size(96, 23), - Minimum = 1, - Maximum = 3600, - Value = 5 - }; - protocolCard.Controls.Add(numWechatInterval); - - lblWechatPollingTitle = CreateTitleLabel("接口轮询", 274, 122); - protocolCard.Controls.Add(lblWechatPollingTitle); - chkWheel = new AntdUI.Checkbox - { - Text = "接口轮询", - Location = new Point(274, 150), - AutoSize = true - }; - protocolCard.Controls.Add(chkWheel); - btnWechatProtocolStart = new AntdUI.Button - { - Text = "开始监听", - Type = TTypeMini.Primary, - Location = new Point(24, 196), - Size = new Size(120, 36) - }; - btnWechatProtocolStart.Click += btnWechatProtocolStart_Click; - protocolCard.Controls.Add(btnWechatProtocolStart); - - var gridCard = CreateCardPanel(new Rectangle(20, 280, 1080, 450)); - gridCard.Tag = "wechat-log"; - gridCard.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; - gridCard.Controls.Add(CreateTitleLabel("微信监听记录", 24, 18)); - btnClearWechatLog = new AntdUI.Button - { - Text = "清空", - Type = TTypeMini.Primary, - Ghost = true, - Location = new Point(980, 14), - Size = new Size(72, 30), - Anchor = AnchorStyles.Top | AnchorStyles.Right - }; - btnClearWechatLog.Click += (_, _) => gridWechatLogs.Rows.Clear(); - gridCard.Controls.Add(btnClearWechatLog); - - gridWechatLogs = CreateWechatGrid(); - gridWechatLogs.Location = new Point(24, 50); - gridWechatLogs.Size = new Size(1030, 464); - gridWechatLogs.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; - gridCard.Controls.Add(gridWechatLogs); - - pageWechat.Controls.Add(hookCard); - pageWechat.Controls.Add(protocolCard); - pageWechat.Controls.Add(gridCard); - UpdateWechatMonitorButtons(); - } - - private void BuildAlipayPage() - { - var card = CreateCardPanel(new Rectangle(20, 20, 1080, 150)); - card.Tag = "alipay-config"; - card.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - - card.Controls.Add(CreateTitleLabel("旺旺/支付宝路径", 24, 20)); - txtAliPath = CreateInput(24, 48, 300, "程序路径"); - card.Controls.Add(txtAliPath); - - card.Controls.Add(CreateTitleLabel("应用 ID", 350, 20)); - txtAliAppId = CreateInput(350, 48, 170, "AppId"); - card.Controls.Add(txtAliAppId); - - card.Controls.Add(CreateTitleLabel("用户 ID", 550, 20)); - txtAliPid = CreateInput(550, 48, 170, "Pid/UserId"); - card.Controls.Add(txtAliPid); - - card.Controls.Add(CreateTitleLabel("轮询频率(秒)", 750, 20)); - numAlipayInterval = new NumericUpDown - { - Location = new Point(750, 51), - Size = new Size(96, 23), - Minimum = 1, - Maximum = 3600, - Value = 5 - }; - card.Controls.Add(numAlipayInterval); - - var desc = new AntdUI.Label - { - Text = "后续这里接入支付宝真实到账监听逻辑,目前保留参数配置与回调结果展示。", - AutoSize = false, - Location = new Point(24, 102), - Size = new Size(960, 24), - ForeColor = Color.DimGray - }; - card.Controls.Add(desc); - - var gridCard = CreateCardPanel(new Rectangle(20, 190, 1080, 540)); - gridCard.Tag = "alipay-log"; - gridCard.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; - gridCard.Controls.Add(CreateTitleLabel("支付宝监听记录", 24, 18)); - - gridAlipayLogs = CreateAlipayGrid(); - gridAlipayLogs.Location = new Point(24, 50); - gridAlipayLogs.Size = new Size(1030, 464); - gridAlipayLogs.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; - gridCard.Controls.Add(gridAlipayLogs); - - pageAlipay.Controls.Add(card); - pageAlipay.Controls.Add(gridCard); - } - - private void BuildSettingsPage() - { - var listenCard = CreateCardPanel(new Rectangle(20, 20, 1080, 200)); - listenCard.Tag = "settings-listen"; - listenCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - - listenCard.Controls.Add(CreateTitleLabel("本地监听端口", 24, 20)); - txtServicePort = CreateInput(24, 48, 180, "8989"); - listenCard.Controls.Add(txtServicePort); - - listenCard.Controls.Add(CreateTitleLabel("本地监听路径", 240, 20)); - txtListenPath = CreateInput(240, 48, 240, "/notify/"); - listenCard.Controls.Add(txtListenPath); - - var info = new AntdUI.Label - { - Text = "这个页面用于维护本地监听、邮箱通知与项目说明。", - AutoSize = false, - Location = new Point(24, 108), - Size = new Size(920, 60), - ForeColor = Color.DimGray - }; - listenCard.Controls.Add(info); - - var emailCard = CreateCardPanel(new Rectangle(20, 236, 1080, 420)); - emailCard.Tag = "settings-email"; - emailCard.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - - emailCard.Controls.Add(CreateTitleLabel("邮箱通知配置", 24, 20)); - lblSenderEmailTitle = CreateTitleLabel("发送邮箱", 24, 56); - emailCard.Controls.Add(lblSenderEmailTitle); - txtSenderEmail = CreateInput(24, 84, 500, "例如:yunzer_cn@163.com"); - emailCard.Controls.Add(txtSenderEmail); - - lblSmtpHostTitle = CreateTitleLabel("SMTP 主机", 24, 130); - emailCard.Controls.Add(lblSmtpHostTitle); - txtSmtpHost = CreateInput(24, 158, 500, "例如:smtp.163.com"); - emailCard.Controls.Add(txtSmtpHost); - - lblSmtpPortTitle = CreateTitleLabel("SMTP 端口", 24, 204); - emailCard.Controls.Add(lblSmtpPortTitle); - txtSmtpPort = CreateInput(24, 232, 220, "例如:465"); - emailCard.Controls.Add(txtSmtpPort); - - lblNotifyEmailTitle = CreateTitleLabel("通知邮箱", 24, 278); - emailCard.Controls.Add(lblNotifyEmailTitle); - txtNotifyEmail = CreateInput(24, 306, 500, "用于接收测试邮件"); - emailCard.Controls.Add(txtNotifyEmail); - - lblEmailAuthCodeTitle = CreateTitleLabel("授权码", 560, 278); - emailCard.Controls.Add(lblEmailAuthCodeTitle); - txtEmailAuthCode = CreateInput(560, 306, 320, "用于发送测试邮件"); - emailCard.Controls.Add(txtEmailAuthCode); - - btnEmailSave = new AntdUI.Button - { - Text = "保存配置", - Type = TTypeMini.Primary, - Location = new Point(24, 350), - Size = new Size(110, 36) - }; - btnEmailSave.Click += btnEmailSave_Click; - emailCard.Controls.Add(btnEmailSave); - - btnEmailTest = new AntdUI.Button - { - Text = "邮箱测试", - Type = TTypeMini.Primary, - Ghost = true, - Location = new Point(146, 350), - Size = new Size(110, 36) - }; - btnEmailTest.Click += btnEmailTest_Click; - emailCard.Controls.Add(btnEmailTest); - - pageSettings.Controls.Add(listenCard); - pageSettings.Controls.Add(emailCard); - } - - private WinPanel CreateCardPanel(Rectangle bounds) - { - return new WinPanel - { - Bounds = bounds, - BackColor = Color.White, - BorderStyle = BorderStyle.None - }; - } - private AntdUI.Label CreateTitleLabel(string text, int x, int y) { return new AntdUI.Label @@ -961,7 +450,7 @@ namespace Vmianqian return new AntdUI.Input { Location = new Point(x, y), - Size = new Size(width, 36), + Size = new Size(width, 55), PlaceholderText = placeholder }; } @@ -1271,6 +760,16 @@ namespace Vmianqian Log($"微信安装路径已保存:{dialog.FileName}"); } + private void btnClearLog_Click(object? sender, EventArgs e) + { + txtLog.Clear(); + } + + private void btnClearWechatLog_Click(object? sender, EventArgs e) + { + gridWechatLogs.Rows.Clear(); + } + private async void btnWechatSidAuto_Click(object? sender, EventArgs e) { if (_wechatSidCaptureCts != null) @@ -1292,11 +791,39 @@ namespace Vmianqian } } + private void LaunchWechatForSidCapture() + { + var path = txtWechatPath?.Text?.Trim() ?? string.Empty; + if (string.IsNullOrWhiteSpace(path) || !File.Exists(path)) + { + throw new InvalidOperationException("请先选择正确的微信程序路径(WeChat.exe/Weixin.exe/WeChatAppEx.exe)。"); + } + + var processName = Path.GetFileNameWithoutExtension(path); + var alreadyRunning = !string.IsNullOrWhiteSpace(processName) && Process.GetProcessesByName(processName).Length > 0; + if (alreadyRunning) + { + Log($"检测到微信已运行:{processName},开始直接捕获 SID。"); + return; + } + + var startInfo = new ProcessStartInfo + { + FileName = path, + WorkingDirectory = Path.GetDirectoryName(path) ?? AppContext.BaseDirectory, + UseShellExecute = true + }; + + Process.Start(startInfo); + Log($"已启动微信:{path}"); + } + private void StartWechatSidCapture() { StopWechatSidCapture(); _wechatSidCaptureCts = new CancellationTokenSource(); var token = _wechatSidCaptureCts.Token; + UpdateWechatMonitorButtons(); btnWechatSidAuto.Text = "停止捕获"; btnWechatSidAuto.Type = TTypeMini.Error; btnWechatSidAuto.Loading = true; @@ -1307,12 +834,6 @@ namespace Vmianqian { try { - if (TryExtractSidFromClipboard(out var clipSid, out var clipVersion)) - { - BeginInvoke(() => ApplyCapturedSid(clipSid, clipVersion, "剪贴板")); - return; - } - var result = TryExtractSidFromWechatLocalFiles(); if (!string.IsNullOrWhiteSpace(result.Sid)) { @@ -1340,6 +861,7 @@ namespace Vmianqian try { _wechatSidCaptureCts?.Cancel(); } catch { } try { _wechatSidCaptureCts?.Dispose(); } catch { } _wechatSidCaptureCts = null; + UpdateWechatMonitorButtons(); if (btnWechatSidAuto != null) { @@ -1363,13 +885,11 @@ namespace Vmianqian private void btnWechatHookStart_Click(object? sender, EventArgs e) { - if (string.Equals(_wechatMonitorMode, "hook", StringComparison.Ordinal)) + if (_wechatSidCaptureCts != null) { - StopWechatHook(); - _wechatMonitorMode = string.Empty; + StopWechatSidCapture(); UpdateWechatMonitorButtons(); - UpdateWechatStatusUi(); - Log("Hook 监听已停止。"); + Log("SID 获取已停止。"); return; } @@ -1377,25 +897,14 @@ namespace Vmianqian { SaveUiToConfig(); SaveConfig(); - if (!string.IsNullOrWhiteSpace(_wechatMonitorMode)) - { - StopWechatMonitoring(); - } - - if (string.IsNullOrWhiteSpace(txtWechatPath?.Text) || !File.Exists(txtWechatPath.Text.Trim())) - { - throw new InvalidOperationException("请先选择正确的微信程序路径(WeChat.exe/Weixin.exe/WeChatAppEx.exe)。"); - } - - StartWechatHook(); - _wechatMonitorMode = "hook"; + LaunchWechatForSidCapture(); + Log("SID 捕获已启动:请等待微信打开,并进入微信收款助手/收款小账本页面。"); + StartWechatSidCapture(); UpdateWechatMonitorButtons(); - UpdateWechatStatusUi(); - Log("Hook 监听已启动(将用于监听微信通知/收款小账本)。"); } catch (Exception ex) { - Log($"Hook 监听启动失败:{ex.Message}"); + Log($"启动微信并获取 SID 失败:{ex.Message}"); MessageBox.Show(ex.Message, "启动失败", MessageBoxButtons.OK, MessageBoxIcon.Error); } } @@ -1446,12 +955,12 @@ namespace Vmianqian return; } - var hookActive = string.Equals(_wechatMonitorMode, "hook", StringComparison.Ordinal); + var sidCaptureActive = _wechatSidCaptureCts != null; var protocolActive = string.Equals(_wechatMonitorMode, "protocol", StringComparison.Ordinal); - btnWechatHookStart.Text = hookActive ? "停止监听" : "开始监听"; - btnWechatHookStart.Type = hookActive ? TTypeMini.Error : TTypeMini.Primary; - btnWechatProtocolStart.Text = protocolActive ? "停止监听" : "开始监听"; + btnWechatHookStart.Text = sidCaptureActive ? "停止获取SID" : "1. 启动微信"; + btnWechatHookStart.Type = sidCaptureActive ? TTypeMini.Error : TTypeMini.Primary; + btnWechatProtocolStart.Text = protocolActive ? "停止监听" : "2. 开始监听"; btnWechatProtocolStart.Type = protocolActive ? TTypeMini.Error : TTypeMini.Primary; } @@ -3060,26 +2569,6 @@ namespace Vmianqian }; } - private static bool TryExtractSidFromClipboard(out string sid, out string version) - { - sid = string.Empty; - version = string.Empty; - try - { - if (!Clipboard.ContainsText()) - { - return false; - } - - var text = Clipboard.GetText(); - return TryExtractSidFromText(text, out sid, out version); - } - catch - { - return false; - } - } - private static (string Sid, string Version, string Source) TryExtractSidFromWechatLocalFiles() { foreach (var root in GetWechatDataRoots()) diff --git a/Vmianqian.csproj b/Vmianqian.csproj index 4f9251e..e6e67e8 100644 --- a/Vmianqian.csproj +++ b/Vmianqian.csproj @@ -5,6 +5,7 @@ net10.0-windows enable true + true enable local @@ -14,15 +15,6 @@ - - - C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.5\UIAutomationClient.dll - - - C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\10.0.5\UIAutomationTypes.dll - - - diff --git a/bin/Debug/net10.0-windows/Vmianqian.dll b/bin/Debug/net10.0-windows/Vmianqian.dll index f024765..60a0494 100644 Binary files a/bin/Debug/net10.0-windows/Vmianqian.dll and b/bin/Debug/net10.0-windows/Vmianqian.dll differ diff --git a/bin/Debug/net10.0-windows/Vmianqian.exe b/bin/Debug/net10.0-windows/Vmianqian.exe index d623a2a..00f9e68 100644 Binary files a/bin/Debug/net10.0-windows/Vmianqian.exe and b/bin/Debug/net10.0-windows/Vmianqian.exe differ diff --git a/bin/Debug/net10.0-windows/Vmianqian.pdb b/bin/Debug/net10.0-windows/Vmianqian.pdb index 3c7f8b9..77914a5 100644 Binary files a/bin/Debug/net10.0-windows/Vmianqian.pdb and b/bin/Debug/net10.0-windows/Vmianqian.pdb differ diff --git a/bin/Debug/net10.0-windows/appsettings.client.json b/bin/Debug/net10.0-windows/appsettings.client.json index 218aa1e..08e6d0a 100644 --- a/bin/Debug/net10.0-windows/appsettings.client.json +++ b/bin/Debug/net10.0-windows/appsettings.client.json @@ -7,7 +7,7 @@ "NotifyEmail": "1066960883@qq.com", "EmailAuthCode": "TPPMKSMvCadyzu3m", "WechatPath": "D:\\Softwares\\Tencent\\Weixin\\Weixin.exe", - "WechatSid": "AAHRxMH-4RkRMiXVf7NSJGhBKBwThd_tfDct27hXjkv0Ag", + "WechatSid": "", "WechatApiVersion": "7.10.1", "AlipayPath": "", "AlipayAppId": "", diff --git a/build-temp/AntdUI.dll b/build-temp/AntdUI.dll new file mode 100644 index 0000000..af9fbb7 Binary files /dev/null and b/build-temp/AntdUI.dll differ diff --git a/build-temp/BouncyCastle.Cryptography.dll b/build-temp/BouncyCastle.Cryptography.dll new file mode 100644 index 0000000..e8d3222 Binary files /dev/null and b/build-temp/BouncyCastle.Cryptography.dll differ diff --git a/build-temp/MailKit.dll b/build-temp/MailKit.dll new file mode 100644 index 0000000..02212c3 Binary files /dev/null and b/build-temp/MailKit.dll differ diff --git a/build-temp/MimeKit.dll b/build-temp/MimeKit.dll new file mode 100644 index 0000000..da00220 Binary files /dev/null and b/build-temp/MimeKit.dll differ diff --git a/build-temp/Vmianqian.deps.json b/build-temp/Vmianqian.deps.json new file mode 100644 index 0000000..5ac0255 --- /dev/null +++ b/build-temp/Vmianqian.deps.json @@ -0,0 +1,93 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v10.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v10.0": { + "Vmianqian/1.0.0": { + "dependencies": { + "AntdUI": "2.3.10", + "MailKit": "4.16.0" + }, + "runtime": { + "Vmianqian.dll": {} + } + }, + "AntdUI/2.3.10": { + "runtime": { + "lib/net10.0-windows7.0/AntdUI.dll": { + "assemblyVersion": "2.3.10.0", + "fileVersion": "2.3.10.0" + } + } + }, + "BouncyCastle.Cryptography/2.6.2": { + "runtime": { + "lib/net6.0/BouncyCastle.Cryptography.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.6.2.46322" + } + } + }, + "MailKit/4.16.0": { + "dependencies": { + "MimeKit": "4.16.0" + }, + "runtime": { + "lib/net10.0/MailKit.dll": { + "assemblyVersion": "4.16.0.0", + "fileVersion": "4.16.0.0" + } + } + }, + "MimeKit/4.16.0": { + "dependencies": { + "BouncyCastle.Cryptography": "2.6.2" + }, + "runtime": { + "lib/net10.0/MimeKit.dll": { + "assemblyVersion": "4.16.0.0", + "fileVersion": "4.16.0.0" + } + } + } + } + }, + "libraries": { + "Vmianqian/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "AntdUI/2.3.10": { + "type": "package", + "serviceable": true, + "sha512": "sha512-twjNYhVIw08ydcQsBC5c7/59WBXVqba4kulN48ejxUz2i37xJU6ukYqUtxEFhiQtVzmu8cmGYAjZ4HM6BOKZwg==", + "path": "antdui/2.3.10", + "hashPath": "antdui.2.3.10.nupkg.sha512" + }, + "BouncyCastle.Cryptography/2.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7oWOcvnntmMKNzDLsdxAYqApt+AjpRpP2CShjMfIa3umZ42UQMvH0tl1qAliYPNYO6vTdcGMqnRrCPmsfzTI1w==", + "path": "bouncycastle.cryptography/2.6.2", + "hashPath": "bouncycastle.cryptography.2.6.2.nupkg.sha512" + }, + "MailKit/4.16.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-trJ82DOpAmo8i1jO1vNE+dGn4mPRyeYfy4swRcAGgMJhPoI1Kohf4OFJJf0+YIj4iUxgxPn8W+ht7e7KiYzSjg==", + "path": "mailkit/4.16.0", + "hashPath": "mailkit.4.16.0.nupkg.sha512" + }, + "MimeKit/4.16.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X0LFxeM4gPRIhODyY/HYS9b+zRZ7y//v59rFzgS6wLxcPuZThnMtNZHtrr0fjLyRRkg3gqJBtvW36XfUzZ7Djw==", + "path": "mimekit/4.16.0", + "hashPath": "mimekit.4.16.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/build-temp/Vmianqian.dll b/build-temp/Vmianqian.dll new file mode 100644 index 0000000..bfbd18f Binary files /dev/null and b/build-temp/Vmianqian.dll differ diff --git a/build-temp/Vmianqian.exe b/build-temp/Vmianqian.exe new file mode 100644 index 0000000..00f9e68 Binary files /dev/null and b/build-temp/Vmianqian.exe differ diff --git a/build-temp/Vmianqian.pdb b/build-temp/Vmianqian.pdb new file mode 100644 index 0000000..d997f37 Binary files /dev/null and b/build-temp/Vmianqian.pdb differ diff --git a/build-temp/Vmianqian.runtimeconfig.json b/build-temp/Vmianqian.runtimeconfig.json new file mode 100644 index 0000000..3c285dd --- /dev/null +++ b/build-temp/Vmianqian.runtimeconfig.json @@ -0,0 +1,19 @@ +{ + "runtimeOptions": { + "tfm": "net10.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "10.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "10.0.0" + } + ], + "configProperties": { + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } +} \ No newline at end of file diff --git a/dotnet-tools.json b/dotnet-tools.json new file mode 100644 index 0000000..97f37dc --- /dev/null +++ b/dotnet-tools.json @@ -0,0 +1,13 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "csharpier": { + "version": "1.2.6", + "commands": [ + "csharpier" + ], + "rollForward": false + } + } +} \ No newline at end of file diff --git a/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfo.cs b/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfo.cs index 2697f90..644a29b 100644 --- a/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfo.cs +++ b/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfo.cs @@ -1,9 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ @@ -13,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Vmianqian")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+82b3bc2cf0c49cfa7245d5fdd65ef87ea19892fc")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b8577139b743128e6d1f7535c4e26f8b9f8ae07e")] [assembly: System.Reflection.AssemblyProductAttribute("Vmianqian")] [assembly: System.Reflection.AssemblyTitleAttribute("Vmianqian")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache b/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache index 27bcdf3..c0aa811 100644 --- a/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache +++ b/obj/Debug/net10.0-windows/Vmianqian.AssemblyInfoInputs.cache @@ -1 +1 @@ -ebd5591aa83e3ce6dc8b4661368f70755a868c935951ae1bef6bc75ef5c3797f +2bf683a342db48dd63c7773755779041e948fbfa65b1232aa9ccc9ab7062c89c diff --git a/obj/Debug/net10.0-windows/Vmianqian.GlobalUsings.g.cs b/obj/Debug/net10.0-windows/Vmianqian.GlobalUsings.g.cs index 18cabb0..3c55c3d 100644 --- a/obj/Debug/net10.0-windows/Vmianqian.GlobalUsings.g.cs +++ b/obj/Debug/net10.0-windows/Vmianqian.GlobalUsings.g.cs @@ -2,9 +2,7 @@ global using System; global using System.Collections.Generic; global using System.Drawing; -global using System.IO; global using System.Linq; -global using System.Net.Http; global using System.Threading; global using System.Threading.Tasks; global using System.Windows.Forms; diff --git a/obj/Debug/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache b/obj/Debug/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache index 695e0e9..35108ef 100644 Binary files a/obj/Debug/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache and b/obj/Debug/net10.0-windows/Vmianqian.csproj.AssemblyReference.cache differ diff --git a/obj/Debug/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache b/obj/Debug/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache index 5c232f3..a97cf19 100644 --- a/obj/Debug/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache +++ b/obj/Debug/net10.0-windows/Vmianqian.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -7239ca1570e58a84bff4ce01bdd3920794f5c0a911cc1d186c71d7544994c98a +a7b3445afcbd56fec3c73f3a521fa72c62329fb7fbf05cdc5a48d209a06f572f diff --git a/obj/Debug/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt b/obj/Debug/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt index fd3c390..78d9f2a 100644 --- a/obj/Debug/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt +++ b/obj/Debug/net10.0-windows/Vmianqian.csproj.FileListAbsolute.txt @@ -22,24 +22,6 @@ E:\Demo\C\Vmianqian\build_verify\Vmianqian.runtimeconfig.json E:\Demo\C\Vmianqian\build_verify\Vmianqian.dll E:\Demo\C\Vmianqian\build_verify\Vmianqian.pdb E:\Demo\C\Vmianqian\build_verify\AntdUI.dll -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.csproj.AssemblyReference.cache -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.Form1.resources -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.csproj.GenerateResource.cache -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.GeneratedMSBuildEditorConfig.editorconfig -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.AssemblyInfoInputs.cache -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.AssemblyInfo.cs -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.csproj.CoreCompileInputs.cache -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.dll -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\refint\Vmianqian.dll -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.pdb -E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.deps.json -E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.runtimeconfig.json -E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.dll -E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.pdb -E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\AntdUI.dll -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.csproj.Up2Date -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.genruntimeconfig.cache -E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\ref\Vmianqian.dll E:\Demos\DemoOwns\C\VmianqianC\bin_temp\Vmianqian.exe E:\Demos\DemoOwns\C\VmianqianC\bin_temp\Vmianqian.deps.json E:\Demos\DemoOwns\C\VmianqianC\bin_temp\Vmianqian.runtimeconfig.json @@ -49,7 +31,34 @@ E:\Demos\DemoOwns\C\VmianqianC\bin_temp\AntdUI.dll E:\Demos\DemoOwns\C\VmianqianC\bin_temp\BouncyCastle.Cryptography.dll E:\Demos\DemoOwns\C\VmianqianC\bin_temp\MailKit.dll E:\Demos\DemoOwns\C\VmianqianC\bin_temp\MimeKit.dll +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.csproj.AssemblyReference.cache +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.Form1.resources +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.csproj.GenerateResource.cache +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.GeneratedMSBuildEditorConfig.editorconfig +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.AssemblyInfoInputs.cache +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.AssemblyInfo.cs +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.csproj.CoreCompileInputs.cache +E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.exe +E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.deps.json +E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.runtimeconfig.json +E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.dll +E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.pdb +E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\AntdUI.dll E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\BouncyCastle.Cryptography.dll E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\MailKit.dll E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\MimeKit.dll -E:\Demos\DemoOwns\C\VmianqianC\bin\Debug\net10.0-windows\Vmianqian.exe +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.csproj.Up2Date +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.dll +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\refint\Vmianqian.dll +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.pdb +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\Vmianqian.genruntimeconfig.cache +E:\Demos\DemoOwns\C\VmianqianC\obj\Debug\net10.0-windows\ref\Vmianqian.dll +E:\Demos\DemoOwns\C\VmianqianC\build-temp\Vmianqian.exe +E:\Demos\DemoOwns\C\VmianqianC\build-temp\Vmianqian.deps.json +E:\Demos\DemoOwns\C\VmianqianC\build-temp\Vmianqian.runtimeconfig.json +E:\Demos\DemoOwns\C\VmianqianC\build-temp\Vmianqian.dll +E:\Demos\DemoOwns\C\VmianqianC\build-temp\Vmianqian.pdb +E:\Demos\DemoOwns\C\VmianqianC\build-temp\AntdUI.dll +E:\Demos\DemoOwns\C\VmianqianC\build-temp\BouncyCastle.Cryptography.dll +E:\Demos\DemoOwns\C\VmianqianC\build-temp\MailKit.dll +E:\Demos\DemoOwns\C\VmianqianC\build-temp\MimeKit.dll diff --git a/obj/Debug/net10.0-windows/Vmianqian.csproj.GenerateResource.cache b/obj/Debug/net10.0-windows/Vmianqian.csproj.GenerateResource.cache index 02de75e..3eda3b7 100644 Binary files a/obj/Debug/net10.0-windows/Vmianqian.csproj.GenerateResource.cache and b/obj/Debug/net10.0-windows/Vmianqian.csproj.GenerateResource.cache differ diff --git a/obj/Debug/net10.0-windows/Vmianqian.designer.deps.json b/obj/Debug/net10.0-windows/Vmianqian.designer.deps.json index 9aefb04..daf2782 100644 --- a/obj/Debug/net10.0-windows/Vmianqian.designer.deps.json +++ b/obj/Debug/net10.0-windows/Vmianqian.designer.deps.json @@ -13,6 +13,36 @@ "fileVersion": "2.3.10.0" } } + }, + "BouncyCastle.Cryptography/2.6.2": { + "runtime": { + "lib/net6.0/BouncyCastle.Cryptography.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.6.2.46322" + } + } + }, + "MailKit/4.16.0": { + "dependencies": { + "MimeKit": "4.16.0" + }, + "runtime": { + "lib/net10.0/MailKit.dll": { + "assemblyVersion": "4.16.0.0", + "fileVersion": "4.16.0.0" + } + } + }, + "MimeKit/4.16.0": { + "dependencies": { + "BouncyCastle.Cryptography": "2.6.2" + }, + "runtime": { + "lib/net10.0/MimeKit.dll": { + "assemblyVersion": "4.16.0.0", + "fileVersion": "4.16.0.0" + } + } } } }, @@ -23,6 +53,27 @@ "sha512": "sha512-twjNYhVIw08ydcQsBC5c7/59WBXVqba4kulN48ejxUz2i37xJU6ukYqUtxEFhiQtVzmu8cmGYAjZ4HM6BOKZwg==", "path": "antdui/2.3.10", "hashPath": "antdui.2.3.10.nupkg.sha512" + }, + "BouncyCastle.Cryptography/2.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7oWOcvnntmMKNzDLsdxAYqApt+AjpRpP2CShjMfIa3umZ42UQMvH0tl1qAliYPNYO6vTdcGMqnRrCPmsfzTI1w==", + "path": "bouncycastle.cryptography/2.6.2", + "hashPath": "bouncycastle.cryptography.2.6.2.nupkg.sha512" + }, + "MailKit/4.16.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-trJ82DOpAmo8i1jO1vNE+dGn4mPRyeYfy4swRcAGgMJhPoI1Kohf4OFJJf0+YIj4iUxgxPn8W+ht7e7KiYzSjg==", + "path": "mailkit/4.16.0", + "hashPath": "mailkit.4.16.0.nupkg.sha512" + }, + "MimeKit/4.16.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X0LFxeM4gPRIhODyY/HYS9b+zRZ7y//v59rFzgS6wLxcPuZThnMtNZHtrr0fjLyRRkg3gqJBtvW36XfUzZ7Djw==", + "path": "mimekit/4.16.0", + "hashPath": "mimekit.4.16.0.nupkg.sha512" } } } \ No newline at end of file diff --git a/obj/Debug/net10.0-windows/Vmianqian.designer.runtimeconfig.json b/obj/Debug/net10.0-windows/Vmianqian.designer.runtimeconfig.json index 978c6fa..a8fd9db 100644 --- a/obj/Debug/net10.0-windows/Vmianqian.designer.runtimeconfig.json +++ b/obj/Debug/net10.0-windows/Vmianqian.designer.runtimeconfig.json @@ -12,9 +12,9 @@ } ], "additionalProbingPaths": [ - "C:\\Users\\Administrator\\.dotnet\\store\\|arch|\\|tfm|", - "C:\\Users\\Administrator\\.nuget\\packages", - "C:\\Softwares\\Microsoft Visual Studio\\Shared\\NuGetPackages" + "C:\\Users\\heros\\.dotnet\\store\\|arch|\\|tfm|", + "C:\\Users\\heros\\.nuget\\packages", + "D:\\Softwares\\Microsoft\\VisualStudio\\Shared\\NuGetPackages" ], "configProperties": { "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false, diff --git a/obj/Debug/net10.0-windows/Vmianqian.dll b/obj/Debug/net10.0-windows/Vmianqian.dll index f024765..60a0494 100644 Binary files a/obj/Debug/net10.0-windows/Vmianqian.dll and b/obj/Debug/net10.0-windows/Vmianqian.dll differ diff --git a/obj/Debug/net10.0-windows/Vmianqian.pdb b/obj/Debug/net10.0-windows/Vmianqian.pdb index 3c7f8b9..77914a5 100644 Binary files a/obj/Debug/net10.0-windows/Vmianqian.pdb and b/obj/Debug/net10.0-windows/Vmianqian.pdb differ diff --git a/obj/Debug/net10.0-windows/apphost.exe b/obj/Debug/net10.0-windows/apphost.exe index d623a2a..00f9e68 100644 Binary files a/obj/Debug/net10.0-windows/apphost.exe and b/obj/Debug/net10.0-windows/apphost.exe differ diff --git a/obj/Debug/net10.0-windows/ref/Vmianqian.dll b/obj/Debug/net10.0-windows/ref/Vmianqian.dll index a94f0f6..457c6e1 100644 Binary files a/obj/Debug/net10.0-windows/ref/Vmianqian.dll and b/obj/Debug/net10.0-windows/ref/Vmianqian.dll differ diff --git a/obj/Debug/net10.0-windows/refint/Vmianqian.dll b/obj/Debug/net10.0-windows/refint/Vmianqian.dll index a94f0f6..457c6e1 100644 Binary files a/obj/Debug/net10.0-windows/refint/Vmianqian.dll and b/obj/Debug/net10.0-windows/refint/Vmianqian.dll differ diff --git a/obj/Vmianqian.csproj.nuget.dgspec.json b/obj/Vmianqian.csproj.nuget.dgspec.json index 37c4904..9c05c1f 100644 --- a/obj/Vmianqian.csproj.nuget.dgspec.json +++ b/obj/Vmianqian.csproj.nuget.dgspec.json @@ -74,7 +74,7 @@ "Microsoft.NETCore.App": { "privateAssets": "all" }, - "Microsoft.WindowsDesktop.App.WindowsForms": { + "Microsoft.WindowsDesktop.App": { "privateAssets": "none" } }, diff --git a/obj/project.assets.json b/obj/project.assets.json index ff79bf7..776a7ce 100644 --- a/obj/project.assets.json +++ b/obj/project.assets.json @@ -210,11 +210,11 @@ "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "E:\\Demos\\DemoOwns\\C\\VmianqianC\\Vmianqian.csproj", + "projectUniqueName": "e:\\Demos\\DemoOwns\\C\\VmianqianC\\Vmianqian.csproj", "projectName": "Vmianqian", - "projectPath": "E:\\Demos\\DemoOwns\\C\\VmianqianC\\Vmianqian.csproj", + "projectPath": "e:\\Demos\\DemoOwns\\C\\VmianqianC\\Vmianqian.csproj", "packagesPath": "C:\\Users\\heros\\.nuget\\packages\\", - "outputPath": "E:\\Demos\\DemoOwns\\C\\VmianqianC\\obj\\", + "outputPath": "e:\\Demos\\DemoOwns\\C\\VmianqianC\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "D:\\Softwares\\Microsoft\\VisualStudio\\Shared\\NuGetPackages" @@ -277,7 +277,7 @@ "Microsoft.NETCore.App": { "privateAssets": "all" }, - "Microsoft.WindowsDesktop.App.WindowsForms": { + "Microsoft.WindowsDesktop.App": { "privateAssets": "none" } }, diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache index b58b11f..5777e2c 100644 --- a/obj/project.nuget.cache +++ b/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "JL2C2PQV5/Y=", + "dgSpecHash": "DphbmbH3VSw=", "success": true, "projectFilePath": "E:\\Demos\\DemoOwns\\C\\VmianqianC\\Vmianqian.csproj", "expectedPackageFiles": [ diff --git a/obj/project.packagespec.json b/obj/project.packagespec.json new file mode 100644 index 0000000..34ff464 --- /dev/null +++ b/obj/project.packagespec.json @@ -0,0 +1 @@ +"restore":{"projectUniqueName":"e:\\Demos\\DemoOwns\\C\\VmianqianC\\Vmianqian.csproj","projectName":"Vmianqian","projectPath":"e:\\Demos\\DemoOwns\\C\\VmianqianC\\Vmianqian.csproj","packagesPath":"","outputPath":"e:\\Demos\\DemoOwns\\C\\VmianqianC\\obj\\","projectStyle":"PackageReference","fallbackFolders":["D:\\Softwares\\Microsoft\\VisualStudio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net10.0-windows"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net10.0-windows7.0":{"targetAlias":"net10.0-windows","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"all"},"SdkAnalysisLevel":"10.0.200"}"frameworks":{"net10.0-windows7.0":{"targetAlias":"net10.0-windows","dependencies":{"AntdUI":{"target":"Package","version":"[2.3.10, )"},"MailKit":{"target":"Package","version":"[4.16.0, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"},"Microsoft.WindowsDesktop.App":{"privateAssets":"none"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\10.0.201/PortableRuntimeIdentifierGraph.json","packagesToPrune":{"Microsoft.CSharp":"(,4.7.32767]","Microsoft.VisualBasic":"(,10.4.32767]","Microsoft.Win32.Primitives":"(,4.3.32767]","Microsoft.Win32.Registry":"(,5.0.32767]","Microsoft.Win32.Registry.AccessControl":"(,10.0.32767]","Microsoft.Win32.SystemEvents":"(,10.0.32767]","runtime.any.System.Collections":"(,4.3.32767]","runtime.any.System.Diagnostics.Tools":"(,4.3.32767]","runtime.any.System.Diagnostics.Tracing":"(,4.3.32767]","runtime.any.System.Globalization":"(,4.3.32767]","runtime.any.System.Globalization.Calendars":"(,4.3.32767]","runtime.any.System.IO":"(,4.3.32767]","runtime.any.System.Reflection":"(,4.3.32767]","runtime.any.System.Reflection.Extensions":"(,4.3.32767]","runtime.any.System.Reflection.Primitives":"(,4.3.32767]","runtime.any.System.Resources.ResourceManager":"(,4.3.32767]","runtime.any.System.Runtime":"(,4.3.32767]","runtime.any.System.Runtime.Handles":"(,4.3.32767]","runtime.any.System.Runtime.InteropServices":"(,4.3.32767]","runtime.any.System.Text.Encoding":"(,4.3.32767]","runtime.any.System.Text.Encoding.Extensions":"(,4.3.32767]","runtime.any.System.Threading.Tasks":"(,4.3.32767]","runtime.any.System.Threading.Timer":"(,4.3.32767]","runtime.aot.System.Collections":"(,4.3.32767]","runtime.aot.System.Diagnostics.Tools":"(,4.3.32767]","runtime.aot.System.Diagnostics.Tracing":"(,4.3.32767]","runtime.aot.System.Globalization":"(,4.3.32767]","runtime.aot.System.Globalization.Calendars":"(,4.3.32767]","runtime.aot.System.IO":"(,4.3.32767]","runtime.aot.System.Reflection":"(,4.3.32767]","runtime.aot.System.Reflection.Extensions":"(,4.3.32767]","runtime.aot.System.Reflection.Primitives":"(,4.3.32767]","runtime.aot.System.Resources.ResourceManager":"(,4.3.32767]","runtime.aot.System.Runtime":"(,4.3.32767]","runtime.aot.System.Runtime.Handles":"(,4.3.32767]","runtime.aot.System.Runtime.InteropServices":"(,4.3.32767]","runtime.aot.System.Text.Encoding":"(,4.3.32767]","runtime.aot.System.Text.Encoding.Extensions":"(,4.3.32767]","runtime.aot.System.Threading.Tasks":"(,4.3.32767]","runtime.aot.System.Threading.Timer":"(,4.3.32767]","runtime.debian.8-x64.runtime.native.System":"(,4.3.32767]","runtime.debian.8-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.debian.8-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.debian.8-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.debian.8-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.debian.9-x64.runtime.native.System":"(,4.3.32767]","runtime.debian.9-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.debian.9-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.debian.9-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.fedora.23-x64.runtime.native.System":"(,4.3.32767]","runtime.fedora.23-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.fedora.23-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.fedora.23-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.fedora.23-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.fedora.24-x64.runtime.native.System":"(,4.3.32767]","runtime.fedora.24-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.fedora.24-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.fedora.24-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.fedora.24-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.fedora.27-x64.runtime.native.System":"(,4.3.32767]","runtime.fedora.27-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.fedora.27-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.fedora.27-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.fedora.28-x64.runtime.native.System":"(,4.3.32767]","runtime.fedora.28-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.fedora.28-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.fedora.28-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.opensuse.13.2-x64.runtime.native.System":"(,4.3.32767]","runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.opensuse.13.2-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.opensuse.13.2-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.opensuse.42.1-x64.runtime.native.System":"(,4.3.32767]","runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.opensuse.42.1-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.opensuse.42.1-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.opensuse.42.3-x64.runtime.native.System":"(,4.3.32767]","runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.opensuse.42.3-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.opensuse.42.3-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.osx.10.10-x64.runtime.native.System":"(,4.3.32767]","runtime.osx.10.10-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.osx.10.10-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.osx.10.10-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple":"(,4.3.32767]","runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.rhel.7-x64.runtime.native.System":"(,4.3.32767]","runtime.rhel.7-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.rhel.7-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.rhel.7-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.rhel.7-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.ubuntu.14.04-x64.runtime.native.System":"(,4.3.32767]","runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.ubuntu.16.04-x64.runtime.native.System":"(,4.3.32767]","runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.ubuntu.16.10-x64.runtime.native.System":"(,4.3.32767]","runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography":"(,4.3.32767]","runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl":"(,4.3.32767]","runtime.ubuntu.18.04-x64.runtime.native.System":"(,4.3.32767]","runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http":"(,4.3.32767]","runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security":"(,4.3.32767]","runtime.unix.Microsoft.Win32.Primitives":"(,4.3.32767]","runtime.unix.System.Console":"(,4.3.32767]","runtime.unix.System.Diagnostics.Debug":"(,4.3.32767]","runtime.unix.System.IO.FileSystem":"(,4.3.32767]","runtime.unix.System.Net.Primitives":"(,4.3.32767]","runtime.unix.System.Net.Sockets":"(,4.3.32767]","runtime.unix.System.Private.Uri":"(,4.3.32767]","runtime.unix.System.Runtime.Extensions":"(,4.3.32767]","runtime.win.Microsoft.Win32.Primitives":"(,4.3.32767]","runtime.win.System.Console":"(,4.3.32767]","runtime.win.System.Diagnostics.Debug":"(,4.3.32767]","runtime.win.System.IO.FileSystem":"(,4.3.32767]","runtime.win.System.Net.Primitives":"(,4.3.32767]","runtime.win.System.Net.Sockets":"(,4.3.32767]","runtime.win.System.Runtime.Extensions":"(,4.3.32767]","runtime.win10-arm-aot.runtime.native.System.IO.Compression":"(,4.0.32767]","runtime.win10-arm64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.win10-x64-aot.runtime.native.System.IO.Compression":"(,4.0.32767]","runtime.win10-x86-aot.runtime.native.System.IO.Compression":"(,4.0.32767]","runtime.win7-x64.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.win7-x86.runtime.native.System.IO.Compression":"(,4.3.32767]","runtime.win7.System.Private.Uri":"(,4.3.32767]","runtime.win8-arm.runtime.native.System.IO.Compression":"(,4.3.32767]","System.AppContext":"(,4.3.32767]","System.Buffers":"(,5.0.32767]","System.CodeDom":"(,10.0.32767]","System.Collections":"(,4.3.32767]","System.Collections.Concurrent":"(,4.3.32767]","System.Collections.Immutable":"(,10.0.32767]","System.Collections.NonGeneric":"(,4.3.32767]","System.Collections.Specialized":"(,4.3.32767]","System.ComponentModel":"(,4.3.32767]","System.ComponentModel.Annotations":"(,4.3.32767]","System.ComponentModel.EventBasedAsync":"(,4.3.32767]","System.ComponentModel.Primitives":"(,4.3.32767]","System.ComponentModel.TypeConverter":"(,4.3.32767]","System.Configuration.ConfigurationManager":"(,10.0.32767]","System.Console":"(,4.3.32767]","System.Data.Common":"(,4.3.32767]","System.Data.DataSetExtensions":"(,4.4.32767]","System.Diagnostics.Contracts":"(,4.3.32767]","System.Diagnostics.Debug":"(,4.3.32767]","System.Diagnostics.DiagnosticSource":"(,10.0.32767]","System.Diagnostics.EventLog":"(,10.0.32767]","System.Diagnostics.FileVersionInfo":"(,4.3.32767]","System.Diagnostics.PerformanceCounter":"(,10.0.32767]","System.Diagnostics.Process":"(,4.3.32767]","System.Diagnostics.StackTrace":"(,4.3.32767]","System.Diagnostics.TextWriterTraceListener":"(,4.3.32767]","System.Diagnostics.Tools":"(,4.3.32767]","System.Diagnostics.TraceSource":"(,4.3.32767]","System.Diagnostics.Tracing":"(,4.3.32767]","System.DirectoryServices":"(,10.0.32767]","System.Drawing.Common":"(,10.0.32767]","System.Drawing.Primitives":"(,4.3.32767]","System.Dynamic.Runtime":"(,4.3.32767]","System.Formats.Asn1":"(,10.0.32767]","System.Formats.Nrbf":"(,10.0.32767]","System.Formats.Tar":"(,10.0.32767]","System.Globalization":"(,4.3.32767]","System.Globalization.Calendars":"(,4.3.32767]","System.Globalization.Extensions":"(,4.3.32767]","System.IO":"(,4.3.32767]","System.IO.Compression":"(,4.3.32767]","System.IO.Compression.ZipFile":"(,4.3.32767]","System.IO.FileSystem":"(,4.3.32767]","System.IO.FileSystem.AccessControl":"(,4.4.32767]","System.IO.FileSystem.DriveInfo":"(,4.3.32767]","System.IO.FileSystem.Primitives":"(,4.3.32767]","System.IO.FileSystem.Watcher":"(,4.3.32767]","System.IO.IsolatedStorage":"(,4.3.32767]","System.IO.MemoryMappedFiles":"(,4.3.32767]","System.IO.Packaging":"(,10.0.32767]","System.IO.Pipelines":"(,10.0.32767]","System.IO.Pipes":"(,4.3.32767]","System.IO.Pipes.AccessControl":"(,5.0.32767]","System.IO.UnmanagedMemoryStream":"(,4.3.32767]","System.Linq":"(,4.3.32767]","System.Linq.AsyncEnumerable":"(,10.0.32767]","System.Linq.Expressions":"(,4.3.32767]","System.Linq.Parallel":"(,4.3.32767]","System.Linq.Queryable":"(,4.3.32767]","System.Memory":"(,5.0.32767]","System.Net.Http":"(,4.3.32767]","System.Net.Http.Json":"(,10.0.32767]","System.Net.NameResolution":"(,4.3.32767]","System.Net.NetworkInformation":"(,4.3.32767]","System.Net.Ping":"(,4.3.32767]","System.Net.Primitives":"(,4.3.32767]","System.Net.Requests":"(,4.3.32767]","System.Net.Security":"(,4.3.32767]","System.Net.ServerSentEvents":"(,10.0.32767]","System.Net.Sockets":"(,4.3.32767]","System.Net.WebHeaderCollection":"(,4.3.32767]","System.Net.WebSockets":"(,4.3.32767]","System.Net.WebSockets.Client":"(,4.3.32767]","System.Numerics.Vectors":"(,5.0.32767]","System.ObjectModel":"(,4.3.32767]","System.Private.DataContractSerialization":"(,4.3.32767]","System.Private.Uri":"(,4.3.32767]","System.Reflection":"(,4.3.32767]","System.Reflection.DispatchProxy":"(,6.0.32767]","System.Reflection.Emit":"(,4.7.32767]","System.Reflection.Emit.ILGeneration":"(,4.7.32767]","System.Reflection.Emit.Lightweight":"(,4.7.32767]","System.Reflection.Extensions":"(,4.3.32767]","System.Reflection.Metadata":"(,10.0.32767]","System.Reflection.Primitives":"(,4.3.32767]","System.Reflection.TypeExtensions":"(,4.3.32767]","System.Resources.Extensions":"(,10.0.32767]","System.Resources.Reader":"(,4.3.32767]","System.Resources.ResourceManager":"(,4.3.32767]","System.Resources.Writer":"(,4.3.32767]","System.Runtime":"(,4.3.32767]","System.Runtime.CompilerServices.Unsafe":"(,7.0.32767]","System.Runtime.CompilerServices.VisualC":"(,4.3.32767]","System.Runtime.Extensions":"(,4.3.32767]","System.Runtime.Handles":"(,4.3.32767]","System.Runtime.InteropServices":"(,4.3.32767]","System.Runtime.InteropServices.RuntimeInformation":"(,4.3.32767]","System.Runtime.Loader":"(,4.3.32767]","System.Runtime.Numerics":"(,4.3.32767]","System.Runtime.Serialization.Formatters":"(,4.3.32767]","System.Runtime.Serialization.Json":"(,4.3.32767]","System.Runtime.Serialization.Primitives":"(,4.3.32767]","System.Runtime.Serialization.Xml":"(,4.3.32767]","System.Security.AccessControl":"(,6.0.32767]","System.Security.Claims":"(,4.3.32767]","System.Security.Cryptography.Algorithms":"(,4.3.32767]","System.Security.Cryptography.Cng":"(,5.0.32767]","System.Security.Cryptography.Csp":"(,4.3.32767]","System.Security.Cryptography.Encoding":"(,4.3.32767]","System.Security.Cryptography.OpenSsl":"(,5.0.32767]","System.Security.Cryptography.Pkcs":"(,10.0.32767]","System.Security.Cryptography.Primitives":"(,4.3.32767]","System.Security.Cryptography.ProtectedData":"(,10.0.32767]","System.Security.Cryptography.X509Certificates":"(,4.3.32767]","System.Security.Cryptography.Xml":"(,10.0.32767]","System.Security.Permissions":"(,10.0.32767]","System.Security.Principal":"(,4.3.32767]","System.Security.Principal.Windows":"(,5.0.32767]","System.Security.SecureString":"(,4.3.32767]","System.Text.Encoding":"(,4.3.32767]","System.Text.Encoding.CodePages":"(,10.0.32767]","System.Text.Encoding.Extensions":"(,4.3.32767]","System.Text.Encodings.Web":"(,10.0.32767]","System.Text.Json":"(,10.0.32767]","System.Text.RegularExpressions":"(,4.3.32767]","System.Threading":"(,4.3.32767]","System.Threading.AccessControl":"(,10.0.32767]","System.Threading.Channels":"(,10.0.32767]","System.Threading.Overlapped":"(,4.3.32767]","System.Threading.Tasks":"(,4.3.32767]","System.Threading.Tasks.Dataflow":"(,10.0.32767]","System.Threading.Tasks.Extensions":"(,5.0.32767]","System.Threading.Tasks.Parallel":"(,4.3.32767]","System.Threading.Thread":"(,4.3.32767]","System.Threading.ThreadPool":"(,4.3.32767]","System.Threading.Timer":"(,4.3.32767]","System.ValueTuple":"(,4.5.32767]","System.Windows.Extensions":"(,10.0.32767]","System.Xml.ReaderWriter":"(,4.3.32767]","System.Xml.XDocument":"(,4.3.32767]","System.Xml.XmlDocument":"(,4.3.32767]","System.Xml.XmlSerializer":"(,4.3.32767]","System.Xml.XPath":"(,4.3.32767]","System.Xml.XPath.XDocument":"(,5.0.32767]"}}} \ No newline at end of file diff --git a/obj/rider.project.restore.info b/obj/rider.project.restore.info new file mode 100644 index 0000000..e2d718a --- /dev/null +++ b/obj/rider.project.restore.info @@ -0,0 +1 @@ +17773696795904908 \ No newline at end of file