mirror of
https://github.com/chylex/Query.git
synced 2025-04-29 20:34:06 +02:00
59 lines
1.9 KiB
C#
59 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using Base;
|
|
|
|
namespace AppSys.Handlers {
|
|
internal class HandlerApps : IHandler{
|
|
private static readonly string PathSystem = Environment.GetFolderPath(Environment.SpecialFolder.System);
|
|
|
|
private static readonly Dictionary<string, ProcessStartInfo> Mappings = new Dictionary<string, ProcessStartInfo>{
|
|
{ "audio", new ProcessStartInfo{
|
|
FileName = Path.Combine(PathSystem, "control.exe"),
|
|
Arguments = "mmsys.cpl"
|
|
} },
|
|
|
|
{ "programs", new ProcessStartInfo{
|
|
FileName = Path.Combine(PathSystem, "control.exe"),
|
|
Arguments = "appwiz.cpl"
|
|
} },
|
|
|
|
{ "system", new ProcessStartInfo{
|
|
FileName = Path.Combine(PathSystem, "control.exe"),
|
|
Arguments = "sysdm.cpl"
|
|
} },
|
|
|
|
{ "environment", new ProcessStartInfo{
|
|
FileName = Path.Combine(PathSystem, "rundll32.exe"),
|
|
Arguments = "sysdm.cpl,EditEnvironmentVariables"
|
|
} }
|
|
};
|
|
|
|
private static readonly Dictionary<string, string> Substitutions = new Dictionary<string, string>{
|
|
{ "sounds", "audio" },
|
|
{ "apps", "programs" },
|
|
{ "appwiz", "programs" },
|
|
{ "env", "environment" },
|
|
{ "envvars", "environment" },
|
|
{ "vars", "environment" },
|
|
{ "variables", "environment" }
|
|
};
|
|
|
|
public bool Matches(Command cmd){
|
|
return Mappings.ContainsKey(cmd.Text) || Substitutions.ContainsKey(cmd.Text);
|
|
}
|
|
|
|
public string Handle(Command cmd){
|
|
string key;
|
|
|
|
if (!Substitutions.TryGetValue(cmd.Text, out key)){
|
|
key = cmd.Text;
|
|
}
|
|
|
|
using(Process.Start(Mappings[key])){}
|
|
return null;
|
|
}
|
|
}
|
|
}
|