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?
13 svar · 302 visningar · startad av Rosenson
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?
Hittade lite exempelkod på nätet som liknar din och sägs funka fast sista parametern är där 0. Har du provat det?
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.
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 :)
Tänk på att sendmessage är synkron medans postmessage är asynkron.
kan du skriva det där på svenska? :D
:) sendmessage väntar på en kvittens från mottagaren medans postmessage bara skickar iväg meddelandet och fortsätter exekveringen sedan.
okej, då ska jag experimentera lite mer med postmessage då det verkar passa mig bättre...
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&
Meddelandet borde vara WM_KEYDOWN och någon av de sista parametrarna borde vara ASCII-värdet på knappen som trycktes ned.
okey, hur får jag reda på ASCII värdena? :)
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
Vad var problemet?
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