DirectX8 Problem bei einem Spiel unter Windows 10 (1709)



  • Einen Guten Abend.

    Ich habe ein relativ altes Spiel (MMO) was noch mit DirectX8 konstruiert ist.
    Seit Windows10 Fall Creator Update (1709) besteht jedoch das Problem, das wenn ich die Rechte Maustaste gedrückt halte und bewege, sich der Char nicht mehr drehen lässt. Windows hat in dem Updatre wohl etwas an der API verändert.

    Nun habe ich eine DLL mit C++ programmiert und mit der Detours-Bibliothek die SetCursorPos-Methode gehookt.

    Wenn ich in dieser nur "return true;" zurückgeben lasse, funktioniert es einwandfrei, jedoch ist der Mauscursor beim Loslassen irgendwo, jedoch nicht wo er vorher war.

    Ein Source von dem alten Spiel habe ich nicht.
    Es müsste sich also mit einem DLL-Fix irgendwie beheben lassen.

    Kann evtl. jemand helfen oder Hinweise bzw. Ratschläge geben ?

    Viele Grüße


  • Global Moderator |  Mod

    Helfen denn die ganzen Kompatibilitätsmodi nichts?



  • leider nicht. Das Problem besteht ja auch erst seit Windows10 1709 (Fall Creator Update).

    Entweder fehlt ein Flag beim erzeugen des MouseDevices im D3D oder das Game kommt mit der HighDPI von Windows10 nicht klar.

    Wie gesagt, mit dem SetCursorPos Hook (return true) funktioniert es ja.
    Nur das der Cursor dann sonstwo ist nur nicht da wo er vorher war.



  • Kannst du irgendwo eingreifen, dir die Position merken und sie danach wiederherstellen?



  • Ich hatte dies bereits bei SetCursorPos getestet.
    Jedoch laggt das dann etwas im Spiel.