0

我正在重新创建一个 Windows-Android Apk 安装程序(供我自己使用和教育目的)这是一个 Windows 窗体应用程序,其功能是:在我的 Android 设备上安装、刷新和控制一些东西。

该应用程序包含几个复选框,代表“从具有过滤扩展名的文件夹填充”的文件。这些项目(批处理文件)应运行命令提示符,并且应将 CMD 输出检索到应用程序文本框中。

当 CheckedListBox 中有多个项目被选中时(或 All Checked);我需要应用程序使用 CMD 运行所有选定的批次。

或用于安装应用程序:即:“adb install ~\path to my apk folder\ checkedliastbox1.filename.apk”

这些是我正在尝试使用的代码;当然,不能正常工作。两个代码中发生的情况是,它会同时打开几个 cmd 窗口,并且不会将 checkedListbox1.selectedItems 放入命令提示符。也就是说只显示 adb 帮助。

代码 #1

            private void btn_Install_Click(object sender, EventArgs e)
    {
        foreach (object itemChecked in checkedListBox1.CheckedItems)
        {
            Process.Start(@"C:\myfolder\programfiles\program.exe", "run " + checkedListBox1.SelectedItems);
        }
    }

代码 #2

        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:\\myFolder\\Android\\Backups\\Apk\\myapks\\" + itemChecked.ToString();
            p.Start();
            p.WaitForExit();
        }

知道我可能做错了什么吗?提前致谢。

4

1 回答 1

0

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

代替:

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

采用:

Process.Start(@"C:\RGDnamics\programfiles\program.exe", "run "+itemChecked.toString());
于 2013-04-07T14:09:04.703 回答