我正在寻找一种控制Windows环境中程序的方法.
我希望它有点类似于Linux软件" screen".
我搜索的原因是我需要启动一个带有标识符的程序(在Windows上),所以我以后可以关闭该特定程序,而不关闭任何其他程序 - 即使实际程序(.exe文件)正在运行多次.那么无论如何我可以"命名"它吗?
我现在在Linux上使用以下内容:
$ screen <params> <id> ./softwareprogram
Run Code Online (Sandbox Code Playgroud)
然后我知道我总能找到它的ID :)
这是一个关闭或启动第三方程序的外部程序.
我的程序是用C++编写的,如果这有什么不同的话.
编辑:我不能以任何方式自己选择ID吗?喜欢以特定名称启动程序?另外我如何通过提供名称来杀死进程?
目前,我认为屏幕上没有原生的等价物。Cygwin 包含 screen 的实现,但它带有 cygwin 的开销。问题在于 Windows 和基于 Posix 的操作系统以非常不同的方式实现控制台。Windows 不支持作为 POSIX 环境一部分的许多 tty 功能。也就是说,可以使用 API 调用在屏幕实用程序中编写功能的最小实现:AttachConsole和FreeConsole。但是,我必须对该主题进行更多研究。
当您启动程序时,即使在 Windows 上,您也可以获得其进程 ID。您稍后可以使用该进程 ID 再次终止该程序。
如果您需要给它您自己的 id,那么您可以使用例如注册表来存储您的 id 到进程 id 的映射。如果收到启动命令,请将标识符作为键存储在注册表中,并将已启动进程的 pid 作为值存储。如果收到停止命令,请从注册表中检索 pid,并终止该 pid 并从注册表中删除该密钥。
当然,您也可以使用数据库或包含文件的文件夹来代替注册表,其中密钥(您的标识符)是文件名,而 pid 位于每个文件内
| 归档时间: |
|
| 查看次数: |
11417 次 |
| 最近记录: |