Process Starting

This commit is contained in:
Václav Španinger 2024-09-17 06:17:43 -07:00
parent 6ab18fdf70
commit 7fb6b4c89c
3 changed files with 83 additions and 14 deletions

View File

@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
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 (!System.IO.File.ReadAllText("./configuration.yaml").Contains(process))
{
Debug.WriteLine("not known process");
return true;
}
Process notePad = new Process();
notePad.StartInfo.FileName = process;
notePad.StartInfo.Arguments = arguments;
notePad.Start();
return true;
}
}
}

View File

@ -160,9 +160,15 @@ namespace FakeDeck.Class
string pageContent = ""; string pageContent = "";
foreach (JsonElement button in selectedPage.GetProperty("buttons").EnumerateArray()) foreach (JsonElement button in selectedPage.GetProperty("buttons").EnumerateArray())
{
try
{ {
pageContent += AbstractionHelper.getButtonVisual(button); pageContent += AbstractionHelper.getButtonVisual(button);
} }
catch (Exception ex) {
}
}
if (Directory.Exists(cachePath)) if (Directory.Exists(cachePath))
Directory.CreateDirectory(cachePath); Directory.CreateDirectory(cachePath);

View File

@ -108,6 +108,22 @@ 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: 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: