【发布时间】:2016-12-07 11:50:00
【问题描述】:
我有一个 C# 中的 Windows 应用程序,它获取 Android 日志 (LOGCAT) 和 Android BugReport (BugReport)。
为了获取这些日志,我使用带有类似命令的 bat 文件。 对于错误报告,
adb bugreport >>C:\User\Desktop\androidUser\bugrep%dt%_%tm%.txt
对于 LogCat,
adb logcat -long V >>C:\User\Desktop\androidUser\LogCat%dt%_%tm%.txt
dt 和 tm 是时间戳。
我可以同时运行这两个命令(在 aspx 网页中有两个不同的按钮),但如果我只想停止其中一个,就会出现问题。
问题是我无法终止使用进程名称作为两个任务相同的进程。我尝试过的另一件事是在执行命令时保存进程 ID 并杀死它,但是在运行任务时关联的 pid 是 cmd 的,所以 adb 任务继续运行并且没有如我所愿地被杀死。
【问题讨论】:
-
那么,您如何 区分这两者?除非你有办法做到这一点,否则你就完蛋了 :) 从 cmd 运行的进程与其他进程一样。如果您想在将来跟踪它们,为什么首先通过 cmd 运行它们?
-
嘿@Luaan,我通过在 Windows 的 Taskmanager 中监视它们来区分它们。我从网页中获取这些日志,并且为了获取按钮,我使用上述说明运行 .bat 文件。所以我需要使用cmd。 cmd 在这种情况下还有其他选择吗?
-
查看
Process和ProcessStartInfo类。您可以使用参数启动应用程序,这似乎就是您所做的一切。你不能完全回避 .bat 文件的需要吗?这将使独立跟踪每个进程变得微不足道。
标签: c# windows process adb android-logcat