webForumDet fria alternativet

skicka knapptryckningar

13 svar · 302 visningar · startad av Rosenson

RosensonMedlem sedan sep. 200257 inlägg
#1
macroloop = SendMessage(handle, WM_KEYDOWN, VK_F1, 1)

har sådär nu för att skicka F1 till ett annat fönster (handle), funkar icke
why?

nikoMedlem sedan juni 20022 599 inlägg
#2

Hittade lite exempelkod på nätet som liknar din och sägs funka fast sista parametern är där 0. Har du provat det?

Marcus EMedlem sedan maj 20021 466 inlägg
#3

Läs i dokumenationen för WM_KEYDOWN. Där står bl.a.:
"The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed."

Detta innebär att meddelandet postas med PostMessage när en tangent är nedtryckt. Om meddelandet postas fångas det upp i meddelande-loopen innan det eventuellt skickas vidare till rätt fönster. I meddelande-loopen brukar hantering av snabbtangenterna hanteras. Det innebär att hanteringen kommer att utebli om meddelandet skickas direkt till fönstret med SendMessage.

Prova alltså att byta ut SendMessage mot PostMessage. Om inte det fungerar kan du undersöka om du har rätt handle etc.

RosensonMedlem sedan sep. 200257 inlägg
#4

niko skrev:

Hittade lite exempelkod på nätet som liknar din och sägs funka fast sista parametern är där 0. Har du provat det?

jo, har provat

Marcus E skrev:

Läs i dokumenationen för WM_KEYDOWN. Där står bl.a.:
"The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed."

Detta innebär att meddelandet postas med PostMessage när en tangent är nedtryckt. Om meddelandet postas fångas det upp i meddelande-loopen innan det eventuellt skickas vidare till rätt fönster. I meddelande-loopen brukar hantering av snabbtangenterna hanteras. Det innebär att hanteringen kommer att utebli om meddelandet skickas direkt till fönstret med SendMessage.

Prova alltså att byta ut SendMessage mot PostMessage. Om inte det fungerar kan du undersöka om du har rätt handle etc.

tror jag har provat byta ut mot PostMessage några gånger och det funkade inte bättre.
rätt handle det har jag.

det var en annan som sa en sak till mig på icqn att knapptryckningen bara skickas till fönstret men processeras inte av windows (nå sånt), så då skulle det inte gå att t.ex. skicka knappen F1 till Microsoft Word fönster och då öppna Words hjälp på det sättet...

vet inte riktigt hur jag ska lösa detta så hjälp mottages :)

BeatboxMedlem sedan okt. 20013 217 inlägg
#5

Tänk på att sendmessage är synkron medans postmessage är asynkron.

RosensonMedlem sedan sep. 200257 inlägg
#6

kan du skriva det där på svenska? :D

BeatboxMedlem sedan okt. 20013 217 inlägg
#7

:) sendmessage väntar på en kvittens från mottagaren medans postmessage bara skickar iväg meddelandet och fortsätter exekveringen sedan.

RosensonMedlem sedan sep. 200257 inlägg
#8

okej, då ska jag experimentera lite mer med postmessage då det verkar passa mig bättre...

RosensonMedlem sedan sep. 200257 inlägg
#9

började kolla på postmessage då som tydligen skulle funka bättre och har kommit en bit på väg...

definierar...

Const WM_CLOSE = &H10
PostMessage Handle, WM_CLOSE, 0&, 0&

(WM_CLOSE koden fick jag från #visualbasic på QuakeNet)

då funkar det utmärkt, fönstret stängs, så rätt handle har jag ju jämt då iaf.

men får det fortfarande inte att fungera när jag ska skicka knapptryckningar, :/
för om jag t.ex. skickar F1 till Microsoft Word så ska ju hjälpen ploppa upp men det händer inte, :(

vill veta hur jag ska definiera knapparna, gärna om nån har en lista så vore det fint...
kan inte så jättemycket VB, mest syntaxen sen när jag har kodat i ASP, så de saker som är enbart för VB och inte ASP kan jag nästan inget om (kan ha sagt detta förut :-)

sen, när jag har lyckats definiera knapparna, hur ska PostMessage raden se ut då?
så här ungefär?

PostMessage Handle, WM_F1, 0&, 0&
BeatboxMedlem sedan okt. 20013 217 inlägg
#10

Meddelandet borde vara WM_KEYDOWN och någon av de sista parametrarna borde vara ASCII-värdet på knappen som trycktes ned.

RosensonMedlem sedan sep. 200257 inlägg
#11

okey, hur får jag reda på ASCII värdena? :)

RosensonMedlem sedan sep. 200257 inlägg
#12

kan ju meddela att jag har fått bukt på mina problem hittade en fin lista på hur allting skulle definieras och nu funkar det finfint, :)
tack för all hjälp, =)

kommer att återkomma med en ny tråd snart troligen, lol
:D

Marcus EMedlem sedan maj 20021 466 inlägg
#13

Vad var problemet?

RosensonMedlem sedan sep. 200257 inlägg
#14

jag fick den inte att skicka knapptryckningarna, men det var för att allting inte var definierat

http://216.26.168.92/vbapi/ref/other/virtualkeycodes.html

sidan som rädda mig, =D

132 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)