Skocz do zawartości

Przesyłanie zmiennych


Wolf

Recommended Posts

1.Najpierw musisz zdobyc uchwyt okna(aplikacji...) do ktorej bedziesz wysylal swoja zmienna. Tworzysz sobie zmienna typu HWND i za pomoca funkcji FindWindow("klasaokna", NULL), ktora zwraca uchwyt do okna, ktorego nazwa klasy to pierwszy parametr, a nazwa okna to drugi parametr. Potem lecimy dalej...

2.Maja juz uchwyt okienka mozesz do niego wysylac rozne komunikaty. Tworzysz sobie teraz jakas zmienna, ktora chcesz przeslac. Teraz czas na wyslanie :) SendMessage(uchwyt, WM_COMMAND, (WPARAM)666, (LPARAM)&naszazmienna); . Chyba nie trzeba tlumaczyc :P Jako wparam wysylasz "znak rozpoznawczy", a jako lparam adres zmienej.

3.W programie, do ktorego wysylasz zmienna, musisz obsluzyc w komunikacie WM_COMMAND (lub w innym, zalezy, jaki wybrales w sendmessage). Sprawdzasz, czy wParam == 666, i jesli tak, to bawisz sie swoja zmienna :). Aha! Pamietaj, ze masz jej adres, wiec musisz sobie stworzyc wskaznik na jakis typ i przypisac mu adresik, np: int *cos; cos = (int*)lParam .

P.S. Jestem poczatkujacy i pisalem z pamieci, wiec moze nie wszystko dzialac. Wiec jakby co, nie miej do mnie zalu ;).

Link do komentarza
Udostępnij na innych stronach

Fiuu przepraszam Cie bardzo! Po kilkunasto minutowej meczarni doszedlem do wniosku jak przeslac tekst :D! Moze ci sie przyda. Oto kod(po wiecej szczegolow poczytaj o funckjach Atom*):

To w aplikacji, do ktorej slesz:

case WM_COMMAND:
if(wParam == 666)
{
    LPTSTR tekst;
    GlobalGetAtomName((ATOM)lParam, tekst, 20);
    strcat(tekst, "\0");
    MessageBox(hwnd, tekst, "Error666", MB_OK);
}
break;

A to w aplikacji wysylajacej:

    HWND hwnd;
    ATOM atomek;
    LPTSTR tekst;
    
    hwnd = FindWindow("hhh", NULL);
    tekst = "Czesc!";
    atomek = GlobalAddAtom(tekst);
    
    SendMessage(hwnd, WM_COMMAND, (WPARAM)666, (LPARAM)atomek);
Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...