⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmpiregister.cs

📁 fortran并行计算包
💻 CS
字号:
using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Diagnostics;using Microsoft.Win32;using System.IO;namespace wmpiregister{	/// <summary>	/// Summary description for Form1.	/// </summary>	public class wmpiregister : System.Windows.Forms.Form	{		private System.Windows.Forms.Label account_label;		private System.Windows.Forms.TextBox account_textBox;		private System.Windows.Forms.Label password_label;		private System.Windows.Forms.TextBox password_textBox;		private System.Windows.Forms.Button register_button;		private System.Windows.Forms.Button remove_button;		private System.Windows.Forms.Button cancel_button;		private System.Windows.Forms.Label usage_label;		private System.Windows.Forms.Label usage2_label;		private System.Windows.Forms.Label example_label;		private System.Windows.Forms.TextBox result_textBox;		private System.Windows.Forms.Button ok_button;		private Label usage3_label;		/// <summary>		/// Required designer variable.		/// </summary>		private System.ComponentModel.Container components = null;		public wmpiregister()		{			//			// Required for Windows Form Designer support			//			InitializeComponent();			//			// TODO: Add any constructor code after InitializeComponent call			//		}		/// <summary>		/// Clean up any resources being used.		/// </summary>		protected override void Dispose( bool disposing )		{			if( disposing )			{				if (components != null) 				{					components.Dispose();				}			}			base.Dispose( disposing );		}		#region Windows Form Designer generated code		/// <summary>		/// Required method for Designer support - do not modify		/// the contents of this method with the code editor.		/// </summary>		private void InitializeComponent()		{			System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(wmpiregister));			this.account_label = new System.Windows.Forms.Label();			this.account_textBox = new System.Windows.Forms.TextBox();			this.password_label = new System.Windows.Forms.Label();			this.password_textBox = new System.Windows.Forms.TextBox();			this.register_button = new System.Windows.Forms.Button();			this.remove_button = new System.Windows.Forms.Button();			this.cancel_button = new System.Windows.Forms.Button();			this.usage_label = new System.Windows.Forms.Label();			this.usage2_label = new System.Windows.Forms.Label();			this.example_label = new System.Windows.Forms.Label();			this.result_textBox = new System.Windows.Forms.TextBox();			this.ok_button = new System.Windows.Forms.Button();			this.usage3_label = new System.Windows.Forms.Label();			this.SuspendLayout();			// 			// account_label			// 			this.account_label.Location = new System.Drawing.Point(24, 152);			this.account_label.Name = "account_label";			this.account_label.TabIndex = 0;			this.account_label.Text = "Account:";			// 			// account_textBox			// 			this.account_textBox.Location = new System.Drawing.Point(128, 152);			this.account_textBox.Name = "account_textBox";			this.account_textBox.TabIndex = 1;			// 			// password_label			// 			this.password_label.Location = new System.Drawing.Point(24, 184);			this.password_label.Name = "password_label";			this.password_label.TabIndex = 2;			this.password_label.Text = "password";			// 			// password_textBox			// 			this.password_textBox.Location = new System.Drawing.Point(128, 184);			this.password_textBox.Name = "password_textBox";			this.password_textBox.PasswordChar = '*';			this.password_textBox.TabIndex = 3;			// 			// register_button			// 			this.register_button.Location = new System.Drawing.Point(8, 253);			this.register_button.Name = "register_button";			this.register_button.Size = new System.Drawing.Size(64, 23);			this.register_button.TabIndex = 4;			this.register_button.Text = "Register";			this.register_button.Click += new System.EventHandler(this.register_button_Click);			// 			// remove_button			// 			this.remove_button.Location = new System.Drawing.Point(80, 253);			this.remove_button.Name = "remove_button";			this.remove_button.Size = new System.Drawing.Size(64, 23);			this.remove_button.TabIndex = 5;			this.remove_button.Text = "Remove";			this.remove_button.Click += new System.EventHandler(this.remove_button_Click);			// 			// cancel_button			// 			this.cancel_button.Location = new System.Drawing.Point(216, 253);			this.cancel_button.Name = "cancel_button";			this.cancel_button.Size = new System.Drawing.Size(64, 23);			this.cancel_button.TabIndex = 7;			this.cancel_button.Text = "Cancel";			this.cancel_button.Click += new System.EventHandler(this.cancel_button_Click);			// 			// usage_label			// 			this.usage_label.Location = new System.Drawing.Point(24, 8);			this.usage_label.Name = "usage_label";			this.usage_label.Size = new System.Drawing.Size(224, 48);			this.usage_label.TabIndex = 9;			this.usage_label.Text = "Use this tool to encrypt an account and password to be used by mpiexec to launch " +				"mpich2 jobs.";			// 			// usage2_label			// 			this.usage2_label.Location = new System.Drawing.Point(24, 56);			this.usage2_label.Name = "usage2_label";			this.usage2_label.Size = new System.Drawing.Size(224, 48);			this.usage2_label.TabIndex = 10;			this.usage2_label.Text = "The account provided must be a valid user account available on all the nodes that" +				" will participate in mpich2 jobs.";			// 			// example_label			// 			this.example_label.Location = new System.Drawing.Point(24, 104);			this.example_label.Name = "example_label";			this.example_label.Size = new System.Drawing.Size(120, 40);			this.example_label.TabIndex = 11;			this.example_label.Text = "Example: mydomain\\myaccount or myaccount";			// 			// result_textBox			// 			this.result_textBox.Location = new System.Drawing.Point(8, 285);			this.result_textBox.Multiline = true;			this.result_textBox.Name = "result_textBox";			this.result_textBox.ReadOnly = true;			this.result_textBox.Size = new System.Drawing.Size(272, 64);			this.result_textBox.TabIndex = 8;			// 			// ok_button			// 			this.ok_button.Location = new System.Drawing.Point(152, 253);			this.ok_button.Name = "ok_button";			this.ok_button.Size = new System.Drawing.Size(56, 23);			this.ok_button.TabIndex = 6;			this.ok_button.Text = "OK";			this.ok_button.Click += new System.EventHandler(this.ok_button_Click);			// 			// usage3_label			// 			this.usage3_label.Location = new System.Drawing.Point(24, 210);			this.usage3_label.Name = "usage3_label";			this.usage3_label.Size = new System.Drawing.Size(224, 37);			this.usage3_label.TabIndex = 12;			this.usage3_label.Text = "Click register to save the credentials and Remove to delete the credentials for t" +				"he current user.";			// 			// wmpiregister			// 			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);			this.ClientSize = new System.Drawing.Size(288, 359);			this.Controls.Add(this.usage3_label);			this.Controls.Add(this.ok_button);			this.Controls.Add(this.result_textBox);			this.Controls.Add(this.example_label);			this.Controls.Add(this.usage2_label);			this.Controls.Add(this.usage_label);			this.Controls.Add(this.cancel_button);			this.Controls.Add(this.remove_button);			this.Controls.Add(this.register_button);			this.Controls.Add(this.password_textBox);			this.Controls.Add(this.password_label);			this.Controls.Add(this.account_textBox);			this.Controls.Add(this.account_label);			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));			this.Name = "wmpiregister";			this.Text = "MPIEXEC -register wrapper";			this.ResumeLayout(false);			this.PerformLayout();		}		#endregion		/// <summary>		/// The main entry point for the application.		/// </summary>		[STAThread]		static void Main() 		{			Application.Run(new wmpiregister());		}		private string get_mpiexec()		{			string mpiexec = "";			object obj;			try			{				RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\MPICH2");				if (key != null)				{					obj = key.GetValue("Path");					key.Close();					if (obj != null)					{						mpiexec = obj.ToString();						if (mpiexec.EndsWith(@"\"))						{							mpiexec = mpiexec + @"bin\mpiexec.exe";						}						else						{							mpiexec = mpiexec + @"\bin\mpiexec.exe";						}						if (!File.Exists(mpiexec))						{							mpiexec = "";						}					}				}				if (mpiexec == "")				{					key = Registry.LocalMachine.OpenSubKey(@"Software\MPICH\SMPD");					if (key != null)					{						obj = key.GetValue("binary");						key.Close();						if (obj != null)						{							mpiexec = obj.ToString().Replace("smpd.exe", "mpiexec.exe");							if (!File.Exists(mpiexec))							{								mpiexec = "";							}						}					}				}				if (mpiexec == "")				{					mpiexec = "mpiexec.exe";				}				mpiexec = mpiexec.Trim();				/*				if (mpiexec.IndexOf(' ') != -1)				{					mpiexec = "\"" + mpiexec + "\"";				}				*/			}			catch (Exception)			{				mpiexec = "mpiexec.exe";			}			return mpiexec;		}		private void register_button_Click(object sender, System.EventArgs e)		{			string output;			//string error;			try			{				if (password_textBox.Text.Length == 0)				{					MessageBox.Show("MPICH2 cannot use user credentials with empty passwords, please select another user");					return;				}				Process process = new Process();				process.StartInfo.FileName = get_mpiexec();				process.StartInfo.Arguments = "-register";				process.StartInfo.RedirectStandardInput = true;				process.StartInfo.RedirectStandardOutput = true;				//process.StartInfo.RedirectStandardError = true;				process.StartInfo.RedirectStandardError = false;				process.StartInfo.UseShellExecute = false;				process.StartInfo.CreateNoWindow = true;				process.Start();				process.StandardInput.WriteLine(account_textBox.Text);				process.StandardInput.WriteLine(password_textBox.Text);				process.StandardInput.WriteLine(password_textBox.Text);				//error = process.StandardError.ReadToEnd();				output = process.StandardOutput.ReadToEnd();				process.WaitForExit();				result_textBox.Text = output; // + "\n" + error;			}			catch (Exception x)			{				result_textBox.Text = "Unable to run \"mpiexec -register\"\r\nError: " + x.Message;			}		}		private void remove_button_Click(object sender, System.EventArgs e)		{			string output;			//string error;			try			{				Process process = new Process();				process.StartInfo.FileName = get_mpiexec();				process.StartInfo.Arguments = "-remove";				process.StartInfo.RedirectStandardInput = false;				process.StartInfo.RedirectStandardOutput = true;				//process.StartInfo.RedirectStandardError = true;				process.StartInfo.RedirectStandardError = false;				process.StartInfo.UseShellExecute = false;				process.StartInfo.CreateNoWindow = true;				process.Start();				//error = process.StandardError.ReadToEnd();				output = process.StandardOutput.ReadToEnd();				process.WaitForExit();				result_textBox.Text = output;// + "\n" + error;			}			catch (Exception x)			{				result_textBox.Text = "Unable to run \"mpiexec -remove\"\r\nError: " + x.Message;			}		}		private void cancel_button_Click(object sender, System.EventArgs e)		{			Close();		}		private void ok_button_Click(object sender, System.EventArgs e)		{			Close();		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -