namespace WindowsApplication1 { using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; /// /// Summary description for MainForm. /// public class MainForm : System.Windows.Forms.Form { /// /// Required designer variable. /// private System.ComponentModel.Container components=null; //The "Start a Process" button private System.Windows.Forms.Button btnProcess; //used to select and start a process private System.Windows.Forms.OpenFileDialog openFile; private System.Windows.Forms.Label label9; private System.Windows.Forms.Label label8; //Processes info listBox private System.Windows.Forms.ListBox lstPcs; //Running processes listBox private System.Windows.Forms.ListBox lstPcsRun; //Paused drivers listBox private System.Windows.Forms.ListBox lstDrvPaused; private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label5; //Stopped drivers list private System.Windows.Forms.ListBox lstDrvStopped; //Running drivers list private System.Windows.Forms.ListBox lstDrvRun; //Close app. button private System.Windows.Forms.Button cmdClose; //Load data button private System.Windows.Forms.Button cmdLoadData; private System.Windows.Forms.TextBox txtMachineName; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label3; //Stopped services button private System.Windows.Forms.ListBox lstSrvStopped; private System.Windows.Forms.Label label2; //Paused services List private System.Windows.Forms.ListBox lstSrvPaused; private System.Windows.Forms.Label label1; //Running services list private System.Windows.Forms.ListBox lstSrvRun; private System.Windows.Forms.TabPage tabProcess; private System.Windows.Forms.TabPage tabDrivers; private System.Windows.Forms.TabPage tabServices; private System.Windows.Forms.TabControl tabControl1; //User classes : // ServiceControllerManager is in charge of the System Services management using the ServiceController component private ServiceControllerManager objSrvCtrlMgr=new ServiceControllerManager(); //DriverControllerManager manage the System drivers via the ServiceController component private DriverControllerManager objDrvCtrlMgr = new DriverControllerManager(); //ProcessControllerManager is destined to the control of the system Processes via the Process component private ProcessControllerManager objPcsCrtlMgr = new ProcessControllerManager(); public MainForm() { InitializeComponent(); } /// /// Clean up any resources being used. /// protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.label8 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.tabDrivers = new System.Windows.Forms.TabPage(); this.lstDrvPaused = new System.Windows.Forms.ListBox(); this.lstDrvStopped = new System.Windows.Forms.ListBox(); this.lstDrvRun = new System.Windows.Forms.ListBox(); this.lstSrvStopped = new System.Windows.Forms.ListBox(); this.lstSrvPaused = new System.Windows.Forms.ListBox(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabServices = new System.Windows.Forms.TabPage(); this.lstSrvRun = new System.Windows.Forms.ListBox(); this.tabProcess = new System.Windows.Forms.TabPage(); this.lstPcs = new System.Windows.Forms.ListBox(); this.lstPcsRun = new System.Windows.Forms.ListBox(); this.cmdLoadData = new System.Windows.Forms.Button(); this.openFile = new System.Windows.Forms.OpenFileDialog(); this.cmdClose = new System.Windows.Forms.Button(); this.btnProcess = new System.Windows.Forms.Button(); this.txtMachineName = new System.Windows.Forms.TextBox(); this.tabDrivers.SuspendLayout(); this.tabControl1.SuspendLayout(); this.tabServices.SuspendLayout(); this.tabProcess.SuspendLayout(); this.SuspendLayout(); // // label8 // this.label8.Location = new System.Drawing.Point(24, 8); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(128, 16); this.label8.TabIndex = 2; this.label8.Text = "Running Process"; // // label9 // this.label9.Location = new System.Drawing.Point(264, 8); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(128, 16); this.label9.TabIndex = 3; this.label9.Text = "Process Properties"; // // label4 // this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.label4.Location = new System.Drawing.Point(8, 416); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(136, 16); this.label4.TabIndex = 1; this.label4.Text = "Machine Name"; // // label5 // this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.label5.Location = new System.Drawing.Point(16, 128); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(152, 16); this.label5.TabIndex = 2; this.label5.Text = "Stopped Drivers"; // // label6 // this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.label6.Location = new System.Drawing.Point(16, 6); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(144, 16); this.label6.TabIndex = 3; this.label6.Text = "Running Drivers"; // // label7 // this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.label7.Location = new System.Drawing.Point(16, 256); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(152, 16); this.label7.TabIndex = 4; this.label7.Text = "Paused Drivers"; // // label1 // this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.label1.Location = new System.Drawing.Point(24, 16); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(224, 16); this.label1.TabIndex = 1; this.label1.Text = "Running Services"; // // label2 // this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.label2.Location = new System.Drawing.Point(20, 241); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(232, 16); this.label2.TabIndex = 3; this.label2.Text = "Paused Services"; // // label3 // this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.label3.Location = new System.Drawing.Point(21, 128); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(177, 16); this.label3.TabIndex = 5; this.label3.Text = "Stopped Services"; // // tabDrivers // this.tabDrivers.Controls.AddRange(new System.Windows.Forms.Control[] { this.lstDrvPaused, this.label7, this.label6, this.label5, this.lstDrvStopped, this.lstDrvRun}); this.tabDrivers.Location = new System.Drawing.Point(4, 22); this.tabDrivers.Name = "tabDrivers"; this.tabDrivers.Size = new System.Drawing.Size(453, 373); this.tabDrivers.TabIndex = 1; this.tabDrivers.Text = "Drivers"; // // lstDrvPaused // this.lstDrvPaused.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.lstDrvPaused.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.lstDrvPaused.Location = new System.Drawing.Point(16, 280); this.lstDrvPaused.Name = "lstDrvPaused"; this.lstDrvPaused.Size = new System.Drawing.Size(424, 82); this.lstDrvPaused.TabIndex = 5; // // lstDrvStopped // this.lstDrvStopped.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.lstDrvStopped.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.lstDrvStopped.Location = new System.Drawing.Point(16, 152); this.lstDrvStopped.Name = "lstDrvStopped"; this.lstDrvStopped.Size = new System.Drawing.Size(424, 95); this.lstDrvStopped.TabIndex = 1; // // lstDrvRun // this.lstDrvRun.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.lstDrvRun.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.lstDrvRun.Location = new System.Drawing.Point(16, 26); this.lstDrvRun.Name = "lstDrvRun"; this.lstDrvRun.Size = new System.Drawing.Size(424, 95); this.lstDrvRun.TabIndex = 0; // // lstSrvStopped // this.lstSrvStopped.Anchor = System.Windows.Forms.AnchorStyles.None; this.lstSrvStopped.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.lstSrvStopped.Location = new System.Drawing.Point(18, 152); this.lstSrvStopped.Name = "lstSrvStopped"; this.lstSrvStopped.Size = new System.Drawing.Size(416, 82); this.lstSrvStopped.TabIndex = 4; // // lstSrvPaused // this.lstSrvPaused.Anchor = System.Windows.Forms.AnchorStyles.None; this.lstSrvPaused.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.lstSrvPaused.Location = new System.Drawing.Point(16, 272); this.lstSrvPaused.Name = "lstSrvPaused"; this.lstSrvPaused.Size = new System.Drawing.Size(416, 95); this.lstSrvPaused.TabIndex = 2; // // tabControl1 // this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.tabControl1.Controls.AddRange(new System.Windows.Forms.Control[] { this.tabServices, this.tabDrivers, this.tabProcess}); this.tabControl1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.tabControl1.Location = new System.Drawing.Point(0, 9); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; this.tabControl1.Size = new System.Drawing.Size(461, 399); this.tabControl1.TabIndex = 0; this.tabControl1.Text = "tabControl1"; // // tabServices // this.tabServices.Controls.AddRange(new System.Windows.Forms.Control[] { this.label3, this.lstSrvStopped, this.label2, this.lstSrvPaused, this.label1, this.lstSrvRun}); this.tabServices.Location = new System.Drawing.Point(4, 22); this.tabServices.Name = "tabServices"; this.tabServices.Size = new System.Drawing.Size(453, 373); this.tabServices.TabIndex = 0; this.tabServices.Text = "Services"; // // lstSrvRun // this.lstSrvRun.Anchor = System.Windows.Forms.AnchorStyles.None; this.lstSrvRun.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.lstSrvRun.Location = new System.Drawing.Point(24, 40); this.lstSrvRun.Name = "lstSrvRun"; this.lstSrvRun.Size = new System.Drawing.Size(416, 82); this.lstSrvRun.TabIndex = 0; // // tabProcess // this.tabProcess.Controls.AddRange(new System.Windows.Forms.Control[] { this.label9, this.label8, this.lstPcs, this.lstPcsRun}); this.tabProcess.Location = new System.Drawing.Point(4, 22); this.tabProcess.Name = "tabProcess"; this.tabProcess.Size = new System.Drawing.Size(453, 373); this.tabProcess.TabIndex = 2; this.tabProcess.Text = "Process"; // // lstPcs // this.lstPcs.Anchor = System.Windows.Forms.AnchorStyles.None; this.lstPcs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.lstPcs.Location = new System.Drawing.Point(224, 36); this.lstPcs.MultiColumn = true; this.lstPcs.Name = "lstPcs"; this.lstPcs.ScrollAlwaysVisible = true; this.lstPcs.Size = new System.Drawing.Size(224, 329); this.lstPcs.TabIndex = 1; // // lstPcsRun // this.lstPcsRun.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.lstPcsRun.Location = new System.Drawing.Point(8, 36); this.lstPcsRun.Name = "lstPcsRun"; this.lstPcsRun.Size = new System.Drawing.Size(200, 329); this.lstPcsRun.Sorted = true; this.lstPcsRun.TabIndex = 0; // // cmdLoadData // this.cmdLoadData.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.cmdLoadData.Location = new System.Drawing.Point(16, 448); this.cmdLoadData.Name = "cmdLoadData"; this.cmdLoadData.Size = new System.Drawing.Size(120, 24); this.cmdLoadData.TabIndex = 3; this.cmdLoadData.Text = "&Load Data"; this.cmdLoadData.Click += new System.EventHandler(this.cmdLoadData_Click); // // openFile // this.openFile.FileOk += new System.ComponentModel.CancelEventHandler(this.openFile_FileOk); // // cmdClose // this.cmdClose.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.cmdClose.Location = new System.Drawing.Point(296, 448); this.cmdClose.Name = "cmdClose"; this.cmdClose.Size = new System.Drawing.Size(136, 24); this.cmdClose.TabIndex = 4; this.cmdClose.Text = "&Close Application"; this.cmdClose.Click += new System.EventHandler(this.cmdClose_Click); // // btnProcess // this.btnProcess.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.btnProcess.Location = new System.Drawing.Point(152, 448); this.btnProcess.Name = "btnProcess"; this.btnProcess.Size = new System.Drawing.Size(128, 24); this.btnProcess.TabIndex = 5; this.btnProcess.Text = "&Start a Process"; this.btnProcess.Click += new System.EventHandler(this.btnProcess_Click); // // txtMachineName // this.txtMachineName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.txtMachineName.Location = new System.Drawing.Point(152, 416); this.txtMachineName.Name = "txtMachineName"; this.txtMachineName.Size = new System.Drawing.Size(280, 20); this.txtMachineName.TabIndex = 2; this.txtMachineName.Text = ""; // // MainForm // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(464, 485); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.btnProcess, this.cmdClose, this.cmdLoadData, this.txtMachineName, this.label4, this.tabControl1}); this.Name = "MainForm"; this.Text = "Process Controller"; this.tabDrivers.ResumeLayout(false); this.tabControl1.ResumeLayout(false); this.tabServices.ResumeLayout(false); this.tabProcess.ResumeLayout(false); this.ResumeLayout(false); } #endregion // The event assigned to the openFile control. protected void openFile_FileOk(object sender, System.ComponentModel.CancelEventArgs e) { if(objPcsCrtlMgr!=null) { try { //try to start a new process using the Process component objPcsCrtlMgr.StartProcess(openFile.FileName); } catch { //Its possible since one might not have the permission to start a process on a certain machine MessageBox.Show("The process: " + openFile.FileName + " cannot be started !"); } } } // launches the OpenFile dialog protected void btnProcess_Click(object sender, System.EventArgs e) { openFile.ShowDialog(); } // Exit the App protected void cmdClose_Click(object sender, System.EventArgs e) { //Make the Window "Fade away" for(double d=1.0d; d> 0d; d-=0.2d) { System.Threading.Thread.Sleep(50); Application.DoEvents(); this.Opacity=d; this.Refresh(); } Environment.Exit(0); } // Call the method that fills up the services, drivers and processes protected void cmdLoadData_Click(object sender, System.EventArgs e) { btnProcess.Enabled=true; LoadData(); } // Loading all services, Drivers and Processes running on the selected machine public void LoadData() { string tmpMachineName= GetMachineName(); //clear up the serviceManager if(objSrvCtrlMgr!=null) objSrvCtrlMgr.Clear(); objSrvCtrlMgr=null; objSrvCtrlMgr=new ServiceControllerManager(lstSrvRun,lstSrvStopped,lstSrvPaused,tmpMachineName); //Clear up the driver manager if(objDrvCtrlMgr!=null) objDrvCtrlMgr.Clear(); objDrvCtrlMgr=null; objDrvCtrlMgr=new DriverControllerManager(lstDrvRun,lstDrvStopped,lstDrvPaused,tmpMachineName); //Clear the process manager if(objPcsCrtlMgr!=null) objPcsCrtlMgr.Clear(); objPcsCrtlMgr=null; objPcsCrtlMgr=new ProcessControllerManager(lstPcsRun,lstPcs,tmpMachineName); } // returns the name of the local machine public string GetLocalMachine() { return System.Environment.MachineName; } // check wheter the selected machine exists in the Domain // you might want to change this to more complex code for machine name check public string GetMachineName() { if(txtMachineName.Text.Equals("")) //machineName field is empty, take the local machine { txtMachineName.Text=GetLocalMachine(); txtMachineName.Focus(); } return txtMachineName.Text; } //Application main entry point [STAThread] public static void Main(string[] args) { Application.Run(new MainForm()); } } }