Autor Beitrag
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 28.07.09 02:27 
Moin!

Das Programm zeigt einen vergrößerten Ausschnitt des Desktops um die Maus herum an. Die Farbe des Pixels kann mit Strg+Win+C in einem frei definierbaren Format in die Zwischenablage gelegt werden. Mit Strg+Win+X kann auf das nächste Format in der Formatliste umgeschaltet werden. Die Anzeige der aktuellen Farbe hat ein Kontextmenü (Rechtsklick drauf machen), in dem die letzen 10 kopierten Farben erneut abrufbar sind.

Angeregt von der Idee in diesem Thread hier mein Vorschlag für eine Umsetzung. ;)

cu
Narses
Einloggen, um Attachments anzusehen!
_________________
There are 10 types of people - those who understand binary and those who don´t.


Zuletzt bearbeitet von Narses am Do 06.08.09 00:36, insgesamt 1-mal bearbeitet
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Di 28.07.09 22:15 
Vielleicht wäre ein Screenshot zur besseren Werbung noch besser ;)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 28.07.09 22:22 
Dazu braucht man keinen Timer: www.michael-puff.de/...ramme/WhatClr2_2.zip
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 28.07.09 22:33 
Moin!

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Vielleicht wäre ein Screenshot zur besseren Werbung noch besser ;)
Das ist nur ein Fun-Projekt, ich hatte gerade Lust drauf und kurz Zeit dafür, das muss man nicht "bewerben"... ;)


user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Dazu braucht man keinen Timer: www.michael-puff.de/...ramme/WhatClr2_2.zip
Dein Code ist wie immer sehr lehrreich, user profile iconLuckie, aber dein Anwendungskonzept kann man wohl kaum mit dem von user profile iconChristian V. vergleichen - das benutzt sich einfach besser. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 28.07.09 22:39 
Die Maus gleich beim Start an das Fenster zu binden, dürfte nur eine Kleinigkeit sein.
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 28.07.09 22:41 
Moin!

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Die Maus gleich beim Start an das Fenster zu binden, dürfte nur eine Kleinigkeit sein.
Da du das sicher auch noch halb im Schlaf kannst, bin ich schon auf dein Demo-Projekt dazu gespannt. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.07.09 10:49 
Hach, hast du aber auch ein Pech. Gerade vorgestern habe ich den Support und die Weiterentwicklung für das Programm eingestellt. ;)
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 29.07.09 11:13 
Moin!

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Hach, hast du aber auch ein Pech. Gerade vorgestern habe ich den Support und die Weiterentwicklung für das Programm eingestellt. ;)
Ich hab schon damit gerechnet... :|

cu :wave:
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Christian V.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 311

Win Xp Prof
Turbo Delphi 2005
BeitragVerfasst: Mi 29.07.09 11:40 
Hey, das mit dem selbst definierbaren Format is ja cool!

ausblenden Delphi-Quelltext
1:
GetBValue(AColor)*0.11 +GetGValue(AColor)*0.59 +GetRValue(AColor)*0.3					

Hat das damit zutun, dass das menschliche Auge nicht alle Farben gleich hell wahrnimmt?

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Die Maus gleich beim Start an das Fenster zu binden, dürfte nur eine Kleinigkeit sein.

Wie meinst du das?

Man sollte vielleicht noch anmerken, dass man die History per Rechtsklick auf die Farbausgabe anzeigen kann.

_________________
Hardware runs the world, software controls the hardware, code generates software - Have You already coded today?
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 29.07.09 11:49 
Moin!

user profile iconChristian V. hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
GetBValue(AColor)*0.11 +GetGValue(AColor)*0.59 +GetRValue(AColor)*0.3					
Hat das damit zutun, dass das menschliche Auge nicht alle Farben gleich hell wahrnimmt?
Ja, genau. ;)

user profile iconChristian V. hat folgendes geschrieben Zum zitierten Posting springen:
Man sollte vielleicht noch anmerken, dass man die History per Rechtsklick auf die Farbausgabe anzeigen kann.
Das "verrät" einem der Hint, wenn man die Maus auf das Feld stellt. ;)

user profile iconChristian V. hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Die Maus gleich beim Start an das Fenster zu binden, dürfte nur eine Kleinigkeit sein.
Wie meinst du das?
Tja, das ist user profile iconLuckie, immer selbstsicher, selten konkret. :) Gewöhn dich dran. ;) (wobei ich klar stellen möchte, das user profile iconLuckie meiner Meinung nach der kompetenteste WinAPI-Programmierer hier in der EE ist!)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.07.09 12:34 
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Die Maus gleich beim Start an das Fenster zu binden, dürfte nur eine Kleinigkeit sein.
Das Problem ist ja, dass man ohne Hook das nur machen kann, wenn der Benutzer die Maus drückt und zieht. (Aus Sicherheitsgründen eben)

Also ist eine zweistufige Lösung sinnvoll. Der Benutzer kann klicken und ziehen, dann kann man direkt auf OnMouseMove reagieren, sonst eben der Timer. Das sieht dann so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TfrmMain.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  TimeSource.Enabled := False;
  SetCapture(Handle);
end;

procedure TfrmMain.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  TimeSourceTimer(Self);
end;

procedure TfrmMain.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  TimeSource.Enabled := TRUE; // wenn gerade kein capture, ausweichen auf Timer
end;
Im Anhang nen kleines Demoprojekt (das originale leicht verändert).

Ggf. muss man auch noch auf die Veränderung des Capturing reagieren (WM_CAPTURECHANGED), also dort auch den Timer aktivieren, aber das habe ich hier einmal außer Acht gelassen.
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von jaenicke am Mi 29.07.09 12:36, insgesamt 2-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.07.09 12:35 
user profile iconChristian V. hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Die Maus gleich beim Start an das Fenster zu binden, dürfte nur eine Kleinigkeit sein.

Wie meinst du das?

Ich bezog mich auf mein Programm, da muss man erst die Maus "ergreifen" und den linken Mausbutton gedrückt halten, weil ich Suche im MSDN SETCAPTURE benutze.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Die Maus gleich beim Start an das Fenster zu binden, dürfte nur eine Kleinigkeit sein.
Das Problem ist ja, dass man ohne Hook das nur machen kann, wenn der Benutzer die Maus drückt und zieht. (Aus Sicherheitsgründen eben)

Jupp, siehe Suche im MSDN SETCAPTURE.
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 29.07.09 12:44 
Moin!

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Die Maus gleich beim Start an das Fenster zu binden, dürfte nur eine Kleinigkeit sein.
Das Problem ist ja, dass man ohne Hook das nur machen kann, wenn der Benutzer die Maus drückt und zieht. (Aus Sicherheitsgründen eben)

Jupp, siehe Suche im MSDN SETCAPTURE.
Nur leider steht in dem Artikel nicht drin, wie man das ohne vorher die Maustaste zu drücken aktivieren kann - ohne Hook. Genau hier hatte ich auf einen hilfreichen Tipp von dir gehofft. :nixweiss: Mit Klicken ist das ja nicht das gleiche Bedienkonzept. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.07.09 12:50 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Nur leider steht in dem Artikel nicht drin, wie man das ohne vorher die Maustaste zu drücken aktivieren kann - ohne Hook.
Ganz einfach: gar nicht (glaube ich). ;-)
Das geht aus Sicherheitsgründen nicht. Denn sonst könnte ja jedes Programm einfach so überall Mausbewegungen usw. abgreifen ohne dass man da viel dagegen tun kann. Bei entsprechenden Hooks hingegen sollte eine gute Firewall warnen (tut z.B. ZoneAlarm AFAIK).

Wobei es natürlich via Timer + GetMousePos trotzdem geht (was die Position angeht).
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 29.07.09 13:01 
Moin!

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Ganz einfach: gar nicht (glaube ich). ;-)
[...]
Wobei es natürlich via Timer + GetMousePos trotzdem geht (was die Position angeht).
Wir kommen der Sache schon näher... 8)
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Dazu braucht man keinen Timer: www.michael-puff.de/...ramme/WhatClr2_2.zip
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Die Maus gleich beim Start an das Fenster zu binden, dürfte nur eine Kleinigkeit sein.
user profile iconLuckie sagt hier aber was anderes - und das hätte ich gerne mal in Code-Form gesehen. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.07.09 13:13 
Da war dieser komische Luckie, wer auch immer das sein mag, etwas vorschnell. Nach einen Blick in die Hilfe wurde ihm aber klar, dass es mit SetCapture wohl doch nicht so einfach möglich ist.

Für diesen Beitrag haben gedankt: Narses
MDX
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 595
Erhaltene Danke: 4

Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
BeitragVerfasst: So 02.08.09 00:22 
Endlich sowas such ich schon ewig!!!

THX