private void TraceMessage(TraceProvider etwTraceProvider, uint traceLevel, string format, params object[] parameters) { if (etwTraceProvider != null && etwTraceProvider.IsEnabled) { if (parameters == null) { etwTraceProvider.TraceMessage(traceLevel, format); } else { switch (parameters.Length) { case 0: etwTraceProvider.TraceMessage(traceLevel, format); return; case 1: etwTraceProvider.TraceMessage(traceLevel, format, parameters[0]); return; case 2: etwTraceProvider.TraceMessage(traceLevel, format, parameters[0], parameters[1]); return; case 3: etwTraceProvider.TraceMessage(traceLevel, format, parameters[0], parameters[1], parameters[2]); return; case 4: etwTraceProvider.TraceMessage(traceLevel, format, parameters[0], parameters[1], parameters[2], parameters[3]); return; case 5: etwTraceProvider.TraceMessage(traceLevel, format, parameters[0], parameters[1], parameters[2], parameters[3], parameters[4]); return; case 6: etwTraceProvider.TraceMessage(traceLevel, format, parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5]); return; case 7: etwTraceProvider.TraceMessage(traceLevel, format, parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5], parameters[6]); return; case 8: etwTraceProvider.TraceMessage(traceLevel, format, parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5], parameters[6], parameters[7]); return; default: throw new ArgumentOutOfRangeException("parameters", parameters.Length, String.Format(CultureInfo.InvariantCulture, ExceptionMessages.ParameterListTooLong, 8)); } } } }
//Load all the processes on the given machine private void LoadProcesses() { tmrWatchDog.Enabled = false; lstPcsRun.Items.Clear(); colProcesses.Clear(); colProcesses = new System.Collections.Hashtable(); try { //Use the Static: GetProcesses to have the array of currently running processes. Process[] arrProcess = Process.GetProcesses(strMachineName); foreach (Process tmpPcs in arrProcess) { //Assign ProcessExited event to each process in the list tmpPcs.Exited += new EventHandler(ProcessExited); if (!colProcesses.Contains(tmpPcs.Id.ToString())) { MyTraceProvider.TraceMessage((uint)TraceFlags.Info, "[{0}]Loading process {1} ID: {2}", strMachineName, tmpPcs.ProcessName, tmpPcs.Id.ToString()); /* Instrumentation */ lstPcsRun.Items.Add(tmpPcs.ProcessName + " ID: " + tmpPcs.Id.ToString()); colProcesses.Add(tmpPcs.Id.ToString(), tmpPcs); } } } catch { MessageBox.Show("Cannot read processes on: " + strMachineName); } //Enable the RaisingEvents for each process foreach (Process tmpPcs in colProcesses.Values) { try { tmpPcs.EnableRaisingEvents = true; } catch { Console.WriteLine("Couldn't Set Option"); } } tmrWatchDog.Enabled = true; }
// // This method shows how to use WinTraceProvider.TraceMessage() // static void DebugTracingSample() { //Create an instance of WinTraceProvider and provide the GUID for the executable //of which this class will be a part. TraceProvider MyProvider = new TraceProvider("SimpleExample App", new Guid("{8C8AC55E-834E-49cb-B993-75B69FBF6D97}")); string frmtstr = "Hello {0}"; string frmtstr2 = "Arg0 = {0} Arg1 = {1}"; string frmtstr3 = "Arg0 ={0} Arg1 = {1} Arg2 = {2}"; bool bool_v = false; byte byte_v = (byte)99; sbyte sbyte_v = (sbyte)-114; short short_v = (short)-54; ushort ushort_v = (ushort)5000; int int_v = -654; uint uint_v = (uint)12345; long long_v = (long)-98765; ulong ulong_v = (ulong)1234567; string string_v = "MS World!!!!"; char char_v = 'G'; decimal decimal_v = (decimal)200.876543243213D; object decimal_obj = decimal_v; double double_v = (double)3.00; float float_v = 2.00F; long tel_no = 4254944885; /** TraceMessages for all the types that are currently supported **/ MyProvider.TraceMessage((uint)TraceFlags.Info, frmtstr, bool_v); MyProvider.TraceMessage((uint)TraceFlags.Info, frmtstr, byte_v); MyProvider.TraceMessage(1, frmtstr, sbyte_v); MyProvider.TraceMessage(1, frmtstr, short_v); MyProvider.TraceMessage(1, frmtstr, ushort_v); MyProvider.TraceMessage(1, frmtstr, int_v); MyProvider.TraceMessage(1, frmtstr, uint_v); MyProvider.TraceMessage(1, frmtstr, long_v); MyProvider.TraceMessage(1, frmtstr, ulong_v); MyProvider.TraceMessage(1, frmtstr, float_v); MyProvider.TraceMessage(1, frmtstr, double_v); MyProvider.TraceMessage(1, frmtstr, decimal_v); MyProvider.TraceMessage(1, frmtstr, char_v); MyProvider.TraceMessage(1, frmtstr, string_v); MyProvider.TraceMessage(1, frmtstr2, uint_v, byte_v); MyProvider.TraceMessage(1, frmtstr3, decimal_v, float_v, long_v); /** Composite formatting **/ MyProvider.TraceMessage(1, "Composite formatting of a long {0: (###)###-####}", tel_no); MyProvider.TraceMessage(1, "Composite formatting of a string: Hello |{0,30}|", string_v); MyProvider.TraceMessage(1, frmtstr3, decimal_v, null, string_v); }