#include <windows.h>
#include <psapi.h>
#include <iostream>
#include <conio.h>
using namespace std;
#pragma comment(lib, "Psapi.lib")
#pragma comment(lib, "user32.lib")
wstring getProcessName( DWORD processID )
{
wchar_t ProcessName[MAX_PATH] = L"Unknown";
wstring name;
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
if (NULL != hProcess )
{
HMODULE hMod;
DWORD pSize;
if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &pSize) )
{
GetModuleBaseName( hProcess, hMod, ProcessName, sizeof(ProcessName)/sizeof(TCHAR) );
}
}
CloseHandle( hProcess );
name = ProcessName;
return name;
}
HWND getHWND(DWORD dwPID)
{
HWND Hwnd = GetTopWindow(0);
HWND hWnd = 0;
DWORD pid;
while(Hwnd)
{
GetWindowThreadProcessId(Hwnd, &pid);
if(pid == dwPID) hWnd = Hwnd;
Hwnd = GetNextWindow(Hwnd, GW_HWNDNEXT);
}
return hWnd;
}
int main( )
{
DWORD pTab[1024], pSize, pCount, NotepadID;
HWND hNotepad;
if (!EnumProcesses( pTab, sizeof(pTab), &pSize )) return 1;
pCount = pSize / sizeof(DWORD);
for (int i = 0; i < pCount; i++)
{
if( getProcessName(pTab[i]).compare(L"notepad.exe") == 0)
{
NotepadID = pTab[i];
break;
}
}
hNotepad = getHWND(NotepadID);
HWND hEdit = FindWindowEx(hNotepad,0,L"Edit",0);
char letter = 0;
if(hEdit != NULL)
{
cout << "Click ESC to end.\n";
while(true)
{
letter = getch();
if(letter==27)break;
cout << letter;
SendMessage(hEdit,WM_CHAR,letter,0);
}
}
else cout << "Nie znaleziono procesu.\n";
return 0;
}
Nie chcialo mi sie komentowac. Jak czegos nie wiesz to pisz.