SendMessage apua

uuppi

Miten voi lähettää kokonaisen tekstipätkän SendMessage:lla ? Osaan vaan kirjottaa yksittäisiä kirjaimia peräkkäin

esim: kun painaa napista, ohjelma kirjottaa HELLO ja painaa enter.

procedure TMainForm.button1Click(Sender: TObject);
begin
SendMessage(uownd, WM_KEYDOWN, 72, 0);
SendMessage(uownd, WM_CHAR, 72, 0);
SendMessage(uownd, WM_KEYUP, 72, 0);
SendMessage(uownd, WM_KEYDOWN, 69, 0);
SendMessage(uownd, WM_CHAR, 69, 0);
SendMessage(uownd, WM_KEYUP, 69, 0);
SendMessage(uownd, WM_KEYDOWN, 76, 0);
SendMessage(uownd, WM_CHAR, 76, 0);
SendMessage(uownd, WM_KEYUP, 76, 0);
SendMessage(uownd, WM_KEYDOWN, 76, 0);
SendMessage(uownd, WM_CHAR, 76, 0);
SendMessage(uownd, WM_KEYUP, 76, 0);
SendMessage(uownd, WM_KEYDOWN, 79, 0);
SendMessage(uownd, WM_CHAR, 79, 0);
SendMessage(uownd, WM_KEYUP, 79, 0);
SendMessage(uownd, WM_KEYDOWN, VK_RETURN, 0);
SendMessage(uownd, WM_CHAR, VK_RETURN, 0);
SendMessage(uownd, WM_KEYUP, VK_RETURN, 0);
end;

miten vois lähettää kokonaisen tekstipätkän? tai käyttää noitten lukujen tilalla kirjaimia
niinku näin:

SendMessage(uownd, WM_KEYDOWN, 'H', 0);
SendMessage(uownd, WM_CHAR, 'H', 0);
SendMessage(uownd, WM_KEYUP, 'H', 0);
SendMessage(uownd, WM_KEYDOWN, 'E', 0);
SendMessage(uownd, WM_CHAR, 'E', 0);
SendMessage(uownd, WM_KEYUP, 'E', 0);
SendMessage(uownd, WM_KEYDOWN, 'L', 0);
SendMessage(uownd, WM_CHAR, 'L', 0);
SendMessage(uownd, WM_KEYUP, 'L', 0);
SendMessage(uownd, WM_KEYDOWN, 'L', 0);
SendMessage(uownd, WM_CHAR, 'L', 0);
SendMessage(uownd, WM_KEYUP, 'L', 0);
SendMessage(uownd, WM_KEYDOWN, 'O', 0);
SendMessage(uownd, WM_CHAR, 'O', 0);
SendMessage(uownd, WM_KEYUP, 'O', 0);

incompatible types 'Integer' and 'Char' :(

auttakaa joku :P

12

980

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • sdfuhsidhfiu

      minne sitä yrität lähettää? jos johonkin ikkunacontrolliin, edit boxiin tms. niin voit käyttää WM_SETTEXT-messagea

      • sfaggdsad

        Teen peliin Ultima Online eräänlaista työkalua joka sitten kirjottaa komentoja pelissä.
        En ole varma voiko peliin lähettää valmiita lauseita vaan pelkkiä kirjaimia. Jos ei voi niin haluisin kyllä tietää paremman keinon kun ladella SendMessageja pitkän liudan peräkkäin.


    • kimmo_erkki

      var
      src_data : TCopyDataStruct;
      ...
      SendMessage(TrgWnd, WM_COPYDATA, SrcWnd, Integer(@src_data));

      muista kuitenkin että struktuurissa yms str määrittelyssä, annat merkkijonolle sopivan pituuden, esmes:
      ...
      var
      str : String[32];
      ...

      ja voit myös käyttää sendmessagen sijaan SendMessageTimeout- funktiota, postmessage ei onnistu, koska tieto täytyy kopioida, mikä taasen post:n kanssa ei vetele...

      • Uuppi

        Ok, kiitos avusta.


      • uuppi

        Niin, että en saanut toimimaan sitä tuolla keinolla..


      • kimmo_erkki
        Uuppi kirjoitti:

        Ok, kiitos avusta.

        Postaan sulle myöhemmin toimivan esimerkin.. Jos haluut niin pistä se nykynen koodi (lähetys/vastaanotto) tänne ni varmaan tulee nopeasti apua...


    • chr_ja_ ord

      Toimiiko ord('h') tuossa Sendmessagessa?

    • erä;jorma

      "miten vois lähettää kokonaisen tekstipätkän? tai käyttää noitten lukujen tilalla kirjaimia"

      Voitan aina luoda oman merkistön! Omalla taulukolla tulkkaat viestit, mutta suosittelen opiskelemaan vähän syvemmältä tätä tietotekniikkaa, vaikka merkistöihin nämä nykyset systeemitkin periytyy...

    • Uuppi

      Keksin tällasen keinon.. ainakin vähän parempi kuin edellinen. procedure Say(kirjain: widechar); begin SendMessage(uownd, WM_KEYDOWN, ord(kirjain), 0); SendMessage(uownd, WM_CHAR, ord(kirjain), 0); SendMessage(uownd, WM_KEYUP, ord(kirjain), 0); end; procedure Enter(); begin SendMessage(uownd, WM_KEYDOWN, VK_RETURN, 0); SendMessage(uownd, WM_CHAR, VK_RETURN, 0); SendMessage(uownd, WM_KEYUP, VK_RETURN, 0); end; procedure TForm1.Button1Click(Sender: TObject); begin Say('h'); Say('e'); Say('l'); Say('l'); Say('o'); Enter; end;

      • vaikkapa näin

        Tuota voisi mahdollisesti kehittää vaikkapa näin: ... var s:string; i:integer; begin s:= 'hello'; i:=1; while i


      • uuppi
        vaikkapa näin kirjoitti:

        Tuota voisi mahdollisesti kehittää vaikkapa näin: ... var s:string; i:integer; begin s:= 'hello'; i:=1; while i

        joo tajusin jo ton


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Vesikin maksaa, miksei hengitysilma?

      Jatkuvasti itketään ettei ole rahaa mihinkään, mutta tilastojen mukaan rahaa on enemmän kuin koskaan, joten miksei asial
      Maailman menoa
      28
      1828
    2. Satuolennoista tarinointi ei kuulu peruskoulun tehtäviin

      Opetustunteja on muutenkin käytössä vain rajallinen määrä. Eli nämä satuhommat koulun ulkopuolelle vapaaehtoisiin harras
      Maailman menoa
      157
      1802
    3. Suomalainen perheenisä vaatii Suvivirren esittämisestä hyvityksiä

      Itse lapsena uskonnonopetuksesta vissiin traumoja saanut ihka suomalainen (!) perheenisä vaatii Espoon kaupungilta korva
      Maailman menoa
      350
      1545
    4. Mitä haluaisit

      Tehdä kaivattusi kanssa?
      Ikävä
      145
      1160
    5. Mies profiloin sinut

      Etsit täysin hallittavaa mutta samalla poikkeuksellista ihmistä. Etsit jotain mitä et koskaan tule saamaan.
      Ikävä
      213
      1154
    6. Lahkokasteen ja kristillisen kasteen erot

      Raamatun mukaan Kristillisessä yhdessä kasteessa Jumala pesee ja puhdistaa ihmisen sydämen ja poistaa perisynnin kirouks
      Kaste
      422
      1128
    7. Salainen kastekoulutus

      Millainen on helluntailainen kastekoulutus ja kauanko se kestää ?
      Kaste
      285
      995
    8. Känsäkoura ja hotelli

      Tietoa kuka ostanut?
      Kuhmo
      11
      995
    9. Heikki Paasosen Marita-vaimo jätti tunteikkaat jäähyväiset: "Tällä kertaa me..."

      Heikki Paasonen on naimisissa Marita Paasosen (os. Alatalo) kanssa ja heillä on kaksi pientä lasta. Nyt koitti aika jätt
      Suomalaiset julkkikset
      4
      979
    10. Pirkanlinna yleisötapahtuma

      Oli todella hyvä tilaisuus. Ja EERO. L. Aivan mahtava tyyppi. Veti rennosti ja asiallisesti. Ja yleisöltä hyviä kysymyks
      Ähtäri
      49
      938
    Aihe