Mouse Down auf Screen

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
gambasso
Foriker
Beiträge: 829
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Mouse Down auf Screen

Beitrag von gambasso » So 8. Okt 2017, 09:53

moin,

ich möchte bei einem Mausklick die Farbe des dunterliegenden Pixel auslesen. Das sollte auf dem gesamtem Monitor funktionieren.

Ich schaffe es nur beim Klick auf einem Gambas-Fenster-Element. Wie geht es irgendwo auf dem Desktop?
Gruss

vuott
Foriker
Beiträge: 73
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von vuott » Mo 9. Okt 2017, 00:41

Hello gambasso,

Ich weiß nicht, wenn ich gut verstanden habe. :oops:
Ich schlage vor:
gambas code
Private dw As DesktopWindow
Private tempus As Timer
Private pc As Picture


Public Sub Form_Open()

  With tempus = New Timer As "Tempus"
    .Delay = 1000
    .Start()
  End With

End


Public Sub Tempus_Timer()
  
  Dim aw As Integer

   aw = Desktop.ActiveWindow
  
   With dw = New DesktopWindow(aw)
     pc = .GetScreenshot(False)
     Print Hex(pc.Image[Mouse.ScreenX - .X, Mouse.ScreenY - .Y], 8)
   End With
  
End

gambasso
Foriker
Beiträge: 829
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von gambasso » Mo 9. Okt 2017, 10:27

moin,

es geht leider nicht.

Fehler bei > 'Private dw As DesktopWindow' und weiteren 'Window' -Code.

Ich habe es teilweise erreicht, indem ich auch einen Timer benutze und ein Desktop-Screenshot in einem Image übernehme.
Die Werte vom Maus-Punkt vom Desktop nehme ich aus dem Image und zeige diese dann in einer TextBox und einem Picture an.
Da erhalte ich dann von jedem Pixel des Desktops die Color-Werte.

Das klappt. Nur mit dem Maus-Klick nicht. Da habe ich mir erstmal über einem Menü geholfen und die < F12 > Taste als Auslöser
anstelle des Maus-Klicks genommen. Das ist zwar nicht das was ich wollte, aber es funktioniert. Nur man darf kein Maus-Klick auslösen.
Gruss

vuott
Foriker
Beiträge: 73
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von vuott » Mo 9. Okt 2017, 11:56

gambasso hat geschrieben:
Mo 9. Okt 2017, 10:27
es geht leider nicht.

Fehler bei > 'Private dw As DesktopWindow' und weiteren 'Window' -Code.
Sie müssen die Komponenten aktivieren: gb.desktop und gb.desktop.x11


gambasso hat geschrieben:
Mo 9. Okt 2017, 10:27
Nur mit dem Maus-Klick nicht.
Nur man darf kein Maus-Klick auslösen.
...sie sollten das Maus-file-device behandeln. :roll:

gambasso
Foriker
Beiträge: 829
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von gambasso » Mo 9. Okt 2017, 15:44

damit geht was
Hex(pc.Image[Mouse.ScreenX - .X, Mouse.ScreenY - .Y], 8)
aber nur Im Fenster von Gambas, daneben keine Veränderung.
Wie bekomme ich Werte vom gesamten Desktop?

Die Werte von 'pc = .GetScreenshot(False)' ca. 800 x 600 px.
Gruss

vuott
Foriker
Beiträge: 73
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von vuott » Mo 9. Okt 2017, 19:21

gambasso hat geschrieben:
Mo 9. Okt 2017, 15:44
Wie bekomme ich Werte vom gesamten Desktop?
Sie müssen auf das Fenster klicken (...selbst der Desktop ist ein "Fenster").
Auf diese weise, das Fenster wird also aktuellen "ActiveWindow".

gambasso
Foriker
Beiträge: 829
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von gambasso » Di 10. Okt 2017, 07:43

moin,

wenn ich die Maus abfragen will, kommt die Fehlermeldung:
No Mouse Event Data
Wie frage ich dabei ein Mausklick ab, wenn der Mauszeiger sich irgendwo auf dem Desktop befindet?
Gruss

vuott
Foriker
Beiträge: 73
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von vuott » Di 10. Okt 2017, 08:34

Hello.
gambasso hat geschrieben:
Di 10. Okt 2017, 07:43
wenn ich die Maus abfragen will, kommt die Fehlermeldung:
No Mouse Event Data
:?
...aber haben Sie meinen Code ausschließlich versucht?


gambasso hat geschrieben:
Di 10. Okt 2017, 07:43
Wie frage ich dabei ein Mausklick ab, wenn der Mauszeiger sich irgendwo auf dem Desktop befindet?
Nicht mit Gambas Maus-Ereignissen.

Meiner Meinung nach nur mit externen Funktionen (zum beispiel mit x11-Ressourcen).

Ciao
Zuletzt geändert von vuott am Di 10. Okt 2017, 18:00, insgesamt 1-mal geändert.

gambasso
Foriker
Beiträge: 829
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von gambasso » Di 10. Okt 2017, 13:19

ich habe es versucht, aber es scheitert am Mouse-Event. (Mouse_Down)

Ansonsten wird der Maus-Punkt angezeigt.
Gruss

vuott
Foriker
Beiträge: 73
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von vuott » Di 10. Okt 2017, 18:00

Mit Mouse-Event "_MouseDown( )" von "Gambas" ist es nicht möglich. :|

gambasso
Foriker
Beiträge: 829
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Mouse Down auf Screen

Beitrag von gambasso » Mi 11. Okt 2017, 10:35

moin,

ich danke Dir vuott, dann muß ich es erstmal bei der bisherigen Lösung belassen.
Gruss

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste