当我在 adb 中写入时:
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
我得到错误输出:
'grep' is not recognized as an internal or external command, operable program or batch file.
但如果我将它分成两个运算符:
adb shell
dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
它工作正常(它给出了正在运行的应用程序的主要活动名称)。
如果唯一的方法是将其分成两部分 - 这意味着首先进入 adb shell,然后运行 Inquire,有没有办法从 c# 做到这一点?
在我的代码中,它只执行第一部分(进入 shell)。
这是我的代码:
public static void startNewProccess(object startInfo)
{
p = new Process();
p.StartInfo = (System.Diagnostics.ProcessStartInfo)startInfo;
p.Start();
p.WaitForExit();
}
public static void getMainActivity()
{
var startInfo1 = new System.Diagnostics.ProcessStartInfo
{
WorkingDirectory = @ADB_FOLDER,
WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal,
FileName = "cmd.exe",
Arguments = "/c" + " adb shell",
//adb shell am start -n com.package.name/com.package.name.ActivityName
UseShellExecute = false
};
startNewProccess(startInfo1);
var startInfo2 = new System.Diagnostics.ProcessStartInfo
{
WorkingDirectory = @ADB_FOLDER,
WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal,
FileName = "cmd.exe",
Arguments = "/c" + " dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'",
UseShellExecute = false
};
}