Everything was done before

This commit is contained in:
Andrew 2023-03-26 15:53:40 +07:00
commit d6720cf687
5 changed files with 171 additions and 0 deletions

37
.gitignore vendored Normal file
View file

@ -0,0 +1,37 @@
*.swp
*.*~
project.lock.json
.DS_Store
*.pyc
nupkg/
# Visual Studio Code
.vscode
# Rider
.idea
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
[Oo]ut/
msbuild.log
msbuild.err
msbuild.wrn
# Visual Studio 2015
.vs/

16
AnimeTiddiesHotkey.sln Normal file
View file

@ -0,0 +1,16 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnimeTiddiesHotkey", "AnimeTiddiesHotkey\AnimeTiddiesHotkey.csproj", "{EFC09282-90DF-40A1-92C5-0C495D023017}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EFC09282-90DF-40A1-92C5-0C495D023017}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EFC09282-90DF-40A1-92C5-0C495D023017}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EFC09282-90DF-40A1-92C5-0C495D023017}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EFC09282-90DF-40A1-92C5-0C495D023017}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

View file

@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Reference Include="System.Drawing.Common, Version=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51">
<HintPath>..\..\..\..\scoop\apps\dotnet-sdk\5.0.103\shared\Microsoft.WindowsDesktop.App\5.0.3\System.Drawing.Common.dll</HintPath>
</Reference>
<Reference Include="System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51">
<HintPath>..\..\..\..\scoop\apps\dotnet-sdk\5.0.103\shared\Microsoft.WindowsDesktop.App\5.0.3\System.Security.Permissions.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms, Version=5.0.3.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<HintPath>..\..\..\..\scoop\apps\dotnet-sdk\5.0.103\shared\Microsoft.WindowsDesktop.App\5.0.3\System.Windows.Forms.dll</HintPath>
</Reference>
<Reference Include="WindowsBase, Version=5.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<HintPath>..\..\..\..\scoop\apps\dotnet-sdk\5.0.103\shared\Microsoft.WindowsDesktop.App\5.0.3\WindowsBase.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="MouseKeyHook" Version="5.6.0" />
</ItemGroup>
</Project>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Gma.System.MouseKeyHook;
namespace AnimeTiddiesHotkey {
internal static class Program {
private static IKeyboardMouseEvents _globalHook;
private static NotifyIcon _trayIcon;
private static bool _quiet = false;
[STAThreadAttribute]
private static void Main(string[] args) {
_globalHook = Hook.GlobalEvents();
_globalHook.OnCombination(new List<KeyValuePair<Combination, Action>>(new [] {
new KeyValuePair<Combination, Action>(Combination.FromString("ControlKey+ShiftKey+R"), Application.Exit),
new KeyValuePair<Combination, Action>(Combination.FromString("ControlKey+ShiftKey+E"), SetClipboard),
new KeyValuePair<Combination, Action>(Combination.FromString("ControlKey+ShiftKey+M"), () => ToggleQuite(null, null))
}));
_trayIcon = new NotifyIcon {
Visible = true,
Icon = SystemIcons.Application
};
_trayIcon.Click += ShowHelp;
_trayIcon.DoubleClick += ToggleQuite;
var handle = GetConsoleWindow();
ShowWindow(handle, 0);
ShowHelp(null, null);
Application.Run();
ShowPopup("Goodbye");
}
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
private static void ShowHelp(object _, EventArgs __) {
ShowPopup("Ctrl+Shift+R - Exit\nCtrl+Shift+E - Roll\nCtrl+Shift+M - Toggle quiet");
}
private static void ToggleQuite(object _, EventArgs __) {
var oq = _quiet;
_quiet = false;
ShowPopup(_quiet? "Now I am loud!" : "Now I am silent!");
_quiet = oq;
_quiet = !_quiet;
}
private static void ShowPopup(string message, int timeout=1000, ToolTipIcon icon=ToolTipIcon.Info) {
if (_quiet) return;
_trayIcon.ShowBalloonTip(timeout, "Anime Tiddies trigger", message, icon);
}
private static void SetClipboard() {
var roll = new Random().Next(0, ImagesStrings.bigTiddiesDragons.Length);
ShowPopup($"Roll: {roll}");
var image = Base64ToImage(ImagesStrings.bigTiddiesDragons[roll]);
Clipboard.SetImage(image);
}
private static Image Base64ToImage(string base64String)
{
var imageBytes = Convert.FromBase64String(base64String);
using var ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
var image = Image.FromStream(ms, true);
return image;
}
}
}