All pastes #260742 Raw Edit

Miscellany

public text v1 · immutable
#260742 ·published 2006-11-28 17:32 UTC
rendered paste body
#pragma warning(disable:4129)//escape keys

#include <windows.h>
#include <stdio.h>
#include "dll.h"

#define PARENTWND	"Wolf Console"
#define CHILDWND	"Edit"

#define MAX_BUFFER	16384

#define CR			13 //Carriage Return
#define LF			10 //Line Feed

static HWND hwndParent		= NULL;	//Get window
static HWND hwndEdit		= NULL;	//Store class ptr
static HWND hwndConsole		= NULL;	//Store class ptr

void SetWindowHandles()
{
	hwndParent	= FindWindow(0, PARENTWND);
	hwndEdit	= FindWindowEx(hwndParent, NULL, CHILDWND, NULL);		//1st edit class
	hwndConsole	= FindWindowEx(hwndParent, NULL, CHILDWND, NULL);		//1st edit class	
	hwndConsole	= FindWindowEx(hwndParent, hwndEdit, CHILDWND, NULL);	//2nd edit class - text stored here
}

void ConsoleWrite(char *String)
{
	SendMessage(hwndEdit, WM_SETTEXT, 0, (LPARAM)String);
	SendMessage(hwndEdit, WM_CHAR, CR, 0);	//Simulate Carriage Return ('Enter')
}

char* GetConsoleLastLine()
{
	char sBuf[MAX_BUFFER];
	char *sLastLine;
	char sLine[1024];
	
	char *pEnd, *pStart;
	int iLen, i;

	iLen = i = 0;
	pEnd = pStart = sBuf;

	if ((sLastLine = (char *) malloc(1024))==NULL) return 0;

	SendMessage(hwndConsole, WM_GETTEXT, MAX_BUFFER, (LPARAM)sBuf);

	iLen = strlen(sBuf);					// get console buf len
	pEnd = sBuf + ((sizeof(char)*iLen)-4);	// get a ptr to EOC (end of console)
	
	pStart = pEnd;								
	while(*--pStart != LF)					// copy the string backwards from EOC to previous line
		sLine[i++] = *pStart;				// move ptr backwards until CR/LF = end of previous line
	sLine[i] = '\0';						// terminate your strings noobs.

	i = 0;	pEnd = pStart;					
	
	while(*pEnd++)							// reverse the string
		sLastLine[i++] = *pEnd;	
	sLastLine[i] = '\0';					// terminate your strings noobs.

	return sLastLine;						// return ptr to copy of last line
}

int ConsoleScan(char *String)
{
	char* pszConsoleLine = GetConsoleLastLine();

	int iRet = (int)strstr(pszConsoleLine, String);
	free(pszConsoleLine); //cleanup
	return(iRet);
}

int main()
{
	Sleep(10000);//enough time to open game
	SetWindowHandles();

	while(1)
	{
		if(ConsoleScan("Dynamite Planted"))
		{
			ConsoleWrite("\echo ^1Found TEST in consoles last line!");
			break;
		}
	}
}