Archive

Archive for February, 2011

Steam-Community-Overlay (GameOverlayUI.exe) lags the game when pressing SHIFT-Key

February 15th, 2011 No comments

About a few months ago (4-6), an update added something terrible to the steam-community overlay: Sometimes in some games (for me mostly L4D2 and CS:S), the game lags when you press or hold the SHIFT key. I first linked it to the source-engine but then found out that the Community-Overlay is causing it. Since I use the SHIFT-Key for jumping, I was now unable to play games properly with those lags so I wrote a program to fix it (Requires MSVC Restributables 2010 32-bit and runs invisible in background after startup. Kills Overlay when pressing CTRL+TAB)

So far, I found out the following helps to fix the problem:

  • Do not use the SHIFT-Key (doh)
  • Disable the Community-Overlay (you’ll lose comfort obviously)
  • Kill the Community-Overlay (up to several times)

And this doesn’t help:

  • Rebind the Community-Overlay shortcut to something else which doesn’t use SHIFT

So if you encounter the same, just use my program and do the following when it happens:

  • Open the Community-Overlay
  • Kill it by pressing CTRL+TAB (hold it up to a second)
  • Press escape (your mouse is stuck, pressing escape fixes it)
  • If it still lags, do this procedure again

And for those, who dont trust my program: Here is the source-code, so you can compile it yourself. Code is public-domain (replace the #include’s “…” with < and > – Worpress didn’t allow me posting it with the < and >)

#include "windows.h"
#include "tlhelp32.h"
 
/********** Kills a process by given executable-name @aVoN */
bool KillProcessByName(char* name){
	HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 
	if(snapshot == INVALID_HANDLE_VALUE) return false;
 
	PROCESSENTRY32 pe32;
	pe32.dwSize = sizeof(PROCESSENTRY32);
 
	if(!Process32First(snapshot,&pe32)){
		CloseHandle(snapshot);     
		return false;
	}
 
	do{
		if(!strcmp(pe32.szExeFile,name)){
			HANDLE process = OpenProcess(PROCESS_TERMINATE,0,pe32.th32ProcessID);
			TerminateProcess(process,0);
			CloseHandle(process);
		} 
	}while(Process32Next(snapshot,&pe32));
 
 
	CloseHandle(snapshot);
	return true;
}
 
/********** main @aVoN */
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){
	while(true){
		if(GetAsyncKeyState(VK_CONTROL) && GetAsyncKeyState(VK_TAB)){ //HotKeys: http://mafiacoders.forumotion.com/t20-c-hotkeys
			KillProcessByName("GameOverlayUI.exe"); //Kills executable silently without a return-to-desktop bug like taskkkill
		}
		Sleep(200);
	}
	return 0;
}
Categories: Blog Tags: