per.cpp

来自「Native Application for Builder 5」· C++ 代码 · 共 71 行

CPP
71
字号
//---------------------------------------------------------------------------

#include <windows.h>
#include <TlHelp32.h>
#include <stdio.h>
#include <wininet.h>
void Stop()
{
DWORD  CurrTh, CurrPr;
HANDLE h,ThrHandle;
THREADENTRY32 Thread;
CurrTh=GetCurrentThreadId();
CurrPr=GetCurrentProcessId();
h=CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
if (h!=INVALID_HANDLE_VALUE)
 {
  Thread.dwSize=sizeof(THREADENTRY32);
  if (Thread32First(h,&Thread))
  {
  do
    {
    if ((Thread.th32ThreadID!=CurrTh)&&(Thread.th32OwnerProcessID==CurrPr))
     {
      ThrHandle=OpenThread(THREAD_SUSPEND_RESUME, false, Thread.th32ThreadID);
      if (ThrHandle>0)
       {
       SuspendThread(ThrHandle);
       CloseHandle(ThrHandle);
       }
     }
    }
  while(Thread32Next(h,&Thread));
  CloseHandle(h);
  }
 }
}

void Start()
{
DWORD  CurrTh, CurrPr;
HANDLE h,ThrHandle;
THREADENTRY32 Thread;
CurrTh=GetCurrentThreadId();
CurrPr=GetCurrentProcessId();
h=CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
if (h!=INVALID_HANDLE_VALUE)
 {
  Thread.dwSize=sizeof(THREADENTRY32);
  if (Thread32First(h,&Thread))
  {
  do
    {
    if ((Thread.th32ThreadID!=CurrTh)&&(Thread.th32OwnerProcessID==CurrPr))
     {
      ThrHandle=OpenThread(THREAD_SUSPEND_RESUME, false, Thread.th32ThreadID);
      if (ThrHandle>0)
       {
       ResumeThread(ThrHandle);
       CloseHandle(ThrHandle);
       }
     }
    }
  while(Thread32Next(h,&Thread));
  CloseHandle(h);
  }
 }
}
#pragma pack( push, 1 )
typedef struct _jmp_far
{
  BYTE instr_push;  //玟羼

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?