Guten Abend.
Ich habe mir gerade ein Script angeschaut welches die Benutzung der Maus ermöglichen soll.
Nun, neben der Tatsache, dass ich den Inhalt nicht verstehe habe ich ein kleines, relativ leicht verständliches Problem festgestellt.
Ich weis zwar durch das Script wo sich die Maus befindet, allerdings habe ich keine Ahnung wo sich denn genau das Fenster befindet in welchem das Project ausgeführt wird.
Der Autor des Scriptes machte es sich einfach und ging schlichtweg davon aus, dass niemand das Fenster verschieben würde.
Ich finde, dass ist ein sehr unfeiner Weg sich heraus zu stehlen.
Also, nach all der Menge Text nun hier meine Frage:
Wie finde ich die derzeitige Position des Fensters heraus, in welchem mein Project dargestellt wird?
es ist nicht ganze die antwort auf deine frage, aber man kann koordinaten automatisch für das fenster umwandeln. dazu das folgende script:
("maus_atelier" durch den namen deines projektes ersetzen)
$getCursorPos = Win32API.new("user32", "GetCursorPos", ['P'], 'V')
class Mouse_Coordinates
attr_reader :x
attr_reader :y
def initialize
@scr2cli = Win32API.new("user32", "ScreenToClient", "lp", "i")
@findwindow = Win32API.new("user32", "FindWindowA", "pp", "l")
@x,@y = screen_to_client(get_pos)
end
def update
@x,@y = screen_to_client(get_pos)
end
def get_pos
lpPoint = " " * 8 # store two LONGs
$getCursorPos.Call(lpPoint)
return lpPoint.unpack("LL") # get the actual values
end
def screen_to_client(pos)
pos = pos.pack('ll')
if @scr2cli.call(hwnd, pos) != 0
return pos.unpack('ll')
else
return [-1,-1]
end
end
def hwnd
return @findwindow.call("RGSS Player","maus_atelier")
end
end