ネットワーク設定を開くことが正しい方法であるかどうかはわかりません。ワイヤレスを含む複数のLANがある場合、どのLANを開きたいのでしょうか? そのため、代わりにネットワーク接続設定を開いて、ユーザーにどちらを開くかを決定させる方がよいでしょう。したがって、以下のコードを使用して、次のようなネットワーク接続設定を開くことができます。
ProcessStartInfo startInfo = new ProcessStartInfo("NCPA.cpl");
startInfo.UseShellExecute = true;
Process.Start(startInfo);
更新:
LAN Property Settings
.cpl プログラムを使用して直接呼び出すことはできませんでした。ただし、独自のコードを使用して、次のように使用するという型にはまらない方法がありますSendKeys
。
System.Diagnostics.ProcessStartInfo proc = new System.Diagnostics.ProcessStartInfo();
proc.FileName = @"C:\\Windows\\System32\\RunDll32.exe";
proc.Arguments = "shell32.dll,Control_RunDLL inetcpl.cpl,Internet,4";
System.Diagnostics.Process.Start(proc);
SendKeys.Send("{TAB}{TAB}{TAB}{TAB}{ENTER}");
別の方法は、Alt+L
の代わりに使用することですTab
。Tab
すべてがすぐに登録されるのか、それともボタンなどの正確な数の場所にホップするのかがわからないためです。ただし、Timer
実際に次のように効果があることを確認するために使用する必要があります。
tmr.Interval = 500;
System.Diagnostics.ProcessStartInfo proc = new System.Diagnostics.ProcessStartInfo();
proc.FileName = @"C:\\Windows\\System32\\RunDll32.exe";
proc.Arguments = "shell32.dll,Control_RunDLL inetcpl.cpl,Internet,4";
System.Diagnostics.Process.Start(proc);
tmr.Tick += new EventHandler(tmr_Tick);
tmr.Start();
そしてあなたEvent handler
のためにTimer
:
void tmr_Tick(object sender, EventArgs e)
{
SendKeys.SendWait("%L");
tmr.Stop();
}
Timer
ここで、フォーム内であろうと他のものであろうと、クラスでグローバルとして宣言していることを確認してください。
Timer tmr = new Timer();
私の場合のように、Form1
クラスの下と内部に次のように配置します。
public partial class Form1 : Form
{
Timer tmr = new Timer();
.....more code here not shown
最もエレガントではありませんが、仕事は完了します;-)