问答

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

作者:admin 2021-04-16 我要评论

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

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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

###

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

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

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

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

###

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

###

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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器