diff --git a/Trigger/Tasks/Plugins/Logs/LogCommandLineEvents.cs b/Trigger/Tasks/Plugins/Logs/LogCommandLineEvents.cs new file mode 100644 index 0000000..d9e5d09 --- /dev/null +++ b/Trigger/Tasks/Plugins/Logs/LogCommandLineEvents.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Trigger.Tasks.Plugins +{ + /// + /// Logs all events from command line + /// + class LogCommandLineEvents : TaskPlugin + { + #region Properties + internal Main Main; + internal Log Log; + #endregion + + #region Methods + public override bool Init(Main Main) + { + return Init(Main, new System.Diagnostics.Stopwatch()); + } + public override bool Init(Main Main, System.Diagnostics.Stopwatch swInit) + { + this.Main = Main; + this.Log = Main.Log; + + Main.CommandLineTrigger += new Events.EventPlugin.EventValue(Main_CommandLineTrigger); + + return true; + } + + public override void Dispose() + { + Main.CommandLineTrigger -= new Events.EventPlugin.EventValue(Main_CommandLineTrigger); + } + #endregion + + #region Event handlers + private void Main_CommandLineTrigger(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("Trigger from command line: 0x" + e.Value.ToString("X4"), Trigger.Log.Type.CommandLineEvent); + } + #endregion + } +} diff --git a/Trigger/Tasks/Plugins/Logs/LogDeviceEvents.cs b/Trigger/Tasks/Plugins/Logs/LogDeviceEvents.cs new file mode 100644 index 0000000..811b6c5 --- /dev/null +++ b/Trigger/Tasks/Plugins/Logs/LogDeviceEvents.cs @@ -0,0 +1,93 @@ +using System; +using System.Drawing; +using Microsoft.Win32; +using System.Windows.Forms; +using Trigger.Classes.Device; + +namespace Trigger.Tasks +{ + /// + /// Logs all events from + /// + class LogDeviceEvents : TaskPlugin + { + #region Properties + internal Main Main; + internal Log Log; + #endregion + + #region Methods + public override bool Init(Main Main) + { + return Init(Main, new System.Diagnostics.Stopwatch()); + } + public override bool Init(Main Main, System.Diagnostics.Stopwatch swInit) + { + if (!Main.EventMgr.PluginExists()) + { + this.Log.LogLine("Task \"LogDeviceEvents\" is missing EventPlugin \"Device\"!", Log.Type.Error); + return false; + } + + this.Main = Main; + this.Log = Main.Log; + + swInit.Stop(); + Events.Device deviceEvents = Main.EventMgr.GetPlugin(new object[] {Main}, true); + swInit.Start(); + + deviceEvents.DeviceArrived += new Events.EventPlugin.EventValue(devEvents_DeviceArrived); + deviceEvents.DeviceQueryRemove += new Events.EventPlugin.EventValue(devEvents_DeviceQueryRemove); + deviceEvents.DeviceQueryRemoveFailed += new Events.EventPlugin.EventValue(devEvents_DeviceQueryRemoveFailed); + deviceEvents.DeviceRemoved += new Events.EventPlugin.EventValue(devEvents_DeviceRemoved); + deviceEvents.MediaInserted += new Events.EventPlugin.EventValue(devEvents_MediaInserted); + deviceEvents.NetworkVolumeArrived += new Events.EventPlugin.EventValue(devEvents_NetworkVolumeArrived); + return true; + } + + public override void Dispose() + { + Events.Device devEvents = this.Main.EventMgr.GetPlugin(new object[] {Main}, true); + devEvents.DeviceArrived -= new Events.EventPlugin.EventValue(devEvents_DeviceArrived); + devEvents.DeviceQueryRemove -= new Events.EventPlugin.EventValue(devEvents_DeviceQueryRemove); + devEvents.DeviceQueryRemoveFailed -= new Events.EventPlugin.EventValue(devEvents_DeviceQueryRemoveFailed); + devEvents.DeviceRemoved -= new Events.EventPlugin.EventValue(devEvents_DeviceRemoved); + devEvents.MediaInserted -= new Events.EventPlugin.EventValue(devEvents_MediaInserted); + devEvents.NetworkVolumeArrived -= new Events.EventPlugin.EventValue(devEvents_NetworkVolumeArrived); + } + #endregion + + + #region Event handlers + private void devEvents_DeviceArrived(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("New device arrived: " + e.Value.Model, Trigger.Log.Type.DeviceEvent); + } + + private void devEvents_DeviceQueryRemove(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("Device is queried to be removed: " + e.Value.Model, Trigger.Log.Type.DeviceEvent); + } + + private void devEvents_DeviceQueryRemoveFailed(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("Device could not be removed: " + e.Value.Model, Trigger.Log.Type.DeviceEvent); + } + + private void devEvents_DeviceRemoved(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("A device was removed: " + e.Value.Model, Trigger.Log.Type.DeviceEvent); + } + + private void devEvents_MediaInserted(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("Media inserted in " + e.Value.Model, Trigger.Log.Type.DeviceEvent); + } + + private void devEvents_NetworkVolumeArrived(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("New network volume arrived: " + e.Value.Model, Trigger.Log.Type.DeviceEvent); + } + #endregion + } +} \ No newline at end of file diff --git a/Trigger/Tasks/Plugins/Logs/LogNetworkEvents.cs b/Trigger/Tasks/Plugins/Logs/LogNetworkEvents.cs new file mode 100644 index 0000000..8c45618 --- /dev/null +++ b/Trigger/Tasks/Plugins/Logs/LogNetworkEvents.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.NetworkInformation; +using System.Text; +using System.Windows.Forms; + +namespace Trigger.Tasks +{ + /// + /// Logs all events from + /// + class LogNetworkEvents : TaskPlugin + { + #region Properties + internal Main Main; + internal Log Log; + #endregion + + #region Methods + public override bool Init(Main Main) + { + return Init(Main, new System.Diagnostics.Stopwatch()); + } + public override bool Init(Main Main, System.Diagnostics.Stopwatch swInit) + { + if (!Main.EventMgr.PluginExists()) + { + this.Log.LogLine("Task \"LogNetworkEvents\" is missing EventPlugin \"Network\"!", Log.Type.Error); + return false; + } + + this.Main = Main; + this.Log = Main.Log; + + swInit.Stop(); + Events.Network networkEvents = Main.EventMgr.GetPlugin(); + swInit.Start(); + + networkEvents.NetworkAvailabilityChanged += networkEvents_NetworkAvailabilityChanged; + networkEvents.NetworkInterfaceAdded += networkEvents_NetworkInterfaceAdded; + networkEvents.NetworkInterfaceRemoved += networkEvents_NetworkInterfaceRemoved; + networkEvents.IpAddressChanged += networkEvents_IpAddrChanged; + return true; + } + + public override void Dispose() + { + Events.Network networkEvents = this.Main.EventMgr.GetPlugin(); + + networkEvents.NetworkAvailabilityChanged -= networkEvents_NetworkAvailabilityChanged; + networkEvents.NetworkInterfaceAdded -= networkEvents_NetworkInterfaceAdded; + networkEvents.NetworkInterfaceRemoved -= networkEvents_NetworkInterfaceRemoved; + networkEvents.IpAddressChanged -= networkEvents_IpAddrChanged; + } + #endregion + + + #region Event handlers + private void networkEvents_IpAddrChanged(object sender, Events.EventArgsValues e) + { + this.Log.LogLineDate("IP changed: " + e.OldValue.Name + ":", Log.Type.NetworkEvent); + UnicastIPAddressInformationCollection ipsOld = e.OldValue.GetIPProperties().UnicastAddresses; + UnicastIPAddressInformationCollection ipsNew = e.NewValue.GetIPProperties().UnicastAddresses; + for (int i = 0; i < Math.Max(ipsOld.Count, ipsNew.Count); i++) + { + if (ipsOld.Count > i) + this.Log.LogTextDate(ipsOld[i].Address.ToString().PadRight(40), Log.Type.NetworkEvent); + else + this.Log.LogTextDate(new String(' ', 40), Log.Type.NetworkEvent); + this.Log.LogText(" | ", Log.Type.NetworkEvent); + if (ipsNew.Count > i) + this.Log.LogText(ipsNew[i].Address.ToString(), Log.Type.NetworkEvent); + this.Log.Line(Log.Type.NetworkEvent); + } + } + + private void networkEvents_NetworkInterfaceRemoved(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("Interface removed: " + e.Value.Name + "(" + e.Value.Id + ")", Log.Type.NetworkEvent); + } + + private void networkEvents_NetworkInterfaceAdded(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("Interface added: " + e.Value.Name + "(" + e.Value.Id + ")", Log.Type.NetworkEvent); + } + + private void networkEvents_NetworkAvailabilityChanged(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("Network available: " + e.Value, Log.Type.NetworkEvent); + } + #endregion + } +} \ No newline at end of file diff --git a/Trigger/Tasks/Plugins/Logs/LogPowerEvents.cs b/Trigger/Tasks/Plugins/Logs/LogPowerEvents.cs new file mode 100644 index 0000000..4c55dad --- /dev/null +++ b/Trigger/Tasks/Plugins/Logs/LogPowerEvents.cs @@ -0,0 +1,115 @@ +using System; +using System.Drawing; +using Microsoft.Win32; +using System.Windows.Forms; +using Trigger.Classes.Power; + +namespace Trigger.Tasks +{ + /// + /// Logs all events from + /// + class LogPowerEvents : TaskPlugin + { + #region Properties + internal Main Main; + internal Log Log; + #endregion + + #region Methods + public override bool Init(Main Main) + { + return Init(Main, new System.Diagnostics.Stopwatch()); + } + public override bool Init(Main Main, System.Diagnostics.Stopwatch swInit) + { + if (!Main.EventMgr.PluginExists()) + { + this.Log.LogLine("Task \"LogPowerEvents\" is missing EventPlugin \"Power\"!", Log.Type.Error); + return false; + } + + this.Main = Main; + this.Log = Main.Log; + + swInit.Stop(); + Events.Power pwrEvents = Main.EventMgr.GetPlugin(new object[] {Main}, true); + swInit.Start(); + + pwrEvents.PowerModeChanged += new Events.EventPlugin.EventValue(pwrEvents_PowerModeChanged); + pwrEvents.Suspend += new Events.EventPlugin.Event(pwrEvents_Suspend); + pwrEvents.Resume += new Events.EventPlugin.Event(pwrEvents_Resume); + pwrEvents.PowerLineStatusChanged += new Events.EventPlugin.EventValues(pwrEvents_PowerLineStatusChanged); + pwrEvents.BatteryAvailabilityChanged += new Events.EventPlugin.EventValue(pwrEvents_BatteryAvailabilityChanged); + pwrEvents.BatteryStatusChanged += new Events.EventPlugin.EventValues(pwrEvents_BatteryStatusChanged); + + pwrEvents.PowerSchemeChanged += new Events.EventPlugin.EventValues(pwrEvents_PowerSchemeChanged); + return true; + } + + public override void Dispose() + { + Events.Power pwrEvents = Main.EventMgr.GetPlugin(new object[] {Main}, true); + pwrEvents.PowerModeChanged -= new Events.EventPlugin.EventValue(pwrEvents_PowerModeChanged); + pwrEvents.Suspend -= new Events.EventPlugin.Event(pwrEvents_Suspend); + pwrEvents.Resume -= new Events.EventPlugin.Event(pwrEvents_Resume); + pwrEvents.PowerLineStatusChanged -= new Events.EventPlugin.EventValues(pwrEvents_PowerLineStatusChanged); + pwrEvents.BatteryAvailabilityChanged -= new Events.EventPlugin.EventValue(pwrEvents_BatteryAvailabilityChanged); + pwrEvents.BatteryStatusChanged -= new Events.EventPlugin.EventValues(pwrEvents_BatteryStatusChanged); + + pwrEvents.PowerSchemeChanged -= new Events.EventPlugin.EventValues(pwrEvents_PowerSchemeChanged); + } + #endregion + + + #region Event handlers + private void pwrEvents_PowerModeChanged(object sender, Events.EventArgsValue e) + { + if (e.Value == PowerModes.StatusChange) + this.Log.LogLineDate("The PowerMode changed to: " + e.Value.ToString(), Log.Type.PowerEvent); + } + + private void pwrEvents_Suspend(object sender, EventArgs e) + { + this.Log.LogLineDate("The system is being suspended", Log.Type.PowerEvent); + } + + private void pwrEvents_Resume(object sender, EventArgs e) + { + this.Log.LogLineDate("The system is being resumed", Log.Type.PowerEvent); + } + + private void pwrEvents_PowerLineStatusChanged(object sender, Events.EventArgsValues e) + { + if (e.NewValue == PowerLineStatus.Online) + this.Log.LogLineDate("The computer was connected to the power network", Trigger.Log.Type.PowerEvent); + else + this.Log.LogLineDate("The computer was disconnected from the power network", Trigger.Log.Type.PowerEvent); + } + + private void pwrEvents_BatteryAvailabilityChanged(object sender, Events.EventArgsValue e) + { + if (e.Value.Value == true) + this.Log.LogLineDate("A battery was connected", Trigger.Log.Type.PowerEvent); + else + this.Log.LogLineDate("A battery was disconnected", Trigger.Log.Type.PowerEvent); + } + + private void pwrEvents_BatteryStatusChanged(object sender, Events.EventArgsValues e) + { + this.Log.LogLineDate("The status of the battery changed: " + e.OldValue.ToString() + " -> " + e.NewValue.ToString() + " (" + Status.Power.BatteryLifePercent.ToString() + "%)", Trigger.Log.Type.PowerEvent); + } + + + + + + + + private void pwrEvents_PowerSchemeChanged(object sender, Events.EventArgsValues e) + { + this.Log.LogLineDate("Power scheme changed: " + e.OldValue.Name + " --> " + e.NewValue.Name, Trigger.Log.Type.PowerEvent); + } + #endregion + } +} \ No newline at end of file diff --git a/Trigger/Tasks/Plugins/Logs/LogProcessesEvents.cs b/Trigger/Tasks/Plugins/Logs/LogProcessesEvents.cs new file mode 100644 index 0000000..a2f7e0a --- /dev/null +++ b/Trigger/Tasks/Plugins/Logs/LogProcessesEvents.cs @@ -0,0 +1,65 @@ +using System.Diagnostics; +using Trigger.Events; + +namespace Trigger.Tasks +{ + /// + /// Logs all events from + /// + // TODO: There is bug in here: Eine nicht behandelte Ausnahme des Typs "System.Runtime.InteropServices.InvalidComObjectException" ist in System.Management.dll aufgetreten. Ein COM-Objekt, das vom zugrunde liegenden RCW getrennt wurde, kann nicht verwendet werden. + class LogProcessesEvents : TaskPlugin + { + #region Properties + internal Main Main; + internal Log Log; + #endregion + + #region Methods + public override bool Init(Main Main) + { + return Init(Main, new System.Diagnostics.Stopwatch()); + } + public override bool Init(Main Main, System.Diagnostics.Stopwatch swInit) + { + if (!Main.EventMgr.PluginExists()) + { + this.Log.LogLine("Task \"LogProcessStartedEvents\" is missing EventPlugin \"ProcessStarted\"!", Log.Type.Error); + return false; + } + + this.Main = Main; + this.Log = Main.Log; + + swInit.Stop(); + Events.Processes procEvents = Main.EventMgr.GetPlugin(); + swInit.Start(); + + procEvents.ProcessCreated += new Events.EventPlugin.EventValue(procEvents_ProcessCreated); + procEvents.ProcessExited += new EventPlugin.EventValue(procEvents_ProcessExited); + return true; + } + + public override void Dispose() + { + Events.Processes procEvents = Main.EventMgr.GetPlugin(); + procEvents.ProcessCreated -= new Events.EventPlugin.EventValue(procEvents_ProcessCreated); + procEvents.ProcessExited -= new EventPlugin.EventValue(procEvents_ProcessExited); + } + #endregion + + #region Event handlers + private void procEvents_ProcessCreated(object sender, EventArgsValue e) + { + try { this.Log.LogLineDate("A new process was created: " + e.Value.ProcessName + " (" + e.Value.Id + ")", Trigger.Log.Type.ProcessesEvent); } + catch { this.Log.LogLineDate("A new process was created", Trigger.Log.Type.ProcessesEvent); }; + } + + private void procEvents_ProcessExited(object sender, EventArgsValue e) + { + string exitCode = ""; + try { exitCode = " Code " + e.Value.ExitCode.ToString(); } catch { } + this.Log.LogLineDate("A process has exited: " + e.Value.ProcessName + " (" + e.Value.Id + ")" + exitCode, Trigger.Log.Type.ProcessesEvent); + } + #endregion + } +} \ No newline at end of file diff --git a/Trigger/Tasks/Plugins/Logs/LogScreenEvents.cs b/Trigger/Tasks/Plugins/Logs/LogScreenEvents.cs new file mode 100644 index 0000000..7e08338 --- /dev/null +++ b/Trigger/Tasks/Plugins/Logs/LogScreenEvents.cs @@ -0,0 +1,106 @@ +using System; +using System.Drawing; +using Microsoft.Win32; +using System.Windows.Forms; +using Trigger.Classes.Screen; + +namespace Trigger.Tasks +{ + /// + /// Logs all events from + /// + class LogScreenEvents : TaskPlugin + { + #region Properties + internal Main Main; + internal Log Log; + #endregion + + #region Methods + public override bool Init(Main Main) + { + return Init(Main, new System.Diagnostics.Stopwatch()); + } + public override bool Init(Main Main, System.Diagnostics.Stopwatch swInit) + { + if (!Main.EventMgr.PluginExists()) + { + this.Log.LogLine("Task \"LogScreenEvents\" is missing EventPlugin \"Screen\"!", Log.Type.Error); + return false; + } + + this.Main = Main; + this.Log = Main.Log; + + swInit.Stop(); + Events.Screen screenEvents = Main.EventMgr.GetPlugin(); + swInit.Start(); + + screenEvents.ScreenAdded += new Events.EventPlugin.EventValue(screenEvents_ScreenAdded); + screenEvents.ScreenRemoved += new Events.EventPlugin.EventValue(screenEvents_ScreenRemoved); + screenEvents.ScreenColorDepthChanged += new Events.EventPlugin.EventValues(screenEvents_ScreenColorDepthChanged); + screenEvents.ScreenResolutionChanged += new Events.EventPlugin.EventValues(screenEvents_ScreenResolutionChanged); + screenEvents.PrimaryScreenChanged += new Events.EventPlugin.EventValues(screenEvents_PrimaryScreenChanged); + screenEvents.ScreenLocationChanged += new Events.EventPlugin.EventValues(screenEvents_ScreenLocationChanged); + screenEvents.ScreenOrientationChanged += new Events.EventPlugin.EventValues(screenEvents_ScreenOrientationChanged); + screenEvents.ScreenRefreshRateChanged += new Events.EventPlugin.EventValues(screenEvents_ScreenRefreshRateChanged); + return true; + } + + public override void Dispose() + { + Events.Screen screenEvents = Main.EventMgr.GetPlugin(); + screenEvents.ScreenAdded -= new Events.EventPlugin.EventValue(screenEvents_ScreenAdded); + screenEvents.ScreenRemoved -= new Events.EventPlugin.EventValue(screenEvents_ScreenRemoved); + screenEvents.ScreenColorDepthChanged -= new Events.EventPlugin.EventValues(screenEvents_ScreenColorDepthChanged); + screenEvents.ScreenResolutionChanged -= new Events.EventPlugin.EventValues(screenEvents_ScreenResolutionChanged); + screenEvents.PrimaryScreenChanged -= new Events.EventPlugin.EventValues(screenEvents_PrimaryScreenChanged); + screenEvents.ScreenLocationChanged -= new Events.EventPlugin.EventValues(screenEvents_ScreenLocationChanged); + screenEvents.ScreenOrientationChanged -= new Events.EventPlugin.EventValues(screenEvents_ScreenOrientationChanged); + screenEvents.ScreenRefreshRateChanged -= new Events.EventPlugin.EventValues(screenEvents_ScreenRefreshRateChanged); + } + #endregion + + #region Event handlers + void screenEvents_ScreenAdded(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("The screen \"" + e.Value.Name + "\" was added (" + e.Value.Bounds.Width + "x" + e.Value.Bounds.Height + " " + e.Value.BitsPerPixel + "bit)", Log.Type.ScreenEvent); + } + + void screenEvents_ScreenRemoved(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("The screen \"" + e.Value.Name + "\" was removed", Log.Type.ScreenEvent); + } + + void screenEvents_ScreenColorDepthChanged(object sender, Events.EventArgsValues e) + { + this.Log.LogLineDate("The screen color depth of \"" + e.NewValue.Name + "\" has changed: " + e.OldValue.BitsPerPixel + "bit -> " + e.NewValue.BitsPerPixel + "bit", Log.Type.ScreenEvent); + } + + void screenEvents_ScreenResolutionChanged(object sender, Events.EventArgsValues e) + { + this.Log.LogLineDate("The resolution of \"" + e.NewValue.Name + "\" has changed: " + e.OldValue.Bounds.Width + "x" + e.OldValue.Bounds.Height + " -> " + e.NewValue.Bounds.Width + "x" + e.NewValue.Bounds.Height, Log.Type.ScreenEvent); + } + + void screenEvents_PrimaryScreenChanged(object sender, Events.EventArgsValues e) + { + this.Log.LogLineDate("The primary screen is not \"" + e.OldValue.Name + "\" anymore but now \"" + e.NewValue.Name + "\"", Log.Type.ScreenEvent); + } + + void screenEvents_ScreenLocationChanged(object sender, Events.EventArgsValues e) + { + this.Log.LogLineDate("The Location of \"" + e.NewValue.Name + "\" has changed: " + e.OldValue.Bounds.X + "|" + e.OldValue.Bounds.Y + " -> " + e.NewValue.Bounds.X + "|" + e.NewValue.Bounds.Y, Log.Type.ScreenEvent); + } + + void screenEvents_ScreenOrientationChanged(object sender, Events.EventArgsValues e) + { + this.Log.LogLineDate("The orientation of \"" + e.NewValue.Name + "\" has changed: " + e.OldValue.Orientation + " -> " + e.NewValue.Orientation, Log.Type.ScreenEvent); + } + + void screenEvents_ScreenRefreshRateChanged(object sender, Events.EventArgsValues e) + { + this.Log.LogLineDate("The refresh rate of \"" + e.NewValue.Name + "\" has changed: " + e.OldValue.Frequency + "Hz -> " + e.NewValue.Frequency + "Hz", Log.Type.ScreenEvent); + } + #endregion + } +} \ No newline at end of file diff --git a/Trigger/Tasks/Plugins/Logs/LogSystemEvents.cs b/Trigger/Tasks/Plugins/Logs/LogSystemEvents.cs new file mode 100644 index 0000000..36e8e80 --- /dev/null +++ b/Trigger/Tasks/Plugins/Logs/LogSystemEvents.cs @@ -0,0 +1,160 @@ +using System; +using System.Drawing; +using Microsoft.Win32; +using System.Windows.Forms; + +namespace Trigger.Tasks +{ + /// + /// Logs all events from + /// + class LogSystemEvents : TaskPlugin + { + #region Properties + internal Main Main; + internal Log Log; + #endregion + + #region Methods + public override bool Init(Main Main) + { + return Init(Main, new System.Diagnostics.Stopwatch()); + } + public override bool Init(Main Main, System.Diagnostics.Stopwatch swInit) + { + if (!Main.EventMgr.PluginExists()) + { + this.Log.LogLine("Task \"LogSystemEvents\" is missing EventPlugin \"System\"!", Log.Type.Error); + return false; + } + + this.Main = Main; + this.Log = Main.Log; + + swInit.Stop(); + Events.System sysEvents = Main.EventMgr.GetPlugin(); + swInit.Start(); + + sysEvents.InstalledFontsChanged += new Events.EventPlugin.Event(sysEvents_InstalledFontsChanged); + sysEvents.FontAdded += new Events.EventPlugin.EventValue(sysEvents_FontAdded); + sysEvents.FontRemoved += new Events.EventPlugin.EventValue(sysEvents_FontRemoved); + + sysEvents.Logoff += new Events.EventPlugin.Event(sysEvents_Logoff); + sysEvents.Shutdown += new Events.EventPlugin.Event(sysEvents_Shutdown); + + sysEvents.ConsoleConnect += new Events.EventPlugin.Event(sysEvents_ConsoleConnect); + sysEvents.ConsoleDisconnect += new Events.EventPlugin.Event(sysEvents_ConsoleDisconnect); + sysEvents.RemoteConnect += new Events.EventPlugin.Event(sysEvents_RemoteConnect); + sysEvents.RemoteDisconnect += new Events.EventPlugin.Event(sysEvents_RemoteDisconnect); + sysEvents.SessionLock += new Events.EventPlugin.Event(sysEvents_SessionLock); + sysEvents.SessionLogoff += new Events.EventPlugin.Event(sysEvents_SessionLogoff); + sysEvents.SessionLogon += new Events.EventPlugin.Event(sysEvents_SessionLogon); + sysEvents.SessionRemoteControl += new Events.EventPlugin.Event(sysEvents_SessionRemoteControl); + sysEvents.SessionUnlock += new Events.EventPlugin.Event(sysEvents_SessionUnlock); + + return true; + } + + public override void Dispose() + { + Events.System sysEvents = Main.EventMgr.GetPlugin(); + + sysEvents.InstalledFontsChanged -= new Events.EventPlugin.Event(sysEvents_InstalledFontsChanged); + sysEvents.FontAdded -= new Events.EventPlugin.EventValue(sysEvents_FontAdded); + sysEvents.FontRemoved -= new Events.EventPlugin.EventValue(sysEvents_FontRemoved); + + sysEvents.Logoff -= new Events.EventPlugin.Event(sysEvents_Logoff); + sysEvents.Shutdown -= new Events.EventPlugin.Event(sysEvents_Shutdown); + + sysEvents.ConsoleConnect -= new Events.EventPlugin.Event(sysEvents_ConsoleConnect); + sysEvents.ConsoleDisconnect -= new Events.EventPlugin.Event(sysEvents_ConsoleDisconnect); + sysEvents.RemoteConnect -= new Events.EventPlugin.Event(sysEvents_RemoteConnect); + sysEvents.RemoteDisconnect -= new Events.EventPlugin.Event(sysEvents_RemoteDisconnect); + sysEvents.SessionLock -= new Events.EventPlugin.Event(sysEvents_SessionLock); + sysEvents.SessionLogoff -= new Events.EventPlugin.Event(sysEvents_SessionLogoff); + sysEvents.SessionLogon -= new Events.EventPlugin.Event(sysEvents_SessionLogon); + sysEvents.SessionRemoteControl -= new Events.EventPlugin.Event(sysEvents_SessionRemoteControl); + sysEvents.SessionUnlock -= new Events.EventPlugin.Event(sysEvents_SessionUnlock); + } + #endregion + + #region Event handlers + void sysEvents_InstalledFontsChanged(object sender, EventArgs e) + { + this.Log.LogLineDate("Tthe user added (a) font(s) to or removes (a) font(s) from the system", Log.Type.SystemEvent); + } + + void sysEvents_FontAdded(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("The Font \"" + e.Value.Name + "\" was installed", Log.Type.SystemEvent); + } + + void sysEvents_FontRemoved(object sender, Events.EventArgsValue e) + { + this.Log.LogLineDate("The Font \"" + e.Value.Name + "\" was removed", Log.Type.SystemEvent); + } + + + + + void sysEvents_Logoff(object sender, EventArgs e) + { + this.Log.LogLineDate("The user is trying to log off", Log.Type.SystemEvent); + } + + void sysEvents_Shutdown(object sender, EventArgs e) + { + this.Log.LogLineDate("The user is trying to shutdown the system", Log.Type.SystemEvent); + } + + + + + + void sysEvents_ConsoleConnect(object sender, EventArgs e) + { + this.Log.LogLineDate("A session has been connected from the console", Log.Type.SystemEvent); + } + + void sysEvents_ConsoleDisconnect(object sender, EventArgs e) + { + this.Log.LogLineDate("A session has been disconnected from the console", Log.Type.SystemEvent); + } + + void sysEvents_RemoteConnect(object sender, EventArgs e) + { + this.Log.LogLineDate("A session has been connected from a remote connection", Log.Type.SystemEvent); + } + + void sysEvents_RemoteDisconnect(object sender, EventArgs e) + { + this.Log.LogLineDate("A session has been disconnected from a remote connection", Log.Type.SystemEvent); + } + + void sysEvents_SessionLock(object sender, EventArgs e) + { + this.Log.LogLineDate("A session has been locked", Log.Type.SystemEvent); + } + + void sysEvents_SessionLogoff(object sender, EventArgs e) + { + this.Log.LogLineDate("A user has logged off from a session", Log.Type.SystemEvent); + } + + void sysEvents_SessionLogon(object sender, EventArgs e) + { + this.Log.LogLineDate("A user has logged on to a session", Log.Type.SystemEvent); + } + + void sysEvents_SessionRemoteControl(object sender, EventArgs e) + { + this.Log.LogLineDate("A session has changed its status to or from remote controlled mode", Log.Type.SystemEvent); + } + + void sysEvents_SessionUnlock(object sender, EventArgs e) + { + this.Log.LogLineDate("A session has been unlocked", Log.Type.SystemEvent); + } + #endregion + } +} \ No newline at end of file diff --git a/Trigger/Tasks/Plugins/OnHibernate.cs b/Trigger/Tasks/Plugins/OnHibernate.cs index 8832c8a..04f1ab4 100644 --- a/Trigger/Tasks/Plugins/OnHibernate.cs +++ b/Trigger/Tasks/Plugins/OnHibernate.cs @@ -9,11 +9,11 @@ namespace Trigger.Tasks.Plugins class OnHibernate : TaskPlugin { #region Properties - internal const string PathKeePass = @"P:\Program Files (x86)\KeePass\KeePass.exe"; - internal const string PathThunderbird = @"P:\Programme\Mozilla Thunderbird\thunderbird.exe"; - internal const string PathFirefox = @"P:\Program Files (x86)\Mozilla Firefox\firefox.exe"; - internal const string PathTrueCrypt = @"P:\Programme\TrueCrypt\TrueCrypt.exe"; - internal const string PathTrueCryptContainer = @"Z:\Sonstiges\proxy.pac"; + internal const string PathKeePass = @"C:\Program Files (x86)\KeePass 2\KeePass.exe"; + internal const string PathThunderbird = @"C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"; + internal const string PathFirefox = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"; + internal const string PathTrueCrypt = @"C:\Program Files\TrueCrypt\TrueCrypt.exe"; + //internal const string PathTrueCryptContainer = @"Z:\Sonstiges\proxy.pac"; internal Main Main; internal Log Log; @@ -92,8 +92,9 @@ namespace Trigger.Tasks.Plugins } - Process.Start(PathTrueCrypt, "/d /f /s /q"); // force dismount - this.Log.LogLineDate("--> TrueCrypt volumes dismounted", Trigger.Log.Type.Action); + Process tc = Process.Start(PathTrueCrypt, "/d /f /s /q"); // force dismount + tc.WaitForExit(); + this.Log.LogLineDate("--> TrueCrypt volumes dismounted: " + tc.ExitCode, Trigger.Log.Type.Action); } private void sysEvent_Resume(object sender, EventArgs e)