Initial version
This commit is contained in:
107
Analyzer/AboutBox.cs
Normal file
107
Analyzer/AboutBox.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace EonaCat.HID.Analyzer
|
||||
{
|
||||
// This file is part of the EonaCat project(s) which is released under the Apache License.
|
||||
// See the LICENSE file or go to https://EonaCat.com/license for full license details.
|
||||
|
||||
internal partial class AboutBox : Form
|
||||
{
|
||||
public AboutBox()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.Text = String.Format("About {0}", AssemblyTitle);
|
||||
this.labelProductName.Text = AssemblyProduct;
|
||||
this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
|
||||
this.labelCopyright.Text = AssemblyCopyright;
|
||||
this.labelCompanyName.Text = AssemblyCompany;
|
||||
this.linkLabelAboutUrl.Text = "";
|
||||
this.textBoxDescription.Text = AssemblyDescription;
|
||||
}
|
||||
|
||||
private void LinkLabelAboutUrl_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start(linkLabelAboutUrl.Text);
|
||||
}
|
||||
|
||||
public string AssemblyTitle
|
||||
{
|
||||
get
|
||||
{
|
||||
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
|
||||
if (attributes.Length > 0)
|
||||
{
|
||||
AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
|
||||
if (titleAttribute.Title != "")
|
||||
{
|
||||
return titleAttribute.Title;
|
||||
}
|
||||
}
|
||||
return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
|
||||
}
|
||||
}
|
||||
|
||||
public string AssemblyVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public string AssemblyDescription
|
||||
{
|
||||
get
|
||||
{
|
||||
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
|
||||
if (attributes.Length == 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
return ((AssemblyDescriptionAttribute)attributes[0]).Description;
|
||||
}
|
||||
}
|
||||
|
||||
public string AssemblyProduct
|
||||
{
|
||||
get
|
||||
{
|
||||
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
|
||||
if (attributes.Length == 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
return ((AssemblyProductAttribute)attributes[0]).Product;
|
||||
}
|
||||
}
|
||||
|
||||
public string AssemblyCopyright
|
||||
{
|
||||
get
|
||||
{
|
||||
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
|
||||
if (attributes.Length == 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
|
||||
}
|
||||
}
|
||||
|
||||
public string AssemblyCompany
|
||||
{
|
||||
get
|
||||
{
|
||||
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
|
||||
if (attributes.Length == 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
return ((AssemblyCompanyAttribute)attributes[0]).Company;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
203
Analyzer/AboutBox.designer.cs
generated
Normal file
203
Analyzer/AboutBox.designer.cs
generated
Normal file
@@ -0,0 +1,203 @@
|
||||
namespace EonaCat.HID.Analyzer
|
||||
{
|
||||
partial class AboutBox
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox));
|
||||
this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.logoPictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.labelProductName = new System.Windows.Forms.Label();
|
||||
this.labelVersion = new System.Windows.Forms.Label();
|
||||
this.labelCopyright = new System.Windows.Forms.Label();
|
||||
this.labelCompanyName = new System.Windows.Forms.Label();
|
||||
this.textBoxDescription = new System.Windows.Forms.TextBox();
|
||||
this.okButton = new System.Windows.Forms.Button();
|
||||
this.linkLabelAboutUrl = new System.Windows.Forms.LinkLabel();
|
||||
this.tableLayoutPanel.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tableLayoutPanel
|
||||
//
|
||||
this.tableLayoutPanel.ColumnCount = 2;
|
||||
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F));
|
||||
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F));
|
||||
this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
|
||||
this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
|
||||
this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
|
||||
this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
|
||||
this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
|
||||
this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 5);
|
||||
this.tableLayoutPanel.Controls.Add(this.okButton, 1, 6);
|
||||
this.tableLayoutPanel.Controls.Add(this.linkLabelAboutUrl, 1, 4);
|
||||
this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel.Location = new System.Drawing.Point(9, 9);
|
||||
this.tableLayoutPanel.Name = "tableLayoutPanel";
|
||||
this.tableLayoutPanel.RowCount = 7;
|
||||
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40F));
|
||||
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
|
||||
this.tableLayoutPanel.Size = new System.Drawing.Size(417, 265);
|
||||
this.tableLayoutPanel.TabIndex = 0;
|
||||
//
|
||||
// logoPictureBox
|
||||
//
|
||||
this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image")));
|
||||
this.logoPictureBox.Location = new System.Drawing.Point(3, 3);
|
||||
this.logoPictureBox.Name = "logoPictureBox";
|
||||
this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 7);
|
||||
this.logoPictureBox.Size = new System.Drawing.Size(131, 259);
|
||||
this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.logoPictureBox.TabIndex = 12;
|
||||
this.logoPictureBox.TabStop = false;
|
||||
//
|
||||
// labelProductName
|
||||
//
|
||||
this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelProductName.Location = new System.Drawing.Point(143, 0);
|
||||
this.labelProductName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
|
||||
this.labelProductName.MaximumSize = new System.Drawing.Size(0, 17);
|
||||
this.labelProductName.Name = "labelProductName";
|
||||
this.labelProductName.Size = new System.Drawing.Size(271, 17);
|
||||
this.labelProductName.TabIndex = 19;
|
||||
this.labelProductName.Text = "Product Name";
|
||||
this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// labelVersion
|
||||
//
|
||||
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelVersion.Location = new System.Drawing.Point(143, 26);
|
||||
this.labelVersion.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
|
||||
this.labelVersion.MaximumSize = new System.Drawing.Size(0, 17);
|
||||
this.labelVersion.Name = "labelVersion";
|
||||
this.labelVersion.Size = new System.Drawing.Size(271, 17);
|
||||
this.labelVersion.TabIndex = 0;
|
||||
this.labelVersion.Text = "Version";
|
||||
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// labelCopyright
|
||||
//
|
||||
this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelCopyright.Location = new System.Drawing.Point(143, 52);
|
||||
this.labelCopyright.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
|
||||
this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 17);
|
||||
this.labelCopyright.Name = "labelCopyright";
|
||||
this.labelCopyright.Size = new System.Drawing.Size(271, 17);
|
||||
this.labelCopyright.TabIndex = 21;
|
||||
this.labelCopyright.Text = "Copyright";
|
||||
this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// labelCompanyName
|
||||
//
|
||||
this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelCompanyName.Location = new System.Drawing.Point(143, 78);
|
||||
this.labelCompanyName.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
|
||||
this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 17);
|
||||
this.labelCompanyName.Name = "labelCompanyName";
|
||||
this.labelCompanyName.Size = new System.Drawing.Size(271, 17);
|
||||
this.labelCompanyName.TabIndex = 22;
|
||||
this.labelCompanyName.Text = "Company Name";
|
||||
this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// textBoxDescription
|
||||
//
|
||||
this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textBoxDescription.Location = new System.Drawing.Point(143, 133);
|
||||
this.textBoxDescription.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3);
|
||||
this.textBoxDescription.Multiline = true;
|
||||
this.textBoxDescription.Name = "textBoxDescription";
|
||||
this.textBoxDescription.ReadOnly = true;
|
||||
this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
||||
this.textBoxDescription.Size = new System.Drawing.Size(271, 100);
|
||||
this.textBoxDescription.TabIndex = 23;
|
||||
this.textBoxDescription.TabStop = false;
|
||||
this.textBoxDescription.Text = "Description";
|
||||
//
|
||||
// okButton
|
||||
//
|
||||
this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.okButton.Location = new System.Drawing.Point(339, 239);
|
||||
this.okButton.Name = "okButton";
|
||||
this.okButton.Size = new System.Drawing.Size(75, 23);
|
||||
this.okButton.TabIndex = 24;
|
||||
this.okButton.Text = "&OK";
|
||||
//
|
||||
// linkLabelAboutUrl
|
||||
//
|
||||
this.linkLabelAboutUrl.AutoSize = true;
|
||||
this.linkLabelAboutUrl.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.linkLabelAboutUrl.Location = new System.Drawing.Point(143, 104);
|
||||
this.linkLabelAboutUrl.Margin = new System.Windows.Forms.Padding(6, 0, 3, 0);
|
||||
this.linkLabelAboutUrl.Name = "linkLabelAboutUrl";
|
||||
this.linkLabelAboutUrl.Size = new System.Drawing.Size(271, 26);
|
||||
this.linkLabelAboutUrl.TabIndex = 25;
|
||||
this.linkLabelAboutUrl.TabStop = true;
|
||||
this.linkLabelAboutUrl.Text = "About Url";
|
||||
this.linkLabelAboutUrl.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkLabelAboutUrl_LinkClicked);
|
||||
//
|
||||
// AboutBox
|
||||
//
|
||||
this.AcceptButton = this.okButton;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(435, 283);
|
||||
this.Controls.Add(this.tableLayoutPanel);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "AboutBox";
|
||||
this.Padding = new System.Windows.Forms.Padding(9);
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "AboutBox";
|
||||
this.tableLayoutPanel.ResumeLayout(false);
|
||||
this.tableLayoutPanel.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
|
||||
private System.Windows.Forms.PictureBox logoPictureBox;
|
||||
private System.Windows.Forms.Label labelProductName;
|
||||
private System.Windows.Forms.Label labelVersion;
|
||||
private System.Windows.Forms.Label labelCopyright;
|
||||
private System.Windows.Forms.Label labelCompanyName;
|
||||
private System.Windows.Forms.TextBox textBoxDescription;
|
||||
private System.Windows.Forms.Button okButton;
|
||||
private System.Windows.Forms.LinkLabel linkLabelAboutUrl;
|
||||
}
|
||||
}
|
1347
Analyzer/AboutBox.resx
Normal file
1347
Analyzer/AboutBox.resx
Normal file
File diff suppressed because it is too large
Load Diff
6
Analyzer/App.config
Normal file
6
Analyzer/App.config
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
</configuration>
|
115
Analyzer/EonaCat.HID.Analyzer.csproj
Normal file
115
Analyzer/EonaCat.HID.Analyzer.csproj
Normal file
@@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{61994020-DB89-4621-BA4B-7347A2142CFF}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>EonaCat.HID</RootNamespace>
|
||||
<AssemblyName>EonaCat HID Analyzer</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AboutBox.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="AboutBox.designer.cs">
|
||||
<DependentUpon>AboutBox.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="AboutBox.resx">
|
||||
<DependentUpon>AboutBox.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="icon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EonaCat.HID\EonaCat.HID.csproj">
|
||||
<Project>{00403bd6-7a26-4971-29d3-8a7849aac770}</Project>
|
||||
<Name>EonaCat.HID</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
485
Analyzer/MainForm.cs
Normal file
485
Analyzer/MainForm.cs
Normal file
@@ -0,0 +1,485 @@
|
||||
using EonaCat.HID.EventArguments;
|
||||
using EonaCat.HID.Helpers;
|
||||
using EonaCat.HID.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace EonaCat.HID.Analyzer
|
||||
{
|
||||
// This file is part of the EonaCat project(s) which is released under the Apache License.
|
||||
// See the LICENSE file or go to https://EonaCat.com/license for full license details.
|
||||
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
IHidManager _deviceManager;
|
||||
private IHid _device;
|
||||
private IEnumerable<IHid> _deviceList;
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
CreateDeviceManager();
|
||||
}
|
||||
|
||||
private void CreateDeviceManager()
|
||||
{
|
||||
_deviceManager = HidFactory.CreateDeviceManager();
|
||||
if (_deviceManager == null)
|
||||
{
|
||||
throw new Exception("Failed to create HID manager.");
|
||||
}
|
||||
|
||||
_deviceManager.OnDeviceInserted += Hid_Inserted;
|
||||
_deviceManager.OnDeviceRemoved += Hid_Removed;
|
||||
}
|
||||
|
||||
public void RefreshDevices(ushort? vendorId = null, ushort? productId = null)
|
||||
{
|
||||
_deviceList = _deviceManager.Enumerate(vendorId, productId);
|
||||
}
|
||||
|
||||
private void MainForm_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
rtbEventLog.Font = new Font("Consolas", 9);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void MainForm_Shown(object sender, System.EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
RefreshDevices();
|
||||
UpdateDeviceList();
|
||||
toolStripStatusLabel1.Text = "Please select device and click open to start.";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void AppendEventLog(string result, Color? color = null, bool appendNewLine = true)
|
||||
{
|
||||
var currentColor = color ?? Color.Black;
|
||||
if (appendNewLine)
|
||||
{
|
||||
result += Environment.NewLine;
|
||||
}
|
||||
|
||||
// update from UI thread
|
||||
Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
rtbEventLog.SelectionStart = rtbEventLog.TextLength;
|
||||
rtbEventLog.SelectionLength = 0;
|
||||
rtbEventLog.SelectionColor = currentColor;
|
||||
rtbEventLog.AppendText(result);
|
||||
|
||||
if (!rtbEventLog.Focused)
|
||||
{
|
||||
rtbEventLog.ScrollToCaret();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
private void UpdateDeviceList()
|
||||
{
|
||||
dataGridView1.SelectionChanged -= DataGridView1_SelectionChanged;
|
||||
dataGridView1.Rows.Clear();
|
||||
|
||||
for (int i = 0; i < _deviceList.Count(); i++)
|
||||
{
|
||||
IHid device = _deviceList.ElementAt(i);
|
||||
|
||||
var deviceName = "";
|
||||
var deviceManufacturer = "";
|
||||
var deviceSerialNumber = "";
|
||||
|
||||
deviceName = device.ProductName;
|
||||
deviceManufacturer = device.Manufacturer;
|
||||
deviceSerialNumber = device.SerialNumber;
|
||||
var isWritingSupported = device.IsWritingSupport;
|
||||
var isReadingSupported = device.IsReadingSupport;
|
||||
|
||||
var row = new string[]
|
||||
{
|
||||
(i + 1).ToString(),
|
||||
deviceName,
|
||||
deviceManufacturer,
|
||||
deviceSerialNumber,
|
||||
isReadingSupported.ToString(),
|
||||
isWritingSupported.ToString(),
|
||||
device.InputReportByteLength.ToString(),
|
||||
device.OutputReportByteLength.ToString(),
|
||||
device.FeatureReportByteLength.ToString(),
|
||||
$"Vendor:{device.VendorId:X4} Product:{device.ProductId:X4} Revision:{device.VendorId:X4}",
|
||||
device.DevicePath
|
||||
};
|
||||
|
||||
dataGridView1.Rows.Add(row);
|
||||
}
|
||||
dataGridView1.SelectionChanged += DataGridView1_SelectionChanged;
|
||||
DataGridView1_SelectionChanged(this, null);
|
||||
}
|
||||
|
||||
private void PopupException(string message, string caption = "Exception")
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
MessageBox.Show(message, caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}));
|
||||
}
|
||||
|
||||
private void NewToolStripMenuItem_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
Process.Start(Assembly.GetExecutingAssembly().Location);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void ExitToolStripMenuItem_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void AboutToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
HelpToolStripButton_Click(sender, e);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void ToolStripButtonReload_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
RefreshDevices();
|
||||
UpdateDeviceList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void ToolStripButtonFilter_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
ushort? vid = null;
|
||||
ushort? pid = null;
|
||||
var str = toolStripTextBoxVidPid.Text.Split(':');
|
||||
if (!string.IsNullOrEmpty(toolStripTextBoxVidPid.Text))
|
||||
{
|
||||
vid = ushort.Parse(str[0], NumberStyles.AllowHexSpecifier);
|
||||
pid = ushort.Parse(str[1], NumberStyles.AllowHexSpecifier);
|
||||
}
|
||||
RefreshDevices(vid, pid);
|
||||
UpdateDeviceList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void ToolStripButtonConnect_Click(object sender, EventArgs e)
|
||||
{
|
||||
ConnectToSelectedDeviceAsync().ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private async Task ConnectToSelectedDeviceAsync()
|
||||
{
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
try
|
||||
{
|
||||
_device = _deviceList.ElementAt(dataGridView1.SelectedRows[0].Index);
|
||||
if (_device == null)
|
||||
{
|
||||
throw new Exception("Could not find Hid USB Device with specified VID PID");
|
||||
}
|
||||
|
||||
var device = _device;
|
||||
device.OnDataReceived -= OnDataReceived;
|
||||
device.OnDataReceived += OnDataReceived;
|
||||
device.OnError -= OnError;
|
||||
device.OnError += OnError;
|
||||
device.Open();
|
||||
|
||||
AppendEventLog($"Connected to device {_device.ProductName}", Color.Green);
|
||||
AppendEventLog($"Started listening to device {_device.ProductName}", Color.Green);
|
||||
await device.StartListeningAsync(default).ConfigureAwait(false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void OnError(object sender, HidErrorEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var str = $"Device error for {e.Device.ProductName} => {e.Exception.Message}";
|
||||
AppendEventLog(str, Color.Red);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDataReceived(object sender, HidDataReceivedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var str = $"Rx Input Report from device {e.Device.ProductName} => {BitConverter.ToString(e.Report.Data)}";
|
||||
AppendEventLog(str, Color.Blue);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void Hid_Removed(object sender, HidEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var str = string.Format("Removed Device {0} --> VID {1:X4}, PID {2:X4}", e.Device.ProductName, e.Device.VendorId, e.Device.ProductId);
|
||||
AppendEventLog(str);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void Hid_Inserted(object sender, HidEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var str = string.Format("Inserted Device {0} --> VID {1:X4}, PID {2:X4}", e.Device.ProductName, e.Device.VendorId, e.Device.ProductId);
|
||||
AppendEventLog(str, Color.Orange);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void ToolStripButtonClear_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
rtbEventLog.Clear();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void HelpToolStripButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var aboutbox = new AboutBox();
|
||||
aboutbox.ShowDialog();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private async void ButtonReadInput_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_device == null)
|
||||
{
|
||||
AppendEventLog("No device connected. Please select a device and click 'Connect'.", Color.Red);
|
||||
return;
|
||||
}
|
||||
|
||||
var len = (int)_device.InputReportByteLength;
|
||||
if (len <= 0)
|
||||
{
|
||||
throw new Exception("This device has no Input Report support!");
|
||||
}
|
||||
|
||||
var report = await _device.ReadInputReportAsync();
|
||||
if (report == null || report.Data.Length < 2)
|
||||
{
|
||||
AppendEventLog("Received report is null or is too short to contain a valid Report ID.", Color.Red);
|
||||
return;
|
||||
}
|
||||
|
||||
var str = string.Format("Rx Input Report [{0}] <-- {1}", report.Data.Length, BitConverter.ToString(report.Data));
|
||||
AppendEventLog(str, Color.Blue);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private async void ButtonWriteOutput_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_device == null)
|
||||
{
|
||||
AppendEventLog("No device connected. Please select a device and click 'Connect'.", Color.Red);
|
||||
return;
|
||||
}
|
||||
|
||||
byte hidReportId = byte.Parse(comboBoxReportId.Text.Trim());
|
||||
byte[] dataBuffer = ByteHelper.HexStringToByteArray(textBoxWriteData.Text.Trim());
|
||||
|
||||
if (_device.OutputReportByteLength <= 0)
|
||||
{
|
||||
throw new Exception("This device has no Output Report support!");
|
||||
}
|
||||
if (dataBuffer.Length > _device.OutputReportByteLength - 1)
|
||||
{
|
||||
throw new Exception("Output Report Length Exceeds allowed size.");
|
||||
}
|
||||
|
||||
var outputReport = new HidReport(hidReportId, dataBuffer);
|
||||
|
||||
await _device.WriteOutputReportAsync(outputReport);
|
||||
|
||||
AppendEventLog($"Output report sent (Report ID: 0x{hidReportId:X2}): {ByteHelper.ByteArrayToHexString(dataBuffer)}", Color.DarkGreen);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException("Error sending output report: " + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private async void ButtonReadFeature_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var hidReportId = byte.Parse(comboBoxReportId.Text);
|
||||
var len = _device.FeatureReportByteLength;
|
||||
if (len <= 0)
|
||||
{
|
||||
throw new Exception("This device has no Feature Report support!");
|
||||
}
|
||||
|
||||
HidReport report = await _device.GetFeatureReportAsync(hidReportId);
|
||||
if (report == null || report.Data == null || report.Data.Length < 1)
|
||||
{
|
||||
AppendEventLog("Received feature report is null or too short.", Color.Red);
|
||||
return;
|
||||
}
|
||||
|
||||
string hexString = $"{report.ReportId:X2} - {ByteHelper.ByteArrayToHexString(report.Data)}";
|
||||
var str = $"Rx Feature Report [{report.Data.Length + 1}] <-- {hexString}";
|
||||
AppendEventLog(str, Color.Blue);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private async void ButtonWriteFeature_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!byte.TryParse(comboBoxReportId.Text, out var hidReportId))
|
||||
{
|
||||
throw new FormatException("Invalid Report ID format.");
|
||||
}
|
||||
|
||||
var data = ByteHelper.HexStringToByteArray(textBoxWriteData.Text);
|
||||
|
||||
int maxLen = _device.FeatureReportByteLength - 1;
|
||||
if (data.Length > maxLen)
|
||||
{
|
||||
throw new InvalidOperationException($"Feature report data length exceeds max allowed ({maxLen}).");
|
||||
}
|
||||
|
||||
var reportData = new byte[data.Length];
|
||||
Array.Copy(data, reportData, data.Length);
|
||||
|
||||
var hidReport = new HidReport(hidReportId, reportData);
|
||||
|
||||
await _device.SendFeatureReportAsync(hidReport);
|
||||
|
||||
string logMsg = $"Tx Feature Report [{data.Length + 1}] --> {ByteHelper.ByteArrayToHexString(new[] { hidReportId }.Concat(reportData).ToArray())}";
|
||||
AppendEventLog(logMsg, Color.DarkGreen);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void DataGridView1_SelectionChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (dataGridView1.SelectedRows.Count <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var index = dataGridView1.SelectedRows[0].Index;
|
||||
|
||||
var info = _deviceList.ElementAt(index);
|
||||
toolStripTextBoxVidPid.Text = string.Format("{0:X4}:{1:X4}", info.VendorId, info.ProductId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PopupException(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void dataGridView1_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
ConnectToSelectedDeviceAsync().ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private void toolStripTextBoxVidPid_Enter(object sender, EventArgs e)
|
||||
{
|
||||
ToolStripButtonFilter_Click(sender, e);
|
||||
}
|
||||
}
|
||||
}
|
4470
Analyzer/MainForm.resx
Normal file
4470
Analyzer/MainForm.resx
Normal file
File diff suppressed because it is too large
Load Diff
21
Analyzer/Program.cs
Normal file
21
Analyzer/Program.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace EonaCat.HID.Analyzer
|
||||
{
|
||||
// This file is part of the EonaCat project(s) which is released under the Apache License.
|
||||
// See the LICENSE file or go to https://EonaCat.com/license for full license details.
|
||||
internal static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
private static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new MainForm());
|
||||
}
|
||||
}
|
||||
}
|
35
Analyzer/Properties/AssemblyInfo.cs
Normal file
35
Analyzer/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("USB HID Analyzer")]
|
||||
[assembly: AssemblyDescription("HID Devices")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("EonaCat (Jeroen Saey)")]
|
||||
[assembly: AssemblyProduct("USB HID Analyzer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2024")]
|
||||
[assembly: AssemblyTrademark("EonaCat (Jeroen Saey)")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("185412ac-91cc-4e99-9a8e-dd2af6b817ba")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
63
Analyzer/Properties/Resources.Designer.cs
generated
Normal file
63
Analyzer/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace EonaCat.HID.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EonaCat.HID.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
117
Analyzer/Properties/Resources.resx
Normal file
117
Analyzer/Properties/Resources.resx
Normal file
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
26
Analyzer/Properties/Settings.Designer.cs
generated
Normal file
26
Analyzer/Properties/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace EonaCat.HID.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
7
Analyzer/Properties/Settings.settings
Normal file
7
Analyzer/Properties/Settings.settings
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
BIN
Analyzer/icon.ico
Normal file
BIN
Analyzer/icon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 248 KiB |
BIN
Analyzer/icons/clean.png
Normal file
BIN
Analyzer/icons/clean.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 784 B |
BIN
Analyzer/icons/device.png
Normal file
BIN
Analyzer/icons/device.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 679 B |
BIN
Analyzer/icons/filter.png
Normal file
BIN
Analyzer/icons/filter.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 453 B |
BIN
Analyzer/icons/info.png
Normal file
BIN
Analyzer/icons/info.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 516 B |
BIN
Analyzer/icons/refresh.png
Normal file
BIN
Analyzer/icons/refresh.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 754 B |
565
Analyzer/mainForm.Designer.cs
generated
Normal file
565
Analyzer/mainForm.Designer.cs
generated
Normal file
@@ -0,0 +1,565 @@
|
||||
namespace EonaCat.HID.Analyzer
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
this.textBoxWriteData = new System.Windows.Forms.TextBox();
|
||||
this.dataGridView1 = new System.Windows.Forms.DataGridView();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.toolStripButtonReload = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripButtonOpen = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripButtonClear = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripButtonFilter = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripTextBoxVidPid = new System.Windows.Forms.ToolStripTextBox();
|
||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.comboBoxReportId = new System.Windows.Forms.ComboBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.buttonWriteFeature = new System.Windows.Forms.Button();
|
||||
this.buttonReadFeature = new System.Windows.Forms.Button();
|
||||
this.buttonWriteOutput = new System.Windows.Forms.Button();
|
||||
this.buttonReadInput = new System.Windows.Forms.Button();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||
this.rtbEventLog = new System.Windows.Forms.RichTextBox();
|
||||
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
||||
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column9 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column10 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column11 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column8 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.groupBox3.SuspendLayout();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// textBoxWriteData
|
||||
//
|
||||
this.textBoxWriteData.Location = new System.Drawing.Point(104, 45);
|
||||
this.textBoxWriteData.Name = "textBoxWriteData";
|
||||
this.textBoxWriteData.Size = new System.Drawing.Size(192, 20);
|
||||
this.textBoxWriteData.TabIndex = 1;
|
||||
this.textBoxWriteData.Text = "02";
|
||||
//
|
||||
// dataGridView1
|
||||
//
|
||||
this.dataGridView1.AllowUserToAddRows = false;
|
||||
this.dataGridView1.AllowUserToDeleteRows = false;
|
||||
this.dataGridView1.BackgroundColor = System.Drawing.SystemColors.ButtonFace;
|
||||
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.Column1,
|
||||
this.Column9,
|
||||
this.Column10,
|
||||
this.Column11,
|
||||
this.Column6,
|
||||
this.Column3,
|
||||
this.Column7,
|
||||
this.Column4,
|
||||
this.Column5,
|
||||
this.Column2,
|
||||
this.Column8});
|
||||
this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.dataGridView1.Location = new System.Drawing.Point(3, 16);
|
||||
this.dataGridView1.MultiSelect = false;
|
||||
this.dataGridView1.Name = "dataGridView1";
|
||||
this.dataGridView1.ReadOnly = true;
|
||||
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.dataGridView1.Size = new System.Drawing.Size(822, 286);
|
||||
this.dataGridView1.TabIndex = 0;
|
||||
this.dataGridView1.SelectionChanged += new System.EventHandler(this.DataGridView1_SelectionChanged);
|
||||
this.dataGridView1.DoubleClick += new System.EventHandler(this.dataGridView1_DoubleClick);
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.toolStrip1, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.menuStrip1, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.groupBox1, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.groupBox2, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.groupBox3, 0, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.statusStrip1, 0, 5);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 6;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 89F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 48.18182F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 51.81818F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(834, 811);
|
||||
this.tableLayoutPanel1.TabIndex = 18;
|
||||
//
|
||||
// toolStrip1
|
||||
//
|
||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripSeparator,
|
||||
this.toolStripButtonReload,
|
||||
this.toolStripButtonOpen,
|
||||
this.toolStripButtonClear,
|
||||
this.toolStripButtonFilter,
|
||||
this.toolStripTextBoxVidPid});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 25);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(834, 25);
|
||||
this.toolStrip1.TabIndex = 1;
|
||||
this.toolStrip1.Text = "toolStrip1";
|
||||
//
|
||||
// toolStripSeparator
|
||||
//
|
||||
this.toolStripSeparator.Name = "toolStripSeparator";
|
||||
this.toolStripSeparator.Size = new System.Drawing.Size(6, 25);
|
||||
//
|
||||
// toolStripButtonReload
|
||||
//
|
||||
this.toolStripButtonReload.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonReload.Image")));
|
||||
this.toolStripButtonReload.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButtonReload.Name = "toolStripButtonReload";
|
||||
this.toolStripButtonReload.Size = new System.Drawing.Size(63, 22);
|
||||
this.toolStripButtonReload.Text = "Reload";
|
||||
this.toolStripButtonReload.Click += new System.EventHandler(this.ToolStripButtonReload_Click);
|
||||
//
|
||||
// toolStripButtonOpen
|
||||
//
|
||||
this.toolStripButtonOpen.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonOpen.Image")));
|
||||
this.toolStripButtonOpen.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButtonOpen.Name = "toolStripButtonOpen";
|
||||
this.toolStripButtonOpen.Size = new System.Drawing.Size(56, 22);
|
||||
this.toolStripButtonOpen.Text = "Open";
|
||||
this.toolStripButtonOpen.Click += new System.EventHandler(this.ToolStripButtonConnect_Click);
|
||||
//
|
||||
// toolStripButtonClear
|
||||
//
|
||||
this.toolStripButtonClear.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonClear.Image")));
|
||||
this.toolStripButtonClear.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButtonClear.Name = "toolStripButtonClear";
|
||||
this.toolStripButtonClear.Size = new System.Drawing.Size(54, 22);
|
||||
this.toolStripButtonClear.Text = "Clear";
|
||||
this.toolStripButtonClear.Click += new System.EventHandler(this.ToolStripButtonClear_Click);
|
||||
//
|
||||
// toolStripButtonFilter
|
||||
//
|
||||
this.toolStripButtonFilter.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
||||
this.toolStripButtonFilter.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonFilter.Image")));
|
||||
this.toolStripButtonFilter.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.toolStripButtonFilter.Name = "toolStripButtonFilter";
|
||||
this.toolStripButtonFilter.Size = new System.Drawing.Size(53, 22);
|
||||
this.toolStripButtonFilter.Text = "Filter";
|
||||
this.toolStripButtonFilter.Click += new System.EventHandler(this.ToolStripButtonFilter_Click);
|
||||
//
|
||||
// toolStripTextBoxVidPid
|
||||
//
|
||||
this.toolStripTextBoxVidPid.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
||||
this.toolStripTextBoxVidPid.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.toolStripTextBoxVidPid.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
this.toolStripTextBoxVidPid.Name = "toolStripTextBoxVidPid";
|
||||
this.toolStripTextBoxVidPid.Size = new System.Drawing.Size(100, 25);
|
||||
this.toolStripTextBoxVidPid.Text = "0483:0400";
|
||||
this.toolStripTextBoxVidPid.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.toolStripTextBoxVidPid.Enter += new System.EventHandler(this.toolStripTextBoxVidPid_Enter);
|
||||
//
|
||||
// menuStrip1
|
||||
//
|
||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.fileToolStripMenuItem,
|
||||
this.helpToolStripMenuItem});
|
||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.menuStrip1.Name = "menuStrip1";
|
||||
this.menuStrip1.Size = new System.Drawing.Size(834, 24);
|
||||
this.menuStrip1.TabIndex = 0;
|
||||
this.menuStrip1.Text = "menuStrip1";
|
||||
//
|
||||
// fileToolStripMenuItem
|
||||
//
|
||||
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.newToolStripMenuItem,
|
||||
this.exitToolStripMenuItem});
|
||||
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
||||
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||
this.fileToolStripMenuItem.Text = "&File";
|
||||
//
|
||||
// newToolStripMenuItem
|
||||
//
|
||||
this.newToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("newToolStripMenuItem.Image")));
|
||||
this.newToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.newToolStripMenuItem.Name = "newToolStripMenuItem";
|
||||
this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
|
||||
this.newToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
|
||||
this.newToolStripMenuItem.Text = "&New";
|
||||
this.newToolStripMenuItem.Click += new System.EventHandler(this.NewToolStripMenuItem_Click);
|
||||
//
|
||||
// exitToolStripMenuItem
|
||||
//
|
||||
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
|
||||
this.exitToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
|
||||
this.exitToolStripMenuItem.Text = "E&xit";
|
||||
this.exitToolStripMenuItem.Click += new System.EventHandler(this.ExitToolStripMenuItem_Click);
|
||||
//
|
||||
// helpToolStripMenuItem
|
||||
//
|
||||
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.aboutToolStripMenuItem});
|
||||
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
|
||||
this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
|
||||
this.helpToolStripMenuItem.Text = "&Help";
|
||||
//
|
||||
// aboutToolStripMenuItem
|
||||
//
|
||||
this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
|
||||
this.aboutToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
|
||||
this.aboutToolStripMenuItem.Text = "&About...";
|
||||
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.AboutToolStripMenuItem_Click);
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.comboBoxReportId);
|
||||
this.groupBox1.Controls.Add(this.label2);
|
||||
this.groupBox1.Controls.Add(this.label1);
|
||||
this.groupBox1.Controls.Add(this.buttonWriteFeature);
|
||||
this.groupBox1.Controls.Add(this.buttonReadFeature);
|
||||
this.groupBox1.Controls.Add(this.buttonWriteOutput);
|
||||
this.groupBox1.Controls.Add(this.buttonReadInput);
|
||||
this.groupBox1.Controls.Add(this.textBoxWriteData);
|
||||
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.groupBox1.Location = new System.Drawing.Point(3, 53);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(828, 83);
|
||||
this.groupBox1.TabIndex = 2;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Read/Write Operations";
|
||||
//
|
||||
// comboBoxReportId
|
||||
//
|
||||
this.comboBoxReportId.FormattingEnabled = true;
|
||||
this.comboBoxReportId.Items.AddRange(new object[] {
|
||||
"0",
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20"});
|
||||
this.comboBoxReportId.Location = new System.Drawing.Point(104, 19);
|
||||
this.comboBoxReportId.Name = "comboBoxReportId";
|
||||
this.comboBoxReportId.Size = new System.Drawing.Size(81, 21);
|
||||
this.comboBoxReportId.TabIndex = 0;
|
||||
this.comboBoxReportId.Text = "0";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(23, 22);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(75, 13);
|
||||
this.label2.TabIndex = 6;
|
||||
this.label2.Text = "Hid Report ID:";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(40, 48);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(58, 13);
|
||||
this.label1.TabIndex = 7;
|
||||
this.label1.Text = "Write Data";
|
||||
//
|
||||
// buttonWriteFeature
|
||||
//
|
||||
this.buttonWriteFeature.Location = new System.Drawing.Point(428, 43);
|
||||
this.buttonWriteFeature.Name = "buttonWriteFeature";
|
||||
this.buttonWriteFeature.Size = new System.Drawing.Size(120, 22);
|
||||
this.buttonWriteFeature.TabIndex = 5;
|
||||
this.buttonWriteFeature.Text = "Write Feature Report";
|
||||
this.buttonWriteFeature.UseVisualStyleBackColor = true;
|
||||
this.buttonWriteFeature.Click += new System.EventHandler(this.ButtonWriteFeature_Click);
|
||||
//
|
||||
// buttonReadFeature
|
||||
//
|
||||
this.buttonReadFeature.Location = new System.Drawing.Point(428, 17);
|
||||
this.buttonReadFeature.Name = "buttonReadFeature";
|
||||
this.buttonReadFeature.Size = new System.Drawing.Size(120, 22);
|
||||
this.buttonReadFeature.TabIndex = 4;
|
||||
this.buttonReadFeature.Text = "Read Feature Report";
|
||||
this.buttonReadFeature.UseVisualStyleBackColor = true;
|
||||
this.buttonReadFeature.Click += new System.EventHandler(this.ButtonReadFeature_Click);
|
||||
//
|
||||
// buttonWriteOutput
|
||||
//
|
||||
this.buttonWriteOutput.Location = new System.Drawing.Point(302, 43);
|
||||
this.buttonWriteOutput.Name = "buttonWriteOutput";
|
||||
this.buttonWriteOutput.Size = new System.Drawing.Size(120, 22);
|
||||
this.buttonWriteOutput.TabIndex = 3;
|
||||
this.buttonWriteOutput.Text = "Write Output Report";
|
||||
this.buttonWriteOutput.UseVisualStyleBackColor = true;
|
||||
this.buttonWriteOutput.Click += new System.EventHandler(this.ButtonWriteOutput_Click);
|
||||
//
|
||||
// buttonReadInput
|
||||
//
|
||||
this.buttonReadInput.Location = new System.Drawing.Point(302, 17);
|
||||
this.buttonReadInput.Name = "buttonReadInput";
|
||||
this.buttonReadInput.Size = new System.Drawing.Size(120, 22);
|
||||
this.buttonReadInput.TabIndex = 2;
|
||||
this.buttonReadInput.Text = "Read Input Report";
|
||||
this.buttonReadInput.UseVisualStyleBackColor = true;
|
||||
this.buttonReadInput.Click += new System.EventHandler(this.ButtonReadInput_Click);
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.dataGridView1);
|
||||
this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.groupBox2.Location = new System.Drawing.Point(3, 142);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(828, 305);
|
||||
this.groupBox2.TabIndex = 3;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "Devices";
|
||||
//
|
||||
// groupBox3
|
||||
//
|
||||
this.groupBox3.Controls.Add(this.rtbEventLog);
|
||||
this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.groupBox3.Location = new System.Drawing.Point(3, 453);
|
||||
this.groupBox3.Name = "groupBox3";
|
||||
this.groupBox3.Size = new System.Drawing.Size(828, 329);
|
||||
this.groupBox3.TabIndex = 4;
|
||||
this.groupBox3.TabStop = false;
|
||||
this.groupBox3.Text = "Log";
|
||||
//
|
||||
// rtbEventLog
|
||||
//
|
||||
this.rtbEventLog.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.rtbEventLog.Location = new System.Drawing.Point(3, 16);
|
||||
this.rtbEventLog.Name = "rtbEventLog";
|
||||
this.rtbEventLog.ReadOnly = true;
|
||||
this.rtbEventLog.Size = new System.Drawing.Size(822, 310);
|
||||
this.rtbEventLog.TabIndex = 0;
|
||||
this.rtbEventLog.Text = "";
|
||||
//
|
||||
// statusStrip1
|
||||
//
|
||||
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripStatusLabel1});
|
||||
this.statusStrip1.Location = new System.Drawing.Point(0, 789);
|
||||
this.statusStrip1.Name = "statusStrip1";
|
||||
this.statusStrip1.Size = new System.Drawing.Size(834, 22);
|
||||
this.statusStrip1.TabIndex = 5;
|
||||
this.statusStrip1.Text = "statusStrip1";
|
||||
//
|
||||
// toolStripStatusLabel1
|
||||
//
|
||||
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
|
||||
this.toolStripStatusLabel1.Size = new System.Drawing.Size(118, 17);
|
||||
this.toolStripStatusLabel1.Text = "toolStripStatusLabel1";
|
||||
//
|
||||
// Column1
|
||||
//
|
||||
this.Column1.HeaderText = "No";
|
||||
this.Column1.Name = "Column1";
|
||||
this.Column1.ReadOnly = true;
|
||||
this.Column1.Width = 87;
|
||||
//
|
||||
// Column9
|
||||
//
|
||||
this.Column9.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.Column9.HeaderText = "Name";
|
||||
this.Column9.Name = "Column9";
|
||||
this.Column9.ReadOnly = true;
|
||||
//
|
||||
// Column10
|
||||
//
|
||||
this.Column10.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.Column10.HeaderText = "Manufacturer";
|
||||
this.Column10.Name = "Column10";
|
||||
this.Column10.ReadOnly = true;
|
||||
//
|
||||
// Column11
|
||||
//
|
||||
this.Column11.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.Column11.HeaderText = "SerialNo";
|
||||
this.Column11.Name = "Column11";
|
||||
this.Column11.ReadOnly = true;
|
||||
//
|
||||
// Column6
|
||||
//
|
||||
this.Column6.HeaderText = "CanRead";
|
||||
this.Column6.Name = "Column6";
|
||||
this.Column6.ReadOnly = true;
|
||||
//
|
||||
// Column3
|
||||
//
|
||||
this.Column3.HeaderText = "CanWrite";
|
||||
this.Column3.Name = "Column3";
|
||||
this.Column3.ReadOnly = true;
|
||||
//
|
||||
// Column7
|
||||
//
|
||||
this.Column7.HeaderText = "InputReport";
|
||||
this.Column7.Name = "Column7";
|
||||
this.Column7.ReadOnly = true;
|
||||
this.Column7.Width = 86;
|
||||
//
|
||||
// Column4
|
||||
//
|
||||
this.Column4.HeaderText = "OutputReport";
|
||||
this.Column4.Name = "Column4";
|
||||
this.Column4.ReadOnly = true;
|
||||
this.Column4.Width = 87;
|
||||
//
|
||||
// Column5
|
||||
//
|
||||
this.Column5.HeaderText = "FeatureReport";
|
||||
this.Column5.Name = "Column5";
|
||||
this.Column5.ReadOnly = true;
|
||||
this.Column5.Width = 86;
|
||||
//
|
||||
// Column2
|
||||
//
|
||||
this.Column2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.Column2.HeaderText = "Info";
|
||||
this.Column2.Name = "Column2";
|
||||
this.Column2.ReadOnly = true;
|
||||
//
|
||||
// Column8
|
||||
//
|
||||
this.Column8.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.Column8.HeaderText = "DevicePath";
|
||||
this.Column8.Name = "Column8";
|
||||
this.Column8.ReadOnly = true;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(834, 811);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MainMenuStrip = this.menuStrip1;
|
||||
this.Name = "MainForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "EonaCat HID";
|
||||
this.Load += new System.EventHandler(this.MainForm_Load);
|
||||
this.Shown += new System.EventHandler(this.MainForm_Shown);
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.toolStrip1.ResumeLayout(false);
|
||||
this.toolStrip1.PerformLayout();
|
||||
this.menuStrip1.ResumeLayout(false);
|
||||
this.menuStrip1.PerformLayout();
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox3.ResumeLayout(false);
|
||||
this.statusStrip1.ResumeLayout(false);
|
||||
this.statusStrip1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.TextBox textBoxWriteData;
|
||||
private System.Windows.Forms.DataGridView dataGridView1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.MenuStrip menuStrip1;
|
||||
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
private System.Windows.Forms.GroupBox groupBox3;
|
||||
private System.Windows.Forms.StatusStrip statusStrip1;
|
||||
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
|
||||
private System.Windows.Forms.RichTextBox rtbEventLog;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButtonClear;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButtonOpen;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator;
|
||||
private System.Windows.Forms.Button buttonWriteFeature;
|
||||
private System.Windows.Forms.Button buttonReadFeature;
|
||||
private System.Windows.Forms.Button buttonWriteOutput;
|
||||
private System.Windows.Forms.Button buttonReadInput;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.ComboBox comboBoxReportId;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButtonReload;
|
||||
private System.Windows.Forms.ToolStripTextBox toolStripTextBoxVidPid;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButtonFilter;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column9;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column10;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column11;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column6;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column7;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column4;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column5;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column8;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user