Fenstertitel eines Spiels rausbekommen

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Centralteadorus.

    Fenstertitel eines Spiels rausbekommen

    Moin Community,

    Wollte mal Fragen wie man denn Fenstertitel eines Spieles rausbekommt, sicher wurde die frage schon X mal gestellt, bin auch mit Links die mich ebendfalls zum erfolg führen sehr dankbar.


    MfG Centralteadorus

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Der Fesnster Titel ist der Name des Programms also was oben drüber steht?

    Weil habe eigentlich gedacht das es sowas ist wie 0x32a04 oder so :D
    Aber okay ich bedanke mich um die Antwort :D
    So mein Problem ist halt nur das ich gerne möchte das die Figur in einem Spiel "W" drückt (nach vorne lauft) und das funzt nicht der Packt das Spiel im Vordergrund aber er Greift nicht direkt auf das Spiel zu und drückt "W" wüsstet ihr da eine Lösung?

    *Nach so kurzer Zeit bitte die Bearbeiten-Funktion benutzen!*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Dachte es ist für Dich einfacher nach dem ProcessNamen das Fenster zu finden als mit der WinAPI alle Fenster zu durchsuchen. Hat das jetzt wenigstens funktioniert , falls ja poste doch Deinen Code (kann ja nicht so lang sein).

    Wie simulierst Du dann die Tasteneingabe ? Geht vermutlich nicht mit SendKeys sondern hier tatsächlich nur mit keybd_event. Andere hatten dieselben Probleme, siehe z.B. hier
    Stimmt mein Code ist nicht besonders Groß, hoffe ihr könnt mir Helfen, suche schon lange Antwort auf diese Frage.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Timer1.Start()
    4. End Sub
    5. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    6. AppActivate("FLYFF")
    7. My.Computer.Keyboard.SendKeys("W")
    8. End Sub
    9. End Class
    Du brauchst das:

    VB.NET-Quellcode

    1. Public Declare Auto Function keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Int32, ByVal dwExtraInfo As Int32) As Boolean

    und fürs drücken und wieder loslassen :

    VB.NET-Quellcode

    1. '------------------------------------------
    2. '-- KeySend ---
    3. '------------------------------------------
    4. Public Shared Sub KeySend(ByVal vKey As Integer)
    5. keybd_event(CByte(vKey), 0, 0, 0)
    6. Sleep(20)
    7. keybd_event(CByte(vKey), 0, 2, 0)
    8. Sleep(50)
    9. End Sub


    Virtual-Key Auflistung ist hier
    Okay die C&P version bringt mich zur folgenden Fehlermeldung, Sleep wurde nicht deklariert, mir ist bewusst das ich es dann deklarieren soll denke mal mit einem Timer, die frage ist nur wie?

    & 2 Frage soll ich das in mein Bestehendes Programm einfügen oder wie Lauft das?
    Ich bin dir sehr dankbar das du mir Helfen möchtest und ich denke mal du gehst davon aus das ich schon bischen was kann, ich habe mir mal ein Buch gekauft das aber noch nicht durchgeakert, tuh mir den gefallen und geh nicht davon aus ich wäre gut :o, ich zeig dir mal mein Fehlerhaften code und wäre dir sehr sehr dankbar wenn du ihn soweit erweiters das die C&P Funktion keine Fehler mehr darstellt, und natürlich damit ich was lerne die einzelnden begriffe erklährst, ich weis es ist viel verlangt ...

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public Declare Auto Function keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Int32, ByVal dwExtraInfo As Int32) As Boolean
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Timer1.Start()
    5. End Sub
    6. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    7. End Sub
    8. Public Shared Sub KeySend(ByVal vKey As Integer)
    9. AppActivate("FLYFF")
    10. keybd_event(CByte(vKey), 0, 0, 0)
    11. Sleep(20)
    12. keybd_event(CByte(vKey), 0, 2, 0)
    13. Sleep(50)
    14. End Sub
    15. End Class
    Dann leg das Buch mal nachts unter Dein Kopfkissen, das hat bei mir in Französisch immer geholfen. Versuchs mal so:

    VB.NET-Quellcode

    1. Imports System.Threading.Thread
    2. Public Class Form1
    3. '-------------------------------
    4. '-- Public Members ----
    5. '-------------------------------
    6. Public Declare Auto Function keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Int32, ByVal dwExtraInfo As Int32) As Boolean
    7. '******************************************************************
    8. '**** METHODS *******
    9. '******************************************************************
    10. Public Shared Sub KeySend(ByVal vKey As Integer)
    11. keybd_event(CByte(vKey), 0, 0, 0)
    12. Sleep(20)
    13. keybd_event(CByte(vKey), 0, 2, 0)
    14. Sleep(50)
    15. End Sub
    16. '******************************************************************
    17. '**** EVENTHANDLER *******
    18. '******************************************************************
    19. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    20. Timer1.Start()
    21. End Sub
    22. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    23. AppActivate("FLYFF")
    24. KeySend(57)
    25. End Sub
    26. End Class

    Der Fenstertitel sollte dann aber wirklich "FLYFF" heissen ...
    Das Buch liegt immer unter meinem Kissen :D, so zum Programm, es ist der gleiche Effekt wie bei meiner Version, es Passiert rein Garnix im spiel, das heisst die Taste kommt nicht zum Spiel durch, und der Fenstertitel ist 100% FLYFF^^ das weis ich :D

    Ja also deine Version brachte mir bisher nicht mein Gewünschten erfolg :(