Projektdateien hinzufügen.
This commit is contained in:
parent
e3dda28358
commit
951e6da8cd
25
PicoKeys.sln
Normal file
25
PicoKeys.sln
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.11.35312.102
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PicoKeys", "PicoKeys\PicoKeys.csproj", "{6D00FACA-731C-4C74-AD4C-8197EB6EFDFF}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{6D00FACA-731C-4C74-AD4C-8197EB6EFDFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{6D00FACA-731C-4C74-AD4C-8197EB6EFDFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{6D00FACA-731C-4C74-AD4C-8197EB6EFDFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{6D00FACA-731C-4C74-AD4C-8197EB6EFDFF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {95BC1132-3092-48C2-AF33-523740F7BEE6}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
6
PicoKeys/App.config
Normal file
6
PicoKeys/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>
|
284
PicoKeys/Main.Designer.cs
generated
Normal file
284
PicoKeys/Main.Designer.cs
generated
Normal file
@ -0,0 +1,284 @@
|
|||||||
|
namespace PicoKeys
|
||||||
|
{
|
||||||
|
partial class Main
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Erforderliche Designervariable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Verwendete Ressourcen bereinigen.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Vom Windows Form-Designer generierter Code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Erforderliche Methode für die Designerunterstützung.
|
||||||
|
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
|
||||||
|
this.contextMenuStripTrayIcon = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.checkBoxAutostart = new System.Windows.Forms.CheckBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
|
this.button2 = new System.Windows.Forms.Button();
|
||||||
|
this.button3 = new System.Windows.Forms.Button();
|
||||||
|
this.button4 = new System.Windows.Forms.Button();
|
||||||
|
this.button5 = new System.Windows.Forms.Button();
|
||||||
|
this.button6 = new System.Windows.Forms.Button();
|
||||||
|
this.button7 = new System.Windows.Forms.Button();
|
||||||
|
this.button8 = new System.Windows.Forms.Button();
|
||||||
|
this.button9 = new System.Windows.Forms.Button();
|
||||||
|
this.button10 = new System.Windows.Forms.Button();
|
||||||
|
this.button11 = new System.Windows.Forms.Button();
|
||||||
|
this.button12 = new System.Windows.Forms.Button();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.contextMenuStripTrayIcon.SuspendLayout();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// contextMenuStripTrayIcon
|
||||||
|
//
|
||||||
|
this.contextMenuStripTrayIcon.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.settingsToolStripMenuItem,
|
||||||
|
this.exitToolStripMenuItem});
|
||||||
|
this.contextMenuStripTrayIcon.Name = "contextMenuStrip1";
|
||||||
|
this.contextMenuStripTrayIcon.Size = new System.Drawing.Size(117, 48);
|
||||||
|
//
|
||||||
|
// settingsToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
|
||||||
|
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
|
||||||
|
this.settingsToolStripMenuItem.Text = "Settings";
|
||||||
|
this.settingsToolStripMenuItem.Click += new System.EventHandler(this.TrayIcon_DoubleClick);
|
||||||
|
//
|
||||||
|
// exitToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
|
||||||
|
this.exitToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
|
||||||
|
this.exitToolStripMenuItem.Text = "Exit";
|
||||||
|
this.exitToolStripMenuItem.Click += new System.EventHandler(this.ExitToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// checkBoxAutostart
|
||||||
|
//
|
||||||
|
this.checkBoxAutostart.AutoSize = true;
|
||||||
|
this.checkBoxAutostart.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.checkBoxAutostart.Name = "checkBoxAutostart";
|
||||||
|
this.checkBoxAutostart.Size = new System.Drawing.Size(145, 17);
|
||||||
|
this.checkBoxAutostart.TabIndex = 1;
|
||||||
|
this.checkBoxAutostart.Text = "Autostart on System Boot";
|
||||||
|
this.checkBoxAutostart.UseVisualStyleBackColor = true;
|
||||||
|
this.checkBoxAutostart.CheckedChanged += new System.EventHandler(this.CheckBoxAutostart_CheckedChanged);
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(313, 204);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(0, 13);
|
||||||
|
this.label1.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// button1
|
||||||
|
//
|
||||||
|
this.button1.Location = new System.Drawing.Point(6, 19);
|
||||||
|
this.button1.Name = "button1";
|
||||||
|
this.button1.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button1.TabIndex = 3;
|
||||||
|
this.button1.Text = "button1";
|
||||||
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
|
this.button1.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button2
|
||||||
|
//
|
||||||
|
this.button2.Location = new System.Drawing.Point(87, 19);
|
||||||
|
this.button2.Name = "button2";
|
||||||
|
this.button2.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button2.TabIndex = 4;
|
||||||
|
this.button2.Text = "button2";
|
||||||
|
this.button2.UseVisualStyleBackColor = true;
|
||||||
|
this.button2.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button3
|
||||||
|
//
|
||||||
|
this.button3.Location = new System.Drawing.Point(168, 19);
|
||||||
|
this.button3.Name = "button3";
|
||||||
|
this.button3.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button3.TabIndex = 5;
|
||||||
|
this.button3.Text = "button3";
|
||||||
|
this.button3.UseVisualStyleBackColor = true;
|
||||||
|
this.button3.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button4
|
||||||
|
//
|
||||||
|
this.button4.Location = new System.Drawing.Point(249, 19);
|
||||||
|
this.button4.Name = "button4";
|
||||||
|
this.button4.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button4.TabIndex = 6;
|
||||||
|
this.button4.Text = "button4";
|
||||||
|
this.button4.UseVisualStyleBackColor = true;
|
||||||
|
this.button4.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button5
|
||||||
|
//
|
||||||
|
this.button5.Location = new System.Drawing.Point(6, 94);
|
||||||
|
this.button5.Name = "button5";
|
||||||
|
this.button5.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button5.TabIndex = 7;
|
||||||
|
this.button5.Text = "button5";
|
||||||
|
this.button5.UseVisualStyleBackColor = true;
|
||||||
|
this.button5.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button6
|
||||||
|
//
|
||||||
|
this.button6.Location = new System.Drawing.Point(87, 94);
|
||||||
|
this.button6.Name = "button6";
|
||||||
|
this.button6.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button6.TabIndex = 8;
|
||||||
|
this.button6.Text = "button6";
|
||||||
|
this.button6.UseVisualStyleBackColor = true;
|
||||||
|
this.button6.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button7
|
||||||
|
//
|
||||||
|
this.button7.Location = new System.Drawing.Point(168, 94);
|
||||||
|
this.button7.Name = "button7";
|
||||||
|
this.button7.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button7.TabIndex = 9;
|
||||||
|
this.button7.Text = "button7";
|
||||||
|
this.button7.UseVisualStyleBackColor = true;
|
||||||
|
this.button7.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button8
|
||||||
|
//
|
||||||
|
this.button8.Location = new System.Drawing.Point(249, 94);
|
||||||
|
this.button8.Name = "button8";
|
||||||
|
this.button8.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button8.TabIndex = 10;
|
||||||
|
this.button8.Text = "button8";
|
||||||
|
this.button8.UseVisualStyleBackColor = true;
|
||||||
|
this.button8.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button9
|
||||||
|
//
|
||||||
|
this.button9.Location = new System.Drawing.Point(6, 169);
|
||||||
|
this.button9.Name = "button9";
|
||||||
|
this.button9.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button9.TabIndex = 11;
|
||||||
|
this.button9.Text = "button9";
|
||||||
|
this.button9.UseVisualStyleBackColor = true;
|
||||||
|
this.button9.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button10
|
||||||
|
//
|
||||||
|
this.button10.Location = new System.Drawing.Point(87, 169);
|
||||||
|
this.button10.Name = "button10";
|
||||||
|
this.button10.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button10.TabIndex = 12;
|
||||||
|
this.button10.Text = "button10";
|
||||||
|
this.button10.UseVisualStyleBackColor = true;
|
||||||
|
this.button10.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button11
|
||||||
|
//
|
||||||
|
this.button11.Location = new System.Drawing.Point(168, 169);
|
||||||
|
this.button11.Name = "button11";
|
||||||
|
this.button11.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button11.TabIndex = 13;
|
||||||
|
this.button11.Text = "button11";
|
||||||
|
this.button11.UseVisualStyleBackColor = true;
|
||||||
|
this.button11.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// button12
|
||||||
|
//
|
||||||
|
this.button12.Location = new System.Drawing.Point(249, 169);
|
||||||
|
this.button12.Name = "button12";
|
||||||
|
this.button12.Size = new System.Drawing.Size(75, 69);
|
||||||
|
this.button12.TabIndex = 14;
|
||||||
|
this.button12.Text = "button12";
|
||||||
|
this.button12.UseVisualStyleBackColor = true;
|
||||||
|
this.button12.Click += new System.EventHandler(this.ButtonAction_Click);
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.button1);
|
||||||
|
this.groupBox1.Controls.Add(this.button12);
|
||||||
|
this.groupBox1.Controls.Add(this.label1);
|
||||||
|
this.groupBox1.Controls.Add(this.button11);
|
||||||
|
this.groupBox1.Controls.Add(this.button2);
|
||||||
|
this.groupBox1.Controls.Add(this.button10);
|
||||||
|
this.groupBox1.Controls.Add(this.button3);
|
||||||
|
this.groupBox1.Controls.Add(this.button9);
|
||||||
|
this.groupBox1.Controls.Add(this.button4);
|
||||||
|
this.groupBox1.Controls.Add(this.button8);
|
||||||
|
this.groupBox1.Controls.Add(this.button5);
|
||||||
|
this.groupBox1.Controls.Add(this.button7);
|
||||||
|
this.groupBox1.Controls.Add(this.button6);
|
||||||
|
this.groupBox1.Location = new System.Drawing.Point(12, 35);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.Size = new System.Drawing.Size(331, 246);
|
||||||
|
this.groupBox1.TabIndex = 15;
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
this.groupBox1.Text = "Button Actions";
|
||||||
|
//
|
||||||
|
// Main
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(356, 295);
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.checkBoxAutostart);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.Name = "Main";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "PicoKeys v1.0 | © 2024 kmpr.at";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Main_FormClosing);
|
||||||
|
this.Load += new System.EventHandler(this.Main_Load);
|
||||||
|
this.Resize += new System.EventHandler(this.Main_Resize);
|
||||||
|
this.contextMenuStripTrayIcon.ResumeLayout(false);
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.ContextMenuStrip contextMenuStripTrayIcon;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.CheckBox checkBoxAutostart;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Button button1;
|
||||||
|
private System.Windows.Forms.Button button2;
|
||||||
|
private System.Windows.Forms.Button button3;
|
||||||
|
private System.Windows.Forms.Button button4;
|
||||||
|
private System.Windows.Forms.Button button5;
|
||||||
|
private System.Windows.Forms.Button button6;
|
||||||
|
private System.Windows.Forms.Button button7;
|
||||||
|
private System.Windows.Forms.Button button8;
|
||||||
|
private System.Windows.Forms.Button button9;
|
||||||
|
private System.Windows.Forms.Button button10;
|
||||||
|
private System.Windows.Forms.Button button11;
|
||||||
|
private System.Windows.Forms.Button button12;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
171
PicoKeys/Main.cs
Normal file
171
PicoKeys/Main.cs
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
using AudioSwitcher.AudioApi.CoreAudio;
|
||||||
|
using Microsoft.Win32;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace PicoKeys
|
||||||
|
{
|
||||||
|
public partial class Main : Form
|
||||||
|
{
|
||||||
|
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||||
|
private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||||
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
|
private static extern bool UnhookWindowsHookEx(IntPtr hhk);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||||
|
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);
|
||||||
|
|
||||||
|
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||||
|
private static extern IntPtr GetModuleHandle(string lpModuleName);
|
||||||
|
|
||||||
|
private const int WH_KEYBOARD_LL = 13;
|
||||||
|
private const int WM_KEYDOWN = 0x0100;
|
||||||
|
private const int WM_KEYUP = 0x0101;
|
||||||
|
|
||||||
|
private IntPtr _hookID = IntPtr.Zero;
|
||||||
|
private LowLevelKeyboardProc _proc;
|
||||||
|
|
||||||
|
private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);
|
||||||
|
|
||||||
|
private NotifyIcon trayIcon;
|
||||||
|
|
||||||
|
private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
|
||||||
|
{
|
||||||
|
if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
|
||||||
|
{
|
||||||
|
int vkCode = Marshal.ReadInt32(lParam);
|
||||||
|
if (vkCode >= 0x7C && vkCode <= 0x87)
|
||||||
|
{
|
||||||
|
switch (vkCode)
|
||||||
|
{
|
||||||
|
case 0x7C: // F13
|
||||||
|
using (var audio = new CoreAudioController())
|
||||||
|
{
|
||||||
|
audio.DefaultPlaybackDevice.ToggleMute();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x7D: // F14
|
||||||
|
using (var audio = new CoreAudioController())
|
||||||
|
{
|
||||||
|
audio.DefaultCaptureDevice.ToggleMute();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x7E: // F15
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0x7F: // F16
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0x80: // F17
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0x81: // F18
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0x82: // F19
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0x83: // F20
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0x84: // F21
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0x85: // F22
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0x86: // F23
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0x87: // F24
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return CallNextHookEx(_hookID, nCode, wParam, lParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Main()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
trayIcon = new NotifyIcon();
|
||||||
|
trayIcon.Icon = Properties.Resources.icons8_keyboard_96;
|
||||||
|
trayIcon.Text = "MagicKeys";
|
||||||
|
trayIcon.Visible = false;
|
||||||
|
trayIcon.DoubleClick += new EventHandler(TrayIcon_DoubleClick);
|
||||||
|
trayIcon.ContextMenuStrip = contextMenuStripTrayIcon;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Main_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_proc = HookCallback;
|
||||||
|
_hookID = SetHook(_proc);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Main_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
UnhookWindowsHookEx(_hookID);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IntPtr SetHook(LowLevelKeyboardProc proc)
|
||||||
|
{
|
||||||
|
using (Process curProcess = Process.GetCurrentProcess())
|
||||||
|
using (ProcessModule curModule = curProcess.MainModule)
|
||||||
|
{
|
||||||
|
return SetWindowsHookEx(WH_KEYBOARD_LL, proc,
|
||||||
|
GetModuleHandle(curModule.ModuleName), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Main_Resize(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (this.WindowState == FormWindowState.Minimized)
|
||||||
|
{
|
||||||
|
this.Hide();
|
||||||
|
trayIcon.Visible = true;
|
||||||
|
trayIcon.ShowBalloonTip(1000, "MagicKeys", "Minimized to tray", ToolTipIcon.Info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void TrayIcon_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.Show();
|
||||||
|
this.WindowState = FormWindowState.Normal;
|
||||||
|
trayIcon.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ExitToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckBoxAutostart_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
|
||||||
|
|
||||||
|
if (checkBoxAutostart.Checked)
|
||||||
|
rk.SetValue("PicoKeys", Application.ExecutablePath);
|
||||||
|
else
|
||||||
|
rk.DeleteValue("PicoKeys", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonAction_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Button b = sender as Button;
|
||||||
|
MessageBox.Show(b.Name);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
235
PicoKeys/Main.resx
Normal file
235
PicoKeys/Main.resx
Normal file
@ -0,0 +1,235 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="contextMenuStripTrayIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
97
PicoKeys/PicoKeys.csproj
Normal file
97
PicoKeys/PicoKeys.csproj
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" 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>{6D00FACA-731C-4C74-AD4C-8197EB6EFDFF}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<RootNamespace>PicoKeys</RootNamespace>
|
||||||
|
<AssemblyName>PicoKeys</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
</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>icons8-keyboard-96.ico</ApplicationIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="AudioSwitcher.AudioApi, Version=3.0.0.209, Culture=neutral, PublicKeyToken=fda5729e2db3a64f, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\AudioSwitcher.AudioApi.3.0.0\lib\net40\AudioSwitcher.AudioApi.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="AudioSwitcher.AudioApi.CoreAudio, Version=3.0.0.209, Culture=neutral, PublicKeyToken=fda5729e2db3a64f, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\AudioSwitcher.AudioApi.CoreAudio.3.0.3\lib\net48\AudioSwitcher.AudioApi.CoreAudio.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<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.Net.Http" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Main.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Main.Designer.cs">
|
||||||
|
<DependentUpon>Main.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<EmbeddedResource Include="Main.resx">
|
||||||
|
<DependentUpon>Main.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<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="icons8-keyboard-96.ico" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
22
PicoKeys/Program.cs
Normal file
22
PicoKeys/Program.cs
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace PicoKeys
|
||||||
|
{
|
||||||
|
internal static class Program
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Der Haupteinstiegspunkt für die Anwendung.
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
Application.Run(new Main());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
PicoKeys/Properties/AssemblyInfo.cs
Normal file
33
PicoKeys/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||||
|
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
||||||
|
// die einer Assembly zugeordnet sind.
|
||||||
|
[assembly: AssemblyTitle("PicoKeys")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("PicoKeys")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2024 kmpr.at")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
|
||||||
|
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
|
||||||
|
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
|
||||||
|
[assembly: Guid("6d00faca-731c-4c74-ad4c-8197eb6efdff")]
|
||||||
|
|
||||||
|
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
||||||
|
//
|
||||||
|
// Hauptversion
|
||||||
|
// Nebenversion
|
||||||
|
// Buildnummer
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
73
PicoKeys/Properties/Resources.Designer.cs
generated
Normal file
73
PicoKeys/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// Dieser Code wurde von einem Tool generiert.
|
||||||
|
// Laufzeitversion:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
||||||
|
// der Code erneut generiert wird.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace PicoKeys.Properties {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||||
|
/// </summary>
|
||||||
|
// Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
||||||
|
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
||||||
|
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
||||||
|
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
||||||
|
[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>
|
||||||
|
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
||||||
|
/// </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("PicoKeys.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
||||||
|
/// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Icon ähnlich wie (Symbol).
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Icon icons8_keyboard_96 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-keyboard-96", resourceCulture);
|
||||||
|
return ((System.Drawing.Icon)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
124
PicoKeys/Properties/Resources.resx
Normal file
124
PicoKeys/Properties/Resources.resx
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="icons8-keyboard-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-keyboard-96.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
30
PicoKeys/Properties/Settings.Designer.cs
generated
Normal file
30
PicoKeys/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 PicoKeys.Properties
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.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
PicoKeys/Properties/Settings.settings
Normal file
7
PicoKeys/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
PicoKeys/Resources/icons8-keyboard-96.ico
Normal file
BIN
PicoKeys/Resources/icons8-keyboard-96.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.2 KiB |
BIN
PicoKeys/Resources/icons8-keyboard-96.png
Normal file
BIN
PicoKeys/Resources/icons8-keyboard-96.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 856 B |
BIN
PicoKeys/icons8-keyboard-96.ico
Normal file
BIN
PicoKeys/icons8-keyboard-96.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.2 KiB |
5
PicoKeys/packages.config
Normal file
5
PicoKeys/packages.config
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="AudioSwitcher.AudioApi" version="3.0.0" targetFramework="net48" />
|
||||||
|
<package id="AudioSwitcher.AudioApi.CoreAudio" version="3.0.3" targetFramework="net48" />
|
||||||
|
</packages>
|
Loading…
Reference in New Issue
Block a user