Windows上有办法判断一个程序的运行方式吗?

发布于 2022-09-12 23:03:25 字数 113 浏览 25 评论 0

在Windows上运行程序,可以在资源管理器双击程序运行,也可以在cmd/powershell中输入程序路径运行。
我想问一下,有没有相应的Windows API或者其它什么方法可以判断这些不同的运行方式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

木槿暧夏七纪年 2022-09-19 23:03:26

第一种办法,查自己程序的父进程,难度高一点。很多反破解软件都会检查自己是不是被dasm一类的运行的。

第二种,针对win平台,可以对你的程序进行包装,把主体隐藏起来,通过具有相同icon的启动器来运行:分别提供一个shortcut,加上一个特定的参数;提供一个exe文件,加隐藏属性,加入用户path,直接运行主体程序。这种除非用户特意区分,一般不会发现有什么不同。

第三种,程序启动的时候,检查前一个活动窗口。这个办法可能不是特别稳定,特别是如果你程序启动时间太长。

第四种,靠猜的。把当前所有窗口枚举,看看有没有标题跟你程序名称有关的explore或cmd或power shell窗口。

℡Ms空城旧梦 2022-09-19 23:03:26

GetParentProcessID 可以获取父进程的 pid
CreateToolhelp32Snapshot 可以获取正在运行的进程列表,然后你通过父进程 pid 就能知道到底是哪个程序启动了你的程序。

情魔剑神 2022-09-19 23:03:26

如何运行应该是应用程序开发者来告知用户和系统的,而不是系统去感知应用程序该如何启动!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文