[GUIDA] Inviare input a DirectX e OpenGL

« Older   Newer »
  Share  
CAT_IMG Posted on 23/4/2013, 18:46     +1   +1   -1

So implementare gli object

Group:
Admin
Posts:
1,215
Reputazione:
+150

Status:


...guida da scrivere...

Ecco la funzione:
CODICE
#cs
               SendLow($bVirtualKey, $bScanCode, $iMode)
       
               Adds keyboard input to application's queue at driver level.
               Needs equal or lower privileges than target app.
               
               Parameters:
                       $bVirtualKey:        Virtual Keycode of the key to send.
                       $bScanCode:                Hardware scan code of the key to send.
                       $iMode:                        Mode of operation;
                                                               0 = press and release
                                                               1 = press
                                                               2 = release
               
               Made by dd <admin@th3game.eu>
#ce
Func SendLow($bVirtualKey, $bScanCode, $iMode = 0)
       If ($iMode = 0) Or ($iMode = 1) Then
               DllCall("user32.dll", "none", "keybd_event", "BYTE", $bVirtualKey, "BYTE", $bScanCode, "DWORD", 0, "ULONG_PTR", 0)
       EndIf
       If ($iMode = 0) Or ($iMode = 2) Then
               DllCall("user32.dll", "none", "keybd_event", "BYTE", $bVirtualKey, "BYTE", $bScanCode, "DWORD", 2, "ULONG_PTR", 0)
       EndIf
EndFunc


Per i Virtual Key Codes, utilizzeremo la tabella disponibile a questo link, è la stessa che trovate nella documentazione di _IsPressed().

Per quanto riguarda lo Scan Code invece, ci riferiremo alla colonna "Break" di queste tabelle:
kbd1
kbd2

...guida da scrivere...




Come potete vedere, la guida non è ancora una guida, ma visto che serviva con urgenza ho iniziato a postare la funzione.
Per chi tra voi è assetato di conoscenza, ci rivedremo dopo che avrò completato la guida :asd:
 
Top
thanzeon
CAT_IMG Posted on 24/4/2013, 12:47     +1   -1




Bravo! XD
 
Top
CAT_IMG Posted on 25/4/2013, 20:34     +1   +1   -1

So implementare gli object

Group:
Admin
Posts:
1,215
Reputazione:
+150

Status:


CITAZIONE (Pyromi @ 24/4/2013, 17:00) 
Ma io cosa dovrei scrivere quindi al posto del normale Send in questo caso? E' DirectX...

CODICE
$Title = "CompitoA"
$WPos=WinGetPos($Title, "CompitoA")
While 1
  Global $array[2];1-2-3 Freccia Destra
  $array[0] = pixelgetcolor(575, 463)
  $array[1] = pixelgetcolor(560, 469)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send("{right}")
EndIf
 
  Global $array[2];1-2-3 Freccia Sinistra
  $array[0] = pixelgetcolor(567, 463)
  $array[1] = pixelgetcolor(559, 470)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send("{left}")
  sleep(300)
EndIf
 
  Global $array[2];1-2-3 Freccia Su
  $array[0] = pixelgetcolor(571, 458)
  $array[1] = pixelgetcolor(563, 467)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send("{up}")
EndIf

  Global $array[2];1-2-3 Freccia Giù
  $array[0] = pixelgetcolor(571, 458)
  $array[1] = pixelgetcolor(563, 473)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send("{down}")
EndIf

  Global $array[2];4 Freccia Destra
  $array[0] = pixelgetcolor(590, 461)
  $array[1] = pixelgetcolor(575, 469)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{right}")
EndIf

  Global $array[2];4 Freccia Sinistra
  $array[0] = pixelgetcolor(584, 461)
  $array[1] = pixelgetcolor(574, 470)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{left}")
EndIf
 
  Global $array[2];4 Freccia Su
  $array[0] = pixelgetcolor(587, 457)
  $array[1] = pixelgetcolor(578, 467)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{up}")
EndIf

  Global $array[2];4 Freccia Giù
  $array[0] = pixelgetcolor(586, 458)
  $array[1] = pixelgetcolor(578, 473)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{down}")
EndIf

  Global $array[2];5 Freccia Destra
  $array[0] = pixelgetcolor(614, 461)
  $array[1] = pixelgetcolor(599, 469)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{right}")
EndIf

  Global $array[2];5 Freccia Sinistra
  $array[0] = pixelgetcolor(608, 461)
  $array[1] = pixelgetcolor(598, 470)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{left}")
EndIf
 
  Global $array[2];5 Freccia Su
  $array[0] = pixelgetcolor(611, 457)
  $array[1] = pixelgetcolor(602, 467)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{up}")
EndIf

  Global $array[2];5 Freccia Giù
  $array[0] = pixelgetcolor(610, 458)
  $array[1] = pixelgetcolor(602, 473)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{down}")
EndIf

  Global $array[2];6 Freccia Destra
  $array[0] = pixelgetcolor(644, 461)
  $array[1] = pixelgetcolor(629, 469)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{right}")
EndIf

  Global $array[2];6 Freccia Sinistra
  $array[0] = pixelgetcolor(638, 461)
  $array[1] = pixelgetcolor(628, 470)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{left}")
EndIf
 
  Global $array[2];6 Freccia Su
  $array[0] = pixelgetcolor(641, 457)
  $array[1] = pixelgetcolor(632, 467)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{up}")
EndIf

  Global $array[2];6 Freccia Giù
  $array[0] = pixelgetcolor(640, 458)
  $array[1] = pixelgetcolor(632, 473)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{down}")
EndIf

  Global $array[2];7 Freccia Destra
  $array[0] = pixelgetcolor(692, 461)
  $array[1] = pixelgetcolor(677, 469)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{right}")
EndIf

  Global $array[2];7 Freccia Sinistra
  $array[0] = pixelgetcolor(686, 461)
  $array[1] = pixelgetcolor(576, 470)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{left}")
EndIf
 
  Global $array[2];7 Freccia Su
  $array[0] = pixelgetcolor(689, 457)
  $array[1] = pixelgetcolor(680, 467)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{up}")
EndIf

  Global $array[2];7 Freccia Giù
  $array[0] = pixelgetcolor(688, 458)
  $array[1] = pixelgetcolor(680, 473)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{down}")
EndIf

  Global $array[2];8 Freccia Destra
  $array[0] = pixelgetcolor(753, 461)
  $array[1] = pixelgetcolor(738, 469)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{right}")
EndIf

  Global $array[2];8 Freccia Sinistra
  $array[0] = pixelgetcolor(747, 461)
  $array[1] = pixelgetcolor(737, 470)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{left}")
EndIf
 
  Global $array[2];8 Freccia Su
  $array[0] = pixelgetcolor(750, 457)
  $array[1] = pixelgetcolor(741, 467)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{up}")
EndIf

  Global $array[2];8 Freccia Giù
  $array[0] = pixelgetcolor(749, 458)
  $array[1] = pixelgetcolor(741, 473)
If ($array[0] = 0) And ($array[1] = 0) Then
  Send ("{down}")
EndIf
Wend


Rispondimi il prima possibile, dopodomani devo portare questo compito al professore :/
Grazie mille in anticipo ^^

Spero tu stia scherzando! Più che scriverti una guida cosa devo fare?
Se mi rispondi così, allora significa che non hai letto neppure una guida di AutoIt...
E in più a qualche utente del forum è sorto qualche dubbio riguardo all'apparizione del titolo della finestra di un certo gioco nello script che hai postato nella richiesta d'aiuto.
 
Top
2 replies since 23/4/2013, 18:46   105 views
  Share