Example #1
0
void OverrideWndProc(WNDPROC pWndProc, WNDPROC WindowProc, HWND hWnd) {
	if (!IsWindow(hWnd)) return;
	if (!(pWndProc = (WNDPROC)GetWindowLongPtr(hWnd, GWLP_WNDPROC)))
		OutputDebugStringEx(L"pOldWndProc: %s", GetLastErrorEx().c_str());
	if (!SetWindowLongPtr(hWnd, GWLP_WNDPROC, LONG_PTR(WindowProc)))
		OutputDebugStringEx(L"SetWindowLongPtr: %s", GetLastErrorEx().c_str());
}
Example #2
0
HWND FindWindowByTitle(wstring find, bool exact) {
	wchar_t _title[256];
	HWND hWnd = GetForegroundWindow();

	while (hWnd != NULL) {
		int len = GetWindowText(hWnd, _title, 256);
		wstring title(_title);
		DWORD PID;
		GetWindowThreadProcessId(hWnd, &PID);

		if (GetCurrentProcessId() == PID) {
			if (exact) {
				if (!title.compare(find))
					break;
			} else {
				if (!title.compare(0, find.length(), find))
					break;
			}
		}
		hWnd = GetNextWindow(hWnd, GW_HWNDNEXT);
	}

	if (!hWnd)
		OutputDebugStringEx(L"Unable to find window \"%s\"", find.c_str());
	else
		OutputDebugStringEx(L"HWND: 0x%x", hWnd);

	return hWnd;
}
Example #3
0
File: utils.c Project: redxu/sihook
/**
 * 检查是否加载了siutf8插件
 * @return  [0-未加载 1-已加载]
 */
int CheckUtf8Loaded(void)
{
    static int loaded = -1;
    if(loaded != -1)
        return loaded;

    HMODULE hmod = GetModuleHandle(SI_DLLNAME_UTF8);
    if(hmod == NULL)
    {
        loaded = 0;
        OutputDebugString("siutf8.dll未加载!");
        return loaded;
    }

    GetU8Flag = (GetU8FlagFn)GetProcAddress(hmod, "FindU8FlagFromLink");
    if(GetU8Flag == NULL)
    {
        loaded = 0;
        OutputDebugString("FindU8FlagFromLink函数未找到!");
        return loaded;
    }
    else
    {
        loaded = 1;
        OutputDebugStringEx("FindU8FlagFromLink addr: 0x%p", GetU8Flag);
    }

    return loaded;
}
Example #4
0
  FT_Panic( const char*  fmt, ... )
  {
    static char  buf[8192];
    va_list      ap;


    va_start( ap, fmt );
    vsprintf( buf, fmt, ap );
    OutputDebugStringEx( buf );
    va_end( ap );

    exit( EXIT_FAILURE );
  }
Example #5
0
  FT_Message( const char*  fmt, ... )
  {
    static char  buf[8192];
    va_list      ap;


    va_start( ap, fmt );
    vprintf( fmt, ap );
    /* send the string to the debugger as well */
    vsprintf( buf, fmt, ap );
    OutputDebugStringEx( buf );
    va_end( ap );
  }