neoxyn 0 Newbie Poster

I'm building a chatbot for an external chatprogram. However, if my input in the chatprogram is, for example "1", in the console window it gets double processed:

21
[12:53] <new1234> 1
21
[12:53] <new1234> 1

I don't understand why this happens.

while (1)
		{
			
				
			
			
			LRESULT length = SendMessage(childchat, WM_GETTEXTLENGTH, 0, 0);
		
			if (length != 0)
		
			{
			
				//new text, try to read
			
				SendMessage(childchat, WM_GETTEXT, length, (LPARAM)text); 
				
				char key[] = "!hibot";
				char greet[] = "hey!";
				char* greetfound; 
			        greetfound = strstr(text, key);

				if(greetfound !=0)
				{
				

					
				SendMessage(childedit, WM_SETTEXT, 0, (LPARAM)greet);
				PostMessage(childedit, WM_KEYDOWN, VK_RETURN, 0);
				


				}

				cout << length << "\n";
				cout << text << "\n";
				
				
				SendMessage(childedit, WM_SETTEXT, 0, (LPARAM)clear);
				PostMessage(childedit, WM_KEYDOWN, VK_RETURN, 0);
				
				
				

			}
			
		}

-----------
SendMessage(childedit, WM_SETTEXT, 0, (LPARAM)clear);
PostMessage(childedit, WM_KEYDOWN, VK_RETURN, 0);

With this I'm sending a /clearchat command to the chatprogram, to prevent it from processing the same text over and over again.