我正在尝试运行命令提示符* .exe(也将cmd输出重定向到文本框);将使用CheckedListBox标记的项目作为文件名&扩展该计划以完成任务。
换句话说; 我正在重新创建一个Windows-Android Apk安装程序(供我自己使用和教育)。 当我在CheckedListBox(或All Checked)中标记了几个项目时;我需要checkedListBox来运行“adb install checkedlistbox标记的项目和文件扩展名”到cmd。
即:“adb install~ \ path to my apk folder \ checkedliastbox1.filename.apk”
CheckedListBox中显示的项目是“从具有过滤扩展名的文件夹中填充的文件”。
这些是我试图使用的编码;当然,工作不正常。 两个代码中发生的情况是,它会同时打开几个cmd窗口,并且它没有将checkedListbox1.selectedItems放入命令提示符。 换句话说,只显示adb帮助。
private void btn_Install_Click(object sender, EventArgs e)
{
foreach (object itemChecked in checkedListBox1.CheckedItems)
{
Process.Start(@"C:\RGDnamics\programfiles\program.exe", "run " + checkedListBox1.SelectedItems);
}
}
虽然我几天都在学习C#这几天;我已经倾斜并改进了我的编码。 (似乎我可以通过这种方式更好地控制和理解)。
private void btn_install_Click(object sender, EventArgs e)
{
foreach (object itemChecked in checkedListBox1.CheckedItems)
{
p.StartInfo.FileName = @"C:\RGDnamics\Android\adb\adb.exe";
p.StartInfo.UseShellExecute = true;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.Arguments = "install C:\\RGDnamics\\Android\\Backups\\Apk\\myapks\\" + itemChecked.ToString();
p.Start();
p.WaitForExit();
}
知道我可能做错了什么吗? 正如我一直在读;我可能会将此代码放在错误的部分;否则我可能会忘记编码ItemCheck;或ChangedIndex;但我还没有100%熟悉它。
答案 0 :(得分:0)
您正在为每个CheckedItem传递SelectedItems集合,而不是传递每个当前选中的项目。
而不是:
Process.Start(@"C:\RGDnamics\programfiles\program.exe", "run "+checkedListBox1.SelectedItems);
使用:
Process.Start(@"C:\RGDnamics\programfiles\program.exe", "run "+itemChecked.toString());