public static void ExecuteAction(string action, string line, string parameter, string assistantParam) { int?actionNumber = null; Actions actionExecution = new Actions(); switch (action.ToLower()) { case "shutdown": //Shuts down the computer actionExecution.Shutdown(parameter); break; case "restart": //Restart the computer actionExecution.Restart(parameter); break; case "sleep": //Puts computer to sleep actionExecution.Sleep(parameter); break; case "hibernate": //Hibernates computer actionNumber = 12; actionExecution.Hibernate(parameter); break; case "logout": //Logs out of the current user actionExecution.Logout(parameter); break; case "lock": //Lock computer actionExecution.Lock(parameter); break; case "mute": //Mutes windows //Parameter optional (true/false) actionExecution.Mute(parameter); break; case "set_volume": //Sets volume to a specific percent //Requires parameter (percent, int) if (RequireParameter(parameter)) { actionExecution.SetVolume(parameter); } break; case "music": if (RequireParameter(parameter)) { switch (parameter) { case "previous": case "previousx2": actionNumber = 8; break; case "next": actionNumber = 10; break; case "play_pause": actionNumber = 9; break; } actionExecution.Music(parameter); } break; case "open": if (RequireParameter(parameter)) { actionExecution.Open(parameter); } break; case "open_all": if (RequireParameter(parameter)) { actionExecution.OpenAll(parameter); } break; case "die": //Exit ACC actionExecution.Die(parameter); break; case "monitors_off": actionExecution.MonitorsOff(parameter); break; /*case "keypress": * if (RequireParameter(parameter)) { * if (parameter.Length > 1) { * if (!MainProgram.testingAction) { * successMessage = "Pressed \"" + parameter + "\""; * PressKey((char)parameter[0]); * } else { * successMessage = "Simulated press of \"" + parameter + "\""; * } * } else { * MainProgram.DoDebug("ERROR: Parameter can only be one character long"); * MainProgram.errorMessage = "(Keypress) Parameter can only be one character long"; * } * } * break;*/ case "write_out": if (RequireParameter(parameter)) { actionExecution.WriteOut(parameter, line); } break; /*case "key_shortcut": //TODO - version 1.3(?) * //Currently just keeps holding CTRL down, f*****g everything up * //Do "testing" check * if (RequireParameter(parameter)) { * parameter = parameter.Replace("ctrl", "%"); * * /*foreach (char c in parameter) { * if (c == '%') { * keybd_event(VK_RCONTROL, 0, KEYEVENTF_EXTENTEDKEY, 0); * keybd_event(VK_RCONTROL, 0, KEYEVENTF_KEYUP, 0); * } else { * PressKey(c); * } * }*/ /*} * PressKeys(); * break;*/ case "create_file": if (RequireParameter(parameter)) { actionExecution.CreateFile(parameter); } break; case "delete_file": if (RequireParameter(parameter)) { actionExecution.DeleteFile(parameter); } break; case "append_text": if (RequireParameter(parameter)) { actionExecution.AppendText(parameter); } break; case "message_box": if (RequireParameter(parameter)) { actionExecution.DoMessageBox(parameter); } break; default: //Unknown action MainProgram.DoDebug("ERROR: Unknown action \"" + action + "\""); MainProgram.errorMessage = "Unknown action \"" + action + "\""; break; } successMessage = actionExecution.successMessage; lastActionWasFatal = actionExecution.wasFatal; actionExecution.wasFatal = false; if (successMessage != "") { if (actionNumber != null) { //Has specified number MainProgram.AnalyticsAddCount(null, (int)actionNumber, assistantParam); } else { //YOLO MainProgram.AnalyticsAddCount(action, null, assistantParam); } MainProgram.DoDebug("\nSUCCESS: " + successMessage + "\n"); } if (MainProgram.testingAction) { MainProgram.testActionWindow.ActionExecuted(successMessage, MainProgram.errorMessage, action, parameter, line); } successMessage = ""; }