Skip to content

Commit 12dab8b

Browse files
committed
2 ways to run cmd instead of 1
1 parent 27b4b32 commit 12dab8b

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

OpenWithCmd.cs

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,33 @@ protected override ContextMenuStrip CreateMenu()
2222
ContextMenuStrip menuStrip = new ContextMenuStrip();
2323

2424
ToolStripMenuItem menuItem = new ToolStripMenuItem() { Text = "Open in Command prompt" };
25-
menuItem.Click += OnClicked;
25+
26+
ToolStripMenuItem runAsUserItem = new ToolStripMenuItem() { Text = "As Current User" },
27+
runAsAdmin = new ToolStripMenuItem() { Text = "As Administrator" };
28+
29+
runAsUserItem.Click += (s, e) => { RunCMD(false); };
30+
runAsAdmin.Click += (s, e) => { RunCMD(true); };
31+
32+
menuItem.DropDownItems.AddRange(new ToolStripItem[] {runAsUserItem, runAsAdmin});
2633

2734
menuStrip.Items.Add(menuItem);
2835
return menuStrip;
2936
}
3037

31-
private void OnClicked(object sender, EventArgs e)
38+
private void RunCMD(bool asadmin)
3239
{
3340
Process cmd = new Process();
34-
3541
cmd.StartInfo.FileName = "cmd.exe";
36-
cmd.StartInfo.WorkingDirectory = FolderPath;
42+
43+
if(asadmin)
44+
{
45+
cmd.StartInfo.UseShellExecute = true;
46+
cmd.StartInfo.Arguments = $"/k cd /d \"{FolderPath}\"";
47+
cmd.StartInfo.Verb = "runas";
48+
}
49+
else {
50+
cmd.StartInfo.WorkingDirectory = FolderPath;
51+
}
3752

3853
cmd.Start();
3954
}

0 commit comments

Comments
 (0)