PostMessage() co jest źle?

0

witam.wypociłem taki oto kod, ale mi nie działa i nie wiem dlaczego. może ktoś z Was będzie wiedział

#include <windows.h>
#include <conio.h>

using namespace std;

int main()
{
	
    HWND hClient = FindWindow("notepad","a.txt - Notatnik");
    if(hClient)
    {
	SendMessage(hClient , WM_KEYDOWN, 0x0D, 0);
        SendMessage(hClient , WM_KEYUP,    0x0D, 0);
    }
    else
    {
	MessageBox(0,"nie","nie",NULL);
    }
    getch();
    return 0;
} 

z góry dzięki za pomoc

0

FindWindow znajdzie ci okno główne aplikacji .
Komunikaty musisz kierować do okna kontrolki z tekstem ,więc trzeba jej poszukać .

#include <windows.h>


int main()
{

    HWND hClient = FindWindow("notepad","a.txt - Notatnik");

    if( NULL == hClient ) {  MessageBox(0,"Nima","Nima",NULL); }


    HWND next = 0 ;
    char classname[255];

    while ( next = FindWindowEx(hClient,next,NULL,NULL))
    {
        GetClassName(next,classname,254);

        if(0 == lstrcmp("Edit",classname))
        {
       // SendMessage(next , WM_KEYDOWN, 0x0D, 0);
       // SendMessage(next , WM_KEYUP,    0x0D, 0);
        SendMessage(next , WM_SETTEXT,0, (LPARAM) "xxx");
        SendMessage(next , WM_CHAR,'A', 0);
        SendMessage(next , WM_CHAR,'B', 0);

        MessageBox(0,"Ok","Ok",NULL);
        break ;

        }
    }

    return 0;
}

takie tam ..
http://cpp0x.pl/forum/temat/?id=3802

0
dzejo napisał(a)

FindWindow znajdzie ci okno główne aplikacji .
Komunikaty musisz kierować do okna kontrolki z tekstem ,więc trzeba jej poszukać .

#include <windows.h>


int main()
{

    HWND hClient = FindWindow("notepad","a.txt - Notatnik");

    if( NULL == hClient ) {  MessageBox(0,"Nima","Nima",NULL); }


    HWND next = 0 ;
    char classname[255];

    while ( next = FindWindowEx(hClient,next,NULL,NULL))
    {
        GetClassName(next,classname,254);

        if(0 == lstrcmp("Edit",classname))
        {
       // SendMessage(next , WM_KEYDOWN, 0x0D, 0);
       // SendMessage(next , WM_KEYUP,    0x0D, 0);
        SendMessage(next , WM_SETTEXT,0, (LPARAM) "xxx");
        SendMessage(next , WM_CHAR,'A', 0);
        SendMessage(next , WM_CHAR,'B', 0);

        MessageBox(0,"Ok","Ok",NULL);
        break ;

        }
    }

    return 0;
}

takie tam ..
http://cpp0x.pl/forum/temat/?id=3802

dzięki :) o to mi chodziło

mam tylko jeszcze pytanie. czy używanie tej funkcji jest takie samo jakbym sam naciskał klawisz. czyli np PostMessage(hwnd , WM_CHAR , 'C' , 0) i to jakbym sam naciskał "c" to w systemie dzieje się to samo? jak to działa?

1 użytkowników online, w tym zalogowanych: 0, gości: 1