MediaCoder

VC6中創建一個MFC命令行工程,可以直接編譯,懂的,可以拿來用。


#include "stdafx.h"
#include "MediaCoder註冊機.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


CWinApp theApp;

using namespace std;




int ok=0;

typedef	struct ENUM_PARAM
{
	CTreeCtrl*	hTree;
	HTREEITEM	hParent;
}ENUM_WIN_PARAM;

BOOL __stdcall EnumWindowsProc(HWND hWnd, LPARAM lParam);
BOOL CaptureWindowToClipboard(HWND hWnd);


BOOL __stdcall ChildEnumWindowsProc(HWND hWnd, LPARAM lParam)
{
	ENUM_WIN_PARAM*	xParam=(ENUM_WIN_PARAM*)lParam;
	TV_INSERTSTRUCT TCItem;
	TCHAR m_strTitle[MAX_PATH];
	TCHAR m_strClass[MAX_PATH];
	TCHAR m_strDisplay[MAX_PATH*2+10];
	ZeroMemory(&TCItem,sizeof(TV_INSERTSTRUCT));
	if(::GetWindowLong(hWnd,GWL_STYLE)& WS_VISIBLE)
	{
		::GetWindowText(hWnd,m_strTitle,MAX_PATH-1);

		if(strstr(m_strTitle,"做一個簡單算術題吧"))
		{
			CString str_title=m_strTitle;

			int i_end1=str_title.Find(":",0);//查找:出現的位置

			int i_end2=str_title.Find('+',0);//查找+出現的位置

			int i_end3=str_title.Find('=',0);//查找=出現的位置

			CString str_mid1=str_title.Mid(i_end1+2,i_end2-i_end1-2);
			
			CString str_mid2=str_title.Mid(i_end2+1,i_end3-i_end2-1);

			ok=atoi(str_mid1.LockBuffer())+atoi(str_mid2.LockBuffer());//計算結果
		}


		if(strstr(m_strTitle,"繼續"))
		{
			EnableWindow(hWnd,TRUE);

            SendMessage(hWnd, 0x201, 0, 0); // Mouse button down 
            SendMessage(hWnd, 0x202, 0, 0); // Mouse button up 
		}


		::GetClassName(hWnd,m_strClass,MAX_PATH-1);

		if(strstr(m_strClass,"Edit"))
		{
			char str_ok[10]={0};
			sprintf(str_ok,"%d",ok);

			SendMessage(hWnd,WM_SETTEXT,10,(LPARAM )str_ok);//發送計算結果
		}

		ENUM_WIN_PARAM	xEnumWinParam;

		::EnumChildWindows(hWnd,ChildEnumWindowsProc,(LPARAM)(&xEnumWinParam));
	}
	return TRUE;
}


BOOL __stdcall EnumWindowsProc(HWND hWnd, LPARAM lParam)
{
	ENUM_WIN_PARAM*	xParam=(ENUM_WIN_PARAM*)lParam;
	TV_INSERTSTRUCT TCItem;
	TCHAR m_strTitle[MAX_PATH];
	TCHAR m_strClass[MAX_PATH];
	TCHAR m_strDisplay[MAX_PATH*2+10];
	ZeroMemory(&TCItem,sizeof(TV_INSERTSTRUCT));
	if(::GetWindowLong(hWnd,GWL_STYLE)& WS_VISIBLE)
	{
		::GetWindowText(hWnd,m_strTitle,MAX_PATH-1);


		if(strstr(m_strTitle,"分鐘後自動繼續")){//窗口關鍵字


		::GetClassName(hWnd,m_strClass,MAX_PATH-1);
		strcpy(m_strDisplay,m_strTitle);
		strcat(m_strDisplay,":[");
		strcat(m_strDisplay,m_strClass);
		strcat(m_strDisplay,"]");
		TCItem.hParent             = xParam->hParent;
		TCItem.hInsertAfter        = TVI_LAST;
		TCItem.item.mask           = TVIF_TEXT|TVIF_STATE|TVIF_PARAM;
		TCItem.item.lParam		   = (LPARAM)hWnd;
		TCItem.item.pszText        = m_strDisplay;

		ENUM_WIN_PARAM	xEnumWinParam;

		::EnumChildWindows(hWnd,ChildEnumWindowsProc,(LPARAM)(&xEnumWinParam));
		
		}
	}
	return TRUE;
}


int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	int nRetCode = 0;

	while(true)
	{
		printf("開始查找註冊窗口\r\n");
		ENUM_WIN_PARAM	xEnumWinParam;
		::EnumWindows(EnumWindowsProc,(LPARAM)(&xEnumWinParam));
		
		Sleep(1000*10);
	}

	return nRetCode;
}



發佈了338 篇原創文章 · 獲贊 19 · 訪問量 114萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章