This commit is contained in:
JonatanRek 2024-09-17 21:39:18 +02:00
commit 50c6c9a1de
5 changed files with 103 additions and 14 deletions

View File

@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using System.Windows;
using static System.Text.Json.JsonElement;
namespace FakeDeck.ButtonType
{
class ProcessMacro : Button
{
public static string getButton(string process, string arguments = "", string? icon = null, string? image = null)
{
Dictionary<string, string> parameters = new Dictionary<string, string>() { { "process", process } };
if (!string.IsNullOrEmpty(arguments))
{
parameters.Add("arguments", arguments);
}
if (!string.IsNullOrEmpty(icon) || !string.IsNullOrEmpty(image))
{
process = null;
}
return getButtonHTML(icon, image, process, "button\\ProcessMacro", null, parameters);
}
public static bool invokeAction(string process, string arguments = "")
{
if (!File.ReadAllText("./configuration.yaml").Contains(process))
{
Debug.WriteLine("not known process");
return false;
}
if (!File.ReadAllText("./configuration.yaml").Contains(arguments))
{
Debug.WriteLine("not known arguments");
return false;
}
Process notePad = new Process();
notePad.StartInfo.FileName = process;
notePad.StartInfo.Arguments = arguments;
notePad.Start();
return true;
}
}
}

View File

@ -20,6 +20,7 @@ namespace FakeDeck.Class
AutoUpdater.ParseUpdateInfoEvent += AutoUpdaterOnParseUpdateInfoEvent; AutoUpdater.ParseUpdateInfoEvent += AutoUpdaterOnParseUpdateInfoEvent;
AutoUpdater.Synchronous = true; AutoUpdater.Synchronous = true;
AutoUpdater.ShowRemindLaterButton = false; AutoUpdater.ShowRemindLaterButton = false;
AutoUpdater.ClearAppDirectory = false;
//AutoUpdater.ReportErrors = Debugger.IsAttached; //AutoUpdater.ReportErrors = Debugger.IsAttached;
AutoUpdater.HttpUserAgent = ("FakeDeck-v" + Assembly.GetExecutingAssembly().GetName().Version); AutoUpdater.HttpUserAgent = ("FakeDeck-v" + Assembly.GetExecutingAssembly().GetName().Version);
AutoUpdater.Start("https://api.github.com/repos/GamerClassN7/FakeDeck/releases/latest"); AutoUpdater.Start("https://api.github.com/repos/GamerClassN7/FakeDeck/releases/latest");

View File

@ -14,19 +14,19 @@ namespace FakeDeck.Class
{ {
private static string cachePath = "./cache/"; private static string cachePath = "./cache/";
public static string pageHeader = public static string pageHeader =
"<!DOCTYPE>" + "<!DOCTYPE>" +
"<html lang=\"en\">" + "<html lang=\"en\">" +
" <head>" + " <head>" +
" <title>HttpListener Example</title>" + " <title>HttpListener Example</title>" +
" <meta charset=\"utf-8\">" + " <meta charset=\"utf-8\">" +
" <meta name = \"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=yes\">" + " <meta name = \"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=yes\">" +
" <link href=\"https://yarnpkg.com/en/package/normalize.css\" rel=\"stylesheet\">" + " <link href=\"https://yarnpkg.com/en/package/normalize.css\" rel=\"stylesheet\">" +
" <link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css\" rel=\"stylesheet\">" + " <link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css\" rel=\"stylesheet\">" +
" <link href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css\" rel=\"stylesheet\">" + " <link href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css\" rel=\"stylesheet\">" +
" <link href=\"StaticFiles/style.css\" rel=\"stylesheet\">" + " <link href=\"StaticFiles/style.css\" rel=\"stylesheet\">" +
" </head>" + " </head>" +
" <body>" + " <body>" +
" <div id=\"main\" class=\"d-flex flex-wrap\" style=\"transform-origin: left top;\">"; " <div id=\"main\" class=\"d-flex flex-wrap\" style=\"transform-origin: left top;\">";
public static string pageFooter = public static string pageFooter =
" </div>" + " </div>" +
" <script src=\"StaticFiles/app.js\"></script>" + " <script src=\"StaticFiles/app.js\"></script>" +
@ -161,7 +161,13 @@ namespace FakeDeck.Class
string pageContent = ""; string pageContent = "";
foreach (JsonElement button in selectedPage.GetProperty("buttons").EnumerateArray()) foreach (JsonElement button in selectedPage.GetProperty("buttons").EnumerateArray())
{ {
pageContent += AbstractionHelper.getButtonVisual(button); try
{
pageContent += AbstractionHelper.getButtonVisual(button);
}
catch (Exception ex) {
}
} }
if (Directory.Exists(cachePath)) if (Directory.Exists(cachePath))

View File

@ -156,6 +156,24 @@ pages:
- page: media - page: media
buttons: buttons:
- button: notepad
function: ProcessMacro
parameters:
- name: process
value: "notepad.exe"
- name: image
value: "https://www.club386.com/wp-content/uploads/2021/12/notepad-icon-696x632.jpg"
- button: cmd
function: ProcessMacro
parameters:
- name: process
value: "cmd.exe"
- name: arguments
value: "/C ping google.com -t"
- name: image
value: "https://winaero.com/blog/wp-content/uploads/2019/06/WIndows-Terminal-icon.png"
- button: mute - button: mute
function: MediaMacro function: MediaMacro
parameters: parameters:

View File

@ -124,6 +124,16 @@ Just add desired macros to `configuration.yaml` and start the application, tahn
- name: Key - name: Key
value: spacer value: spacer
``` ```
### Process Macro
```yaml
- button: cmd
function: ProcessMacro
parameters:
- name: process
value: "cmd.exe"
- name: arguments #Optional Proces Arguments
value: "/C ipconfig"
```
### Comon Macro Parameters ### Comon Macro Parameters
```yaml ```yaml
... ...