Entwickler-Ecke

Multimedia / Grafik - Bildschirmlupe - Desktopausschnitt ausgeben


RFZ - Di 19.11.02 18:21
Titel: Bildschirmlupe - Desktopausschnitt ausgeben
Moin,
ich möchte ein Programm schreiben, welches mir den Desktopausschnitt der Maus/Cursor in einem Fenster anzeigt. Genau wie die Bildschirmlupe von Windows, nur muss ich hald noch selbst Features einbaun ;)
Wie mach ich sowas?

cu RFZ


Anonymous - Di 19.11.02 22:15

Zuerst holst du dir den Gerätekontext des Desktops. Dann berechnest du ein Rectbereich um deinen Cursor und kopierst dann mit StretchBlt einen Bereich auf deine Grafik. Fertig ist die Lupe.

Wenn du aber nur eine Lupe suchst, dann hier eine die ich schon mal geschrieben habe:

http://mitglied.lycos.de/popov3/pub/poplup/poplup.zip


RFZ - Mi 20.11.02 00:24

Hi,
dein Tool gefällt mir ;) Gibt's dazu nen Quelltext? Weil mit deiner Beschreibung komm ich net klar, soein schlaues Köpfchen bin ich net...

cu RFZ


Anonymous - Mi 20.11.02 09:37

Du willst Source? Gibts nicht, das Programm ist noch Beta.

Du kannst dir aber PopTV angucken. Da ist der Sourcecode dabei. Ist fast das gleiche Prinzip, nur wird hier verkleinert und nicht vergrößert:

http://mitglied.lycos.de/popov3/pub


Delete - Fr 22.11.02 02:51

Zitat:

Allerdings nichts für die Dauer, da die Arbeitsgeschwindigkeit des Rechners stark in den Keller geht.

Pack das:

Quelltext
1:
2:
3:
4:
Width := Trunc(Height * Faktor);
  Can.Handle := GetWindowDC(GetDesktopWindow);
  with Canvas do CopyRect(ClipRect, Can, Rect(0, 0, Screen.Width, Screen.Height));
  ReleaseDC(0, Can.Handle);

mal in einen Thread. Dein Code verursacht bei mir eine Prozessorauslastung von über 90 Prozent.


Anonymous - Fr 22.11.02 16:10

Luckie hat folgendes geschrieben:
Pack das:

Quelltext
1:
...                    

mal in einen Thread. Dein Code verursacht bei mir eine Prozessorauslastung von über 90 Prozent.


Ich kenne mich mit Threads icht so gut aus. Da ich noch nie ein MultiThread Programm brauchte, hab ich mich das mit den Threads noch nicht einverleibt.

Allerdings dachte ich bis jetzt, daß ein Programm mindestens ein Thread hat. Und da mein Programm eigentlich nur eine Prozedur hat, dürfte es doch nichts bringen. Oder doch?


Anonymous - Fr 22.11.02 17:24

Hab mir inzwischen ein wenig Infos angelesen und weiss was du meinst.