mirror of
https://github.com/Stone-Red-Code/DesktopMagic.git
synced 2026-09-04 00:46:12 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0b0f208098 | ||
|
|
ac49916308 | ||
|
|
83f5b28d5c | ||
|
|
d8a895b240 | ||
|
|
ef27ace78b | ||
|
|
0f6e8437fd | ||
|
|
5bc35cf92b | ||
|
|
2df2ef3b11 | ||
|
|
603a78935b | ||
|
|
40d1232e33 | ||
|
|
1cde9442ef | ||
|
|
90ee56be94 | ||
|
|
aed4b7de64 | ||
|
|
101b516ca8 | ||
|
|
c551dafeed | ||
|
|
7d2f68a66a | ||
|
|
efd75b0a42 | ||
|
|
74bff47ce3 | ||
|
|
6e4757adea | ||
|
|
e00c873bd5 | ||
|
|
d70e6229cc | ||
|
|
f94f24297e | ||
|
|
36e09acd0e | ||
|
|
24ca987ab0 | ||
|
|
535062e8c4 | ||
|
|
69774b86a3 | ||
|
|
e9cf43d968 | ||
|
|
8df53ef190 | ||
|
|
ae490367ee | ||
|
|
3268a66d64 | ||
|
|
24437371ec | ||
|
|
8e31735032 | ||
|
|
c38ea293d1 | ||
|
|
ea0b79573a | ||
|
|
2b4583ce5d | ||
|
|
870b84a631 | ||
|
|
b23571c0f7 | ||
|
|
d4c4b4e1ed | ||
|
|
41e4e03d2f | ||
|
|
9db60da702 | ||
|
|
86f07f4bf3 | ||
|
|
128db89b75 | ||
|
|
5bb62ed17a | ||
|
|
bf45db8e76 | ||
|
|
3c61c021d4 | ||
|
|
bbb6873887 | ||
|
|
fa225d7b6f | ||
|
|
0aa8307e5b | ||
|
|
60df188433 | ||
|
|
58572eb6f2 | ||
|
|
d46976fec8 | ||
|
|
af18375e6a | ||
|
|
544b838f2f | ||
|
|
14c6830f5e | ||
|
|
1e57ec1b6a | ||
|
|
e89b2981e7 | ||
|
|
f05b5783ba | ||
|
|
883cc3a2fb | ||
|
|
83a6339a46 | ||
|
|
985a68b33e | ||
|
|
4ea42f21de | ||
|
|
f79e9db4fa | ||
|
|
23a31ae5d0 | ||
|
|
aaced7a569 | ||
|
|
263f69a4ee |
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
+391
@@ -0,0 +1,391 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
bin/
|
||||
obj/
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Mono auto generated files
|
||||
mono_crash.*
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Ww][Ii][Nn]32/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUnit
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
nunit-*.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# Benchmark Results
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
# ASP.NET Scaffolding
|
||||
ScaffoldingReadMe.txt
|
||||
|
||||
# StyleCop
|
||||
StyleCopReport.xml
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.tlog
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
|
||||
# Coverlet is a free, cross platform Code Coverage Tool
|
||||
coverage*.json
|
||||
coverage*.xml
|
||||
coverage*.info
|
||||
|
||||
# Visual Studio code coverage results
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/[Pp]ackages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Nuget personal access tokens and Credentials
|
||||
nuget.config
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
*.appxbundle
|
||||
*.appxupload
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!?*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
|
||||
# Including strong name files can present a security risk
|
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||
#*.snk
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
*- [Bb]ackup.rdl
|
||||
*- [Bb]ackup ([0-9]).rdl
|
||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
|
||||
# Telerik's JustMock configuration file
|
||||
*.jmconfig
|
||||
|
||||
# BizTalk build output
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
|
||||
# OpenCover UI analysis results
|
||||
OpenCover/
|
||||
|
||||
# Azure Stream Analytics local run output
|
||||
ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
||||
|
||||
# BeatPulse healthcheck temp database
|
||||
healthchecksdb
|
||||
|
||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||
MigrationBackup/
|
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
|
||||
# Fody - auto-generated XML schema
|
||||
FodyWeavers.xsd
|
||||
|
||||
# VS Code files for those working on multiple tools
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
*.code-workspace
|
||||
|
||||
# Local History for Visual Studio Code
|
||||
.history/
|
||||
|
||||
# Windows Installer files from build outputs
|
||||
*.cab
|
||||
*.msi
|
||||
*.msix
|
||||
*.msm
|
||||
*.msp
|
||||
|
||||
# JetBrains Rider
|
||||
.idea/
|
||||
*.sln.iml
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Stone-Red-Code
|
||||
Copyright (c) 2021 Stone_Red
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -4,14 +4,17 @@
|
||||
> You can add useful elements to your desktop like a clock, a audio visualizer or even your own plugins!
|
||||
|
||||
- [Releases](https://github.com/Stone-Red-Code/DesktopMagic/releases)
|
||||
- [Plugin Documentation](https://github.com/Stone-Red-Code/DesktopMagic/wiki) (coming soon)
|
||||
- [Download Plugins](https://github.com/Stone-Red-Code/DesktopMagic-Plugins)
|
||||
- [Plugin Documentation](https://github.com/Stone-Red-Code/DesktopMagic/wiki)
|
||||
- [Licence](https://github.com/Stone-Red-Code/DesktopMagic/blob/main/LICENSE)
|
||||
|
||||
## Usage
|
||||
|
||||
1. [Download](https://github.com/Stone-Red-Code/DesktopMagic/releases) one of the releases
|
||||
2. Execute the `DesktopMagic.exe` installer file
|
||||
3. (Optional) Put a shortcut to the `DesktopMagic.exe` file in the install directory into the `shell:startup` directory
|
||||
1. Download one of the [releases](https://github.com/Stone-Red-Code/DesktopMagic/releases).
|
||||
1. Follow one of the steps below.
|
||||
1. Execute the `DesktopMagic-Installer.exe` file.
|
||||
1. Unzip the `DesktopMagic-Standalone.zip` file and execute the `DesktopMagic.exe` file.
|
||||
1. (Optional) Put a shortcut to the `DesktopMagic.exe` file in the install directory into the `shell:startup` directory.
|
||||
|
||||
## Preview
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
[*.{cs,vb}]
|
||||
|
||||
# IDE0003: Qualifizierung entfernen
|
||||
dotnet_diagnostic.IDE0003.severity = silent
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,7 +2,7 @@
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
#define MyAppName "DesktopMagic"
|
||||
#define MyAppVersion "0"
|
||||
#define MyAppVersion "0.0.3.0"
|
||||
#define MyAppPublisher "Stone_Red"
|
||||
#define MyAppExeName "DesktopMagic.exe"
|
||||
|
||||
@@ -21,7 +21,7 @@ UsedUserAreasWarning=no
|
||||
; Remove the following line to run in administrative install mode (install for all users.)
|
||||
PrivilegesRequired=lowest
|
||||
PrivilegesRequiredOverridesAllowed=dialog
|
||||
OutputBaseFilename=DesktopMagic
|
||||
OutputBaseFilename=DesktopMagic-Installer
|
||||
OutputDir=.
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
@@ -36,41 +36,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
|
||||
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
|
||||
|
||||
[Files]
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\AlwaysUpToDate.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.deps.json"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.pdb"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.dev.json"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.json"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.pdb"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.PlatformServices.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Calendar.v3.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Hardcodet.NotifyIcon.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignColors.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignThemes.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Asio.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Midi.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Wasapi.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinForms.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinMM.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Drawing.Common.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Management.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Text.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Aero.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Metro.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.VS2010.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.Toolkit.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\runtimes\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\publish\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v5.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v5.0": {
|
||||
"DesktopMagic.Installer/1.0.0": {
|
||||
"runtime": {
|
||||
"DesktopMagic.Installer.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"DesktopMagic.Installer/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,83 +0,0 @@
|
||||
; Script generated by the Inno Setup Script Wizard.
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
#define MyAppName "DesktopMagic"
|
||||
#define MyAppVersion "0"
|
||||
#define MyAppPublisher "Stone_Red"
|
||||
#define MyAppExeName "DesktopMagic.exe"
|
||||
|
||||
[Setup]
|
||||
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
|
||||
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
||||
AppId={{61FE5CE9-47C3-4255-A1F4-5BCF4ACA0876}
|
||||
AppName={#MyAppName}
|
||||
AppVersion={#MyAppVersion}
|
||||
;AppVerName={#MyAppName} {#MyAppVersion}
|
||||
AppPublisher={#MyAppPublisher}
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
DisableProgramGroupPage=yes
|
||||
; The [Icons] "quicklaunchicon" entry uses {userappdata} but its [Tasks] entry has a proper IsAdminInstallMode Check.
|
||||
UsedUserAreasWarning=no
|
||||
; Remove the following line to run in administrative install mode (install for all users.)
|
||||
PrivilegesRequired=lowest
|
||||
PrivilegesRequiredOverridesAllowed=dialog
|
||||
OutputBaseFilename=DesktopMagic
|
||||
OutputDir=.
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
WizardStyle=modern
|
||||
|
||||
[Languages]
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
|
||||
|
||||
[Files]
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\AlwaysUpToDate.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.deps.json"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.pdb"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.dev.json"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.json"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.pdb"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.PlatformServices.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Calendar.v3.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Hardcodet.NotifyIcon.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignColors.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignThemes.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Asio.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Midi.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Wasapi.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinForms.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinMM.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Drawing.Common.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Management.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Text.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Aero.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Metro.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.VS2010.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.Toolkit.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\runtimes\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
||||
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
|
||||
|
||||
[Run]
|
||||
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
|
||||
|
||||
Binary file not shown.
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v5.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v5.0": {
|
||||
"DesktopMagic.Installer/1.0.0": {
|
||||
"runtime": {
|
||||
"DesktopMagic.Installer.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"DesktopMagic.Installer/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,83 +0,0 @@
|
||||
; Script generated by the Inno Setup Script Wizard.
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
#define MyAppName "DesktopMagic"
|
||||
#define MyAppVersion "0"
|
||||
#define MyAppPublisher "Stone_Red"
|
||||
#define MyAppExeName "DesktopMagic.exe"
|
||||
|
||||
[Setup]
|
||||
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
|
||||
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
||||
AppId={{61FE5CE9-47C3-4255-A1F4-5BCF4ACA0876}
|
||||
AppName={#MyAppName}
|
||||
AppVersion={#MyAppVersion}
|
||||
;AppVerName={#MyAppName} {#MyAppVersion}
|
||||
AppPublisher={#MyAppPublisher}
|
||||
DefaultDirName={autopf}\{#MyAppName}
|
||||
DisableProgramGroupPage=yes
|
||||
; The [Icons] "quicklaunchicon" entry uses {userappdata} but its [Tasks] entry has a proper IsAdminInstallMode Check.
|
||||
UsedUserAreasWarning=no
|
||||
; Remove the following line to run in administrative install mode (install for all users.)
|
||||
PrivilegesRequired=lowest
|
||||
PrivilegesRequiredOverridesAllowed=dialog
|
||||
OutputBaseFilename=DesktopMagic
|
||||
OutputDir=.
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
WizardStyle=modern
|
||||
|
||||
[Languages]
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
|
||||
|
||||
[Files]
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\AlwaysUpToDate.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.deps.json"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.pdb"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.dev.json"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.json"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.pdb"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.PlatformServices.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Calendar.v3.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Hardcodet.NotifyIcon.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignColors.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignThemes.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Asio.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Midi.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Wasapi.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinForms.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinMM.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Drawing.Common.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Management.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Text.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Aero.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Metro.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.VS2010.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.Toolkit.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "..\DesktopMagic\bin\Release\net5.0-windows\runtimes\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
||||
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
|
||||
|
||||
[Run]
|
||||
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
|
||||
|
||||
Binary file not shown.
-4
@@ -1,4 +0,0 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v5.0", FrameworkDisplayName = "")]
|
||||
@@ -1,23 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("DesktopMagic.Installer")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("DesktopMagic.Installer")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("DesktopMagic.Installer")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Von der MSBuild WriteCodeFragment-Klasse generiert.
|
||||
|
||||
-1
@@ -1 +0,0 @@
|
||||
97028a0ce59685f32b0944a3e78d97cf8cd1f567
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = net5.0
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.PublishSingleFile =
|
||||
build_property.IncludeAllContentForSelfExtract =
|
||||
build_property._SupportedPlatformList = Android,iOS,Linux,macOS,Windows
|
||||
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
0c66707734c17cf9e17a25d0d17e707ead577fd9
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Debug\net5.0\DesktopMagic.Installer.deps.json
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Debug\net5.0\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Debug\net5.0\ref\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Debug\net5.0\DesktopMagic.Installer.pdb
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.csprojAssemblyReference.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.AssemblyInfoInputs.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.AssemblyInfo.cs
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.csproj.CoreCompileInputs.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Debug\net5.0\ref\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.pdb
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Debug\net5.0\Installer.iss
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Debug\net5.0\Installer.iss
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Debug\net5.0\DesktopMagic.Installer.deps.json
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Debug\net5.0\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Debug\net5.0\ref\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Debug\net5.0\DesktopMagic.Installer.pdb
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.csprojAssemblyReference.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.AssemblyInfoInputs.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.AssemblyInfo.cs
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.csproj.CoreCompileInputs.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Debug\net5.0\ref\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Debug\net5.0\DesktopMagic.Installer.pdb
|
||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,68 +0,0 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
|
||||
"projectName": "DesktopMagic.Installer",
|
||||
"projectPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
|
||||
"packagesPath": "C:\\Users\\David\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
|
||||
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net5.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net5.0": {
|
||||
"targetAlias": "net5.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net5.0": {
|
||||
"targetAlias": "net5.0",
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\David\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files (x86)\Microsoft\Xamarin\NuGet\</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.9.1</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\David\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft\Xamarin\NuGet\" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
-4
@@ -1,4 +0,0 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v5.0", FrameworkDisplayName = "")]
|
||||
@@ -1,23 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <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>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("DesktopMagic.Installer")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("DesktopMagic.Installer")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("DesktopMagic.Installer")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Von der MSBuild WriteCodeFragment-Klasse generiert.
|
||||
|
||||
-1
@@ -1 +0,0 @@
|
||||
cd6667c25d7a4534637b1fde3b018e93109dbcda
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = net5.0
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.PublishSingleFile =
|
||||
build_property.IncludeAllContentForSelfExtract =
|
||||
build_property._SupportedPlatformList = Android,iOS,Linux,macOS,Windows
|
||||
Binary file not shown.
-1
@@ -1 +0,0 @@
|
||||
3de46dc0a7a50425c2c2e0f6ae9305c5c446a680
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.AssemblyInfoInputs.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.AssemblyInfo.cs
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.csproj.CoreCompileInputs.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Release\net5.0\DesktopMagic.Installer.deps.json
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Release\net5.0\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Release\net5.0\ref\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Release\net5.0\DesktopMagic.Installer.pdb
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Release\net5.0\ref\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.pdb
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.csprojAssemblyReference.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\DesktopMagic.Installer\bin\Release\net5.0\Installer.iss
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\Installer.iss
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\DesktopMagic.Installer.deps.json
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\ref\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\DesktopMagic.Installer.pdb
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.csprojAssemblyReference.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.AssemblyInfoInputs.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.AssemblyInfo.cs
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.csproj.CoreCompileInputs.cache
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\ref\DesktopMagic.Installer.dll
|
||||
C:\Users\David\Google Drive\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.pdb
|
||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,75 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"targets": {
|
||||
"net5.0": {}
|
||||
},
|
||||
"libraries": {},
|
||||
"projectFileDependencyGroups": {
|
||||
"net5.0": []
|
||||
},
|
||||
"packageFolders": {
|
||||
"C:\\Users\\David\\.nuget\\packages\\": {},
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {},
|
||||
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\": {}
|
||||
},
|
||||
"project": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
|
||||
"projectName": "DesktopMagic.Installer",
|
||||
"projectPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
|
||||
"packagesPath": "C:\\Users\\David\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
|
||||
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net5.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net5.0": {
|
||||
"targetAlias": "net5.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net5.0": {
|
||||
"targetAlias": "net5.0",
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "RMVg3g84xDKsW5P4i9dL+GsjVxpOKCGzERVoRzlk0KwX52UgF4vkE2yB9UlTxEXoQ6mBninswcRqGL2qm6GZ7g==",
|
||||
"success": true,
|
||||
"projectFilePath": "C:\\Users\\David\\Google Drive\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
|
||||
"expectedPackageFiles": [],
|
||||
"logs": []
|
||||
}
|
||||
@@ -4,15 +4,12 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
VisualStudioVersion = 16.0.31205.134
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagic", "DesktopMagic\DesktopMagic.csproj", "{B56B4CCC-CF92-4C05-9DEA-57666D81889A}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{A06BD685-7F92-4799-846B-3EC38345108E} = {A06BD685-7F92-4799-846B-3EC38345108E}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagicPluginAPI", "DesktopMagicPluginAPI\DesktopMagicPluginAPI.csproj", "{9D193A10-3E8E-447F-89F1-4B316C2EE37D}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagicPlugin.Test", "DesktopMagicPlugin.Test\DesktopMagicPlugin.Test.csproj", "{EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesktopMagic.Installer", "DesktopMagic.Installer\DesktopMagic.Installer.csproj", "{A06BD685-7F92-4799-846B-3EC38345108E}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagic.Installer", "DesktopMagic.Installer\DesktopMagic.Installer.csproj", "{A06BD685-7F92-4799-846B-3EC38345108E}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
using System.Windows;
|
||||
using AlwaysUpToDate;
|
||||
|
||||
using Stone_Red_Utilities.Logging;
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
|
||||
namespace DesktopMagic
|
||||
{
|
||||
@@ -7,5 +13,118 @@ namespace DesktopMagic
|
||||
/// </summary>
|
||||
public partial class App : Application
|
||||
{
|
||||
private readonly string logFilePath;
|
||||
private readonly Mutex _mutex;
|
||||
#if DEBUG
|
||||
private readonly Updater updater = new Updater(TimeSpan.FromDays(1), "https://raw.githubusercontent.com/Stone-Red-Code/DesktopMagic/develop/update/updateInfo.json");
|
||||
#else
|
||||
private readonly Updater updater = new Updater(TimeSpan.FromHours(1), "https://raw.githubusercontent.com/Stone-Red-Code/DesktopMagic/main/update/updateInfo.json");
|
||||
#endif
|
||||
|
||||
public const string AppName = "Desktop Magic";
|
||||
public static string ApplicationDataPath { get; } = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + AppName;
|
||||
|
||||
public static Logger Logger { get; } = new Logger();
|
||||
|
||||
public App()
|
||||
{
|
||||
logFilePath = ApplicationDataPath + "\\Log.log";
|
||||
Setup();
|
||||
// Try to grab mutex
|
||||
_mutex = new Mutex(true, $"Stone_Red{AppName}", out bool createdNew);
|
||||
|
||||
//check if creating new was succesfull
|
||||
if (!createdNew)
|
||||
{
|
||||
Logger.Log("Shutting down because other instance already running.", "Setup");
|
||||
//Shutdown Aplication
|
||||
Current.Shutdown();
|
||||
}
|
||||
else
|
||||
{
|
||||
Exit += CloseMutexHandler;
|
||||
|
||||
updater.ProgressChanged += Updater_ProgressChanged;
|
||||
updater.OnException += Updater_OnException;
|
||||
updater.NoUpdateAvailible += Updater_NoUpdateAvailible;
|
||||
updater.UpdateAvailible += Updater_UpdateAvailible;
|
||||
updater.Start();
|
||||
}
|
||||
}
|
||||
|
||||
private void Updater_UpdateAvailible(string version, string additionalInformation)
|
||||
{
|
||||
updater.Update();
|
||||
}
|
||||
|
||||
private void Updater_NoUpdateAvailible()
|
||||
{
|
||||
Logger.Log("No update avalible.", "Updater");
|
||||
}
|
||||
|
||||
private void Updater_OnException(Exception exception)
|
||||
{
|
||||
Logger.Log(exception.ToString(), "Updater");
|
||||
}
|
||||
|
||||
private void Updater_ProgressChanged(long? totalFileSize, long totalBytesDownloaded, double? progressPercentage)
|
||||
{
|
||||
Logger.Log($"{progressPercentage}% {totalBytesDownloaded}/{totalFileSize}", "Updater");
|
||||
}
|
||||
|
||||
protected void CloseMutexHandler(object sender, EventArgs e)
|
||||
{
|
||||
_mutex?.Close();
|
||||
}
|
||||
|
||||
private void Setup()
|
||||
{
|
||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||
|
||||
Logger.Config = new LogConfig()
|
||||
{
|
||||
FatalConfig = new OutputConfig()
|
||||
{
|
||||
Color = ConsoleColor.DarkRed,
|
||||
LogTarget = LogTarget.DebugConsole | LogTarget.File,
|
||||
FilePath = logFilePath
|
||||
},
|
||||
ErrorConfig = new OutputConfig()
|
||||
{
|
||||
Color = ConsoleColor.Red,
|
||||
LogTarget = LogTarget.DebugConsole | LogTarget.File,
|
||||
FilePath = logFilePath
|
||||
},
|
||||
WarnConfig = new OutputConfig()
|
||||
{
|
||||
Color = ConsoleColor.Yellow,
|
||||
LogTarget = LogTarget.DebugConsole | LogTarget.File,
|
||||
FilePath = logFilePath
|
||||
},
|
||||
InfoConfig = new OutputConfig()
|
||||
{
|
||||
Color = ConsoleColor.White,
|
||||
LogTarget = LogTarget.Console | LogTarget.File,
|
||||
FilePath = logFilePath
|
||||
},
|
||||
DebugConfig = new OutputConfig()
|
||||
{
|
||||
Color = ConsoleColor.Gray,
|
||||
LogTarget = LogTarget.DebugConsole,
|
||||
},
|
||||
FormatConfig = new FormatConfig()
|
||||
{
|
||||
DebugConsoleFormat = $"> {{{LogFormatType.DateTime}:hh:mm:ss}} | {{{LogFormatType.LogSeverity},-5}} | {{{LogFormatType.Message}}}\n> at {{{LogFormatType.LineNumber},3}} | {{{LogFormatType.FilePath}}}"
|
||||
}
|
||||
};
|
||||
Logger.ClearLogFile(LogSeverity.Info);
|
||||
Logger.Log("Log setup complete.", "Setup");
|
||||
}
|
||||
|
||||
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||
{
|
||||
Exception exception = (Exception)e.ExceptionObject;
|
||||
Logger.Log(exception + (e.IsTerminating ? "\t Process terminating!" : ""), exception.Source, LogSeverity.Fatal);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,8 +3,10 @@ using Google.Apis.Calendar.v3;
|
||||
using Google.Apis.Calendar.v3.Data;
|
||||
using Google.Apis.Services;
|
||||
using Google.Apis.Util.Store;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
|
||||
@@ -12,22 +14,24 @@ namespace DesktopMagic
|
||||
{
|
||||
internal class CalendarManagment
|
||||
{
|
||||
// If Pluginifying these scopes, delete your previously saved credentials
|
||||
// at ~/.credentials/calendar-dotnet-quickstart.json
|
||||
private static string[] Scopes = { CalendarService.Scope.CalendarReadonly };
|
||||
|
||||
private static string ApplicationName = "Google Calendar API .NET " + MainWindow.AppName;
|
||||
private static string ApplicationName = "Google Calendar API .NET " + App.AppName;
|
||||
|
||||
[Obsolete]
|
||||
public (List<string>, List<string>) GetEvents()
|
||||
{
|
||||
List<string> upcomingEventNames = new List<string>();
|
||||
List<string> upcomingEventTimes = new List<string>();
|
||||
UserCredential credential;
|
||||
Console.WriteLine("1");
|
||||
using (var stream =
|
||||
new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
|
||||
|
||||
if (!File.Exists("credentials.json"))
|
||||
{
|
||||
return (new(), new());
|
||||
}
|
||||
|
||||
using (FileStream stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
Console.WriteLine("2");
|
||||
// The file token.json stores the user's access and refresh tokens, and is created
|
||||
// automatically when the authorization flow completes for the first time.
|
||||
string credPath = "token.json";
|
||||
@@ -37,19 +41,16 @@ namespace DesktopMagic
|
||||
"user",
|
||||
CancellationToken.None,
|
||||
new FileDataStore(credPath, true)).Result;
|
||||
Console.WriteLine("Credential file saved to: " + credPath);
|
||||
Debug.WriteLine("Credential file saved to: " + credPath);
|
||||
}
|
||||
Console.WriteLine("3");
|
||||
|
||||
// Create Google Calendar API service.
|
||||
var service = new CalendarService(new BaseClientService.Initializer()
|
||||
CalendarService service = new CalendarService(new BaseClientService.Initializer()
|
||||
{
|
||||
HttpClientInitializer = credential,
|
||||
ApplicationName = ApplicationName,
|
||||
});
|
||||
|
||||
Console.WriteLine("4");
|
||||
|
||||
// Define parameters of request.
|
||||
EventsResource.ListRequest request = service.Events.List("primary");
|
||||
request.TimeMin = DateTime.Now;
|
||||
@@ -58,14 +59,11 @@ namespace DesktopMagic
|
||||
request.MaxResults = 10;
|
||||
request.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime;
|
||||
|
||||
Console.WriteLine("5");
|
||||
// List events.
|
||||
Events events = request.Execute();
|
||||
Console.WriteLine("6");
|
||||
Console.WriteLine("Upcoming events:");
|
||||
if (events.Items != null && events.Items.Count > 0)
|
||||
{
|
||||
foreach (var eventItem in events.Items)
|
||||
foreach (Event eventItem in events.Items)
|
||||
{
|
||||
if (upcomingEventNames.Count < 10)
|
||||
{
|
||||
@@ -79,8 +77,6 @@ namespace DesktopMagic
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine("7");
|
||||
return (upcomingEventNames, upcomingEventTimes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Win32;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
@@ -33,7 +34,7 @@ namespace DesktopMagic
|
||||
w.WindowStyle = WindowStyle.ToolWindow;
|
||||
w.ShowInTaskbar = false;
|
||||
w.Show();
|
||||
this.Owner = w;
|
||||
Owner = w;
|
||||
w.Hide();
|
||||
|
||||
Timer t = new Timer();
|
||||
@@ -43,14 +44,15 @@ namespace DesktopMagic
|
||||
|
||||
Timer valueTimer = new Timer();
|
||||
valueTimer.Interval = 600000;
|
||||
valueTimer.Elapsed += ValueTimer_Elapsed; ;
|
||||
valueTimer.Elapsed += ValueTimer_Elapsed;
|
||||
;
|
||||
valueTimer.Start();
|
||||
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
|
||||
this.Top = double.Parse(key.GetValue("CalendarWindowTop", 100).ToString());
|
||||
this.Left = double.Parse(key.GetValue("CalendarWindowLeft", 100).ToString());
|
||||
this.Height = double.Parse(key.GetValue("CalendarWindowHeight", 200).ToString());
|
||||
this.Width = double.Parse(key.GetValue("CalendarWindowWidth", 500).ToString());
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
|
||||
Top = double.Parse(key.GetValue("CalendarWindowTop", 100).ToString());
|
||||
Left = double.Parse(key.GetValue("CalendarWindowLeft", 100).ToString());
|
||||
Height = double.Parse(key.GetValue("CalendarWindowHeight", 200).ToString());
|
||||
Width = double.Parse(key.GetValue("CalendarWindowWidth", 500).ToString());
|
||||
//this.IsEnabled = false;
|
||||
|
||||
Task.Run(() =>
|
||||
@@ -68,7 +70,7 @@ namespace DesktopMagic
|
||||
base.OnSourceInitialized(e);
|
||||
|
||||
//Set the window style to noactivate.
|
||||
var helper = new WindowInteropHelper(this);
|
||||
WindowInteropHelper helper = new WindowInteropHelper(this);
|
||||
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
|
||||
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
|
||||
}
|
||||
@@ -92,12 +94,12 @@ namespace DesktopMagic
|
||||
if (MainWindow.EditMode)
|
||||
{
|
||||
panel.Visibility = Visibility.Visible;
|
||||
new WindowPos().SetIsLocked(this, false);
|
||||
WindowPos.SetIsLocked(this, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.Visibility = Visibility.Collapsed;
|
||||
new WindowPos().SetIsLocked(this, true);
|
||||
WindowPos.SetIsLocked(this, true);
|
||||
}
|
||||
if (MainWindow.GlobalFont != oldFont || MainWindow.GlobalColor != oldColor)
|
||||
{
|
||||
@@ -143,15 +145,15 @@ namespace DesktopMagic
|
||||
|
||||
private void Window_LocationChanged(object sender, EventArgs e)
|
||||
{
|
||||
key.SetValue("CalendarWindowTop", this.Top);
|
||||
key.SetValue("CalendarWindowLeft", this.Left);
|
||||
key.SetValue("CalendarWindowTop", Top);
|
||||
key.SetValue("CalendarWindowLeft", Left);
|
||||
}
|
||||
|
||||
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
key.SetValue("CalendarWindowHeight", this.Height);
|
||||
key.SetValue("CalendarWindowWidth", this.Width);
|
||||
tileBar.CaptionHeight = this.ActualHeight - 10;
|
||||
key.SetValue("CalendarWindowHeight", Height);
|
||||
key.SetValue("CalendarWindowWidth", Width);
|
||||
tileBar.CaptionHeight = ActualHeight - 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Win32;
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Timers;
|
||||
@@ -31,7 +32,7 @@ namespace DesktopMagic
|
||||
ShowInTaskbar = false
|
||||
};
|
||||
w.Show();
|
||||
this.Owner = w;
|
||||
Owner = w;
|
||||
w.Hide();
|
||||
|
||||
cpuCounter.CategoryName = "Processor";
|
||||
@@ -45,15 +46,16 @@ namespace DesktopMagic
|
||||
|
||||
Timer valueTimer = new Timer();
|
||||
valueTimer.Interval = 1000;
|
||||
valueTimer.Elapsed += ValueTimer_Elapsed; ;
|
||||
valueTimer.Elapsed += ValueTimer_Elapsed;
|
||||
;
|
||||
valueTimer.Start();
|
||||
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
|
||||
this.Top = double.Parse(key.GetValue("CpuUsageWindowTop", 100).ToString());
|
||||
this.Left = double.Parse(key.GetValue("CpuUsageWindowLeft", 100).ToString());
|
||||
this.Height = double.Parse(key.GetValue("CpuUsageWindowHeight", 200).ToString());
|
||||
this.Width = double.Parse(key.GetValue("CpuUsageWindowWidth", 500).ToString());
|
||||
this.IsEnabled = false;
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
|
||||
Top = double.Parse(key.GetValue("CpuUsageWindowTop", 100).ToString());
|
||||
Left = double.Parse(key.GetValue("CpuUsageWindowLeft", 100).ToString());
|
||||
Height = double.Parse(key.GetValue("CpuUsageWindowHeight", 200).ToString());
|
||||
Width = double.Parse(key.GetValue("CpuUsageWindowWidth", 500).ToString());
|
||||
IsEnabled = false;
|
||||
}
|
||||
|
||||
protected override void OnSourceInitialized(EventArgs e)
|
||||
@@ -61,7 +63,7 @@ namespace DesktopMagic
|
||||
base.OnSourceInitialized(e);
|
||||
|
||||
//Set the window style to noactivate.
|
||||
var helper = new WindowInteropHelper(this);
|
||||
WindowInteropHelper helper = new WindowInteropHelper(this);
|
||||
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
|
||||
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
|
||||
}
|
||||
@@ -73,12 +75,12 @@ namespace DesktopMagic
|
||||
if (MainWindow.EditMode)
|
||||
{
|
||||
panel.Visibility = Visibility.Visible;
|
||||
new WindowPos().SetIsLocked(this, false);
|
||||
WindowPos.SetIsLocked(this, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.Visibility = Visibility.Collapsed;
|
||||
new WindowPos().SetIsLocked(this, true);
|
||||
WindowPos.SetIsLocked(this, true);
|
||||
}
|
||||
|
||||
textBlock.FontFamily = new FontFamily(MainWindow.GlobalFont);
|
||||
@@ -88,9 +90,10 @@ namespace DesktopMagic
|
||||
|
||||
private void ValueTimer_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
string cpuUsage = GetCpuUsage();
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
textBlock.Text = GetCpuUsage();
|
||||
textBlock.Text = cpuUsage;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -101,15 +104,15 @@ namespace DesktopMagic
|
||||
|
||||
private void Window_LocationChanged(object sender, EventArgs e)
|
||||
{
|
||||
key.SetValue("CpuUsageWindowTop", this.Top);
|
||||
key.SetValue("CpuUsageWindowLeft", this.Left);
|
||||
key.SetValue("CpuUsageWindowTop", Top);
|
||||
key.SetValue("CpuUsageWindowLeft", Left);
|
||||
}
|
||||
|
||||
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
key.SetValue("CpuUsageWindowHeight", this.Height);
|
||||
key.SetValue("CpuUsageWindowWidth", this.Width);
|
||||
tileBar.CaptionHeight = this.ActualHeight - 10;
|
||||
key.SetValue("CpuUsageWindowHeight", Height);
|
||||
key.SetValue("CpuUsageWindowWidth", Width);
|
||||
tileBar.CaptionHeight = ActualHeight - 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Win32;
|
||||
|
||||
using System;
|
||||
using System.Timers;
|
||||
using System.Windows;
|
||||
@@ -27,7 +28,7 @@ namespace DesktopMagic
|
||||
w.WindowStyle = WindowStyle.ToolWindow;
|
||||
w.ShowInTaskbar = false;
|
||||
w.Show();
|
||||
this.Owner = w;
|
||||
Owner = w;
|
||||
w.Hide();
|
||||
|
||||
Timer t = new Timer();
|
||||
@@ -35,12 +36,12 @@ namespace DesktopMagic
|
||||
t.Elapsed += T_Elapsed;
|
||||
t.Start();
|
||||
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
|
||||
this.Top = double.Parse(key.GetValue("DateWindowTop", 100).ToString());
|
||||
this.Left = double.Parse(key.GetValue("DateWindowLeft", 100).ToString());
|
||||
this.Height = double.Parse(key.GetValue("DateWindowHeight", 200).ToString());
|
||||
this.Width = double.Parse(key.GetValue("DateWindowWidth", 500).ToString());
|
||||
this.IsEnabled = false;
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
|
||||
Top = double.Parse(key.GetValue("DateWindowTop", 100).ToString());
|
||||
Left = double.Parse(key.GetValue("DateWindowLeft", 100).ToString());
|
||||
Height = double.Parse(key.GetValue("DateWindowHeight", 200).ToString());
|
||||
Width = double.Parse(key.GetValue("DateWindowWidth", 500).ToString());
|
||||
IsEnabled = false;
|
||||
}
|
||||
|
||||
protected override void OnSourceInitialized(EventArgs e)
|
||||
@@ -48,7 +49,7 @@ namespace DesktopMagic
|
||||
base.OnSourceInitialized(e);
|
||||
|
||||
//Set the window style to noactivate.
|
||||
var helper = new WindowInteropHelper(this);
|
||||
WindowInteropHelper helper = new WindowInteropHelper(this);
|
||||
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
|
||||
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
|
||||
}
|
||||
@@ -60,12 +61,12 @@ namespace DesktopMagic
|
||||
if (MainWindow.EditMode)
|
||||
{
|
||||
panel.Visibility = Visibility.Visible;
|
||||
new WindowPos().SetIsLocked(this, false);
|
||||
WindowPos.SetIsLocked(this, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.Visibility = Visibility.Collapsed;
|
||||
new WindowPos().SetIsLocked(this, true);
|
||||
WindowPos.SetIsLocked(this, true);
|
||||
}
|
||||
textBlock.FontFamily = new FontFamily(MainWindow.GlobalFont);
|
||||
textBlock.Foreground = MainWindow.GlobalColor;
|
||||
@@ -75,15 +76,15 @@ namespace DesktopMagic
|
||||
|
||||
private void Window_LocationChanged(object sender, EventArgs e)
|
||||
{
|
||||
key.SetValue("DateWindowTop", this.Top);
|
||||
key.SetValue("DateWindowLeft", this.Left);
|
||||
key.SetValue("DateWindowTop", Top);
|
||||
key.SetValue("DateWindowLeft", Left);
|
||||
}
|
||||
|
||||
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
key.SetValue("DateWindowHeight", this.Height);
|
||||
key.SetValue("DateWindowWidth", this.Width);
|
||||
tileBar.CaptionHeight = this.ActualHeight - 10;
|
||||
key.SetValue("DateWindowHeight", Height);
|
||||
key.SetValue("DateWindowWidth", Width);
|
||||
tileBar.CaptionHeight = ActualHeight - 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,20 +7,31 @@
|
||||
<RootNamespace>DesktopMagic</RootNamespace>
|
||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||
<Authors>Stone_Red</Authors>
|
||||
<Version>0.0.3.0</Version>
|
||||
<PackageProjectUrl>https://github.com/Stone-Red-Code/DesktopMagic</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/Stone-Red-Code/DesktopMagic</RepositoryUrl>
|
||||
<AssemblyVersion>0.0.3.0</AssemblyVersion>
|
||||
<FileVersion>0.0.3.0</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="icon.ico" />
|
||||
<None Remove="icons8_volunteering_26_85L_icon.ico" />
|
||||
<None Remove="icon_Dark.ico" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AlwaysUpToDate" Version="1.0.0.2" />
|
||||
<PackageReference Include="AlwaysUpToDate" Version="1.0.0.4" />
|
||||
<PackageReference Include="Extended.Wpf.Toolkit" Version="4.1.0" />
|
||||
<PackageReference Include="Google.Apis.Calendar.v3" Version="1.51.0.2312" />
|
||||
<PackageReference Include="Hardcodet.NotifyIcon.Wpf" Version="1.1.0" />
|
||||
<PackageReference Include="Google.Apis.Calendar.v3" Version="1.55.0.2410" />
|
||||
<PackageReference Include="MaterialDesignThemes" Version="4.0.0" />
|
||||
<PackageReference Include="NAudio" Version="2.0.0" />
|
||||
<PackageReference Include="NAudio" Version="2.0.1" />
|
||||
<PackageReference Include="Stone_Red-C-Sharp-Utilities" Version="1.0.3.1" />
|
||||
<PackageReference Include="System.Management" Version="5.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -29,6 +40,11 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Resource Include="icon.ico" />
|
||||
<Resource Include="icon_Dark.ico">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Resource>
|
||||
<Resource Include="icon.ico">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Resource>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,41 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Update="App.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Update="CalendarWindow.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="CpuUsageWindow.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="DateWindow.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="InputDialog.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="MainWindow.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="PluginWindow.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="MusicVisualizerWindow.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="Resources\StringResources.de.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="Resources\StringResources.en.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="TimeWindow.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,9 @@
|
||||
// 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.
|
||||
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
[assembly: SuppressMessage("Performance", "CA1822:Member als statisch markieren", Justification = "<Ausstehend>", Scope = "member", Target = "~M:DesktopMagic.PluginWindow.LoadOptions(System.Object)")]
|
||||
[assembly: SuppressMessage("Style", "IDE0090:Use 'new(...)'", Justification = "<Pending>", Scope = "member", Target = "~M:DesktopMagic.MainWindow.GithubButton_Click(System.Object,System.Windows.RoutedEventArgs)")]
|
||||
@@ -8,9 +8,13 @@
|
||||
Title="InputDialog" Height="152.812" Width="322.812"
|
||||
ResizeMode="NoResize">
|
||||
<Grid>
|
||||
<Button x:Name="okButton" Content="Ok" HorizontalAlignment="Left" Margin="126,76,0,0" VerticalAlignment="Top" Width="76" Click="okButton_Click"/>
|
||||
<Button x:Name="cancelButton" Content="Abbrechen" HorizontalAlignment="Left" Margin="213,76,0,0" VerticalAlignment="Top" Width="76" Click="cancelButton_Click"/>
|
||||
<Label x:Name="label" Content="Label" HorizontalAlignment="Left" Margin="10,15,0,0" VerticalAlignment="Top" Padding="0"/>
|
||||
<TextBox x:Name="textBox" HorizontalAlignment="Left" Height="23" Margin="10,36,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="279" VerticalContentAlignment="Center"/>
|
||||
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10">
|
||||
<Label x:Name="label" Content="Label" HorizontalAlignment="Left" VerticalAlignment="Top"/>
|
||||
<TextBox x:Name="textBox" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="279" VerticalContentAlignment="Center"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,0,0">
|
||||
<Button x:Name="okButton" Content="{DynamicResource ok }" HorizontalAlignment="Left" Margin="0,0,10,0" VerticalAlignment="Top" Width="100" Click="OkButton_Click" Cursor="Hand"/>
|
||||
<Button x:Name="cancelButton" Content="{DynamicResource cancel }" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="100" Click="CancelButton_Click"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using System.Windows;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
|
||||
namespace DesktopMagic
|
||||
{
|
||||
@@ -12,6 +14,7 @@ namespace DesktopMagic
|
||||
InitializeComponent();
|
||||
label.Content = content;
|
||||
this.Title = title;
|
||||
SetLanguageDictionary();
|
||||
}
|
||||
|
||||
public string ResponseText
|
||||
@@ -20,14 +23,30 @@ namespace DesktopMagic
|
||||
set { textBox.Text = value; }
|
||||
}
|
||||
|
||||
private void okButton_Click(object sender, RoutedEventArgs e)
|
||||
private void OkButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
DialogResult = true;
|
||||
}
|
||||
|
||||
private void cancelButton_Click(object sender, RoutedEventArgs e)
|
||||
private void CancelButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
DialogResult = false;
|
||||
}
|
||||
|
||||
private void SetLanguageDictionary()
|
||||
{
|
||||
ResourceDictionary dict = new ResourceDictionary();
|
||||
string currentCulture = Thread.CurrentThread.CurrentCulture.ToString();
|
||||
|
||||
if (currentCulture.Contains("de"))
|
||||
{
|
||||
dict.Source = new Uri("..\\Resources\\StringResources.de.xaml", UriKind.Relative);
|
||||
}
|
||||
else
|
||||
{
|
||||
dict.Source = new Uri("..\\Resources\\StringResources.en.xaml", UriKind.Relative);
|
||||
}
|
||||
this.Resources.MergedDictionaries.Add(dict);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,14 +9,14 @@
|
||||
Background="{DynamicResource MaterialDesignPaper}"
|
||||
FontFamily="{DynamicResource MaterialDesignFont}"
|
||||
Height="520"
|
||||
Width="550"
|
||||
Width="570"
|
||||
MinHeight="520"
|
||||
MinWidth="500"
|
||||
MinWidth="570"
|
||||
WindowState="Minimized"
|
||||
StateChanged="Window_StateChanged"
|
||||
Loaded="Window_Loaded">
|
||||
|
||||
<Grid x:Name="grid">
|
||||
<!--<tb:TaskbarIcon x:Name="taskbarIcon" Visibility="Visible" ToolTipText="Helfer V4" TrayLeftMouseUp="TaskbarIcon_TrayLeftMouseUp" IconSource="icons8_volunteering_26_85L_icon.ico" Grid.RowSpan="2" />-->
|
||||
<TextBlock x:Name="textBlock" TextWrapping="Wrap" Text="0" VerticalAlignment="Top" FontFamily="Comic Sans MS" Loaded="TextBlock_Loaded" Foreground="Transparent" />
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
@@ -30,25 +30,25 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
<DockPanel Margin="0,0,2.5,0">
|
||||
<Grid DockPanel.Dock="Top">
|
||||
<Rectangle Grid.Row="1" Fill="#FFECECEC" Height="22" />
|
||||
<CheckBox x:Name="EditCheckBox" VerticalAlignment="Center" Grid.Row="1" Content="{DynamicResource edit}" Click="EditCheckBox_Click" Foreground="Black" BorderBrush="#FF323232" Style="{StaticResource MaterialDesignDarkCheckBox}" IsChecked="True" />
|
||||
<Rectangle Grid.Row="1" Fill="#FFECECEC" Height="24" />
|
||||
<CheckBox x:Name="EditCheckBox" VerticalAlignment="Center" Grid.Row="1" Content="{DynamicResource edit}" Click="EditCheckBox_Click" Foreground="Black" BorderBrush="#FF323232" Style="{StaticResource MaterialDesignDarkCheckBox}" IsChecked="True"/>
|
||||
</Grid>
|
||||
<ScrollViewer Background="#FFBBBBBB" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
|
||||
<StackPanel x:Name="stackPanel">
|
||||
<CheckBox x:Name="TimeCb" Content="{DynamicResource time}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
|
||||
<CheckBox x:Name="DateCb" Content="{DynamicResource date}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
|
||||
<CheckBox x:Name="CpuUsageCb" Content="{DynamicResource cpuUsage}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
|
||||
<CheckBox x:Name="CalendarCb" Content="{DynamicResource googleCalendar}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
|
||||
<CheckBox x:Name="CalendarCb" Content="{DynamicResource googleCalendar}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" Visibility="Collapsed"/> <!--Currently disabled because it's not working-->
|
||||
<CheckBox x:Name="MusicVisualizerCb" Content="{DynamicResource musicVisualizer}" HorizontalAlignment="Left" VerticalAlignment="Top" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</DockPanel>
|
||||
|
||||
<DockPanel Grid.Column="1" Margin="2.5,0,0,0">
|
||||
<ComboBox x:Name="optionsComboBox" DockPanel.Dock="Top" Height="22" SelectedIndex="0" DisplayMemberPath="Item1" SelectionChanged="OptionsComboBox_SelectionChanged" Background="#FFECECEC" />
|
||||
<ComboBox x:Name="optionsComboBox" DockPanel.Dock="Top" Height="24" SelectedIndex="0" DisplayMemberPath="Item1" SelectionChanged="OptionsComboBox_SelectionChanged" Background="#FFECECEC" Padding="4" VerticalAlignment="Center"/>
|
||||
<ScrollViewer Background="#FFBBBBBB">
|
||||
<Grid>
|
||||
<StackPanel x:Name="optionsPanel" Margin="3,3,3,0" Visibility="Collapsed">
|
||||
<StackPanel x:Name="optionsPanel" Margin="3,3,3,0" HorizontalAlignment="Stretch" Visibility="Collapsed" >
|
||||
</StackPanel>
|
||||
<StackPanel x:Name="musicVisualizerOptionsPanel" Margin="3,3,3,0">
|
||||
<Label Content="{DynamicResource color}" HorizontalAlignment="Left" VerticalAlignment="Top" Padding="0,1" />
|
||||
@@ -61,7 +61,7 @@
|
||||
<CheckBox x:Name="mirrorPlugineCheckBox" Content="{DynamicResource mirrorPlugine}" Click="MirrorPlugineCheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
|
||||
<CheckBox x:Name="linePlugineCheckBox" Content="{DynamicResource linePlugine}" Click="LinePlugineCheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
|
||||
<Label Content="{DynamicResource amplifier}" HorizontalAlignment="Left" VerticalAlignment="Top" Padding="0,1" />
|
||||
<Slider x:Name="amplifierLevelSlider" Margin="-2,0,10,0" HorizontalAlignment="Stretch" VerticalAlignment="Top" ValueChanged="AmplifierLevelSlider_ValueChanged" Maximum="99" SmallChange="1" LargeChange="5" Foreground="Gray" />
|
||||
<Slider x:Name="amplifierLevelSlider" Margin="-2,0,10,0" HorizontalAlignment="Stretch" VerticalAlignment="Top" ValueChanged="AmplifierLevelSlider_ValueChanged" Maximum="50" Minimum="-50" SmallChange="1" LargeChange="5" Foreground="Gray" />
|
||||
<Label x:Name="amplifierLevelLabel" Content="Label" HorizontalAlignment="Left" VerticalAlignment="Top" Padding="0,1" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
@@ -104,15 +104,20 @@
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Rectangle Fill="#FFC5C5C5" Stroke="#FFC5C5C5" Grid.ColumnSpan="2" />
|
||||
<Rectangle Fill="#FFC5C5C5" Stroke="#FFC5C5C5" Grid.ColumnSpan="3" />
|
||||
<StackPanel Margin="{StaticResource DefaultMargin}" VerticalAlignment="Bottom">
|
||||
<ComboBox x:Name="layoutsComboBox" HorizontalAlignment="Left" Margin="0,0,0,5" Width="170" Height="20" SelectionChanged="LayoutsComboBox_SelectionChanged" />
|
||||
<Button x:Name="newLayoutButton" Content="{DynamicResource newLayout}" Margin="0,0,0,5" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="170" Click="NewLayoutButton_Click" FontWeight="Regular" />
|
||||
<Button x:Name="removeLayoutButton" Content="{DynamicResource deleteLayout}" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="170" Click="RemoveLayoutButton_Click" FontWeight="Regular" />
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Margin="{StaticResource DefaultMargin}" VerticalAlignment="Bottom">
|
||||
<Button x:Name="downloadPluginsButton" Content="{DynamicResource downloadPlugins}" Margin="0,0,0,5" HorizontalAlignment="Center" Width="170" Click="DownloadPluginsButton_Click" FontWeight="Regular" Cursor="Hand" />
|
||||
<Button x:Name="githubButton" Content="GitHub" HorizontalAlignment="Center" Width="170" Click="GithubButton_Click" FontWeight="Regular" Cursor="Hand" />
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="2" Margin="{StaticResource DefaultMargin}" VerticalAlignment="Bottom">
|
||||
<Button x:Name="updatePluginsButton" Content="{DynamicResource updatePlugins}" Margin="0,0,0,5" HorizontalAlignment="Right" Width="170" Click="UpdatePluginsButton_Click" FontWeight="Regular" />
|
||||
<Button x:Name="openPluginsFolderButton" Content="{DynamicResource openPluginsFolder}" HorizontalAlignment="Right" Width="170" Click="OpenPluginsFolderButton_Click" FontWeight="Regular" />
|
||||
</StackPanel>
|
||||
|
||||
+396
-291
@@ -1,8 +1,11 @@
|
||||
using Microsoft.Win32;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
@@ -38,102 +41,97 @@ namespace DesktopMagic
|
||||
|
||||
#region Plugins settings
|
||||
|
||||
public static List<Tuple<string, string[,]>> OptionsList { get; set; } = new List<Tuple<string, string[,]>>();
|
||||
internal static Dictionary<string, List<SettingElement>> PluginsSettings { get; set; } = new Dictionary<string, List<SettingElement>>();
|
||||
|
||||
#endregion Plugins settings
|
||||
|
||||
#region App Name
|
||||
|
||||
public static string AppName { get; } = "Desktop Magic";
|
||||
|
||||
#endregion App Name
|
||||
|
||||
public static List<Window> Windows { get; protected set; } = new List<Window>();
|
||||
public static List<string> WindowNames { get; protected set; } = new List<string>();
|
||||
private readonly RegistryKey key;
|
||||
private readonly System.Windows.Forms.NotifyIcon notifyIcon = new();
|
||||
|
||||
private readonly string applicationDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + AppName;
|
||||
private readonly string logFilePath;
|
||||
private bool loaded = false;
|
||||
|
||||
private bool blockWindowsClosing = true;
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
logFilePath = applicationDataPath + "\\Log.txt";
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + AppName);
|
||||
try
|
||||
{
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
|
||||
|
||||
Stream iconStream = Application.GetResourceStream(new Uri("pack://application:,,,/DesktopMagic;component/icon.ico")).Stream;
|
||||
notifyIcon.Click += TaskbarIcon_TrayLeftClick;
|
||||
notifyIcon.Visible = true;
|
||||
notifyIcon.Text = AppName;
|
||||
notifyIcon.Icon = new System.Drawing.Icon(iconStream);
|
||||
Stream iconStream = Application.GetResourceStream(new Uri("pack://application:,,,/DesktopMagic;component/icon.ico")).Stream;
|
||||
notifyIcon.Click += TaskbarIcon_TrayLeftClick;
|
||||
notifyIcon.Visible = true;
|
||||
notifyIcon.Text = App.AppName;
|
||||
notifyIcon.Icon = new System.Drawing.Icon(iconStream);
|
||||
notifyIcon.ContextMenuStrip = new System.Windows.Forms.ContextMenuStrip();
|
||||
|
||||
InitializeComponent();
|
||||
InitializeComponent();
|
||||
|
||||
SetLanguageDictionary();
|
||||
this.Title = AppName;
|
||||
SetLanguageDictionary();
|
||||
Title = $"{App.AppName} - {Assembly.GetExecutingAssembly().GetName().Version}";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_ = MessageBox.Show(ex.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
#region load
|
||||
|
||||
private void Window_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!Directory.Exists(applicationDataPath))
|
||||
try
|
||||
{
|
||||
Directory.CreateDirectory(applicationDataPath);
|
||||
if (!Directory.Exists(App.ApplicationDataPath))
|
||||
{
|
||||
_ = Directory.CreateDirectory(App.ApplicationDataPath);
|
||||
}
|
||||
App.Logger.Log("Created ApplicationData Folder", "Main");
|
||||
|
||||
if (!Directory.Exists(App.ApplicationDataPath + "\\Plugins"))
|
||||
{
|
||||
_ = Directory.CreateDirectory(App.ApplicationDataPath + "\\Plugins");
|
||||
}
|
||||
App.Logger.Log("Created Plugins Folder", "Main");
|
||||
|
||||
if (!File.Exists(App.ApplicationDataPath + "\\layouts.save"))
|
||||
{
|
||||
File.WriteAllText(App.ApplicationDataPath + "\\layouts.save", ";" + (string)FindResource("default"));
|
||||
}
|
||||
App.Logger.Log("Created layouts.save file", "Main");
|
||||
|
||||
_ = optionsComboBox.Items.Add(new Tuple<string, int>((string)FindResource("musicVisualizer"), 0));
|
||||
|
||||
//Write To Log File and Load Elements
|
||||
|
||||
App.Logger.Log("Loading Plugin names", "Main");
|
||||
LoadPlugins();
|
||||
App.Logger.Log("Loading Layout names", "Main");
|
||||
LoadLayoutNames();
|
||||
App.Logger.Log("Loading Layout", "Main");
|
||||
LoadLayout();
|
||||
|
||||
loaded = true;
|
||||
App.Logger.Log("Window Loaded", "Main");
|
||||
}
|
||||
|
||||
File.Create(logFilePath).Close();
|
||||
File.WriteAllText(logFilePath, "");
|
||||
File.AppendAllText(logFilePath, "\nCreate ApplicationData Folder");
|
||||
|
||||
File.AppendAllText(logFilePath, "\nCreate Plugins Folder");
|
||||
if (!Directory.Exists(applicationDataPath + "\\Plugins"))
|
||||
catch (Exception ex)
|
||||
{
|
||||
Directory.CreateDirectory(applicationDataPath + "\\Plugins");
|
||||
MessageBox.Show(ex.ToString());
|
||||
}
|
||||
File.AppendAllText(logFilePath, "\nCreate layouts.save");
|
||||
if (!File.Exists(applicationDataPath + "\\layouts.save"))
|
||||
{
|
||||
File.WriteAllText(applicationDataPath + "\\layouts.save", ";" + (string)FindResource("default"));
|
||||
}
|
||||
|
||||
optionsComboBox.Items.Add(new Tuple<string, int>((string)FindResource("musicVisualizer"), 0));
|
||||
|
||||
//Write To Log File and Load Elements
|
||||
File.AppendAllText(logFilePath, "\nLoading Plugin names");
|
||||
LoadPlugins();
|
||||
File.AppendAllText(logFilePath, "\nLoading Layout names");
|
||||
LoadLayoutNames();
|
||||
File.AppendAllText(logFilePath, "\nLoading Layout");
|
||||
LoadLayout();
|
||||
File.AppendAllText(logFilePath, "\nWindow Loaded");
|
||||
loaded = true;
|
||||
}
|
||||
|
||||
private void LoadPlugins()
|
||||
{
|
||||
string PluginsPath = applicationDataPath + "\\Plugins";
|
||||
|
||||
foreach (string fileName in Directory.GetFiles(PluginsPath, "*.cs"))
|
||||
{
|
||||
string PluginName = fileName[(fileName.LastIndexOf("\\") + 1)..].Replace(fileName[fileName.LastIndexOf(".")..], "");
|
||||
try
|
||||
{
|
||||
Directory.CreateDirectory(PluginsPath + "\\" + PluginName);
|
||||
File.Move(fileName, $"{PluginsPath}\\{PluginName}\\{PluginName}.cs");
|
||||
}
|
||||
catch (Exception ex) { Console.WriteLine(ex); }
|
||||
}
|
||||
string PluginsPath = App.ApplicationDataPath + "\\Plugins";
|
||||
|
||||
foreach (string fileName in Directory.GetFiles(PluginsPath, "*.dll"))
|
||||
{
|
||||
string PluginName = fileName[(fileName.LastIndexOf("\\") + 1)..].Replace(fileName[fileName.LastIndexOf(".")..], "");
|
||||
string PluginName = fileName[(fileName.LastIndexOf("\\", StringComparison.InvariantCulture) + 1)..].Replace(fileName[fileName.LastIndexOf(".", StringComparison.InvariantCulture)..], "");
|
||||
try
|
||||
{
|
||||
Directory.CreateDirectory(PluginsPath + "\\" + PluginName);
|
||||
_ = Directory.CreateDirectory(PluginsPath + "\\" + PluginName);
|
||||
File.Move(fileName, $"{PluginsPath}\\{PluginName}\\{PluginName}.dll");
|
||||
}
|
||||
catch { }
|
||||
@@ -141,13 +139,13 @@ namespace DesktopMagic
|
||||
|
||||
foreach (string directory in Directory.GetDirectories(PluginsPath))
|
||||
{
|
||||
foreach (string fileName in Directory.GetFiles(directory).Where(s => s.EndsWith(".dll") || s.EndsWith(".cs")))
|
||||
foreach (string fileName in Directory.GetFiles(directory).Where(s => s.EndsWith(".dll", StringComparison.InvariantCulture) || s.EndsWith(".cs", StringComparison.InvariantCulture)))
|
||||
{
|
||||
string badChars = ",#-<>?!=()*,. ";
|
||||
string PluginName = fileName[(fileName.LastIndexOf("\\") + 1)..].Replace(fileName[fileName.LastIndexOf(".")..], "");
|
||||
string PluginName = fileName[(fileName.LastIndexOf("\\", StringComparison.InvariantCulture) + 1)..].Replace(fileName[fileName.LastIndexOf(".", StringComparison.InvariantCulture)..], "");
|
||||
string clearPluginName = PluginName;
|
||||
|
||||
if (PluginName == directory[(directory.LastIndexOf("\\") + 1)..])
|
||||
if (PluginName == directory[(directory.LastIndexOf("\\", StringComparison.InvariantCulture) + 1)..])
|
||||
{
|
||||
foreach (char c in badChars)
|
||||
{
|
||||
@@ -174,8 +172,7 @@ namespace DesktopMagic
|
||||
|
||||
if (!exsists)
|
||||
{
|
||||
stackPanel.Children.Add(checkBox);
|
||||
OptionsList.Add(new Tuple<string, string[,]>(PluginName, new string[1, 5] { { (string)FindResource("noOptions"), "hed", "", "", "" } }));
|
||||
_ = stackPanel.Children.Add(checkBox);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -200,11 +197,26 @@ namespace DesktopMagic
|
||||
|
||||
switch (checkBox.Name)
|
||||
{
|
||||
case "TimeCb": window = new TimeWindow(); break;
|
||||
case "DateCb": window = new DateWindow(); break;
|
||||
case "CpuUsageCb": window = new CpuUsageWindow(); break;
|
||||
case "CalendarCb": window = new CalendarWindow(); break;
|
||||
case "MusicVisualizerCb": window = new MusicVisualizerWindow(); break;
|
||||
case "TimeCb":
|
||||
window = new TimeWindow();
|
||||
break;
|
||||
|
||||
case "DateCb":
|
||||
window = new DateWindow();
|
||||
break;
|
||||
|
||||
case "CpuUsageCb":
|
||||
window = new CpuUsageWindow();
|
||||
break;
|
||||
|
||||
case "CalendarCb":
|
||||
window = new CalendarWindow();
|
||||
break;
|
||||
|
||||
case "MusicVisualizerCb":
|
||||
window = new MusicVisualizerWindow();
|
||||
break;
|
||||
|
||||
default:
|
||||
if (checkBox.Name.Contains("_PluginCb_"))
|
||||
{
|
||||
@@ -222,21 +234,41 @@ namespace DesktopMagic
|
||||
|
||||
if (!WindowNames.Contains(window.Title))
|
||||
{
|
||||
Task.Run(() =>
|
||||
_ = Task.Run(() =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
for (int i = 0; i < OptionsList.Count; i++)
|
||||
if (window is PluginWindow pluginWindow)
|
||||
{
|
||||
if (OptionsList[i].Item1 == checkBox.Content.ToString())
|
||||
Action onPluginLoaded = null;
|
||||
onPluginLoaded = () =>
|
||||
{
|
||||
if (!optionsComboBox.Items.Contains(new Tuple<string, int>(checkBox.Content.ToString(), i)))
|
||||
optionsComboBox.Items.Add(new Tuple<string, int>(checkBox.Content.ToString(), i));
|
||||
}
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
if (!optionsComboBox.Items.Contains(new Tuple<string, int>(checkBox.Content.ToString(), 0)))
|
||||
{
|
||||
_ = optionsComboBox.Items.Add(new Tuple<string, int>(checkBox.Content.ToString(), 0));
|
||||
}
|
||||
optionsComboBox.SelectedIndex = -1;
|
||||
optionsComboBox.SelectedIndex = optionsComboBox.Items.IndexOf(new Tuple<string, int>(checkBox.Content.ToString(), 0));
|
||||
pluginWindow.PluginLoaded -= onPluginLoaded;
|
||||
});
|
||||
};
|
||||
pluginWindow.OnExit += () =>
|
||||
{
|
||||
checkBox.IsChecked = false;
|
||||
CheckBox_Click(checkBox, null);
|
||||
};
|
||||
pluginWindow.PluginLoaded += onPluginLoaded;
|
||||
}
|
||||
else if (window is MusicVisualizerWindow musicVisualizerWindow)
|
||||
{
|
||||
optionsComboBox.SelectedIndex = optionsComboBox.Items.IndexOf(new Tuple<string, int>(checkBox.Content.ToString(), 0));
|
||||
}
|
||||
|
||||
window.ShowInTaskbar = false;
|
||||
window.Show();
|
||||
window.ContentRendered += PluginWindow_ContentRendered;
|
||||
window.Closing += DisplayWindow_Closing;
|
||||
Windows.Add(window);
|
||||
WindowNames.Add(window.Title);
|
||||
@@ -246,6 +278,7 @@ namespace DesktopMagic
|
||||
else
|
||||
{
|
||||
int index = WindowNames.IndexOf(window.Title);
|
||||
|
||||
Windows[index].Close();
|
||||
Windows.RemoveAt(index);
|
||||
WindowNames.RemoveAt(index);
|
||||
@@ -256,6 +289,12 @@ namespace DesktopMagic
|
||||
SaveLayout();
|
||||
}
|
||||
|
||||
private void PluginWindow_ContentRendered(object sender, EventArgs e)
|
||||
{
|
||||
WindowPos.SendWpfWindowBack(sender as Window);
|
||||
WindowPos.SendWpfWindowBack(sender as Window);
|
||||
}
|
||||
|
||||
private void DisplayWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
e.Cancel = blockWindowsClosing;
|
||||
@@ -263,37 +302,34 @@ namespace DesktopMagic
|
||||
|
||||
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
MessageBoxResult msbRes = MessageBox.Show((string)FindResource("wantToCloseProgram"), AppName, MessageBoxButton.YesNo);
|
||||
if (msbRes == MessageBoxResult.Yes)
|
||||
{
|
||||
e.Cancel = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
MessageBoxResult msbRes = MessageBox.Show((string)FindResource("wantToCloseProgram"), App.AppName, MessageBoxButton.YesNo);
|
||||
e.Cancel = msbRes != MessageBoxResult.Yes;
|
||||
}
|
||||
|
||||
private void Window_Closed(object sender, EventArgs e)
|
||||
{
|
||||
this.Visibility = Visibility.Collapsed;
|
||||
this.UpdateLayout();
|
||||
Visibility = Visibility.Collapsed;
|
||||
UpdateLayout();
|
||||
foreach (Window window in Windows)
|
||||
{
|
||||
window.Hide();
|
||||
}
|
||||
//taskbarIcon.Visibility = Visibility.Collapsed;
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
private void Window_StateChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (this.WindowState == WindowState.Minimized)
|
||||
if (WindowState == WindowState.Minimized)
|
||||
{
|
||||
EditCheckBox.IsChecked = false;
|
||||
EditCheckBox_Click(null, null);
|
||||
this.ShowInTaskbar = false;
|
||||
this.Visibility = Visibility.Collapsed;
|
||||
ShowInTaskbar = false;
|
||||
Visibility = Visibility.Collapsed;
|
||||
foreach (Window item in Windows)
|
||||
{
|
||||
WindowPos.SendWpfWindowBack(item);
|
||||
WindowPos.SendWpfWindowBack(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -303,9 +339,9 @@ namespace DesktopMagic
|
||||
|
||||
private void AmplifierLevelSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
|
||||
{
|
||||
amplifierLevelLabel.Content = (int)amplifierLevelSlider.Value + 1;
|
||||
amplifierLevelLabel.Content = (int)amplifierLevelSlider.Value;
|
||||
AmplifierLevel = (int)amplifierLevelSlider.Value;
|
||||
key.SetValue("AmplifierLevel", (int)amplifierLevelSlider.Value);
|
||||
key.SetValue("AmplifierLevel", AmplifierLevel);
|
||||
SaveLayout();
|
||||
}
|
||||
|
||||
@@ -325,7 +361,7 @@ namespace DesktopMagic
|
||||
|
||||
private void MusicVisualizerColorTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
if (!String.IsNullOrWhiteSpace(musicVisualizerColorTextBox.Text) && musicVisualizerColorTextBox.Text != "Default")
|
||||
if (!string.IsNullOrWhiteSpace(musicVisualizerColorTextBox.Text) && musicVisualizerColorTextBox.Text != "Default")
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -409,152 +445,222 @@ namespace DesktopMagic
|
||||
{
|
||||
musicVisualizerOptionsPanel.Visibility = Visibility.Collapsed;
|
||||
optionsPanel.Visibility = Visibility.Visible;
|
||||
optionsPanel.Children.Clear();
|
||||
optionsPanel.UpdateLayout();
|
||||
|
||||
string[,] options = OptionsList[((Tuple<string, int>)optionsComboBox.SelectedItem).Item2].Item2;
|
||||
|
||||
optionsPanel.Children.Clear();
|
||||
|
||||
//options array index:
|
||||
// 0 1 2 3 4
|
||||
//"Value", "Type", "Name", "min", "max"
|
||||
|
||||
for (int i = 0; i < options.GetLength(0); i++)
|
||||
bool succ = PluginsSettings.TryGetValue(((Tuple<string, int>)optionsComboBox.SelectedItem).Item1.ToString(), out List<SettingElement> settingElements);
|
||||
if (!succ || settingElements?.Count == 0)
|
||||
{
|
||||
StackPanel stackPanel = new()
|
||||
_ = optionsPanel.Children.Add(new TextBlock() { Text = (string)FindResource("noOptions") });
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (SettingElement settingElement in settingElements)
|
||||
{
|
||||
DockPanel stackPanel = new()
|
||||
{
|
||||
Orientation = Orientation.Horizontal
|
||||
LastChildFill = true,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
optionsPanel.Children.Add(stackPanel);
|
||||
_ = optionsPanel.Children.Add(stackPanel);
|
||||
|
||||
TextBlock label = new()
|
||||
{
|
||||
Text = options[i, 2],
|
||||
Padding = new Thickness(0, 0, 3, 0)
|
||||
Text = settingElement.Name,
|
||||
Padding = new Thickness(0, 0, 3, 0),
|
||||
VerticalAlignment = VerticalAlignment.Center
|
||||
};
|
||||
|
||||
stackPanel.Children.Add(label);
|
||||
_ = stackPanel.Children.Add(label);
|
||||
stackPanel.UpdateLayout();
|
||||
label.UpdateLayout();
|
||||
|
||||
if (options[i, 1] == "hed")
|
||||
if (settingElement.Element is DesktopMagicPluginAPI.Inputs.Label eLabel)
|
||||
{
|
||||
label.Text = options[i, 0];
|
||||
label.Text = eLabel.Value;
|
||||
label.Margin = new Thickness(0, 5, 3, 0);
|
||||
label.FontWeight = FontWeights.Bold;
|
||||
label.Width = optionsPanel.ActualWidth;
|
||||
label.HorizontalAlignment = HorizontalAlignment.Stretch;
|
||||
label.TextWrapping = TextWrapping.WrapWithOverflow;
|
||||
}
|
||||
else if (options[i, 1] == "bol")
|
||||
{
|
||||
CheckBox checkBox = new();
|
||||
_ = bool.TryParse(options[i, 0], out bool isChecked);
|
||||
checkBox.IsChecked = isChecked;
|
||||
|
||||
checkBox.Width = optionsPanel.ActualWidth - label.ActualWidth;
|
||||
checkBox.Click += Option_ValueChanged;
|
||||
checkBox.Name = "bol_" + i.ToString();
|
||||
stackPanel.Children.Add(checkBox);
|
||||
if (eLabel.Bold)
|
||||
{
|
||||
label.FontWeight = FontWeights.Bold;
|
||||
}
|
||||
eLabel.OnValueChanged += () =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
label.Text = eLabel.Value;
|
||||
});
|
||||
};
|
||||
}
|
||||
else if (options[i, 1] == "txt")
|
||||
else if (settingElement.Element is DesktopMagicPluginAPI.Inputs.Button eButton)
|
||||
{
|
||||
Button button = new()
|
||||
{
|
||||
Content = eButton.Value,
|
||||
FontSize = 10,
|
||||
Height = 20,
|
||||
Margin = new Thickness(0, 10, 0, 10),
|
||||
Padding = new Thickness(0),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
button.Click += (_s, _e) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
eButton.Click();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
DisplayException(ex.Message);
|
||||
}
|
||||
};
|
||||
eButton.OnValueChanged += () =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
button.Content = eButton.Value;
|
||||
});
|
||||
};
|
||||
|
||||
_ = stackPanel.Children.Add(button);
|
||||
}
|
||||
else if (settingElement.Element is DesktopMagicPluginAPI.Inputs.CheckBox eCheckBox)
|
||||
{
|
||||
CheckBox checkBox = new()
|
||||
{
|
||||
IsChecked = eCheckBox.Value,
|
||||
Style = (Style)FindResource("MaterialDesignDarkCheckBox"),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
checkBox.Click += (_s, _e) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
eCheckBox.Value = checkBox.IsChecked.GetValueOrDefault();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
DisplayException(ex.Message);
|
||||
}
|
||||
};
|
||||
eCheckBox.OnValueChanged += () =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
checkBox.IsChecked = eCheckBox.Value;
|
||||
});
|
||||
};
|
||||
|
||||
_ = stackPanel.Children.Add(checkBox);
|
||||
}
|
||||
else if (settingElement.Element is DesktopMagicPluginAPI.Inputs.TextBox eTextBox)
|
||||
{
|
||||
TextBox textBox = new()
|
||||
{
|
||||
Text = options[i, 0],
|
||||
Text = eTextBox.Value,
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
Width = optionsPanel.ActualWidth - label.ActualWidth
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
textBox.TextChanged += Option_ValueChanged;
|
||||
textBox.Name = "txt_" + i.ToString();
|
||||
stackPanel.Children.Add(textBox);
|
||||
textBox.TextChanged += (_s, _e) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
eTextBox.Value = textBox.Text;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
DisplayException(ex.Message);
|
||||
}
|
||||
};
|
||||
eTextBox.OnValueChanged += () =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
textBox.Text = eTextBox.Value;
|
||||
});
|
||||
};
|
||||
_ = stackPanel.Children.Add(textBox);
|
||||
}
|
||||
else if (options[i, 1] == "num")
|
||||
else if (settingElement.Element is DesktopMagicPluginAPI.Inputs.IntegerUpDown eIntegerUpDown)
|
||||
{
|
||||
Xceed.Wpf.Toolkit.IntegerUpDown integerUpDown = new();
|
||||
|
||||
_ = int.TryParse(options[i, 0], out int value);
|
||||
_ = int.TryParse(options[i, 3], out int min);
|
||||
_ = int.TryParse(options[i, 4], out int max);
|
||||
|
||||
integerUpDown.Value = value;
|
||||
integerUpDown.Minimum = min;
|
||||
integerUpDown.Maximum = max;
|
||||
integerUpDown.Width = optionsPanel.ActualWidth - label.ActualWidth;
|
||||
integerUpDown.ValueChanged += Option_ValueChanged;
|
||||
integerUpDown.Name = "num_" + i.ToString();
|
||||
stackPanel.Children.Add(integerUpDown);
|
||||
Xceed.Wpf.Toolkit.IntegerUpDown integerUpDown = new()
|
||||
{
|
||||
Value = eIntegerUpDown.Value,
|
||||
Minimum = eIntegerUpDown.Minimum,
|
||||
Maximum = eIntegerUpDown.Maximum,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
integerUpDown.ValueChanged += (_s, _e) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
eIntegerUpDown.Value = integerUpDown.Value.GetValueOrDefault();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
DisplayException(ex.Message);
|
||||
}
|
||||
};
|
||||
eIntegerUpDown.OnValueChanged += () =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
integerUpDown.Value = eIntegerUpDown.Value;
|
||||
});
|
||||
};
|
||||
_ = stackPanel.Children.Add(integerUpDown);
|
||||
}
|
||||
else if (options[i, 1] == "sld")
|
||||
else if (settingElement.Element is DesktopMagicPluginAPI.Inputs.Slider eSlider)
|
||||
{
|
||||
Slider slider = new();
|
||||
Slider slider = new()
|
||||
{
|
||||
Value = eSlider.Value,
|
||||
Minimum = eSlider.Minimum,
|
||||
Maximum = eSlider.Maximum,
|
||||
TickFrequency = 1,
|
||||
IsSnapToTickEnabled = true,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
slider.ValueChanged += (_s, _e) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
eSlider.Value = slider.Value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
DisplayException(ex.Message);
|
||||
}
|
||||
};
|
||||
eSlider.OnValueChanged += () =>
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
slider.Value = eSlider.Value;
|
||||
});
|
||||
};
|
||||
|
||||
_ = int.TryParse(options[i, 0], out int value);
|
||||
_ = int.TryParse(options[i, 3], out int min);
|
||||
_ = int.TryParse(options[i, 4], out int max);
|
||||
|
||||
slider.Value = value;
|
||||
slider.Minimum = min;
|
||||
slider.Maximum = max;
|
||||
slider.TickFrequency = 1;
|
||||
slider.IsSnapToTickEnabled = true;
|
||||
slider.Width = optionsPanel.ActualWidth - label.ActualWidth;
|
||||
slider.ValueChanged += Option_ValueChanged;
|
||||
slider.Name = "sld_" + i.ToString();
|
||||
stackPanel.Children.Add(slider);
|
||||
_ = stackPanel.Children.Add(slider);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Option_ValueChanged(object sender, object e)
|
||||
private void DisplayException(string message)
|
||||
{
|
||||
DependencyObject dpobj = (DependencyObject)sender;
|
||||
string name = (string)dpobj.GetValue(FrameworkElement.NameProperty);
|
||||
string value = "";
|
||||
int index = int.Parse(name[(name.LastIndexOf("_") + 1)..]);
|
||||
name = name.Replace(name[name.LastIndexOf("_")..], "");
|
||||
App.Logger.Log(message, "PluginInput");
|
||||
_ = MessageBox.Show("File execution error:\n" + message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
int index = WindowNames.IndexOf(((Tuple<string, int>)optionsComboBox.SelectedItem).Item1.ToString());
|
||||
|
||||
if (name.Contains("txt"))
|
||||
{
|
||||
value = ((TextBox)sender).Text;
|
||||
}
|
||||
else if (name.Contains("num"))
|
||||
{
|
||||
value = ((Xceed.Wpf.Toolkit.IntegerUpDown)sender).Text;
|
||||
}
|
||||
else if (name.Contains("sld"))
|
||||
{
|
||||
value = ((Slider)sender).Value.ToString();
|
||||
}
|
||||
else if (name.Contains("bol"))
|
||||
{
|
||||
value = ((CheckBox)sender).IsChecked.ToString();
|
||||
}
|
||||
|
||||
OptionsList[((Tuple<string, int>)optionsComboBox.SelectedItem).Item2].Item2[index, 0] = value;
|
||||
|
||||
string PluginName = OptionsList[((Tuple<string, int>)optionsComboBox.SelectedItem).Item2].Item1;
|
||||
string[,] options = OptionsList[((Tuple<string, int>)optionsComboBox.SelectedItem).Item2].Item2;
|
||||
string optionsText = "";
|
||||
|
||||
try
|
||||
{
|
||||
int ind = WindowNames.FindIndex(x => x.StartsWith(PluginName));
|
||||
((PluginWindow)Windows[ind]).OptionChanged(index);
|
||||
}
|
||||
catch { }
|
||||
|
||||
for (int i = 0; i < options.GetLength(0); i++)
|
||||
{
|
||||
for (int j = 0; j < options.GetLength(1); j++)
|
||||
{
|
||||
if (j != 0)
|
||||
optionsText += "\t";
|
||||
optionsText += options[i, j];
|
||||
}
|
||||
optionsText += "\n";
|
||||
}
|
||||
File.WriteAllText($"{applicationDataPath}\\Plugins\\{PluginName}\\{PluginName}.save", optionsText);
|
||||
PluginWindow window = Windows[index] as PluginWindow;
|
||||
window?.Exit();
|
||||
}
|
||||
|
||||
#endregion options
|
||||
@@ -562,45 +668,20 @@ namespace DesktopMagic
|
||||
private void TextBlock_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
int index = 0;
|
||||
char[] chars = { '1', '0' };
|
||||
foreach (FontFamily ff in Fonts.SystemFontFamilies)
|
||||
{
|
||||
double charWidth = -1;
|
||||
bool monospace = true;
|
||||
|
||||
textBlock.FontFamily = ff;
|
||||
|
||||
foreach (char c in chars)
|
||||
ComboBoxItem comboBoxItem = new()
|
||||
{
|
||||
textBlock.Text = "";
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
textBlock.Text += c.ToString();
|
||||
}
|
||||
textBlock.UpdateLayout();
|
||||
FontFamily = ff,
|
||||
Content = ff.ToString()
|
||||
};
|
||||
_ = fontComboBox.Items.Add(comboBoxItem);
|
||||
|
||||
if (charWidth != textBlock.ActualWidth && charWidth != -1)
|
||||
{
|
||||
monospace = false;
|
||||
break;
|
||||
}
|
||||
charWidth = textBlock.ActualWidth;
|
||||
}
|
||||
if (monospace == true)
|
||||
if (ff.ToString() == GlobalFont)
|
||||
{
|
||||
ComboBoxItem comboBoxItem = new()
|
||||
{
|
||||
FontFamily = ff,
|
||||
Content = ff.ToString()
|
||||
};
|
||||
fontComboBox.Items.Add(comboBoxItem);
|
||||
|
||||
if (ff.ToString() == GlobalFont)
|
||||
{
|
||||
fontComboBox.SelectedIndex = index;
|
||||
}
|
||||
index++;
|
||||
fontComboBox.SelectedIndex = index;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
if (fontComboBox.SelectedIndex == -1)
|
||||
{
|
||||
@@ -677,27 +758,22 @@ namespace DesktopMagic
|
||||
|
||||
private void LayoutsComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (layoutsComboBox.SelectedIndex == 0)
|
||||
{
|
||||
removeLayoutButton.IsEnabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
removeLayoutButton.IsEnabled = true;
|
||||
}
|
||||
removeLayoutButton.IsEnabled = layoutsComboBox.SelectedIndex != 0;
|
||||
|
||||
if (layoutsComboBox.SelectedIndex == -1 || !loaded)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
key.SetValue("SelectedLayout", layoutsComboBox.SelectedIndex);
|
||||
|
||||
string[] lines = File.ReadAllLines(applicationDataPath + "\\layouts.save");
|
||||
string[] lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save");
|
||||
string[] data = lines[layoutsComboBox.SelectedIndex].Split(';');
|
||||
foreach (string dat in data)
|
||||
{
|
||||
if (dat.Contains(":"))
|
||||
{
|
||||
string value = dat[(dat.LastIndexOf(":") + 1)..];
|
||||
string value = dat[(dat.LastIndexOf(":", StringComparison.InvariantCulture) + 1)..];
|
||||
string name = dat.Replace(":" + value, "");
|
||||
key.SetValue(name, value);
|
||||
}
|
||||
@@ -715,66 +791,74 @@ namespace DesktopMagic
|
||||
|
||||
private void NewLayoutButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
InputDialog inputDialog = new("Layoutnamen eingeben:");
|
||||
InputDialog inputDialog = new((string)FindResource("enterLayoutName"));
|
||||
if (inputDialog.ShowDialog() == true)
|
||||
{
|
||||
string content = "";
|
||||
foreach (string valueName in key.GetValueNames())
|
||||
{
|
||||
if (valueName != "SelectedLayout")
|
||||
{
|
||||
content += valueName + ":" + key.GetValue(valueName).ToString() + ";";
|
||||
}
|
||||
}
|
||||
content += inputDialog.ResponseText + "\n";
|
||||
|
||||
File.AppendAllText(applicationDataPath + "\\layouts.save", content);
|
||||
File.AppendAllText(App.ApplicationDataPath + "\\layouts.save", content);
|
||||
key.SetValue("SelectedLayout", -1);
|
||||
LoadLayoutNames();
|
||||
layoutsComboBox.SelectedIndex = layoutsComboBox.Items.Count - 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveLayoutButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (layoutsComboBox.SelectedIndex == -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
List<string> lines = File.ReadAllLines(applicationDataPath + "\\layouts.save").ToList();
|
||||
List<string> lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save").ToList();
|
||||
lines.RemoveAt(layoutsComboBox.SelectedIndex);
|
||||
File.WriteAllLines(applicationDataPath + "\\layouts.save", lines);
|
||||
File.WriteAllLines(App.ApplicationDataPath + "\\layouts.save", lines);
|
||||
LoadLayoutNames();
|
||||
layoutsComboBox.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void SaveLayout()
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
lock (applicationDataPath)
|
||||
{
|
||||
List<string> lines = File.ReadAllLines(applicationDataPath + "\\layouts.save").ToList();
|
||||
string content = "";
|
||||
foreach (string valueName in key.GetValueNames())
|
||||
{
|
||||
if (valueName != "SelectedLayout")
|
||||
content += valueName + ":" + key.GetValue(valueName).ToString() + ";";
|
||||
}
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
content += layoutsComboBox.SelectedItem.ToString();
|
||||
lines[layoutsComboBox.SelectedIndex] = content;
|
||||
});
|
||||
File.WriteAllLines(applicationDataPath + "\\layouts.save", lines);
|
||||
}
|
||||
});
|
||||
_ = Task.Run(() =>
|
||||
{
|
||||
lock (App.ApplicationDataPath)
|
||||
{
|
||||
List<string> lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save").ToList();
|
||||
string content = "";
|
||||
foreach (string valueName in key.GetValueNames())
|
||||
{
|
||||
if (valueName != "SelectedLayout")
|
||||
{
|
||||
content += valueName + ":" + key.GetValue(valueName).ToString() + ";";
|
||||
}
|
||||
}
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
content += layoutsComboBox.SelectedItem.ToString();
|
||||
lines[layoutsComboBox.SelectedIndex] = content;
|
||||
});
|
||||
File.WriteAllLines(App.ApplicationDataPath + "\\layouts.save", lines);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void LoadLayoutNames()
|
||||
{
|
||||
layoutsComboBox.Items.Clear();
|
||||
string[] lines = File.ReadAllLines(applicationDataPath + "\\layouts.save");
|
||||
string[] lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save");
|
||||
|
||||
foreach (string line in lines)
|
||||
{
|
||||
string name = line[(line.LastIndexOf(";") + 1)..];
|
||||
layoutsComboBox.Items.Add(name);
|
||||
string name = line[(line.LastIndexOf(";", StringComparison.InvariantCulture) + 1)..];
|
||||
_ = layoutsComboBox.Items.Add(name);
|
||||
}
|
||||
layoutsComboBox.SelectedIndex = int.Parse(key.GetValue("SelectedLayout", "0").ToString());
|
||||
}
|
||||
@@ -807,7 +891,7 @@ namespace DesktopMagic
|
||||
Windows.Clear();
|
||||
WindowNames.Clear();
|
||||
|
||||
var list = stackPanel.Children.OfType<CheckBox>();
|
||||
IEnumerable<CheckBox> list = stackPanel.Children.OfType<CheckBox>();
|
||||
bool showWindow = true;
|
||||
|
||||
try
|
||||
@@ -829,15 +913,15 @@ namespace DesktopMagic
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
File.AppendAllText(logFilePath, "\n" + ex);
|
||||
App.Logger.Log(ex.ToString(), "Main");
|
||||
MessageBox.Show(ex.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
File.AppendAllText(logFilePath, "\n" + ex);
|
||||
MessageBox.Show(ex.ToString());
|
||||
App.Logger.Log(ex.ToString(), "Main");
|
||||
_ = MessageBox.Show(ex.ToString());
|
||||
}
|
||||
|
||||
if (!showWindow && minimize)
|
||||
@@ -857,18 +941,21 @@ namespace DesktopMagic
|
||||
private void UpdatePluginsButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
LoadPlugins();
|
||||
foreach (Window window in Windows)
|
||||
Task.Run(() =>
|
||||
{
|
||||
if (window.GetType() == typeof(PluginWindow))
|
||||
foreach (Window window in Windows.ToArray())
|
||||
{
|
||||
((PluginWindow)window).UpdatePluginWindow();
|
||||
if (window.GetType() == typeof(PluginWindow))
|
||||
{
|
||||
((PluginWindow)window).UpdatePluginWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void OpenPluginsFolderButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start("explorer.exe", applicationDataPath + "\\Plugins");
|
||||
_ = Process.Start("explorer.exe", App.ApplicationDataPath + "\\Plugins");
|
||||
}
|
||||
|
||||
private void ScrollViewer_PreviewMouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
|
||||
@@ -882,19 +969,19 @@ namespace DesktopMagic
|
||||
{
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
this.ShowInTaskbar = true;
|
||||
this.Visibility = Visibility.Visible;
|
||||
ShowInTaskbar = true;
|
||||
Visibility = Visibility.Visible;
|
||||
SystemCommands.RestoreWindow(this);
|
||||
this.Topmost = true;
|
||||
this.Activate();
|
||||
this.Topmost = false;
|
||||
Topmost = true;
|
||||
Activate();
|
||||
Topmost = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetLanguageDictionary()
|
||||
{
|
||||
ResourceDictionary dict = new();
|
||||
string currentCulture = (Thread.CurrentThread.CurrentCulture.ToString());
|
||||
ResourceDictionary dict = new ResourceDictionary();
|
||||
string currentCulture = Thread.CurrentThread.CurrentUICulture.ToString();
|
||||
|
||||
if (currentCulture.Contains("de"))
|
||||
{
|
||||
@@ -904,7 +991,25 @@ namespace DesktopMagic
|
||||
{
|
||||
dict.Source = new Uri("..\\Resources\\StringResources.en.xaml", UriKind.Relative);
|
||||
}
|
||||
this.Resources.MergedDictionaries.Add(dict);
|
||||
Resources.MergedDictionaries.Add(dict);
|
||||
}
|
||||
|
||||
private void GithubButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
string uri = "https://github.com/Stone-Red-Code/DesktopMagic";
|
||||
ProcessStartInfo psi = new ProcessStartInfo();
|
||||
psi.UseShellExecute = true;
|
||||
psi.FileName = uri;
|
||||
_ = Process.Start(psi);
|
||||
}
|
||||
|
||||
private void DownloadPluginsButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
string uri = "https://github.com/Stone-Red-Code/DesktopMagic-Plugins";
|
||||
ProcessStartInfo psi = new ProcessStartInfo();
|
||||
psi.UseShellExecute = true;
|
||||
psi.FileName = uri;
|
||||
_ = Process.Start(psi);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,13 @@
|
||||
using Microsoft.Win32;
|
||||
|
||||
using NAudio.Wave;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Timers;
|
||||
@@ -41,7 +44,7 @@ namespace DesktopMagic
|
||||
};
|
||||
|
||||
w.Show();
|
||||
this.Owner = w;
|
||||
Owner = w;
|
||||
w.Hide();
|
||||
|
||||
sampleAggregator.FftCalculated += new EventHandler<FftEventArgs>(FftCalculated);
|
||||
@@ -57,17 +60,17 @@ namespace DesktopMagic
|
||||
t.Elapsed += T_Elapsed;
|
||||
t.Start();
|
||||
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
|
||||
|
||||
this.Top = double.Parse(key.GetValue("MusicVisualizerWindowTop", 100).ToString());
|
||||
Top = double.Parse(key.GetValue("MusicVisualizerWindowTop", 100).ToString());
|
||||
|
||||
this.Left = double.Parse(key.GetValue("MusicVisualizerWindowLeft", 100).ToString());
|
||||
Left = double.Parse(key.GetValue("MusicVisualizerWindowLeft", 100).ToString());
|
||||
|
||||
this.Height = double.Parse(key.GetValue("MusicVisualizerWindowHeight", 200).ToString());
|
||||
Height = double.Parse(key.GetValue("MusicVisualizerWindowHeight", 200).ToString());
|
||||
|
||||
this.Width = double.Parse(key.GetValue("MusicVisualizerWindowWidth", 500).ToString());
|
||||
Width = double.Parse(key.GetValue("MusicVisualizerWindowWidth", 500).ToString());
|
||||
|
||||
this.IsEnabled = false;
|
||||
IsEnabled = false;
|
||||
}
|
||||
|
||||
protected override void OnSourceInitialized(EventArgs e)
|
||||
@@ -75,7 +78,7 @@ namespace DesktopMagic
|
||||
base.OnSourceInitialized(e);
|
||||
|
||||
//Set the window style to noactivate.
|
||||
var helper = new WindowInteropHelper(this);
|
||||
WindowInteropHelper helper = new WindowInteropHelper(this);
|
||||
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
|
||||
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
|
||||
}
|
||||
@@ -87,14 +90,14 @@ namespace DesktopMagic
|
||||
if (MainWindow.EditMode)
|
||||
{
|
||||
panel.Visibility = Visibility.Visible;
|
||||
new WindowPos().SetIsLocked(this, false);
|
||||
WindowPos.SetIsLocked(this, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.Visibility = Visibility.Collapsed;
|
||||
new WindowPos().SetIsLocked(this, true);
|
||||
WindowPos.SetIsLocked(this, true);
|
||||
}
|
||||
if (!this.IsLoaded)
|
||||
if (!IsLoaded)
|
||||
{
|
||||
calculate = false;
|
||||
}
|
||||
@@ -125,16 +128,23 @@ namespace DesktopMagic
|
||||
|
||||
private void FftCalculated(object sender, FftEventArgs e)
|
||||
{
|
||||
if (!calculate) return;
|
||||
if (!calculate)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
List<double> fft = new List<double>();
|
||||
for (int i = 0; i < e.Result.Length / 2 - 70; i++)
|
||||
{
|
||||
int v = i;
|
||||
if (v < 20)
|
||||
{
|
||||
v = 20;
|
||||
}
|
||||
|
||||
fft.Add(Math.Abs(e.Result[i].Y * v / (100 - MainWindow.AmplifierLevel)));
|
||||
int multiplier = 100 - MainWindow.AmplifierLevel * 2;
|
||||
multiplier = multiplier == 0 ? 1 : multiplier;
|
||||
fft.Add(Math.Abs(e.Result[i].Y * v / multiplier));
|
||||
}
|
||||
|
||||
if (lastFft.Count != 0)
|
||||
@@ -188,7 +198,9 @@ namespace DesktopMagic
|
||||
for (int j = 0; j < flattenValue; j++)
|
||||
{
|
||||
if (i + j < scaledFft.Count)
|
||||
{
|
||||
temp += scaledFft[i + j];
|
||||
}
|
||||
}
|
||||
scaledFft[i] = temp / flattenValue;
|
||||
}
|
||||
@@ -202,7 +214,9 @@ namespace DesktopMagic
|
||||
for (int j = 0; j < flattenValue; j++)
|
||||
{
|
||||
if (i - j >= 0)
|
||||
{
|
||||
temp += scaledFft[i - j];
|
||||
}
|
||||
}
|
||||
scaledFft[i] = temp / flattenValue;
|
||||
}
|
||||
@@ -219,10 +233,14 @@ namespace DesktopMagic
|
||||
int offset = 0;
|
||||
|
||||
if (!MainWindow.MirrorMode && MainWindow.SpectrumMode != 1)
|
||||
{
|
||||
scaledFft.Insert(0, 0);
|
||||
}
|
||||
|
||||
if (!MainWindow.LineMode)
|
||||
{
|
||||
offset = 1;
|
||||
}
|
||||
|
||||
using (Graphics gr = Graphics.FromImage(bm))
|
||||
{
|
||||
@@ -246,13 +264,18 @@ namespace DesktopMagic
|
||||
|
||||
if (!fftIndexReverse)
|
||||
{
|
||||
points[pointIndex + 1] = new PointF(bm.Width - 15 - 4 * pointIndex, bm.Height / 2 + value);
|
||||
points[points.Length / 2 + pointIndex + 1] = new PointF(bm.Width - 15 - 4 * pointIndex, bm.Height / 2 - value);
|
||||
points[pointIndex + 1] = new PointF(bm.Width - 4 * pointIndex, bm.Height / 2 + value);
|
||||
points[points.Length / 2 + pointIndex + 1] = new PointF(bm.Width - 4 * pointIndex, bm.Height / 2 - value);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2: points[pointIndex + 1] = new PointF(2 * pointIndex, value); break;
|
||||
default: points[pointIndex + 1] = new PointF(2 * pointIndex, bm.Height - value - 1 + offset); break;
|
||||
case 2:
|
||||
points[pointIndex + 1] = new PointF(2 * pointIndex, value);
|
||||
break;
|
||||
|
||||
default:
|
||||
points[pointIndex + 1] = new PointF(2 * pointIndex, bm.Height - value - 1 + offset);
|
||||
break;
|
||||
}
|
||||
|
||||
if (MainWindow.MirrorMode || MainWindow.SpectrumMode == 1)
|
||||
@@ -337,11 +360,11 @@ namespace DesktopMagic
|
||||
|
||||
private BitmapSource BitmapToImageSource(Bitmap bitmap)
|
||||
{
|
||||
var bitmapData = bitmap.LockBits(
|
||||
new Rectangle(0, 0, bitmap.Width, bitmap.Height),
|
||||
System.Drawing.Imaging.ImageLockMode.ReadOnly, bitmap.PixelFormat);
|
||||
BitmapData bitmapData = bitmap.LockBits(
|
||||
new Rectangle(0, 0, bitmap.Width, bitmap.Height),
|
||||
ImageLockMode.ReadOnly, bitmap.PixelFormat);
|
||||
|
||||
var bitmapSource = BitmapSource.Create(
|
||||
BitmapSource bitmapSource = BitmapSource.Create(
|
||||
bitmapData.Width, bitmapData.Height,
|
||||
bitmap.HorizontalResolution, bitmap.VerticalResolution,
|
||||
System.Windows.Media.PixelFormats.Bgra32, null,
|
||||
@@ -359,9 +382,9 @@ namespace DesktopMagic
|
||||
|
||||
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
key.SetValue("MusicVisualizerWindowHeight", this.Height);
|
||||
key.SetValue("MusicVisualizerWindowWidth", this.Width);
|
||||
tileBar.CaptionHeight = this.ActualHeight - 10;
|
||||
key.SetValue("MusicVisualizerWindowHeight", Height);
|
||||
key.SetValue("MusicVisualizerWindowWidth", Width);
|
||||
tileBar.CaptionHeight = ActualHeight - 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,9 +20,10 @@ namespace DesktopMagic
|
||||
|
||||
public Point WindowPosition => new Point((int)window.Left, (int)window.Top);
|
||||
|
||||
public void UpdateWindow()
|
||||
{
|
||||
window.UpdatePluginWindow();
|
||||
}
|
||||
public string PluginName => window.PluginName;
|
||||
|
||||
public string PluginPath => window.PluginFolderPath;
|
||||
|
||||
public void UpdateWindow() => window.UpdatePluginWindow();
|
||||
}
|
||||
}
|
||||
@@ -13,12 +13,11 @@
|
||||
SizeChanged="Window_SizeChanged"
|
||||
Closing="Window_Closing"
|
||||
ContentRendered="Window_ContentRendered"
|
||||
|
||||
x:Name="window">
|
||||
<Grid>
|
||||
<Rectangle x:Name="panel" Fill="#4CBAFFEF" Stroke="White" Margin="0,0,0,0" Visibility="Collapsed" />
|
||||
<Viewbox StretchDirection="Both" Stretch="Uniform">
|
||||
<Image x:Name="image" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Stretch="Uniform" MouseDown="Window_MouseDown" MouseMove="Window_MouseMove" />
|
||||
<Image x:Name="image" HorizontalAlignment="Left" RenderOptions.EdgeMode="Aliased" Margin="0,0,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Stretch="Uniform" MouseDown="Window_MouseDown" MouseMove="Window_MouseMove" MouseWheel="Window_MouseWheel"/>
|
||||
</Viewbox>
|
||||
</Grid>
|
||||
<WindowChrome.WindowChrome>
|
||||
@@ -0,0 +1,384 @@
|
||||
using DesktopMagicPluginAPI;
|
||||
using DesktopMagicPluginAPI.Drawing;
|
||||
using DesktopMagicPluginAPI.Inputs;
|
||||
|
||||
using Microsoft.Win32;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Timers;
|
||||
using System.Windows;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
namespace DesktopMagic
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaktionslogik für PluginWindow.xaml
|
||||
/// </summary>
|
||||
///
|
||||
public partial class PluginWindow : Window
|
||||
{
|
||||
private readonly RegistryKey key;
|
||||
private Thread pluginThread;
|
||||
private System.Timers.Timer valueTimer;
|
||||
|
||||
private Plugin pluginClassInstance;
|
||||
public string PluginName { get; private set; }
|
||||
public string PluginFolderPath { get; private set; }
|
||||
private bool stop = false;
|
||||
|
||||
public event Action PluginLoaded;
|
||||
|
||||
public event Action OnExit;
|
||||
|
||||
public PluginWindow(string pluginName)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
Window w = new()
|
||||
{
|
||||
Top = -100,
|
||||
Left = -100,
|
||||
Width = 0,
|
||||
Height = 0,
|
||||
|
||||
WindowStyle = WindowStyle.ToolWindow,
|
||||
ShowInTaskbar = false
|
||||
};
|
||||
w.Show();
|
||||
Owner = w;
|
||||
w.Hide();
|
||||
|
||||
System.Timers.Timer t = new System.Timers.Timer();
|
||||
t.Interval = 100;
|
||||
t.Elapsed += Elapsed;
|
||||
t.Start();
|
||||
|
||||
PluginName = pluginName;
|
||||
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
|
||||
Top = double.Parse(key.GetValue(pluginName + "WindowTop", 100).ToString());
|
||||
Left = double.Parse(key.GetValue(pluginName + "WindowLeft", 100).ToString());
|
||||
Height = double.Parse(key.GetValue(pluginName + "WindowHeight", 200).ToString());
|
||||
Width = double.Parse(key.GetValue(pluginName + "WindowWidth", 500).ToString());
|
||||
}
|
||||
|
||||
protected override void OnSourceInitialized(EventArgs e)
|
||||
{
|
||||
base.OnSourceInitialized(e);
|
||||
|
||||
//Set the window style to noactivate.
|
||||
WindowInteropHelper helper = new(this);
|
||||
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
|
||||
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
|
||||
}
|
||||
|
||||
private void Window_ContentRendered(object sender, EventArgs e)
|
||||
{
|
||||
pluginThread = new Thread(() =>
|
||||
{
|
||||
LoadPlugin();
|
||||
});
|
||||
pluginThread.Start();
|
||||
}
|
||||
|
||||
public void UpdatePluginWindow()
|
||||
{
|
||||
ValueTimer_Elapsed(valueTimer, null);
|
||||
}
|
||||
|
||||
private void Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
if (MainWindow.EditMode)
|
||||
{
|
||||
panel.Visibility = Visibility.Visible;
|
||||
WindowPos.SetIsLocked(this, false);
|
||||
tileBar.CaptionHeight = tileBar.CaptionHeight = ActualHeight - 10 < 0 ? 0 : ActualHeight - 10;
|
||||
ResizeMode = ResizeMode.CanResize;
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.Visibility = Visibility.Collapsed;
|
||||
WindowPos.SetIsLocked(this, true);
|
||||
tileBar.CaptionHeight = 0;
|
||||
ResizeMode = ResizeMode.NoResize;
|
||||
}
|
||||
if (stop)
|
||||
{
|
||||
((System.Timers.Timer)sender).Stop();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void LoadPlugin()
|
||||
{
|
||||
PluginFolderPath = $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\\{App.AppName}\\Plugins\\{PluginName}";
|
||||
|
||||
if (!File.Exists($"{PluginFolderPath}\\{PluginName}.dll"))
|
||||
{
|
||||
_ = MessageBox.Show("File does not exist!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
Exit();
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
ExecuteSource();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
App.Logger.Log(ex.ToString(), "Plugin");
|
||||
_ = MessageBox.Show("File execution error:\n" + ex, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
Exit();
|
||||
return;
|
||||
}
|
||||
PluginLoaded?.Invoke();
|
||||
}
|
||||
|
||||
private void ExecuteSource()
|
||||
{
|
||||
byte[] assemblyBytes = File.ReadAllBytes($"{PluginFolderPath}\\{PluginName}.dll");
|
||||
Assembly dll = Assembly.Load(assemblyBytes);
|
||||
Type instanceType = dll.GetTypes().FirstOrDefault(type => type.GetTypeInfo().BaseType == typeof(Plugin));
|
||||
|
||||
if (instanceType is null)
|
||||
{
|
||||
_ = MessageBox.Show($"The \"Plugin\" class could not be found! It has to inherit from \"{typeof(Plugin).FullName}\"", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
Exit();
|
||||
return;
|
||||
}
|
||||
|
||||
object instance = Activator.CreateInstance(instanceType);
|
||||
if (instance is Plugin)
|
||||
{
|
||||
pluginClassInstance = instance as Plugin;
|
||||
pluginClassInstance.Application = new PluginData(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ = MessageBox.Show($"The \"Plugin\" class has to inherit from \"{typeof(Plugin).FullName}\"", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
Exit();
|
||||
return;
|
||||
}
|
||||
|
||||
LoadOptions(instance);
|
||||
|
||||
valueTimer = new System.Timers.Timer();
|
||||
valueTimer.Interval = 1000;
|
||||
valueTimer.Elapsed += ValueTimer_Elapsed;
|
||||
|
||||
pluginClassInstance.Start();
|
||||
UpdatePluginWindow();
|
||||
|
||||
if (pluginClassInstance.UpdateInterval > 0)
|
||||
{
|
||||
valueTimer.Interval = pluginClassInstance.UpdateInterval;
|
||||
valueTimer.Start();
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadOptions(object instance)
|
||||
{
|
||||
try
|
||||
{
|
||||
FieldInfo[] props = instance.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.GetField);
|
||||
|
||||
List<SettingElement> settingElements = new List<SettingElement>();
|
||||
foreach (FieldInfo prop in props)
|
||||
{
|
||||
if (prop.GetValue(instance) is Element element)
|
||||
{
|
||||
object[] attrs = prop.GetCustomAttributes(true);
|
||||
foreach (object attr in attrs)
|
||||
{
|
||||
if (attr is ElementAttribute elementAttribute)
|
||||
{
|
||||
settingElements.Add(new SettingElement(element, elementAttribute.Name, elementAttribute.OrderIndex));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
settingElements = settingElements.OrderBy(x => x.OrderIndex).ToList();
|
||||
if (MainWindow.PluginsSettings.ContainsKey(PluginName))
|
||||
{
|
||||
MainWindow.PluginsSettings[PluginName] = settingElements;
|
||||
}
|
||||
else
|
||||
{
|
||||
MainWindow.PluginsSettings.Add(PluginName, settingElements);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
stop = true;
|
||||
App.Logger.Log(ex.ToString(), "Plugin");
|
||||
_ = MessageBox.Show("File execution error:\n" + ex, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
Exit();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void ValueTimer_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!stop)
|
||||
{
|
||||
Bitmap result = pluginClassInstance.Main();
|
||||
|
||||
if (pluginClassInstance.UpdateInterval > 0)
|
||||
{
|
||||
valueTimer.Interval = pluginClassInstance.UpdateInterval;
|
||||
}
|
||||
else
|
||||
{
|
||||
valueTimer.Stop();
|
||||
}
|
||||
|
||||
if (result is not null)
|
||||
{
|
||||
BitmapScalingMode renderOptions = pluginClassInstance.RenderQuality switch
|
||||
{
|
||||
RenderQuality.High => BitmapScalingMode.HighQuality,
|
||||
RenderQuality.Low => BitmapScalingMode.LowQuality,
|
||||
RenderQuality.Performance => BitmapScalingMode.NearestNeighbor,
|
||||
_ => BitmapScalingMode.Unspecified
|
||||
};
|
||||
|
||||
//Update Image
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
RenderOptions.SetBitmapScalingMode(image, renderOptions);
|
||||
image.Source = BitmapToImageSource(result);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
stop = true;
|
||||
App.Logger.Log(ex.ToString(), "Plugin");
|
||||
_ = MessageBox.Show("File execution error:\n" + ex, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
Exit();
|
||||
return;
|
||||
}
|
||||
|
||||
if (stop)
|
||||
{
|
||||
valueTimer.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
private BitmapSource BitmapToImageSource(Bitmap bitmap)
|
||||
{
|
||||
BitmapData bitmapData = bitmap.LockBits(
|
||||
new Rectangle(0, 0, bitmap.Width, bitmap.Height),
|
||||
ImageLockMode.ReadOnly, bitmap.PixelFormat);
|
||||
|
||||
BitmapSource bitmapSource = BitmapSource.Create(
|
||||
bitmapData.Width, bitmapData.Height,
|
||||
bitmap.HorizontalResolution, bitmap.VerticalResolution,
|
||||
System.Windows.Media.PixelFormats.Bgra32, null,
|
||||
bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride);
|
||||
|
||||
bitmap.UnlockBits(bitmapData);
|
||||
return bitmapSource;
|
||||
}
|
||||
|
||||
public void Exit()
|
||||
{
|
||||
stop = true;
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
OnExit?.Invoke();
|
||||
});
|
||||
}
|
||||
|
||||
#region Window Events
|
||||
|
||||
private void Window_LocationChanged(object sender, EventArgs e)
|
||||
{
|
||||
key.SetValue(PluginName + "WindowTop", Top);
|
||||
key.SetValue(PluginName + "WindowLeft", Left);
|
||||
}
|
||||
|
||||
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
key.SetValue(PluginName + "WindowHeight", Height);
|
||||
key.SetValue(PluginName + "WindowWidth", Width);
|
||||
tileBar.CaptionHeight = ActualHeight - 10;
|
||||
}
|
||||
|
||||
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
stop = true;
|
||||
}
|
||||
|
||||
private void Window_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
||||
{
|
||||
ImageSource imageSource = image.Source;
|
||||
BitmapSource bitmapImage = (BitmapSource)imageSource;
|
||||
double pixelMousePositionX = e.GetPosition(image).X * bitmapImage.PixelWidth / image.ActualHeight;
|
||||
double pixelMousePositionY = e.GetPosition(image).Y * bitmapImage.PixelHeight / image.ActualHeight;
|
||||
|
||||
MouseButton mouseButton;
|
||||
|
||||
switch (e.ChangedButton)
|
||||
{
|
||||
case System.Windows.Input.MouseButton.Left:
|
||||
mouseButton = MouseButton.Left;
|
||||
break;
|
||||
|
||||
case System.Windows.Input.MouseButton.Middle:
|
||||
mouseButton = MouseButton.Middle;
|
||||
break;
|
||||
|
||||
case System.Windows.Input.MouseButton.Right:
|
||||
mouseButton = MouseButton.Right;
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
};
|
||||
|
||||
System.Drawing.Point point = new System.Drawing.Point((int)pixelMousePositionX, (int)pixelMousePositionY);
|
||||
pluginClassInstance.OnMouseClick(point, mouseButton);
|
||||
}
|
||||
|
||||
private void Window_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
|
||||
{
|
||||
ImageSource imageSource = image.Source;
|
||||
BitmapSource bitmapImage = (BitmapSource)imageSource;
|
||||
double pixelMousePositionX = e.GetPosition(image).X * bitmapImage.PixelWidth / image.ActualHeight;
|
||||
double pixelMousePositionY = e.GetPosition(image).Y * bitmapImage.PixelHeight / image.ActualHeight;
|
||||
|
||||
System.Drawing.Point point = new System.Drawing.Point((int)pixelMousePositionX, (int)pixelMousePositionY);
|
||||
pluginClassInstance.OnMouseMove(point);
|
||||
}
|
||||
|
||||
private void Window_MouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
|
||||
{
|
||||
ImageSource imageSource = image.Source;
|
||||
BitmapSource bitmapImage = (BitmapSource)imageSource;
|
||||
double pixelMousePositionX = e.GetPosition(image).X * bitmapImage.PixelWidth / image.ActualHeight;
|
||||
double pixelMousePositionY = e.GetPosition(image).Y * bitmapImage.PixelHeight / image.ActualHeight;
|
||||
|
||||
System.Drawing.Point point = new System.Drawing.Point((int)pixelMousePositionX, (int)pixelMousePositionY);
|
||||
pluginClassInstance.OnMouseWheel(point, e.Delta);
|
||||
}
|
||||
|
||||
#endregion Window Events
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using DesktopMagicPluginAPI.Inputs;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DesktopMagic
|
||||
{
|
||||
internal class SettingElement
|
||||
{
|
||||
public Element Element { get; }
|
||||
public string Name { get; }
|
||||
public int OrderIndex { get; }
|
||||
|
||||
public SettingElement(Element element, string name, int orderIndex)
|
||||
{
|
||||
Element = element;
|
||||
Name = name;
|
||||
OrderIndex = orderIndex;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,324 +0,0 @@
|
||||
using DesktopMagicPluginAPI;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Timers;
|
||||
using System.Windows;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
namespace DesktopMagic
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaktionslogik für PluginWindow.xaml
|
||||
/// </summary>
|
||||
///
|
||||
public partial class PluginWindow : Window
|
||||
{
|
||||
private readonly RegistryKey key;
|
||||
private Thread pluginThread;
|
||||
private System.Timers.Timer valueTimer;
|
||||
|
||||
private Plugin pluginClassInstance;
|
||||
private readonly string pluginName = "";
|
||||
private int optionsIndex = 0;
|
||||
private string pluginFolderPath = "";
|
||||
private bool stop = false;
|
||||
|
||||
public PluginWindow(string _PluginName)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
Window w = new()
|
||||
{
|
||||
Top = -100,
|
||||
Left = -100,
|
||||
Width = 0,
|
||||
Height = 0,
|
||||
|
||||
WindowStyle = WindowStyle.ToolWindow,
|
||||
ShowInTaskbar = false
|
||||
};
|
||||
w.Show();
|
||||
this.Owner = w;
|
||||
w.Hide();
|
||||
|
||||
System.Timers.Timer t = new System.Timers.Timer();
|
||||
t.Interval = 100;
|
||||
t.Elapsed += Elapsed;
|
||||
t.Start();
|
||||
|
||||
pluginName = _PluginName;
|
||||
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
|
||||
this.Top = double.Parse(key.GetValue(pluginName + "WindowTop", 100).ToString());
|
||||
this.Left = double.Parse(key.GetValue(pluginName + "WindowLeft", 100).ToString());
|
||||
this.Height = double.Parse(key.GetValue(pluginName + "WindowHeight", 200).ToString());
|
||||
this.Width = double.Parse(key.GetValue(pluginName + "WindowWidth", 500).ToString());
|
||||
}
|
||||
|
||||
protected override void OnSourceInitialized(EventArgs e)
|
||||
{
|
||||
base.OnSourceInitialized(e);
|
||||
|
||||
//Set the window style to noactivate.
|
||||
WindowInteropHelper helper = new(this);
|
||||
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
|
||||
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
|
||||
}
|
||||
|
||||
private void Window_ContentRendered(object sender, EventArgs e)
|
||||
{
|
||||
pluginThread = new Thread(() =>
|
||||
{
|
||||
LoadPlugin();
|
||||
});
|
||||
pluginThread.Start();
|
||||
}
|
||||
|
||||
public void UpdatePluginWindow() => ValueTimer_Elapsed(valueTimer, null);
|
||||
|
||||
private void Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
if (MainWindow.EditMode)
|
||||
{
|
||||
panel.Visibility = Visibility.Visible;
|
||||
new WindowPos().SetIsLocked(this, false);
|
||||
tileBar.CaptionHeight = this.ActualHeight - 10;
|
||||
this.ResizeMode = ResizeMode.CanResize;
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.Visibility = Visibility.Collapsed;
|
||||
new WindowPos().SetIsLocked(this, true);
|
||||
tileBar.CaptionHeight = 0;
|
||||
this.ResizeMode = ResizeMode.NoResize;
|
||||
}
|
||||
if (stop)
|
||||
{
|
||||
((System.Timers.Timer)sender).Stop();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void LoadPlugin()
|
||||
{
|
||||
string sourceText;
|
||||
string PluginPath;
|
||||
|
||||
pluginFolderPath = $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\\{MainWindow.AppName}\\Plugins\\{pluginName}";
|
||||
|
||||
if (File.Exists($"{pluginFolderPath}\\{pluginName}.dll"))
|
||||
{
|
||||
PluginPath = $"{pluginFolderPath}\\{pluginName}.dll";
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("File does not exist!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
sourceText = File.ReadAllText(PluginPath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show("File could not be read:\n" + e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
ExecuteSource(sourceText);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show("File execution error:\n" + e, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void ExecuteSource(string sourceText)
|
||||
{
|
||||
byte[] assemblyBytes = File.ReadAllBytes($"{pluginFolderPath}\\{pluginName}.dll");
|
||||
Assembly dll = Assembly.Load(assemblyBytes);
|
||||
Type instanceType = dll.GetTypes().FirstOrDefault(type => type.Name == "PluginScript");
|
||||
|
||||
if (instanceType is null)
|
||||
{
|
||||
MessageBox.Show($"The \"PluginScript\" class could not be found!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
object instance = Activator.CreateInstance(instanceType);
|
||||
if (instance is Plugin)
|
||||
{
|
||||
pluginClassInstance = instance as Plugin;
|
||||
pluginClassInstance.Application = new PluginData(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"The \"PluginScript\" class has to inherit from \"{nameof(DesktopMagicPluginAPI)}.{nameof(Plugin)}\"", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
if (instanceType.Namespace == nameof(DesktopMagic))
|
||||
{
|
||||
MessageBox.Show("NO!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
string[,] optionsArray = pluginClassInstance.Inputs;
|
||||
|
||||
int index = 0;
|
||||
List<Tuple<string, string[,]>> optionsList = new();
|
||||
optionsList.AddRange(MainWindow.OptionsList);
|
||||
foreach (Tuple<string, string[,]> option in optionsList)
|
||||
{
|
||||
if (option.Item1 == pluginName)
|
||||
{
|
||||
optionsIndex = index;
|
||||
LoadOptions(optionsArray);
|
||||
break;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
valueTimer = new System.Timers.Timer();
|
||||
valueTimer.Interval = 1000;
|
||||
valueTimer.Elapsed += ValueTimer_Elapsed;
|
||||
|
||||
UpdatePluginWindow();
|
||||
|
||||
if (pluginClassInstance.UpdateInterval > 0)
|
||||
{
|
||||
valueTimer.Interval = pluginClassInstance.UpdateInterval;
|
||||
valueTimer.Start();
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadOptions(string[,] optionsArray)
|
||||
{
|
||||
if (File.Exists($"{pluginFolderPath}\\{pluginName}.save"))
|
||||
{
|
||||
string[] lines = File.ReadAllLines($"{pluginFolderPath}\\{pluginName}.save");
|
||||
|
||||
for (int i = 0; i < lines.Length; i++)
|
||||
{
|
||||
string[] splitOptions = lines[i].Split('\t');
|
||||
for (int j = 0; j < optionsArray.GetLength(0); j++)
|
||||
{
|
||||
if (optionsArray[j, 2] == splitOptions[2])
|
||||
{
|
||||
optionsArray[j, 0] = splitOptions[0];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
MainWindow.OptionsList[optionsIndex] = new Tuple<string, string[,]>(pluginName, optionsArray);
|
||||
}
|
||||
|
||||
private void ValueTimer_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
if (MainWindow.OptionsList[optionsIndex].Item2.GetLength(0) > 0)
|
||||
{
|
||||
pluginClassInstance.Inputs = MainWindow.OptionsList[optionsIndex].Item2;
|
||||
}
|
||||
|
||||
//Set Arguments
|
||||
SolidBrush newBrush = (SolidBrush)MainWindow.GlobalSystemColor;
|
||||
Color color = newBrush.Color;
|
||||
string font = MainWindow.GlobalFont;
|
||||
|
||||
Bitmap result = pluginClassInstance.Main();
|
||||
|
||||
//Update Image
|
||||
Dispatcher.Invoke(() =>
|
||||
{
|
||||
image.Source = BitmapToImageSource(result);
|
||||
});
|
||||
|
||||
if (stop)
|
||||
{
|
||||
valueTimer.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
private BitmapSource BitmapToImageSource(Bitmap bitmap)
|
||||
{
|
||||
BitmapData bitmapData = bitmap.LockBits(
|
||||
new Rectangle(0, 0, bitmap.Width, bitmap.Height),
|
||||
ImageLockMode.ReadOnly, bitmap.PixelFormat);
|
||||
|
||||
BitmapSource bitmapSource = BitmapSource.Create(
|
||||
bitmapData.Width, bitmapData.Height,
|
||||
bitmap.HorizontalResolution, bitmap.VerticalResolution,
|
||||
System.Windows.Media.PixelFormats.Bgra32, null,
|
||||
bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride);
|
||||
|
||||
bitmap.UnlockBits(bitmapData);
|
||||
return bitmapSource;
|
||||
}
|
||||
|
||||
#region Window Events
|
||||
|
||||
private void Window_LocationChanged(object sender, EventArgs e)
|
||||
{
|
||||
key.SetValue(pluginName + "WindowTop", this.Top);
|
||||
key.SetValue(pluginName + "WindowLeft", this.Left);
|
||||
}
|
||||
|
||||
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
key.SetValue(pluginName + "WindowHeight", this.Height);
|
||||
key.SetValue(pluginName + "WindowWidth", this.Width);
|
||||
tileBar.CaptionHeight = this.ActualHeight - 10;
|
||||
}
|
||||
|
||||
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
stop = true;
|
||||
}
|
||||
|
||||
private void Window_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
||||
{
|
||||
Clicked(new System.Drawing.Point((int)e.GetPosition(this).X, (int)e.GetPosition(this).Y));
|
||||
}
|
||||
|
||||
private void Window_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
|
||||
{
|
||||
Moved(new System.Drawing.Point((int)e.GetPosition(this).X, (int)e.GetPosition(this).Y));
|
||||
}
|
||||
|
||||
#endregion Window Events
|
||||
|
||||
#region Plugin Methods
|
||||
|
||||
public void OptionChanged(int optionIndex)
|
||||
{
|
||||
pluginClassInstance.OnOptionChanged(optionIndex);
|
||||
}
|
||||
|
||||
private void Clicked(System.Drawing.Point positon)
|
||||
{
|
||||
pluginClassInstance.OnMouseClick(positon);
|
||||
}
|
||||
|
||||
private void Moved(System.Drawing.Point positon)
|
||||
{
|
||||
pluginClassInstance.OnMouseMove(positon);
|
||||
}
|
||||
|
||||
#endregion Plugin Methods
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
<system:String x:Key="mirrorPlugine">Spiegeln</system:String>
|
||||
<system:String x:Key="updatePlugins">Plugins Neu Laden</system:String>
|
||||
<system:String x:Key="openPluginsFolder">Plugins Ordner Öffnen</system:String>
|
||||
<system:String x:Key="downloadPlugins">Plugins Herunterladen</system:String>
|
||||
<system:String x:Key="color">Farbe:</system:String>
|
||||
<system:String x:Key="default">Standard</system:String>
|
||||
<system:String x:Key="wantToCloseProgram">Wollen sie das Programm wirklich schließen?</system:String>
|
||||
@@ -21,6 +22,9 @@
|
||||
<system:String x:Key="amplifier">Signalverstärkung:</system:String>
|
||||
<system:String x:Key="newLayout">Neues Layout</system:String>
|
||||
<system:String x:Key="deleteLayout">Layout Löschen</system:String>
|
||||
<system:String x:Key="ok">Ok</system:String>
|
||||
<system:String x:Key="cancel">Abbrechen</system:String>
|
||||
<system:String x:Key="enterLayoutName">Layoutnamen eingeben:</system:String>
|
||||
<col:ArrayList x:Key="musicVisualizerOptionsComboboxItems">
|
||||
<system:String>Unten</system:String>
|
||||
<system:String>Mitte</system:String>
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<system:String x:Key="mirrorPlugine">Mirror</system:String>
|
||||
<system:String x:Key="updatePlugins">Reload Plugins</system:String>
|
||||
<system:String x:Key="openPluginsFolder">Open Plugins Folder</system:String>
|
||||
<system:String x:Key="downloadPlugins">Download Plugins</system:String>
|
||||
<system:String x:Key="color">Color:</system:String>
|
||||
<system:String x:Key="default">Default</system:String>
|
||||
<system:String x:Key="wantToCloseProgram">Do you really want to close the program?</system:String>
|
||||
@@ -21,6 +22,9 @@
|
||||
<system:String x:Key="amplifier">Signal Amplification:</system:String>
|
||||
<system:String x:Key="newLayout">New Layout</system:String>
|
||||
<system:String x:Key="deleteLayout">Delete Layout</system:String>
|
||||
<system:String x:Key="ok">Ok</system:String>
|
||||
<system:String x:Key="cancel">Cancel</system:String>
|
||||
<system:String x:Key="enterLayoutName">Enter layout name</system:String>
|
||||
<col:ArrayList x:Key="musicVisualizerOptionsComboboxItems">
|
||||
<system:String>Bottom</system:String>
|
||||
<system:String>Middle</system:String>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Win32;
|
||||
|
||||
using System;
|
||||
using System.Timers;
|
||||
using System.Windows;
|
||||
@@ -27,7 +28,7 @@ namespace DesktopMagic
|
||||
w.WindowStyle = WindowStyle.ToolWindow;
|
||||
w.ShowInTaskbar = false;
|
||||
w.Show();
|
||||
this.Owner = w;
|
||||
Owner = w;
|
||||
w.Hide();
|
||||
|
||||
Timer t = new Timer();
|
||||
@@ -35,12 +36,12 @@ namespace DesktopMagic
|
||||
t.Elapsed += T_Elapsed;
|
||||
t.Start();
|
||||
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
|
||||
this.Top = double.Parse(key.GetValue("TimeWindowTop", 100).ToString());
|
||||
this.Left = double.Parse(key.GetValue("TimeWindowLeft", 100).ToString());
|
||||
this.Height = double.Parse(key.GetValue("TimeWindowHeight", 200).ToString());
|
||||
this.Width = double.Parse(key.GetValue("TimeWindowWidth", 500).ToString());
|
||||
this.IsEnabled = false;
|
||||
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
|
||||
Top = double.Parse(key.GetValue("TimeWindowTop", 100).ToString());
|
||||
Left = double.Parse(key.GetValue("TimeWindowLeft", 100).ToString());
|
||||
Height = double.Parse(key.GetValue("TimeWindowHeight", 200).ToString());
|
||||
Width = double.Parse(key.GetValue("TimeWindowWidth", 500).ToString());
|
||||
IsEnabled = false;
|
||||
}
|
||||
|
||||
protected override void OnSourceInitialized(EventArgs e)
|
||||
@@ -48,7 +49,7 @@ namespace DesktopMagic
|
||||
base.OnSourceInitialized(e);
|
||||
|
||||
//Set the window style to noactivate.
|
||||
var helper = new WindowInteropHelper(this);
|
||||
WindowInteropHelper helper = new WindowInteropHelper(this);
|
||||
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
|
||||
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
|
||||
}
|
||||
@@ -60,12 +61,12 @@ namespace DesktopMagic
|
||||
if (MainWindow.EditMode)
|
||||
{
|
||||
panel.Visibility = Visibility.Visible;
|
||||
new WindowPos().SetIsLocked(this, false);
|
||||
WindowPos.SetIsLocked(this, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.Visibility = Visibility.Collapsed;
|
||||
new WindowPos().SetIsLocked(this, true);
|
||||
WindowPos.SetIsLocked(this, true);
|
||||
}
|
||||
|
||||
textBlock.FontFamily = new FontFamily(MainWindow.GlobalFont);
|
||||
@@ -77,15 +78,15 @@ namespace DesktopMagic
|
||||
|
||||
private void Window_LocationChanged(object sender, EventArgs e)
|
||||
{
|
||||
key.SetValue("TimeWindowTop", this.Top);
|
||||
key.SetValue("TimeWindowLeft", this.Left);
|
||||
key.SetValue("TimeWindowTop", Top);
|
||||
key.SetValue("TimeWindowLeft", Left);
|
||||
}
|
||||
|
||||
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
|
||||
{
|
||||
key.SetValue("TimeWindowHeight", this.Height);
|
||||
key.SetValue("TimeWindowWidth", this.Width);
|
||||
tileBar.CaptionHeight = this.ActualHeight - 10;
|
||||
key.SetValue("TimeWindowHeight", Height);
|
||||
key.SetValue("TimeWindowWidth", Width);
|
||||
tileBar.CaptionHeight = ActualHeight - 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -40,7 +40,7 @@ namespace DesktopMagic
|
||||
[DllImport("user32.dll")]
|
||||
private static extern int GetWindowRect(IntPtr hwnd, out Rectangle rect);
|
||||
|
||||
public void SendWpfWindowBack(Window window)
|
||||
public static void SendWpfWindowBack(Window window)
|
||||
{
|
||||
var hWnd = new WindowInteropHelper(window).Handle;
|
||||
SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE1 | SWP_NOMOVE1);
|
||||
@@ -51,7 +51,7 @@ namespace DesktopMagic
|
||||
return (bool)obj.GetValue(IsLockedProperty);
|
||||
}
|
||||
|
||||
public void SetIsLocked(DependencyObject obj, bool value)
|
||||
public static void SetIsLocked(DependencyObject obj, bool value)
|
||||
{
|
||||
obj.SetValue(IsLockedProperty, value);
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -1,541 +0,0 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v5.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v5.0": {
|
||||
"DesktopMagic/1.0.0": {
|
||||
"dependencies": {
|
||||
"AlwaysUpToDate": "1.0.0.2",
|
||||
"DesktopMagicPluginAPI": "1.0.0",
|
||||
"Extended.Wpf.Toolkit": "4.1.0",
|
||||
"Google.Apis.Calendar.v3": "1.51.0.2312",
|
||||
"Hardcodet.NotifyIcon.Wpf": "1.1.0",
|
||||
"MaterialDesignThemes": "4.0.0",
|
||||
"NAudio": "2.0.0",
|
||||
"System.Management": "5.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"DesktopMagic.dll": {}
|
||||
}
|
||||
},
|
||||
"AlwaysUpToDate/1.0.0.2": {
|
||||
"dependencies": {
|
||||
"System.Text.Json": "5.0.2"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/AlwaysUpToDate.dll": {
|
||||
"assemblyVersion": "1.0.0.2",
|
||||
"fileVersion": "1.0.0.2"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Extended.Wpf.Toolkit/4.1.0": {
|
||||
"runtime": {
|
||||
"lib/net40/Xceed.Wpf.AvalonDock.Themes.Aero.dll": {
|
||||
"assemblyVersion": "4.1.0.0",
|
||||
"fileVersion": "4.1.0.0"
|
||||
},
|
||||
"lib/net40/Xceed.Wpf.AvalonDock.Themes.Metro.dll": {
|
||||
"assemblyVersion": "4.1.0.0",
|
||||
"fileVersion": "4.1.0.0"
|
||||
},
|
||||
"lib/net40/Xceed.Wpf.AvalonDock.Themes.VS2010.dll": {
|
||||
"assemblyVersion": "4.1.0.0",
|
||||
"fileVersion": "4.1.0.0"
|
||||
},
|
||||
"lib/net40/Xceed.Wpf.AvalonDock.dll": {
|
||||
"assemblyVersion": "4.1.0.0",
|
||||
"fileVersion": "4.1.0.0"
|
||||
},
|
||||
"lib/net40/Xceed.Wpf.Toolkit.dll": {
|
||||
"assemblyVersion": "4.1.0.0",
|
||||
"fileVersion": "4.1.0.0"
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"lib/net40/cs-CZ/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "cs-CZ"
|
||||
},
|
||||
"lib/net40/de/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "de"
|
||||
},
|
||||
"lib/net40/es/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "es"
|
||||
},
|
||||
"lib/net40/fr/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "fr"
|
||||
},
|
||||
"lib/net40/hu/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "hu"
|
||||
},
|
||||
"lib/net40/it/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "it"
|
||||
},
|
||||
"lib/net40/ja-JP/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "ja-JP"
|
||||
},
|
||||
"lib/net40/pt-BR/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "pt-BR"
|
||||
},
|
||||
"lib/net40/ro/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "ro"
|
||||
},
|
||||
"lib/net40/ru/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "ru"
|
||||
},
|
||||
"lib/net40/sv/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "sv"
|
||||
},
|
||||
"lib/net40/zh-Hans/Xceed.Wpf.AvalonDock.resources.dll": {
|
||||
"locale": "zh-Hans"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Google.Apis/1.51.0": {
|
||||
"dependencies": {
|
||||
"Google.Apis.Core": "1.51.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Google.Apis.dll": {
|
||||
"assemblyVersion": "1.51.0.0",
|
||||
"fileVersion": "1.51.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Google.Apis.Auth/1.51.0": {
|
||||
"dependencies": {
|
||||
"Google.Apis": "1.51.0",
|
||||
"Google.Apis.Core": "1.51.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Google.Apis.Auth.PlatformServices.dll": {
|
||||
"assemblyVersion": "1.51.0.0",
|
||||
"fileVersion": "1.51.0.0"
|
||||
},
|
||||
"lib/netstandard2.0/Google.Apis.Auth.dll": {
|
||||
"assemblyVersion": "1.51.0.0",
|
||||
"fileVersion": "1.51.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Google.Apis.Calendar.v3/1.51.0.2312": {
|
||||
"dependencies": {
|
||||
"Google.Apis": "1.51.0",
|
||||
"Google.Apis.Auth": "1.51.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Google.Apis.Calendar.v3.dll": {
|
||||
"assemblyVersion": "1.51.0.2312",
|
||||
"fileVersion": "1.51.0.2312"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Google.Apis.Core/1.51.0": {
|
||||
"dependencies": {
|
||||
"Newtonsoft.Json": "12.0.3"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Google.Apis.Core.dll": {
|
||||
"assemblyVersion": "1.51.0.0",
|
||||
"fileVersion": "1.51.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hardcodet.NotifyIcon.Wpf/1.1.0": {
|
||||
"runtime": {
|
||||
"lib/net5.0-windows7.0/Hardcodet.NotifyIcon.Wpf.dll": {
|
||||
"assemblyVersion": "1.1.0.0",
|
||||
"fileVersion": "1.1.0.17"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MaterialDesignColors/2.0.0": {
|
||||
"runtime": {
|
||||
"lib/netcoreapp3.1/MaterialDesignColors.dll": {
|
||||
"assemblyVersion": "2.0.0.2422",
|
||||
"fileVersion": "2.0.0.2422"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MaterialDesignThemes/4.0.0": {
|
||||
"dependencies": {
|
||||
"MaterialDesignColors": "2.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netcoreapp3.1/MaterialDesignThemes.Wpf.dll": {
|
||||
"assemblyVersion": "4.0.0.2422",
|
||||
"fileVersion": "4.0.0.2422"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.NETCore.Platforms/5.0.0": {},
|
||||
"Microsoft.Win32.Registry/5.0.0": {
|
||||
"dependencies": {
|
||||
"System.Security.AccessControl": "5.0.0",
|
||||
"System.Security.Principal.Windows": "5.0.0"
|
||||
}
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents/5.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "5.0.0"
|
||||
}
|
||||
},
|
||||
"NAudio/2.0.0": {
|
||||
"dependencies": {
|
||||
"NAudio.Asio": "2.0.0",
|
||||
"NAudio.Core": "2.0.0",
|
||||
"NAudio.Midi": "2.0.0",
|
||||
"NAudio.Wasapi": "2.0.0",
|
||||
"NAudio.WinForms": "2.0.0",
|
||||
"NAudio.WinMM": "2.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/NAudio.dll": {
|
||||
"assemblyVersion": "2.0.0.0",
|
||||
"fileVersion": "2.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"NAudio.Asio/2.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Win32.Registry": "5.0.0",
|
||||
"NAudio.Core": "2.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/NAudio.Asio.dll": {
|
||||
"assemblyVersion": "2.0.0.0",
|
||||
"fileVersion": "2.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"NAudio.Core/2.0.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/NAudio.Core.dll": {
|
||||
"assemblyVersion": "2.0.0.0",
|
||||
"fileVersion": "2.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"NAudio.Midi/2.0.0": {
|
||||
"dependencies": {
|
||||
"NAudio.Core": "2.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/NAudio.Midi.dll": {
|
||||
"assemblyVersion": "2.0.0.0",
|
||||
"fileVersion": "2.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"NAudio.Wasapi/2.0.0": {
|
||||
"dependencies": {
|
||||
"NAudio.Core": "2.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/NAudio.Wasapi.dll": {
|
||||
"assemblyVersion": "2.0.0.0",
|
||||
"fileVersion": "2.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"NAudio.WinForms/2.0.0": {
|
||||
"dependencies": {
|
||||
"NAudio.WinMM": "2.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netcoreapp3.1/NAudio.WinForms.dll": {
|
||||
"assemblyVersion": "2.0.0.0",
|
||||
"fileVersion": "2.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"NAudio.WinMM/2.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Win32.Registry": "5.0.0",
|
||||
"NAudio.Core": "2.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/NAudio.WinMM.dll": {
|
||||
"assemblyVersion": "2.0.0.0",
|
||||
"fileVersion": "2.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Newtonsoft.Json/12.0.3": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Newtonsoft.Json.dll": {
|
||||
"assemblyVersion": "12.0.0.0",
|
||||
"fileVersion": "12.0.3.23909"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.CodeDom/5.0.0": {},
|
||||
"System.Drawing.Common/5.0.2": {
|
||||
"dependencies": {
|
||||
"Microsoft.Win32.SystemEvents": "5.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netcoreapp3.0/System.Drawing.Common.dll": {
|
||||
"assemblyVersion": "5.0.0.2",
|
||||
"fileVersion": "5.0.421.11614"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": {
|
||||
"rid": "unix",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "5.0.0.2",
|
||||
"fileVersion": "5.0.421.11614"
|
||||
},
|
||||
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "5.0.0.2",
|
||||
"fileVersion": "5.0.421.11614"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Management/5.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "5.0.0",
|
||||
"Microsoft.Win32.Registry": "5.0.0",
|
||||
"System.CodeDom": "5.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Management.dll": {
|
||||
"assemblyVersion": "4.0.0.0",
|
||||
"fileVersion": "5.0.20.51904"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/win/lib/netcoreapp2.0/System.Management.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "4.0.0.0",
|
||||
"fileVersion": "5.0.20.51904"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Security.AccessControl/5.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "5.0.0",
|
||||
"System.Security.Principal.Windows": "5.0.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Principal.Windows/5.0.0": {},
|
||||
"System.Text.Json/5.0.2": {
|
||||
"runtime": {
|
||||
"lib/netcoreapp3.0/System.Text.Json.dll": {
|
||||
"assemblyVersion": "5.0.0.0",
|
||||
"fileVersion": "5.0.521.16609"
|
||||
}
|
||||
}
|
||||
},
|
||||
"DesktopMagicPluginAPI/1.0.0": {
|
||||
"dependencies": {
|
||||
"System.Drawing.Common": "5.0.2"
|
||||
},
|
||||
"runtime": {
|
||||
"DesktopMagicPluginAPI.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"DesktopMagic/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"AlwaysUpToDate/1.0.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-LUr8adUXFo86T3Ta2+U3YWVcn9bmjOCK/0QAPf2GvWLm0fLAfvsVzmZLZXVS5B01t88HAT0Ew2DH6b6M24UWzA==",
|
||||
"path": "alwaysuptodate/1.0.0.2",
|
||||
"hashPath": "alwaysuptodate.1.0.0.2.nupkg.sha512"
|
||||
},
|
||||
"Extended.Wpf.Toolkit/4.1.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-wXyuHE2ut8OIDUgi1dfyX1qVDQClc4ARmM9yfB0MAshudfaWhtXedWR34zSCIN2gu7CPzE3+u9iLvBv5uBxROg==",
|
||||
"path": "extended.wpf.toolkit/4.1.0",
|
||||
"hashPath": "extended.wpf.toolkit.4.1.0.nupkg.sha512"
|
||||
},
|
||||
"Google.Apis/1.51.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-4QL7S1PnDN/VumfzrLOGw8tiFLYRL/oPVQkCuIVltAh/gSPWxLu7UFZeum4S3B/ry7794Wigg53jclLlYX/haQ==",
|
||||
"path": "google.apis/1.51.0",
|
||||
"hashPath": "google.apis.1.51.0.nupkg.sha512"
|
||||
},
|
||||
"Google.Apis.Auth/1.51.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-rwyLkiXev6esCRXq+srUcEb8zWylNg7eyE9zO8GxiQplrn1+Jhn8WlwhyJ/xXM83Mrd7Fi0p/UpnOo+m8NBI2g==",
|
||||
"path": "google.apis.auth/1.51.0",
|
||||
"hashPath": "google.apis.auth.1.51.0.nupkg.sha512"
|
||||
},
|
||||
"Google.Apis.Calendar.v3/1.51.0.2312": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-8iskPPgvvZ3VtGhWIjeP9R5ouQasGMUj66Z5G5VHLfriKIVm+MTqyC6XGYTxjeJhXYU6yRQLnNk8f6fAFYxb2A==",
|
||||
"path": "google.apis.calendar.v3/1.51.0.2312",
|
||||
"hashPath": "google.apis.calendar.v3.1.51.0.2312.nupkg.sha512"
|
||||
},
|
||||
"Google.Apis.Core/1.51.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-2HBwN81SB5DBI/TKbJr6y6u2I5sBlLxUHYUkc26Y4FSFachdDlWISZZreO0AVKdJrHsbmKDhHdqkRjkLSGeiNw==",
|
||||
"path": "google.apis.core/1.51.0",
|
||||
"hashPath": "google.apis.core.1.51.0.nupkg.sha512"
|
||||
},
|
||||
"Hardcodet.NotifyIcon.Wpf/1.1.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-FFEkdRSidMrbMfQVwhCzq6KtSyR1qQojqtiUrkCyjnOOuMf7W3TNQkzFnBBxYxFe7uLk5mz7M38wFh1qdWyfvg==",
|
||||
"path": "hardcodet.notifyicon.wpf/1.1.0",
|
||||
"hashPath": "hardcodet.notifyicon.wpf.1.1.0.nupkg.sha512"
|
||||
},
|
||||
"MaterialDesignColors/2.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-+JoghC3QRK0u9Wul1To1ORjcfTbFTVzFPjJ02H7VREOdNzIIn427e8G9gP9hXu9pm1r2OneLnoCG/lTma5cG2w==",
|
||||
"path": "materialdesigncolors/2.0.0",
|
||||
"hashPath": "materialdesigncolors.2.0.0.nupkg.sha512"
|
||||
},
|
||||
"MaterialDesignThemes/4.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-+n5oWHuRiYL/gUw2XfQHCRZqHtU8KbrdurgU0IcO98Zsyhw4BvggodfXY8veRtbjjmM9EJ/sG2yKBrgPOGX4JQ==",
|
||||
"path": "materialdesignthemes/4.0.0",
|
||||
"hashPath": "materialdesignthemes.4.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.NETCore.Platforms/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
|
||||
"path": "microsoft.netcore.platforms/5.0.0",
|
||||
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Win32.Registry/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
|
||||
"path": "microsoft.win32.registry/5.0.0",
|
||||
"hashPath": "microsoft.win32.registry.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==",
|
||||
"path": "microsoft.win32.systemevents/5.0.0",
|
||||
"hashPath": "microsoft.win32.systemevents.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"NAudio/2.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZjQfWM3jBTpdHWApsbBP3Mb3ZvXZ2eK6MWED9YeuXwbR+Kfz5M5lHdLTVADAqOHyBDqSnvwFsQCAWWRfuGeG3w==",
|
||||
"path": "naudio/2.0.0",
|
||||
"hashPath": "naudio.2.0.0.nupkg.sha512"
|
||||
},
|
||||
"NAudio.Asio/2.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-/Pd51zAS2L3+MK/dJ5VrInz6ggHUie9j1qCXysXL3Vj53p9A2RxjpIZafuyba2ZdeMKaOMOHXdtkUqFdKqVMQg==",
|
||||
"path": "naudio.asio/2.0.0",
|
||||
"hashPath": "naudio.asio.2.0.0.nupkg.sha512"
|
||||
},
|
||||
"NAudio.Core/2.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-knmGOIYbzn9ZGkFcVs5d3zEYvi50jVriyEirVtAHjkcDoo2ziK32bZb7KkFARLD4lhCGkqp6uT0+0fc4JIfQcw==",
|
||||
"path": "naudio.core/2.0.0",
|
||||
"hashPath": "naudio.core.2.0.0.nupkg.sha512"
|
||||
},
|
||||
"NAudio.Midi/2.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-25/wjDvc/SX8jHb/+F6+lzz7FRFiSujl9N6qq1KcFqfBFS6K1KtdclaZz+01B9PErwQUoraGCdruhiad6tYBvQ==",
|
||||
"path": "naudio.midi/2.0.0",
|
||||
"hashPath": "naudio.midi.2.0.0.nupkg.sha512"
|
||||
},
|
||||
"NAudio.Wasapi/2.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-7ES+jfZyOooBp86gql9BZ/OjKFmGfLaSLCtJagtCYiRGxfauHp4hXyeuwxS2mPLBxBGxBo9oGThN6y3QY+/w/w==",
|
||||
"path": "naudio.wasapi/2.0.0",
|
||||
"hashPath": "naudio.wasapi.2.0.0.nupkg.sha512"
|
||||
},
|
||||
"NAudio.WinForms/2.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-j65uncDKEhTh4z1IejmtnNhPBA4y6V9zEGnsLA3mm3JzX2e3flmL5UMadQUdx83UlmtF/8t5ichcmUhSGhrQHg==",
|
||||
"path": "naudio.winforms/2.0.0",
|
||||
"hashPath": "naudio.winforms.2.0.0.nupkg.sha512"
|
||||
},
|
||||
"NAudio.WinMM/2.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Q1trk5d9cdSRJSK/PXceUgpwIH7FivxkiE4nzmk0rl3qSM4ViHcpc2Fe/W1VUz2dHtGwOqOwpgSch7LHv7F48A==",
|
||||
"path": "naudio.winmm/2.0.0",
|
||||
"hashPath": "naudio.winmm.2.0.0.nupkg.sha512"
|
||||
},
|
||||
"Newtonsoft.Json/12.0.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6mgjfnRB4jKMlzHSl+VD+oUc1IebOZabkbyWj2RiTgWwYPPuaK1H97G1sHqGwPlS5npiF5Q0OrxN1wni2n5QWg==",
|
||||
"path": "newtonsoft.json/12.0.3",
|
||||
"hashPath": "newtonsoft.json.12.0.3.nupkg.sha512"
|
||||
},
|
||||
"System.CodeDom/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-JPJArwA1kdj8qDAkY2XGjSWoYnqiM7q/3yRNkt6n28Mnn95MuEGkZXUbPBf7qc3IjwrGY5ttQon7yqHZyQJmOQ==",
|
||||
"path": "system.codedom/5.0.0",
|
||||
"hashPath": "system.codedom.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Drawing.Common/5.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-rvr/M1WPf24ljpvvrVd74+NdjRUJu1bBkspkZcnzSZnmAUQWSvanlQ0k/hVHk+cHufZbZfu7vOh/vYc0q5Uu/A==",
|
||||
"path": "system.drawing.common/5.0.2",
|
||||
"hashPath": "system.drawing.common.5.0.2.nupkg.sha512"
|
||||
},
|
||||
"System.Management/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==",
|
||||
"path": "system.management/5.0.0",
|
||||
"hashPath": "system.management.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Security.AccessControl/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
|
||||
"path": "system.security.accesscontrol/5.0.0",
|
||||
"hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Security.Principal.Windows/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==",
|
||||
"path": "system.security.principal.windows/5.0.0",
|
||||
"hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Json/5.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-I47dVIGiV6SfAyppphxqupertT/5oZkYLDCX6vC3HpOI4ZLjyoKAreUoem2ie6G0RbRuFrlqz/PcTQjfb2DOfQ==",
|
||||
"path": "system.text.json/5.0.2",
|
||||
"hashPath": "system.text.json.5.0.2.nupkg.sha512"
|
||||
},
|
||||
"DesktopMagicPluginAPI/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"additionalProbingPaths": [
|
||||
"C:\\Users\\David\\.dotnet\\store\\|arch|\\|tfm|",
|
||||
"C:\\Users\\David\\.nuget\\packages",
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
|
||||
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net5.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.WindowsDesktop.App",
|
||||
"version": "5.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user