C++ Programm, das in MS-Dos schreibt

Bumbbleman

Erfahrenes Mitglied
Hi!
Ich habe schon ein selbst gemachtes "Browserspiel" programmiert, das über die MS-Dos läuft und dazu wollte ich mir jetzt mal ein Bot schreiben aber eins fehlt mir noch:
Ich brauch einen Befehl mit dem man Buchstaben in die MS-Dos eingibt.
Gibt es so etwas?
schon mal Danke im voraus.

mfg
Bumbbleman
 
Einfach eine Message an das Cmd Handle senden.
eine einfaches bsp:
Code:
	HWND hWnd; //das ist der Handle für das Konsolenfenster
	hWnd = GetForegroundWindow(); //Handle vom aktuellen Vordergrundfenster

	//Tastaturdruck simulieren
	PostMessage(hWnd, WM_KEYDOWN, 0x31,0x12001);
	//Taste wieder loslassen:
	PostMessage(hWnd, WM_KEYUP, 0x31,0xC0120001);
 
Hi!
Ich bin gerade erst ein bisschen in die WinApi programmierung
eingestiegen
also könntest du die Werte die in den Klammern
stehen(0x31,0x12001) erklären
wo für sie stehen

Danke
 
BOOL PostMessage(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);

0x31 gibt die Tatse an und lParam musst du nichtbeachten kann auch 0
sein ist ein spezieller Parameter der dei Message noch weiter beschreiibt.
du kannst auch dezimal zahlenverwenden
 
so ich habe mireben volgende test anwendungen geschrieben und es funktioniert einwandfrei

Code:
#include <iostream.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
	
	char i[50];

	gets(i);

	cout<<i[0]<<endl;
	
	system("pause");
	return 0;
}

und

Code:
#include <iostream>
#include <stdlib.h>
#include <windows.h>

using namespace std;


int main(int argc, char* argv[])
{
	Sleep(2000);

	HWND hWnd; //das ist der Handle für das Konsolenfenster
	hWnd = GetForegroundWindow(); //Handle vom aktuellen Vordergrundfenster

	//Tastaturdruck simulieren
	PostMessage(hWnd, WM_KEYDOWN, 0x31,0x12001);
	PostMessage(hWnd, WM_KEYUP, 0x31,0xC0120001);

	Sleep(2000);
	
	PostMessage(hWnd, WM_KEYDOWN, 0x32,0x12001);
	PostMessage(hWnd, WM_KEYUP, 0x32,0xC0120001);

	Sleep(2000);
	
	PostMessage(hWnd, WM_KEYDOWN, 0x33,0x12001);
	PostMessage(hWnd, WM_KEYUP,	0x33,0xC0120001);

	cout<<"und?"<<endl;
	system("pause");
	return 0;
}
 
Zurück