• Anmelden

1

Samstag, 6. Dezember 2008, 10:13

Pixelanzeige

Hi, leute Ich kann ja schon ein bisschen Scripten da nervt mich aber immer das abmessen. deshalbsuche ich ein Script mit dem man mit der Maus dürchs fenster umherhuschen und gleichzeitig soll neben dem Titel die pixel angezeigt werden Also so: Titel 167=x 167=y


Dieser Beitrag wurde bereits so oft editiert, dass der Zähler sich in die Luft gesprengt hat.

2

Samstag, 6. Dezember 2008, 16:21

Spoiler

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module Mouse
 
  HWND = ::Win32API.new('user32', 'GetActiveWindow', nil, 'L').call.freeze
 
  GetCursorPos = ::Win32API.new('user32', 'GetCursorPos', 'P', 'I').freeze
  ScreenToClient = ::Win32API.new('user32', 'ScreenToClient', 'LP', 'I').freeze
 
  def self.position(client = true)
    pos = "\000" * 8
    GetCursorPos.call(pos)
    client ? position_client(pos) : pos.unpack('ll')
  end
 
 
  private()
 
  def self.position_client(pos)
    ScreenToClient.call(HWND, pos).zero? ? [nil, nil] : pos.unpack('ll')
  end
 
end
 
# Thread, in dem der Window Text geändert wird
Mouse_Position_Thread = Thread.new{
  swt = ::Win32API.new('user32', 'SetWindowText', 'LP', 'I')
  gwt = ::Win32API.new('user32', 'GetWindowText', 'LPI', 'I')
  loop{
    pos, txt = ::Mouse.position(), "\000" * 255
    gwt.call(::Mouse::HWND, txt, txt.length)
    txt.delete!("\000").gsub!(/\s\[(.*?)\]/, '')
    swt.call(::Mouse::HWND, "#{txt} [x = #{pos.first}, y  = #{pos.last}]")
    sleep(0.001)
  }
}
zum Lesen den Text mit der Maus markieren
Aufruf um die x- und y-Koordinate in einem zweielementigen Array zu bekommen:

Ruby Quellcode

1
Mouse::position()
Falls der Mauszeiger nicht im Fenster ist, dann wunder dich nicht, wenn du nen Wert über Milliarden bekommst. Kannst ja ne Abfrage reinbauen ;)
Und für die Koordinaten vom ganzen Bildschirm einfach false als Argument übergeben:

Ruby Quellcode

1
Mouse::position(false)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Cremno« (7. Dezember 2008, 09:59)


3

Sonntag, 7. Dezember 2008, 00:41

Wie kann ich das Anzeigen lassen??


Dieser Beitrag wurde bereits so oft editiert, dass der Zähler sich in die Luft gesprengt hat.

4

Sonntag, 7. Dezember 2008, 01:09

Quellcode

1
Wie kann ich das Anzeigen lassen?? 

wenn du ein bisschen rgss kannst, sollte das egentlich kein problem für dich sein, oder?

Ruby Quellcode

1
2
3
4
$mouse_pos = Mouse::position
if Input.trigger(Input::C)
print ($mouse_pos[0].to_s+", "+$mouse_pos[1].to_s)
end


zeigt beim drücken der leertaste ein fenster mit x, y an!

cow
Spoiler: Sachen
zum Lesen den Text mit der Maus markieren

5

Sonntag, 7. Dezember 2008, 10:05

Ruby Quellcode

1
2
3
4
$mouse_pos = Mouse::position
if Input.trigger(Input::C)
print ($mouse_pos[0].to_s+", "+$mouse_pos[1].to_s)
end
Besser:

Ruby Quellcode

1
2
3
4
if Input.trigger?(Input::C)
  pos = Mouse.position()
  print("x = #{pos.first}, y = #{pos.last}")
end



@Nullchecker:
Hab's nochmal erweitert: das mit dem im Titel geht zwar jetzt, aber flackert ein bisschen. Was jedoch der Ändern der Float bei sleep sich noch ein wenig verbessern lassen dürfte.

6

Donnerstag, 11. Dezember 2008, 18:40

Klappt, danke euch allen :rolleyes:


Dieser Beitrag wurde bereits so oft editiert, dass der Zähler sich in die Luft gesprengt hat.

Social Bookmarks