Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[vb.net]sendkeys, toets vasthouden?

Pagina: 1
Acties:
  • 328 views sinds 30-01-2008
  • Reageer

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10 22:48
hallo allemaal, ik heb weer eens een probleempje.

ik ben bezig met een programma, die toetsaanslagen naar een spel moet sturen (nee, geen bot voor WoW ofzo, een soort virtuele h-shifter voor racespellen).

op zich geen probleem, maar voor sommige spellen (live for speed onderandere) moet de toets van de versnelling, vastgehouden worden.

daar ga ik dus de mist mee in.

ik kan zonder problemen
Visual Basic:
1
sendkeys.send("q")

neerzetten, maar ik kom er maar niet uit hoe een toets vastgehouden kan worden.

heb al flink gezocht op het internet, en kwam langs de keybd_event API, dat lijkt een oplossing te zijn, maar het zijn nogal wat toetsen die je dan moet definiëren in je code, aangezien de gebruiker van het programma, de toetsen kan aanpassen.

is er nog een andere oplossing dan de keybd_event api?

de autoITX3.dll file (www.autoitscript.com) is ook geen oplossing, die heb ik in een oude versie van m'n programma gebruikt, maar dat wilde nog wel eens problemen geven op andere pc's.

ik gebruikt trouwens vb.net 2003.

bvd.
Nick

  • Basti504
  • Registratie: Februari 2005
  • Laatst online: 30-11 20:31

Basti504

Niet de enige, wel de echte.

Misschien een omweg, een timer die elke X milieseconden die toets "indrukt". Ik weet niet hoe gevoelig een game is. Ik gebruik het ook wel eens voor dingen die continu gedraait moeten worden of het netjes is weet ik niet :o

...


  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10 22:48
was het maar zo makkelijk, heb het allang geprobeerd, zelfs met 1ms vertraging, (in andere programmeertaal welliswaar, maar spel is erg gevoelig), resultaat: pc die half onwerkbaar is :P en een auto die nog steeds uit z'n versnelling schiet.

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10 22:48
damn, ik wil weer eens iets hoor :P
niemand die een idee heeft ?

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 19-10 00:17
Dat heb ik ooit eens gedaan met user32.dll in visual basic 6, daarmee kun je een toets indrukken en lostlaten.
Kijk ook hier.
Hoe je dat implementeert in visual basic weet ik zo even niet.

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.


  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10 22:48
hmm, kom er nog niet helemaal uit hoe ik dit in vb.net kan zetten, maar dit lijkt wel op een mooie oplossing ;)

bedankt :)

  • Japidoff
  • Registratie: November 2001
  • Laatst online: 18-11 18:58
5x shift indrukken!

(plaktoetsen)

gang is alles


  • enriqueeeee
  • Registratie: Oktober 2001
  • Laatst online: 11:38

enriqueeeee

vanila coke kicks ass

Kun je niet makkelijker gewoon een paperclip of pen in je keyboard zetten ?

Phreak schopt kont, Grrrrrene ook ;)


  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10 22:48
hmm, is een idee, maar om dat nou in de readme te zetten :P

to put the car into gear, take a paperclip, and stick it between the key to press, and the key next to it.
---

hmm, niet erg gebruiksvriendelijk :P

maar goed, ga vanavond even verder zoeken, die sendinput methode lijkt op zich goed te zijn, nu nog in m'n programma zien te krijgen.

  • SeatRider
  • Registratie: November 2003
  • Laatst online: 30-11 08:03

SeatRider

Hips don't lie

Clique

[ Voor 6% gewijzigd door SeatRider op 02-07-2006 13:38 ]

Nederlands is makkelijker als je denkt


  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10 22:48
ziet er handig uit, thnx ;)

om een of andere reden blokkeert hij nog geen toetsen bij mij, in dat voorbeeld uit die site, maar waarschijnlijk moet ik de boel nog even goed doornemen ;)

thnx

  • JochemK
  • Registratie: Maart 2003
  • Laatst online: 25-11 10:41
Kun je niet iets met een onkeydown / onkeyup doen? Ik ken vb.net niet, maar in borland producten (c++ builder / delphi) heb je die events gewoon, en zou je die kunnen gebruiken.

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10 22:48
die heb je ook in vb.net, maar dat is juist het detecteren van een toets aanslag.

wat ik wil, is met vb.net een toets ingedrukt houden, en loslaten op het moment dat de gebruiker dat wil.

mijn programma komt hier op neer:

je hebt een joystick, die gebruik je als shifter voor racespellen.

zet de joystick in een versnelling (ik zeg even 1e versnelling, linksboven dus), en de knop die de gebruiker heeft ingesteld, wordt ingedrukt, en blijft ingedrukt.

pas als de joystick uit het veld gehaald wordt, wat ik daar heb gemaakt, wordt de toets losgelaten.

dit deed ik vroeger met de autoItx3.dll, maar dat leverde incompatibiliteitsproblemen (scrabble, 3x woordwaarde :P) op op sommige pc's.

die sendinput methode zou moeten werken, dat moet ik gewoon nog even doorspitten, misschien doe ik iets verkeerd.
Pagina: 1