如何挂起另外一个进程或进程下一个线程呢?

幽幽浮浮 2012-08-03 03:14:59
SuspendThread过期了,如何挂起另外一个进程或进程下一个线程呢?
VB.NET 2010.
...全文
216 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
幽幽浮浮 2012-09-13
  • 打赏
  • 举报
回复
最终用了ntsuspendprocess()函数一步搞定。
幽幽浮浮 2012-08-28
  • 打赏
  • 举报
回复
一定要注入吗?

[Quote=引用 10 楼 的回复:]
注入到目标进程
然后获取线程句柄
然后TerminateThread()
[/Quote]
bigbaldy 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

一定要注入吗?

引用 10 楼 的回复:
注入到目标进程
然后获取线程句柄
然后TerminateThread()
[/Quote]

不用注入。下面是MSDN的例子

BOOL ListProcessThreads( DWORD dwOwnerPID )
{
HANDLE hThreadSnap = INVALID_HANDLE_VALUE;
THREADENTRY32 te32;

// Take a snapshot of all running threads
hThreadSnap = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0 );
if( hThreadSnap == INVALID_HANDLE_VALUE )
return( FALSE );

// Fill in the size of the structure before using it.
te32.dwSize = sizeof(THREADENTRY32 );

// Retrieve information about the first thread,
// and exit if unsuccessful
if( !Thread32First( hThreadSnap, &te32 ) )
{
printError( "Thread32First" ); // Show cause of failure
CloseHandle( hThreadSnap ); // Must clean up the
// snapshot object!
return( FALSE );
}

// Now walk the thread list of the system,
// and display information about each thread
// associated with the specified process
do
{
if( te32.th32OwnerProcessID == dwOwnerPID )
{
//暂停线程
}
} while( Thread32Next(hThreadSnap, &te32 ) );

// Don't forget to clean up the snapshot object.
CloseHandle( hThreadSnap );
return( TRUE );
}
SocketUpEx 2012-08-21
  • 打赏
  • 举报
回复
注入到目标进程
然后获取线程句柄
然后TerminateThread()


taick 2012-08-21
  • 打赏
  • 举报
回复
没看清,以为是自己的线程。
taick 2012-08-21
  • 打赏
  • 举报
回复
不好意思,没看清。
以为是自己的线程
taick 2012-08-21
  • 打赏
  • 举报
回复
如果你怕麻烦,过期的也可以用。
个人觉得要操作线程,都是用标识比较好,只是会麻烦些,视情况而定。

dim t as new thread(addressof a)
t.start

dim btag

sub t()
while true
...
while btag
thread.sleep(1)
end while
...
end while
end sub

sub b()
btag=true
end wub

sub c()
btag=false
end sub

最好写临界点

这机器上没装VS
幽幽浮浮 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
我的理解是在.net中进程过期后系统会自动关闭并收回内存空间
[/Quote]
是挂起其他进程或线程,非自己的。
sjrw96004 2012-08-17
  • 打赏
  • 举报
回复
我的理解是在.net中进程过期后系统会自动关闭并收回内存空间
幽幽浮浮 2012-08-11
  • 打赏
  • 举报
回复
过期就是在VB.NET 2010里不能继续使用。我看MSDN里这么写的。
greatbody 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
SuspendThread过期了,如何挂起另外一个进程或进程下一个线程呢?
VB.NET 2010.
[/Quote]什么叫做过期了?
幽幽浮浮 2012-08-10
  • 打赏
  • 举报
回复
求版主或达人指教~~
幽幽浮浮 2012-08-07
  • 打赏
  • 举报
回复
求版主或达人指教~~

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧