如何對另一個程式使用sleep令程式停止 例如程序標題是"test345",如何可以令他sleep?希望能詳細一點 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 debug apiwindows系统下能真正让别的进程停止只能用debug api,通过响应debug事件,可以做到中断目标进程的所有线程。看一下windows核心编程。 請問有沒有一些文章或代碼可以用來參考?debug好像很高技術,我還未接觸過 你可以写个DLL远程注入到应用程序里,然后得到主线程的HANDLE, 调用SuspendThread试试! debuger其实就是先注册想响应的事件,然后等待注册的回调函数被调用。当回调函数被调用时,windows保证被debug的进程的所有线程都是suspend的。如果你是自己枚举该进程所有线程然后用循环suspend,因为枚举函数只是当时的一个快照,所以有可能在循环运行这段时间目标进程会产生新的线程。从而不能做到停止进程。windows提供的方法就是debug api,网上找找代码吧,应该不是很复杂,windows核心编程这本书里好像也有。记不清楚了。基本步骤应该就是attatch->debug。 线程注入,同 ymbymb(毛病大哥)的方法。网上很多例子的,就查线程注入。 哦,说道远线程注入,也许可以吧这里有篇文章楼主可以参考一下http://www.csdn.net/develop/read_article.asp?id=15645不过远线程注入实在复杂,楼主没必要这么大动干戈吧 试了试,好像没法得到主线程的HANDLE,不好意思! 呵呵,写个驱动,或者安装一个callgate,直接把这个线程的PEB从就绪队列里面拿出来,这样os就调度不到它了。隐藏进程我也是这么干的:) 只要让它得不到Windows分配的时间片就可以了。等过了合适的时间你再把PEB插入到系统的就绪队列里面。 ymbymb(毛病大哥) 这位兄弟的方法可以试试 引用:“呵呵,写个驱动,或者安装一个callgate,直接把这个线程的PEB从就绪队列里面拿出来,这样os就调度不到它了。隐藏进程我也是这么干的:)”-------------------------------------------------一个是修改PsActiveProcess你那要修改KiWaitInListHead和KiWaitOutListHead而且你所说的PEB也不正确吧,应该是TEB 使用SuspendThread挂起另一个应用程序的主线程 只不过2000下有现成的OpenThread98下就要另想办法了 仅适用于2000/NT/XP下的方法:先用FindWindo,通过标题得到窗口句柄再用GetWindowThreadProcessId得到该窗口的处理线程的ThreadID然后用OpenThread打开线程句柄最后用SuspendThread挂起线程,ResumeThread可以继续运行 呵呵,习惯了,确实是TEB,操作系统课里面老叫PCB、PCB的,改不过来口:) Checkbox关联的bool型变量,在勾选后,为什么bool变量值不变? 鼠标指向CListCtrl的不同行时显示不同内容的ToolTip能实现吗? 关于局域网内视频监控的问题 VC修改SQL数据库 ADO 类的成员变量没法在定义的时候初始化吗? 播放器显示时怎么让窗口适应视频的大小来调整窗口的大小 vc编译时连接出错 vc里怎么使一个对话框最大化??? 请问北京完美时空公司如何? 如何创造事件? 求助:关于FTP编程的问题 高分求收费欧洲杯直播网站!
windows系统下能真正让别的进程停止只能用debug api,通过响应debug事件,可以做到中断目标进程的所有线程。看一下windows核心编程。
debug好像很高技術,我還未接觸過
如果你是自己枚举该进程所有线程然后用循环suspend,因为枚举函数只是当时的一个快照,所以有可能在循环运行这段时间目标进程会产生新的线程。从而不能做到停止进程。
windows提供的方法就是debug api,网上找找代码吧,应该不是很复杂,windows核心编程这本书里好像也有。记不清楚了。基本步骤应该就是attatch->debug。
这位兄弟的方法可以试试
一个是修改PsActiveProcess你那要修改KiWaitInListHead和KiWaitOutListHead而且你所说的PEB也不正确吧,应该是TEB
98下就要另想办法了
再用GetWindowThreadProcessId得到该窗口的处理线程的ThreadID
然后用OpenThread打开线程句柄
最后用SuspendThread挂起线程,ResumeThread可以继续运行