diff --git a/README.md b/README.md index 5bb7b16..59bb4d3 100644 --- a/README.md +++ b/README.md @@ -1,56 +1,50 @@ -# ClipCMD +![ClipCMD](https://socialify.git.ci/Stone-Red-Code/ClipCMD/image?description=1&font=Inter&forks=1&issues=1&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI%2BCjxyZWN0IHk9IjAuMTE2NDU1IiB3aWR0aD0iMTAwIiBoZWlnaHQ9Ijk5Ljg4MzciIHJ4PSI0OS45NDE4IiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMTkuMjMyMiA2OC41NUMxNi45NTg5IDY4LjU1IDE0Ljg1MDYgNjguMjAxNyAxMi45MDcyIDY3LjUwNUMxMC45NjM5IDY2LjgwODMgOS4yNTg4OSA2NS43NDUgNy43OTIyMyA2NC4zMTVDNi4zMjU1NiA2Mi44NDgzIDUuMTg4ODkgNjEuMDMzMyA0LjM4MjIzIDU4Ljg3QzMuNTc1NTYgNTYuNjcgMy4xNzIyMyA1NC4wNjY3IDMuMTcyMjMgNTEuMDZDMy4xNzIyMyA0OC4zODMzIDMuNDgzODkgNDYuMDU1IDQuMTA3MjMgNDQuMDc1QzQuNzMwNTYgNDIuMDk1IDUuNTczODkgNDAuNDI2NyA2LjYzNzIzIDM5LjA3QzcuNzAwNTYgMzcuNjc2NyA4LjkxMDU2IDM2LjU3NjcgMTAuMjY3MiAzNS43N0MxMS42MjM5IDM0LjkyNjcgMTMuMDUzOSAzNC4zMjE3IDE0LjU1NzIgMzMuOTU1QzE2LjA5NzIgMzMuNTg4MyAxNy42MDA2IDMzLjQwNSAxOS4wNjcyIDMzLjQwNUMyMi4xMTA2IDMzLjQwNSAyNC42OTU2IDM0LjAxIDI2LjgyMjIgMzUuMjJDMjguOTQ4OSAzNi40MyAzMC41NDM5IDM4LjA2MTcgMzEuNjA3MiA0MC4xMTVMMjguMDg3MiA0Mi4zMTVMMjcuNTkyMiA0Mi41OUwyNy4zNzIyIDQyLjIwNUMyNy40ODIyIDQxLjkxMTcgMjcuNDYzOSA0MS42NTUgMjcuMzE3MiA0MS40MzVDMjcuMjA3MiA0MS4xNzgzIDI2Ljk4NzIgNDAuODExNyAyNi42NTcyIDQwLjMzNUMyNS41NTcyIDM5LjEyNSAyNC4zNjU2IDM4LjMxODMgMjMuMDgyMiAzNy45MTVDMjEuODM1NiAzNy41MTE3IDIwLjQ5NzIgMzcuMzEgMTkuMDY3MiAzNy4zMUMxNy41MjcyIDM3LjMxIDE2LjA3ODkgMzcuNjAzMyAxNC43MjIyIDM4LjE5QzEzLjM2NTYgMzguNzQgMTIuMTczOSAzOS41ODMzIDExLjE0NzIgNDAuNzJDMTAuMTU3MiA0MS44NTY3IDkuMzY4ODkgNDMuMjY4MyA4Ljc4MjIzIDQ0Ljk1NUM4LjIzMjIzIDQ2LjY0MTcgNy45NTcyMyA0OC41ODUgNy45NTcyMyA1MC43ODVDNy45NTcyMyA1Mi45MTE3IDguMjUwNTYgNTQuODE4MyA4LjgzNzIzIDU2LjUwNUM5LjQyMzg5IDU4LjE5MTcgMTAuMjEyMiA1OS42NCAxMS4yMDIyIDYwLjg1QzEyLjIyODkgNjIuMDIzMyAxMy40MjA2IDYyLjk0IDE0Ljc3NzIgNjMuNkMxNi4xMzM5IDY0LjIyMzMgMTcuNTgyMiA2NC41MzUgMTkuMTIyMiA2NC41MzVDMjAuMjIyMiA2NC41MzUgMjEuMzAzOSA2NC4zODgzIDIyLjM2NzIgNjQuMDk1QzIzLjQzMDYgNjMuNzY1IDI0LjQyMDYgNjMuMjg4MyAyNS4zMzcyIDYyLjY2NUMyNi4yNTM5IDYyLjA0MTcgMjcuMDA1NiA2MS4zMDgzIDI3LjU5MjIgNjAuNDY1TDMxLjA1NzIgNjIuOTRDMjkuNzAwNiA2NC44NDY3IDI4LjA2ODkgNjYuMjU4MyAyNi4xNjIyIDY3LjE3NUMyNC4yNTU2IDY4LjA5MTcgMjEuOTQ1NiA2OC41NSAxOS4yMzIyIDY4LjU1Wk0zNi4wNDA3IDY4VjMzLjczNUg0MC4xNjU3TDUwLjAxMDcgNTAuMjM1TDYwLjA3NTcgMzMuNjhINjQuMDkwN1Y2OEg1OS41MjU3VjQyLjM3TDUwLjgzNTcgNTYuMTJINDguNjkwN0w0MC41NTA3IDQyLjUzNVY2OEgzNi4wNDA3Wk02OS44NDQzIDY4LjA1NVYzMy43MzVINzkuNjg5M0M4Mi4wNzI2IDMzLjczNSA4NC4wNzA5IDMzLjkxODMgODUuNjg0MyAzNC4yODVDODcuMjk3NiAzNC42NTE3IDg4LjY3MjYgMzUuMTgzMyA4OS44MDkzIDM1Ljg4QzkwLjk4MjYgMzYuNTc2NyA5Mi4wMDkzIDM3LjQzODMgOTIuODg5MyAzOC40NjVDOTMuODA1OSAzOS40OTE3IDk0LjU3NTkgNDAuNjQ2NyA5NS4xOTkzIDQxLjkzQzk1LjgyMjYgNDMuMjEzMyA5Ni4yODA5IDQ0LjYwNjcgOTYuNTc0MyA0Ni4xMUM5Ni45MDQzIDQ3LjYxMzMgOTcuMDY5MyA0OS4yNjMzIDk3LjA2OTMgNTEuMDZDOTYuOTk1OSA1My43IDk2LjU5MjYgNTYuMDY1IDk1Ljg1OTMgNTguMTU1Qzk1LjE2MjYgNjAuMjQ1IDk0LjA5OTMgNjIuMDIzMyA5Mi42NjkzIDYzLjQ5QzkxLjIzOTMgNjQuOTU2NyA4OS4zODc2IDY2LjA5MzMgODcuMTE0MyA2Ni45Qzg0Ljg0MDkgNjcuNjcgODIuMDkwOSA2OC4wNTUgNzguODY0MyA2OC4wNTVINjkuODQ0M1pNNzQuNTE5MyA2NC4yNkg3OC42OTkzQzgxLjg1MjYgNjQuMjYgODQuNDE5MyA2My43NjUgODYuMzk5MyA2Mi43NzVDODguNDE1OSA2MS43NDgzIDg5LjkwMDkgNjAuMjYzMyA5MC44NTQzIDU4LjMyQzkxLjgwNzYgNTYuMzc2NyA5Mi4yODQzIDU0LjAzIDkyLjI4NDMgNTEuMjhDOTIuMjQ3NiA0OC40MiA5MS43ODkzIDQ1Ljk4MTcgOTAuOTA5MyA0My45NjVDOTAuMDI5MyA0MS45NDgzIDg4LjYzNTkgNDAuNDA4MyA4Ni43MjkzIDM5LjM0NUM4NC44NTkzIDM4LjI0NSA4Mi40MjA5IDM3LjY5NSA3OS40MTQzIDM3LjY5NUg3NC41MTkzVjY0LjI2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc%2BCg%3D%3D&name=1&pattern=Floating%20Cogs&pulls=1&stargazers=1&theme=Auto) -> A simple utility program to simplify your workflow +> A simple utility program to simplify your workflow by executing scripts through the clipboard. ## What is it? -ClipCMD is a Windows app that allows you to create macros and run them by copying them to the clipboard.\ -You write a macro anywhere, copy it to your clipboard, and it will be automatically replaced by the output of the specified macro script.\ -ClipCMD uses [PowerShell](https://learn.microsoft.com/en-us/powershell/scripting) as scripting language. - -### Example - -> Prefix: `_`\ -> Suffix: `_`\ -> Macro name: `email`\ -> Macro script: `Write-Output myCoolEmail@mail.com`\ -> Macro script (alternative): `"myCoolEmail@mail.com"` - -> Input: `_email_`\ -> Output: `myCoolEmail@mail.com` +ClipCMD is an app that allows you to create commands and run them by copying them to the clipboard.\ +You can write a command anywhere, copy it to your clipboard, and it will be automatically replaced by the output of the specified command script.\ +ClipCMD uses [PowerShell](https://learn.microsoft.com/en-us/powershell/scripting) as the scripting language. ## Usage -1. Download one of the [releases](https://github.com/Stone-Red-Code/ClipCMD/releases) directly from GitHub or download it with [HyperbolicDownloader](https://github.com/Stone-Red-Code/HyperbolicDownloader) -1. Start `setup.exe` -1. (Optional) Set the prefix and suffix for your commands -1. Specify some commands in the built-in text field - - Format: - ``` - [] - - - - ... - [] - - - - ... - ``` - - Strings between square brackets define macros. - - You can define macro aliases by separating them by a comma `[quit, exit, q]` - - Lines between a macro definition and the next macro (or the end of the file) is PowerShell code. - - Everything you write to the output stream replaces the input macro. - - You can pass parameters to the scripts by separating the parameters by space after the macro: `_combine hi nope_` - - You can access the parameters by accessing the `$args` array. -1. There is one prebuilt macro named `list`. This lists all of your macros. -1. Write `[suffix][macroName][preffix]` somewhere, and then select it and press `CTRL+C` +1. Download & install the latest release + - Microsoft Store: [Store Page](https://www.microsoft.com/store/productId/9NZ7PCLGPBW5) + - GitHub: [Releases](https://github.com/Stone-Red-Code/ClipCMD/releases) +1. (Optional) Put a shortcut to the `ClipCMD.Desktop.exe` file in the installation directory into the `shell:startup` directory. +1. Start the app and add a new command. +1. Press the script button to edit the command script. +1. Open an editor and type ``. +1. Copy the command to the clipboard. +1. Whatever the script outputs should now be pasted into the editor. + +## Follow the development + +[![Twitter(X)](http://img.shields.io/badge/Twitter-black.svg?&logo=x&style=for-the-badge&logoColor=white)](https://x.com/search?q=from%3A%40StoneRedCode%20%23ClipCMD) + +## Example + +> Prefix: `#`\ +> Suffix: `+`\ +> Command name: `email`\ +> Command script: `Write-Output myCoolEmail@mail.com`\ +> Command script (alternative): `"myCoolEmail@mail.com"` + +> Input: `#email+`\ +> Output: `myCoolEmail@mail.com` ## Preview -image +https://github.com/user-attachments/assets/a0665d6d-e6ce-4d78-88d0-e9c35214219d + +![ClipCMD-Preview_1](https://github.com/user-attachments/assets/6f136f65-ecf1-4426-a865-ecabd50689a2) +![ClipCMD-Preview_2](https://github.com/user-attachments/assets/91274468-bb52-4b39-90a3-5fb623edf8a2) ## Third party licences -- [InputSimulator](https://github.com/michaelnoonan/inputsimulator) - [MIT](https://github.com/michaelnoonan/inputsimulator/blob/master/LICENSE) +- [Avalonia](https://github.com/AvaloniaUI/Avalonia) - [MIT](https://github.com/AvaloniaUI/Avalonia/blob/master/licence.md) +- [Icons.Avalonia](https://github.com/Projektanker/Icons.Avalonia) - [MIT](https://github.com/Projektanker/Icons.Avalonia/blob/main/LICENSE) +- [Semi.Avalonia](https://github.com/irihitech/Semi.Avalonia) - [MIT](https://github.com/irihitech/Semi.Avalonia/blob/main/LICENSE) +- [SharpHook](https://github.com/TolikPylypchuk/SharpHook) - [MIT](https://github.com/TolikPylypchuk/SharpHook/blob/main/LICENSE) diff --git a/installer/ClipCMD-Installer.exe b/installer/ClipCMD-Installer.exe index 84298e2..672c104 100644 Binary files a/installer/ClipCMD-Installer.exe and b/installer/ClipCMD-Installer.exe differ diff --git a/installer/Installer.iss b/installer/Installer.iss index 9ab1fc8..889a320 100644 --- a/installer/Installer.iss +++ b/installer/Installer.iss @@ -1,12 +1,12 @@ ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! -#expr Exec('cmd.exe /C', 'dotnet build -o "' + SourcePath + '\publish" -c Release ' + SourcePath + '..\src\ClipCMD\') +#expr Exec('cmd.exe /C', 'dotnet build -o "' + SourcePath + '\publish" -c Release ' + SourcePath + '..\src\ClipCMD.Desktop\') #define MyAppName "ClipCMD" -#define MyAppVersion GetVersionNumbersString("/publish/ClipCMD.exe") +#define MyAppVersion GetVersionNumbersString("/publish/ClipCmd.Desktop.exe") #define MyAppPublisher "Stone_Red" -#define MyAppExeName "ClipCMD.exe" +#define MyAppExeName "ClipCmd.Desktop.exe" [Setup] ; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. diff --git a/src/ClipCMD.sln b/src/ClipCMD.sln index 4c5ea3a..287e582 100644 --- a/src/ClipCMD.sln +++ b/src/ClipCMD.sln @@ -1,25 +1,108 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.1.32421.90 +VisualStudioVersion = 17.3.32811.315 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClipCMD", "ClipCMD\ClipCMD.csproj", "{D5BA1B2C-E995-45C8-A952-8F5A809F2566}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClipCmd", "ClipCmd\ClipCmd.csproj", "{EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClipCmd.Desktop", "ClipCmd.Desktop\ClipCmd.Desktop.csproj", "{ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3DA99C4E-89E3-4049-9C22-0A7EC60D83D8}" + ProjectSection(SolutionItems) = preProject + Directory.Build.props = Directory.Build.props + EndProjectSection +EndProject +Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "MsixPackaging", "MsixPackaging\MsixPackaging.wapproj", "{CBF43E7F-27D3-4106-96E6-3750D1734990}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D5BA1B2C-E995-45C8-A952-8F5A809F2566}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D5BA1B2C-E995-45C8-A952-8F5A809F2566}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D5BA1B2C-E995-45C8-A952-8F5A809F2566}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D5BA1B2C-E995-45C8-A952-8F5A809F2566}.Release|Any CPU.Build.0 = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|ARM.ActiveCfg = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|ARM.Build.0 = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|ARM64.Build.0 = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|x64.ActiveCfg = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|x64.Build.0 = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|x86.ActiveCfg = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Debug|x86.Build.0 = Debug|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|Any CPU.Build.0 = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|ARM.ActiveCfg = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|ARM.Build.0 = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|ARM64.ActiveCfg = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|ARM64.Build.0 = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|x64.ActiveCfg = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|x64.Build.0 = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|x86.ActiveCfg = Release|Any CPU + {EBFA8512-1EA5-4D8C-B4AC-AB5B48A6D568}.Release|x86.Build.0 = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|ARM.Build.0 = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|ARM64.Build.0 = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|x64.ActiveCfg = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|x64.Build.0 = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|x86.ActiveCfg = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Debug|x86.Build.0 = Debug|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|Any CPU.Build.0 = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|ARM.ActiveCfg = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|ARM.Build.0 = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|ARM64.ActiveCfg = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|ARM64.Build.0 = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|x64.ActiveCfg = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|x64.Build.0 = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|x86.ActiveCfg = Release|Any CPU + {ABC31E74-02FF-46EB-B3B2-4E6AE43B456C}.Release|x86.Build.0 = Release|Any CPU + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|ARM.ActiveCfg = Debug|ARM + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|ARM.Build.0 = Debug|ARM + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|ARM.Deploy.0 = Debug|ARM + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|ARM64.Build.0 = Debug|ARM64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|x64.ActiveCfg = Debug|x64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|x64.Build.0 = Debug|x64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|x64.Deploy.0 = Debug|x64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|x86.ActiveCfg = Debug|x86 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|x86.Build.0 = Debug|x86 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Debug|x86.Deploy.0 = Debug|x86 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|Any CPU.Build.0 = Release|Any CPU + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|Any CPU.Deploy.0 = Release|Any CPU + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|ARM.ActiveCfg = Release|ARM + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|ARM.Build.0 = Release|ARM + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|ARM.Deploy.0 = Release|ARM + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|ARM64.ActiveCfg = Release|ARM64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|ARM64.Build.0 = Release|ARM64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|ARM64.Deploy.0 = Release|ARM64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|x64.ActiveCfg = Release|x64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|x64.Build.0 = Release|x64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|x64.Deploy.0 = Release|x64 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|x86.ActiveCfg = Release|x86 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|x86.Build.0 = Release|x86 + {CBF43E7F-27D3-4106-96E6-3750D1734990}.Release|x86.Deploy.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E8688A15-37F6-4D71-A342-449BA8244CFA} + SolutionGuid = {83CB65B8-011F-4ED7-BCD3-A6CFA935EF7E} EndGlobalSection EndGlobal diff --git a/src/ClipCMD/App.axaml b/src/ClipCMD/App.axaml new file mode 100644 index 0000000..9f19caa --- /dev/null +++ b/src/ClipCMD/App.axaml @@ -0,0 +1,35 @@ + + + + + + + + + 12 + Microsoft YaHei + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ClipCMD/App.axaml.cs b/src/ClipCMD/App.axaml.cs new file mode 100644 index 0000000..098574d --- /dev/null +++ b/src/ClipCMD/App.axaml.cs @@ -0,0 +1,82 @@ +using Avalonia; +using Avalonia.Controls.ApplicationLifetimes; +using Avalonia.Markup.Xaml; + +using ClipCmd.Models; +using ClipCmd.Utilities; +using ClipCmd.ViewModels; +using ClipCmd.Views; + +using Projektanker.Icons.Avalonia; +using Projektanker.Icons.Avalonia.FontAwesome; +using Projektanker.Icons.Avalonia.MaterialDesign; + +using System; +using System.IO; + +namespace ClipCmd; + +public partial class App : Application +{ + public override void Initialize() + { + _ = IconProvider.Current + .Register() + .Register(); + + AvaloniaXamlLoader.Load(this); + } + + public override void OnFrameworkInitializationCompleted() + { + if (!Directory.Exists(Configuration.ApplicationDataPath)) + { + _ = Directory.CreateDirectory(Configuration.ApplicationDataPath); + } + + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + desktop.MainWindow = new MainWindow(); + ClipCmdCommandHandler clipCmdCommandHandler = new ClipCmdCommandHandler(desktop.MainWindow); + ImportExportService importExportService = new ImportExportService(desktop.MainWindow, clipCmdCommandHandler); + desktop.MainWindow.DataContext = new MainViewModel(clipCmdCommandHandler, importExportService); + + desktop.MainWindow.Closing += (sender, e) => + { + e.Cancel = true; + + desktop.MainWindow.Hide(); + + Settings.SaveSettings(); + clipCmdCommandHandler.SaveCommands(); + }; + + clipCmdCommandHandler.Start(); + } + else + { + throw new PlatformNotSupportedException(); + } + + base.OnFrameworkInitializationCompleted(); + } + + private void TrayIcon_Clicked(object? sender, EventArgs e) + { + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop && desktop.MainWindow is not null) + { + desktop.MainWindow.WindowState = Avalonia.Controls.WindowState.Normal; + desktop.MainWindow.Show(); + desktop.MainWindow.Activate(); + } + } + + private void NativeMenuItem_Click_Quit(object? sender, EventArgs e) + { + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + Settings.SaveSettings(); + desktop.Shutdown(); + } + } +} \ No newline at end of file diff --git a/src/ClipCMD/App.xaml b/src/ClipCMD/App.xaml deleted file mode 100644 index 58b410e..0000000 --- a/src/ClipCMD/App.xaml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/src/ClipCMD/App.xaml.cs b/src/ClipCMD/App.xaml.cs deleted file mode 100644 index 9ec893d..0000000 --- a/src/ClipCMD/App.xaml.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.IO; -using System.Threading; -using System.Windows; - -namespace ClipCMD; - -/// -/// Interaction logic for App.xaml -/// -public partial class App : Application -{ - public const string AppName = "ClipCMD"; - - public const string AppGuid = "68d780d4-b946-4154-8815-e4632e5ec5d8"; - - private Mutex? mutex; - - protected override void OnStartup(StartupEventArgs e) - { - mutex = new Mutex(true, AppGuid, out bool createdNew); - - if (!createdNew) - { - //App is already running! Exiting the application - _ = MessageBox.Show($"Another instance of {AppName} already running!", $"{AppName} is already running!", MessageBoxButton.OK, MessageBoxImage.Exclamation); - Current.Shutdown(); - } - - AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; - - Exit += CloseHandler; - } - - protected void CloseHandler(object sender, EventArgs e) - { - mutex?.ReleaseMutex(); - } - - private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) - { - File.WriteAllText("error.log", e.ExceptionObject.ToString()); - } -} \ No newline at end of file diff --git a/src/ClipCMD/AssemblyInfo.cs b/src/ClipCMD/AssemblyInfo.cs deleted file mode 100644 index 8b5504e..0000000 --- a/src/ClipCMD/AssemblyInfo.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Windows; - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] diff --git a/src/ClipCMD/Assets/logo.ico b/src/ClipCMD/Assets/logo.ico new file mode 100644 index 0000000..6d06cd8 Binary files /dev/null and b/src/ClipCMD/Assets/logo.ico differ diff --git a/src/ClipCMD/ClipCMD.csproj b/src/ClipCMD/ClipCMD.csproj deleted file mode 100644 index eb772a1..0000000 --- a/src/ClipCMD/ClipCMD.csproj +++ /dev/null @@ -1,33 +0,0 @@ - - - - WinExe - net8.0-windows7.0 - enable - true - true - 0.0.0.3 - 0.0.0.3 - 0.0.0.3 - logo.ico - - - - - Always - - - - - - - - - - - - - Always - - - \ No newline at end of file diff --git a/src/ClipCMD/ClipCmd.csproj b/src/ClipCMD/ClipCmd.csproj new file mode 100644 index 0000000..6c003dd --- /dev/null +++ b/src/ClipCMD/ClipCmd.csproj @@ -0,0 +1,46 @@ + + + net8.0 + enable + latest + true + 1.0.0.0 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + InputDialogView.axaml + + + diff --git a/src/ClipCMD/ClipboardManager.cs b/src/ClipCMD/ClipboardManager.cs deleted file mode 100644 index db374d5..0000000 --- a/src/ClipCMD/ClipboardManager.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Windows; -using System.Windows.Interop; - -namespace ClipCMD; - -public class ClipboardManager -{ - public event EventHandler? ClipboardChanged; - - public ClipboardManager(Window windowSource) - { - if (PresentationSource.FromVisual(windowSource) is not HwndSource source) - { - throw new ArgumentException( - "Window source MUST be initialized first, such as in the Window's OnSourceInitialized handler." - , nameof(windowSource)); - } - - source.AddHook(WndProc); - - // get window handle for interop - IntPtr windowHandle = new WindowInteropHelper(windowSource).Handle; - - // register for clipboard events - NativeMethods.AddClipboardFormatListener(windowHandle); - } - - private void OnClipboardChanged() - { - ClipboardChanged?.Invoke(this, EventArgs.Empty); - } - - private static readonly IntPtr WndProcSuccess = IntPtr.Zero; - - private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) - { - if (msg == NativeMethods.WM_CLIPBOARDUPDATE) - { - OnClipboardChanged(); - handled = true; - } - - return WndProcSuccess; - } -} \ No newline at end of file diff --git a/src/ClipCMD/EnumBooleanConverter.cs b/src/ClipCMD/EnumBooleanConverter.cs deleted file mode 100644 index a4759b0..0000000 --- a/src/ClipCMD/EnumBooleanConverter.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Windows; -using System.Windows.Data; - -namespace ClipCMD; - -public class EnumBooleanConverter : IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - if (parameter is not string parameterString) - { - return DependencyProperty.UnsetValue; - } - - if (!Enum.IsDefined(value.GetType(), value)) - { - return DependencyProperty.UnsetValue; - } - - object parameterValue = Enum.Parse(value.GetType(), parameterString); - - return parameterValue.Equals(value); - } - - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - if (parameter is not string parameterString) - { - return DependencyProperty.UnsetValue; - } - - return Enum.Parse(targetType, parameterString); - } -} \ No newline at end of file diff --git a/src/ClipCMD/GlobalSuppressions.cs b/src/ClipCMD/GlobalSuppressions.cs new file mode 100644 index 0000000..adae0f4 --- /dev/null +++ b/src/ClipCMD/GlobalSuppressions.cs @@ -0,0 +1,7 @@ +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "")] +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. \ No newline at end of file diff --git a/src/ClipCMD/MainWindow.xaml b/src/ClipCMD/MainWindow.xaml deleted file mode 100644 index 5f7ade2..0000000 --- a/src/ClipCMD/MainWindow.xaml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ClipCMD/Views/MainView.axaml.cs b/src/ClipCMD/Views/MainView.axaml.cs new file mode 100644 index 0000000..de75bce --- /dev/null +++ b/src/ClipCMD/Views/MainView.axaml.cs @@ -0,0 +1,11 @@ +using Avalonia.Controls; + +namespace ClipCmd.Views; + +public partial class MainView : UserControl +{ + public MainView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/src/ClipCMD/Views/MainWindow.axaml b/src/ClipCMD/Views/MainWindow.axaml new file mode 100644 index 0000000..92b5ac5 --- /dev/null +++ b/src/ClipCMD/Views/MainWindow.axaml @@ -0,0 +1,15 @@ + + + + \ No newline at end of file diff --git a/src/ClipCMD/Views/MainWindow.axaml.cs b/src/ClipCMD/Views/MainWindow.axaml.cs new file mode 100644 index 0000000..a81f742 --- /dev/null +++ b/src/ClipCMD/Views/MainWindow.axaml.cs @@ -0,0 +1,11 @@ +using Avalonia.Controls; + +namespace ClipCmd.Views; + +public partial class MainWindow : Window +{ + public MainWindow() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/src/ClipCMD/logo.ico b/src/ClipCMD/logo.ico deleted file mode 100644 index aff544c..0000000 Binary files a/src/ClipCMD/logo.ico and /dev/null differ diff --git a/src/ClipCmd.Desktop/ClipCmd.Desktop.csproj b/src/ClipCmd.Desktop/ClipCmd.Desktop.csproj new file mode 100644 index 0000000..a128ef1 --- /dev/null +++ b/src/ClipCmd.Desktop/ClipCmd.Desktop.csproj @@ -0,0 +1,34 @@ + + + WinExe + + net8.0 + enable + true + + + + app.manifest + + 1.0.0.0 + logo.ico + + + + + + + + + + + + + + + + + + + diff --git a/src/ClipCmd.Desktop/Program.cs b/src/ClipCmd.Desktop/Program.cs new file mode 100644 index 0000000..9980c7f --- /dev/null +++ b/src/ClipCmd.Desktop/Program.cs @@ -0,0 +1,29 @@ +using Avalonia; +using Avalonia.ReactiveUI; + +using System; + +namespace ClipCmd.Desktop; + +internal static class Program +{ + // Initialization code. Don't use any Avalonia, third-party APIs or any + // SynchronizationContext-reliant code before AppMain is called: things aren't initialized + // yet and stuff might break. + [STAThread] + public static void Main(string[] args) + { + _ = BuildAvaloniaApp() + .StartWithClassicDesktopLifetime(args); + } + + // Avalonia configuration, don't remove; also used by visual designer. + public static AppBuilder BuildAvaloniaApp() + { + return AppBuilder.Configure() + .UsePlatformDetect() + .WithInterFont() + .LogToTrace() + .UseReactiveUI(); + } +} \ No newline at end of file diff --git a/src/ClipCmd.Desktop/app.manifest b/src/ClipCmd.Desktop/app.manifest new file mode 100644 index 0000000..00c4e51 --- /dev/null +++ b/src/ClipCmd.Desktop/app.manifest @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/src/ClipCmd.Desktop/logo.ico b/src/ClipCmd.Desktop/logo.ico new file mode 100644 index 0000000..6d06cd8 Binary files /dev/null and b/src/ClipCmd.Desktop/logo.ico differ diff --git a/src/Directory.Build.props b/src/Directory.Build.props new file mode 100644 index 0000000..3a82054 --- /dev/null +++ b/src/Directory.Build.props @@ -0,0 +1,6 @@ + + + enable + 11.0.10 + + diff --git a/src/MsixPackaging/Images/LargeTile.scale-100.png b/src/MsixPackaging/Images/LargeTile.scale-100.png new file mode 100644 index 0000000..1926344 Binary files /dev/null and b/src/MsixPackaging/Images/LargeTile.scale-100.png differ diff --git a/src/MsixPackaging/Images/LargeTile.scale-125.png b/src/MsixPackaging/Images/LargeTile.scale-125.png new file mode 100644 index 0000000..b1ff001 Binary files /dev/null and b/src/MsixPackaging/Images/LargeTile.scale-125.png differ diff --git a/src/MsixPackaging/Images/LargeTile.scale-150.png b/src/MsixPackaging/Images/LargeTile.scale-150.png new file mode 100644 index 0000000..67491b7 Binary files /dev/null and b/src/MsixPackaging/Images/LargeTile.scale-150.png differ diff --git a/src/MsixPackaging/Images/LargeTile.scale-200.png b/src/MsixPackaging/Images/LargeTile.scale-200.png new file mode 100644 index 0000000..9c50ec4 Binary files /dev/null and b/src/MsixPackaging/Images/LargeTile.scale-200.png differ diff --git a/src/MsixPackaging/Images/LargeTile.scale-400.png b/src/MsixPackaging/Images/LargeTile.scale-400.png new file mode 100644 index 0000000..141917f Binary files /dev/null and b/src/MsixPackaging/Images/LargeTile.scale-400.png differ diff --git a/src/MsixPackaging/Images/LockScreenLogo.scale-200.png b/src/MsixPackaging/Images/LockScreenLogo.scale-200.png new file mode 100644 index 0000000..735f57a Binary files /dev/null and b/src/MsixPackaging/Images/LockScreenLogo.scale-200.png differ diff --git a/src/MsixPackaging/Images/SmallTile.scale-100.png b/src/MsixPackaging/Images/SmallTile.scale-100.png new file mode 100644 index 0000000..f2431a9 Binary files /dev/null and b/src/MsixPackaging/Images/SmallTile.scale-100.png differ diff --git a/src/MsixPackaging/Images/SmallTile.scale-125.png b/src/MsixPackaging/Images/SmallTile.scale-125.png new file mode 100644 index 0000000..a5aa658 Binary files /dev/null and b/src/MsixPackaging/Images/SmallTile.scale-125.png differ diff --git a/src/MsixPackaging/Images/SmallTile.scale-150.png b/src/MsixPackaging/Images/SmallTile.scale-150.png new file mode 100644 index 0000000..e1d5cfe Binary files /dev/null and b/src/MsixPackaging/Images/SmallTile.scale-150.png differ diff --git a/src/MsixPackaging/Images/SmallTile.scale-200.png b/src/MsixPackaging/Images/SmallTile.scale-200.png new file mode 100644 index 0000000..ecd5a28 Binary files /dev/null and b/src/MsixPackaging/Images/SmallTile.scale-200.png differ diff --git a/src/MsixPackaging/Images/SmallTile.scale-400.png b/src/MsixPackaging/Images/SmallTile.scale-400.png new file mode 100644 index 0000000..443fb3c Binary files /dev/null and b/src/MsixPackaging/Images/SmallTile.scale-400.png differ diff --git a/src/MsixPackaging/Images/SplashScreen.scale-100.png b/src/MsixPackaging/Images/SplashScreen.scale-100.png new file mode 100644 index 0000000..05151ed Binary files /dev/null and b/src/MsixPackaging/Images/SplashScreen.scale-100.png differ diff --git a/src/MsixPackaging/Images/SplashScreen.scale-125.png b/src/MsixPackaging/Images/SplashScreen.scale-125.png new file mode 100644 index 0000000..0232d90 Binary files /dev/null and b/src/MsixPackaging/Images/SplashScreen.scale-125.png differ diff --git a/src/MsixPackaging/Images/SplashScreen.scale-150.png b/src/MsixPackaging/Images/SplashScreen.scale-150.png new file mode 100644 index 0000000..010c945 Binary files /dev/null and b/src/MsixPackaging/Images/SplashScreen.scale-150.png differ diff --git a/src/MsixPackaging/Images/SplashScreen.scale-200.png b/src/MsixPackaging/Images/SplashScreen.scale-200.png new file mode 100644 index 0000000..ed72f5f Binary files /dev/null and b/src/MsixPackaging/Images/SplashScreen.scale-200.png differ diff --git a/src/MsixPackaging/Images/SplashScreen.scale-400.png b/src/MsixPackaging/Images/SplashScreen.scale-400.png new file mode 100644 index 0000000..b781154 Binary files /dev/null and b/src/MsixPackaging/Images/SplashScreen.scale-400.png differ diff --git a/src/MsixPackaging/Images/Square150x150Logo.scale-100.png b/src/MsixPackaging/Images/Square150x150Logo.scale-100.png new file mode 100644 index 0000000..058e3fc Binary files /dev/null and b/src/MsixPackaging/Images/Square150x150Logo.scale-100.png differ diff --git a/src/MsixPackaging/Images/Square150x150Logo.scale-125.png b/src/MsixPackaging/Images/Square150x150Logo.scale-125.png new file mode 100644 index 0000000..aeeba68 Binary files /dev/null and b/src/MsixPackaging/Images/Square150x150Logo.scale-125.png differ diff --git a/src/MsixPackaging/Images/Square150x150Logo.scale-150.png b/src/MsixPackaging/Images/Square150x150Logo.scale-150.png new file mode 100644 index 0000000..915d1e0 Binary files /dev/null and b/src/MsixPackaging/Images/Square150x150Logo.scale-150.png differ diff --git a/src/MsixPackaging/Images/Square150x150Logo.scale-200.png b/src/MsixPackaging/Images/Square150x150Logo.scale-200.png new file mode 100644 index 0000000..fb8d742 Binary files /dev/null and b/src/MsixPackaging/Images/Square150x150Logo.scale-200.png differ diff --git a/src/MsixPackaging/Images/Square150x150Logo.scale-400.png b/src/MsixPackaging/Images/Square150x150Logo.scale-400.png new file mode 100644 index 0000000..66afe7c Binary files /dev/null and b/src/MsixPackaging/Images/Square150x150Logo.scale-400.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png new file mode 100644 index 0000000..e6b0ec4 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png new file mode 100644 index 0000000..27b8206 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png new file mode 100644 index 0000000..35cef42 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png new file mode 100644 index 0000000..7588966 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png new file mode 100644 index 0000000..1dba889 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-16.png b/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-16.png new file mode 100644 index 0000000..e6b0ec4 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-16.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-256.png b/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-256.png new file mode 100644 index 0000000..35cef42 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-256.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-32.png b/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-32.png new file mode 100644 index 0000000..7588966 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-32.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-48.png b/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-48.png new file mode 100644 index 0000000..1dba889 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-48.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.scale-100.png b/src/MsixPackaging/Images/Square44x44Logo.scale-100.png new file mode 100644 index 0000000..3c8235a Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.scale-100.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.scale-125.png b/src/MsixPackaging/Images/Square44x44Logo.scale-125.png new file mode 100644 index 0000000..e949842 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.scale-125.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.scale-150.png b/src/MsixPackaging/Images/Square44x44Logo.scale-150.png new file mode 100644 index 0000000..4ddffd7 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.scale-150.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.scale-200.png b/src/MsixPackaging/Images/Square44x44Logo.scale-200.png new file mode 100644 index 0000000..4e0b509 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.scale-200.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.scale-400.png b/src/MsixPackaging/Images/Square44x44Logo.scale-400.png new file mode 100644 index 0000000..ccd3587 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.scale-400.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.targetsize-16.png b/src/MsixPackaging/Images/Square44x44Logo.targetsize-16.png new file mode 100644 index 0000000..c907744 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.targetsize-16.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.targetsize-24.png b/src/MsixPackaging/Images/Square44x44Logo.targetsize-24.png new file mode 100644 index 0000000..a202f80 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.targetsize-24.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.targetsize-24_altform-unplated.png b/src/MsixPackaging/Images/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000..27b8206 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.targetsize-24_altform-unplated.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.targetsize-256.png b/src/MsixPackaging/Images/Square44x44Logo.targetsize-256.png new file mode 100644 index 0000000..ff56c22 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.targetsize-256.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.targetsize-32.png b/src/MsixPackaging/Images/Square44x44Logo.targetsize-32.png new file mode 100644 index 0000000..324acf5 Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.targetsize-32.png differ diff --git a/src/MsixPackaging/Images/Square44x44Logo.targetsize-48.png b/src/MsixPackaging/Images/Square44x44Logo.targetsize-48.png new file mode 100644 index 0000000..f5a445a Binary files /dev/null and b/src/MsixPackaging/Images/Square44x44Logo.targetsize-48.png differ diff --git a/src/MsixPackaging/Images/StoreLogo.backup.png b/src/MsixPackaging/Images/StoreLogo.backup.png new file mode 100644 index 0000000..7385b56 Binary files /dev/null and b/src/MsixPackaging/Images/StoreLogo.backup.png differ diff --git a/src/MsixPackaging/Images/StoreLogo.scale-100.png b/src/MsixPackaging/Images/StoreLogo.scale-100.png new file mode 100644 index 0000000..fcab6d1 Binary files /dev/null and b/src/MsixPackaging/Images/StoreLogo.scale-100.png differ diff --git a/src/MsixPackaging/Images/StoreLogo.scale-125.png b/src/MsixPackaging/Images/StoreLogo.scale-125.png new file mode 100644 index 0000000..a5c19df Binary files /dev/null and b/src/MsixPackaging/Images/StoreLogo.scale-125.png differ diff --git a/src/MsixPackaging/Images/StoreLogo.scale-150.png b/src/MsixPackaging/Images/StoreLogo.scale-150.png new file mode 100644 index 0000000..b96df75 Binary files /dev/null and b/src/MsixPackaging/Images/StoreLogo.scale-150.png differ diff --git a/src/MsixPackaging/Images/StoreLogo.scale-200.png b/src/MsixPackaging/Images/StoreLogo.scale-200.png new file mode 100644 index 0000000..58a219e Binary files /dev/null and b/src/MsixPackaging/Images/StoreLogo.scale-200.png differ diff --git a/src/MsixPackaging/Images/StoreLogo.scale-400.png b/src/MsixPackaging/Images/StoreLogo.scale-400.png new file mode 100644 index 0000000..f6218c7 Binary files /dev/null and b/src/MsixPackaging/Images/StoreLogo.scale-400.png differ diff --git a/src/MsixPackaging/Images/Wide310x150Logo.scale-100.png b/src/MsixPackaging/Images/Wide310x150Logo.scale-100.png new file mode 100644 index 0000000..7e8478d Binary files /dev/null and b/src/MsixPackaging/Images/Wide310x150Logo.scale-100.png differ diff --git a/src/MsixPackaging/Images/Wide310x150Logo.scale-125.png b/src/MsixPackaging/Images/Wide310x150Logo.scale-125.png new file mode 100644 index 0000000..91d90e8 Binary files /dev/null and b/src/MsixPackaging/Images/Wide310x150Logo.scale-125.png differ diff --git a/src/MsixPackaging/Images/Wide310x150Logo.scale-150.png b/src/MsixPackaging/Images/Wide310x150Logo.scale-150.png new file mode 100644 index 0000000..35ec4d3 Binary files /dev/null and b/src/MsixPackaging/Images/Wide310x150Logo.scale-150.png differ diff --git a/src/MsixPackaging/Images/Wide310x150Logo.scale-200.png b/src/MsixPackaging/Images/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000..05151ed Binary files /dev/null and b/src/MsixPackaging/Images/Wide310x150Logo.scale-200.png differ diff --git a/src/MsixPackaging/Images/Wide310x150Logo.scale-400.png b/src/MsixPackaging/Images/Wide310x150Logo.scale-400.png new file mode 100644 index 0000000..ed72f5f Binary files /dev/null and b/src/MsixPackaging/Images/Wide310x150Logo.scale-400.png differ diff --git a/src/MsixPackaging/Logo.png b/src/MsixPackaging/Logo.png new file mode 100644 index 0000000..8e1b3b9 Binary files /dev/null and b/src/MsixPackaging/Logo.png differ diff --git a/src/MsixPackaging/MsixPackaging.wapproj b/src/MsixPackaging/MsixPackaging.wapproj new file mode 100644 index 0000000..135ff68 --- /dev/null +++ b/src/MsixPackaging/MsixPackaging.wapproj @@ -0,0 +1,164 @@ + + + + 15.0 + + + + Debug + x86 + + + Release + x86 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + Debug + ARM64 + + + Release + ARM64 + + + Debug + AnyCPU + + + Release + AnyCPU + + + + $(MSBuildExtensionsPath)\Microsoft\DesktopBridge\ + + + + cbf43e7f-27d3-4106-96e6-3750d1734990 + 10.0.22621.0 + 10.0.14393.0 + en-US + false + $(NoWarn);NU1702 + True + ..\ClipCmd.Desktop\ClipCmd.Desktop.csproj + False + SHA256 + False + True + x86 + 0 + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/MsixPackaging/Package.appxmanifest b/src/MsixPackaging/Package.appxmanifest new file mode 100644 index 0000000..a91ba15 --- /dev/null +++ b/src/MsixPackaging/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + ClipCMD + Stone_Red + Images\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + +