Avatar billede zaqas Nybegynder
01. december 2000 - 18:22 Der er 20 kommentarer

Tast i C++ Builder...

Hvis nu jeg vil sende f.eks. et Enter-Tryk til et Program / Vindue... - Hvordan skal jeg så gøre det? - (Jeg er ikke særlig erfaren... - so be gentle... :)
Avatar billede lbs Nybegynder
03. december 2000 - 02:50 #1
ehm, har du et handle til dit vindue?
Jeg kender intet til builder, men windows bruger handles, og hvis du kan finde ud af
skaffe handlet til det vindue du vil sende til, så skulle det vist ikke være noget problem

Funktionen hedder SendMessage


??
Avatar billede shaft Nybegynder
03. december 2000 - 16:16 #2
Kan du uddybe det lidt mere
Avatar billede zaqas Nybegynder
03. december 2000 - 17:27 #3
F.eks. - trykke på enter i en dialogbox eller skrive en addresse i explorer...
Avatar billede lbs Nybegynder
04. december 2000 - 00:45 #4
ehh du er vist alt for bredt på den...
men SendMessage kan vist faktisk alt det du efterspørger
Avatar billede zaqas Nybegynder
04. december 2000 - 01:29 #5
Ok... - men jeg kan sku ikke få det til at virke... - kan du give et EX. på hvordan den skal bruges, hvis man vil sende et \"a\" til HWND_BROADCAST ???
Avatar billede zaqas Nybegynder
04. december 2000 - 01:30 #6
Den besked der skal sendes er unsigned int...
Avatar billede shaft Nybegynder
04. december 2000 - 11:31 #7
Prøv følgende tutorial, det kan måske hjælpe dig.

http://sparc.ee.itb.ac.id/~metra/manuals/control/cbuilder/winapi1/keypress.pdf
Avatar billede zaqas Nybegynder
04. december 2000 - 20:55 #8
Shaft > nope... - det var da vist til at læse taster med... - ihvertfald det jeg læste... - har du et andet bud?
Avatar billede zaqas Nybegynder
04. december 2000 - 20:58 #9
lbs > kunne du prøve at give et exempel???
Avatar billede shaft Nybegynder
06. december 2000 - 00:28 #10
Men så jeg er jeg måske ikke helt med!!!
Er ENTER ikke en tast?
Avatar billede ultik Nybegynder
16. december 2000 - 00:41 #11
enter er en tast jo, dens ASCII kode er 13....

Du skal som der er blevet nævnt sende trykket med SendMessage, og så skal du nok have fat i noget lignende BM_KEYDOWN, og så sende 13 som parameter............
Avatar billede ultik Nybegynder
16. december 2000 - 00:44 #12
og du skal forresten ikke nøjes med handlet til vinudet, du skal ind og finde handlet på den control der skal modtage tastetrykket, dette klares med GetWindowEx, så vidt jeg husker.....

der skal du blot specificere det der kommer ud af GetWindowTextEx på den control, often dens caption hvis den har en, samt en class, en ganske anmindelig knap hedder Button, men så stopper det også, for at finde classnamet skal du have et spy program der lister samtlige win processer......
Avatar billede ghandi1346 Nybegynder
16. december 2000 - 18:06 #13
//---------------------------------------------------------------------------

void __fastcall TUIMainMenu::BtnNewClick(TObject *Sender)
  {
      // lad os antage at du har en klasse UIMainMenu, som indeholder en botton BtnNew (TButton *BtnNew;
  }
//---------------------------------------------------------------------------


//du har selvfølgelig ligeledes en function protoype i din header fil:

void __fastcall BtnNewClick(TObject *Sender);

Det du skal bruge er en eventhandler for keypress (jeg tror den hedder OnKeypress, men det er også liggyldigt, for du kan tilføje det manuelt også:

//---------------------------------------------------------------------------
//denne her function skal ligge i din UIMainMenu.cpp

void __fastcall TUIMainMenu::BtnNewKeyPress(TObject *Sender, char &Key)
  {
 
      if (Key==0x0d)//enter
        BtnNewClick(0);
      if (Key==0x1b)//eacape
        return;

  }
//---------------------------------------------------------------------------



du har ligledes bruge for en eventhandler-function-prototype i din header fil under kateg. _published:    // IDE-managed Components
og den ser såden ud:
void __fastcall BtnNewKeyPress(TObject *Sender, char &Key);

65 point, tak:)
Avatar billede ultik Nybegynder
16. december 2000 - 18:16 #14
den der virker kun med egne applikationer, jeg forstod det som om det skulle virke med f.eks. word eller et andet program
Avatar billede ghandi1346 Nybegynder
16. december 2000 - 20:43 #15
Ja, ultik du har ret i at det virker med egne applikationer, men er det ikke også det der er tale om her, Zaqas?! Det kan være du skal forklare dig lidt mere præcist :)
Er der tale om en komponent(f.eks. button eller dialog box...) i din egen Builder-applikation, som skal have en keypress handler på? så er mit svar vist nok rigtigt.
Avatar billede ultik Nybegynder
17. december 2000 - 15:26 #16
jeg forstod det bare som at man skulle sende et enter tryk til en anden applikation, hvilket jeg må sige er mere nyttigt, i ens egne kan man jo bare kalde den funktion der alligevel bliver udført når trykket bliver opfattet, eller man kan bare tilføje ascii koden 13 ( bedst med 13 + 10 ) til et tekstfelt hvis det er det man vil......
Avatar billede zaqas Nybegynder
17. december 2000 - 22:07 #17
Lad os nu se... - det skulle være til f.eks en dialogbox, eller et login felt på en Hjemmeside... - det var det der var meningen... - men jeg skal lige have kigget svarene igennem først... - jeg smider nogle flere points på senere... :) - som tak for hjælpen...
Avatar billede alquesm Nybegynder
24. december 2000 - 14:18 #18
Ehmmm.....først må jeg tilstå at jeg jeg LIGE nu for 5 minutter siden har tilmeldt mig Eksperten.dk, så jeg aner faktisk ikke endnu hvordan det virker, og for det andet har jeg ikke lige min builder installeret da jeg lige har formateret. Men hvis du skal tjekke om brugeren indtaster f.eks enter på en form, så brug den event som hedder noget i retning af ON_KEYDOWN og så tjek om det er en enter tast! Det er der en funktion til at teste....kan bare ikke lige huske hvad den hedder!

Håber at det kan hjælpe hvis dit problem ikke er løst endnu! :)
Avatar billede tuxen Nybegynder
03. januar 2001 - 14:13 #19
Hvis du vil lave en robot der kan virke som en bruger for dig på alverdens hjemmesider så behøver du kun at kende den enkelte sides struktur.
Du behøver ikke ha fat i explorer.
Gå ind på siden og se hvad udvikleren har kaldt tingene på siden, hvad formens navn er hvad dens inputs navne er o.s.v.
Derefter bruger du builderens http komponent til at sende en http request med de værdier du vil tilknytte din querystring.
www.site.dk?navn=john&id=12&passw=connie&login=1234

Så vil serevren svare tilbage, og du vil kunne parse denne respons for at finde ud af om du nu eksempelvis er logget ind eller ej.
venlig hilsen Thue
Avatar billede kamikaze Nybegynder
18. juni 2001 - 02:12 #20
zaqas >> Du bliver vist nødt til at uddybe hvad det er du vil!!!! Giv en KONKRET beskrivelse
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester