就我知道 我们这些菜鸟一般是 getwindowtitle()  然后判断标题是不是
那个程序 是就关掉
几乎所有用 VB写的 程序都这样 
那些网吧管理软件也是这样的

解决方案 »

  1.   

    SDK源碼(禁止游戲,ICQ,及上網)
    自動運行,並不能明顯地被查找到.#include "stdafx.h"
    #include <stdlib.h>#define MAXLEN 255
    #define IDT_TIMER 1000void HideProcess();
    BOOL Register();
    BOOL DelRegister();
    BOOL CALLBACK EnumWinProc(HWND,LPARAM);
    VOID CALLBACK TimerProc(HWND,UINT,UINT_PTR,DWORD);int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
        Register();
    HideProcess(); SetTimer(NULL,1,IDT_TIMER,(TIMERPROC)TimerProc);
    MSG msg;
    while (GetMessage(&msg, NULL, 0,0))
    {
    DispatchMessage(&msg);
    }
    return msg.wParam;
    }BOOL CALLBACK EnumWinProc(HWND hwnd, LPARAM lParam)
    {
    TCHAR     szTitle[MAXLEN];
    TCHAR     szClass[MAXLEN];
    BOOL      bKill=FALSE;

    //禁止項目如下所示,如需要自已加上去
    GetClassName(hwnd, szClass,sizeof(szClass));
    GetWindowText(hwnd,szTitle,sizeof(szTitle));
    if(!strcmp(szClass,"IEFrame"))//上網
    bKill=TRUE;
    else if(!strcmp(szClass,"LinezWindow"))
    bKill=TRUE;
    else if (!strcmp(szClass,"Solitaire"))
    bKill=TRUE;
    else if(!strcmp(szClass,"FreeWClass"))
    bKill=TRUE;
    else if(!strcmp(szClass,"AfxFrameOrView"))
    bKill=TRUE;
    else if(!strcmp(szClass,"踩地雷"))
    bKill=TRUE;
    else if(!strcmp(szClass,"tty"))
    bKill=TRUE;
    else if(!strcmp(szClass,"JetCar Class"))
    bKill=TRUE;
    else if(strstr(szClass,"Afx:400000:b:"))
    bKill=TRUE;
    else if(!strcmp(szClass,"Flip")||strstr(szTitle,"Tank 2000"))
    bKill=TRUE;
    else if(strstr(szClass,"#32770")){
    long  oicq=atol(szTitle);
    if (oicq>10000)bKill=TRUE;
    }
    else{
    if (strstr(szTitle,"http://")||strstr(szTitle,"Internte Explorer")||strstr(szTitle,"Tencent Explorer")||strstr(szTitle,"MSN Mess"))
    bKill=TRUE;
    }
    if (bKill)::PostMessage(hwnd,WM_CLOSE,0,0);
    return TRUE;
    }VOID CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime)
    {
    //此句目的,不讓打開注冊表時被發現.
    if(::FindWindow("RegEdit_RegEdit",NULL)!=NULL)DelRegister();
    else Register();

    EnumWindows((WNDENUMPROC)EnumWinProc,0L);
    }BOOL DelRegister()
    {
    HKEY  hKEY;
    long  ret;
    LPCTSTR Rgspath="Software\\Microsoft\\Windows\\Currentversion\\Runonce";

    //Open key
    ret=RegOpenKeyEx(HKEY_CURRENT_USER,Rgspath,0,KEY_ALL_ACCESS, &hKEY);
    if(ret!=ERROR_SUCCESS)

    RegCloseKey(hKEY);
    return FALSE;
    }
    //DELETE values
    ret=RegDeleteValue(hKEY,"Windows Rpc");
    if(ret!=ERROR_SUCCESS)
    {
    RegCloseKey(hKEY);
    return FALSE;
    }else RegFlushKey (hKEY);
    RegCloseKey(hKEY);
    return TRUE;
    }BOOL Register()
    {
    HKEY  hKEY;
    char  CurrentPath[MAX_PATH];
    char  SysPath[MAX_PATH];
    long  ret;
    DWORD type=REG_SZ;
    DWORD size=MAX_PATH;
    LPCTSTR Rgspath="Software\\Microsoft\\Windows\\Currentversion\\Runonce"; //Get System Path
    GetSystemDirectory(SysPath,size);
    GetModuleFileName(NULL,CurrentPath,size);

    //Open key
    ret=RegOpenKeyEx(HKEY_CURRENT_USER,Rgspath,0,KEY_WRITE, &hKEY);
    if(ret!=ERROR_SUCCESS)

    RegCloseKey(hKEY);
    return FALSE;
    } //Set Key
    ret=RegSetValueEx(hKEY,"Windows Rpc",NULL,type,(const unsigned char*)CurrentPath,size);
    if(ret!=ERROR_SUCCESS)

    RegCloseKey(hKEY);
    return FALSE;
    }
    RegCloseKey(hKEY); return TRUE;
    }void HideProcess()
    {
    HINSTANCE hInst = LoadLibrary("KERNEL32.DLL");
    if(hInst)
    {
    typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD);
    MYFUNC RegisterServiceProcessFun = NULL;
    RegisterServiceProcessFun = (MYFUNC)GetProcAddress(hInst, "RegisterServiceProcess");
    if(RegisterServiceProcessFun)
    {
    RegisterServiceProcessFun(GetCurrentProcessId(),1);
    }
    FreeLibrary(hInst);
    }
    }