C#CheckedListBox标记的项目运行进程+进程标志+ CheckedListBox文件名+文件名扩展名

时间:2013-04-07 13:59:07

标签: redirect cmd checkedlistbox

我正在尝试运行命令提示符* .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%熟悉它。

1 个答案:

答案 0 :(得分:0)

您正在为每个CheckedItem传递SelectedItems集合,而不是传递每个当前选中的项目。

而不是:

Process.Start(@"C:\RGDnamics\programfiles\program.exe", "run "+checkedListBox1.SelectedItems);

使用:

Process.Start(@"C:\RGDnamics\programfiles\program.exe", "run "+itemChecked.toString());