Hallo,
ich will ein Programm schreiben, daß das Hintergrundbild des Desktops dynamisch generiert.
Es handelt sich um eine Art Landkarte, die in mehrere Zonen unterteilt sein soll.
Wenn ich nun wüßte ob über einer Zone min. ein Teil einer Verknüpfung (Icon oder Text) liegt könnte ich diese Zone mit weniger
Details (Gewässer, Grenzen, ...) ausstatten.
Koordinaten der Verknüpfungen auf dem Desktop
Ich wüsste z. Zt. keine Möglichkeit. Denn selbst wenn du weißt, das an der Koordinate 50,60 das Arbeitsplatzsymbol ist, weißt du a) bei geänderten einstellungen nicht, wie breit/hoch das Icon ist und wie lang und hoch der darunterstehende Text ist.
Aber vielleicht hilft es dir ja weiter, indem du folgendes versuchst:
hier im Forum gibt es einen Code, der Screenshots vom ganzen Bildschirm machen kann. Bevor du mit deinem PB-Programm ein Screenshot machst, setzt du die Hintergrundfarbe z. B. auf rot. Jetzt machst du einen Screenshot und untersuchst jeden Pixel (!) mit Point() (s. Hilfe), ob der jeweilige Pixel nicht rot ist. Wenn ja, dann muss an der Stelle auf dem Desktop logischerweise irgendein Icon oder Text sein. Bedenke aber, das du die Taskleiste nicht mitwerten darfst!
Was hälst du davon? Ich habe hier einen Code, der Pixel für Pixel ausliest, ungetestet, aber falls falsch, kannst du dir ja die Idee übernehmen. Benutz bitte Bilder (Images), keine Sprites oder Fanta's!
Aber vielleicht hilft es dir ja weiter, indem du folgendes versuchst:
hier im Forum gibt es einen Code, der Screenshots vom ganzen Bildschirm machen kann. Bevor du mit deinem PB-Programm ein Screenshot machst, setzt du die Hintergrundfarbe z. B. auf rot. Jetzt machst du einen Screenshot und untersuchst jeden Pixel (!) mit Point() (s. Hilfe), ob der jeweilige Pixel nicht rot ist. Wenn ja, dann muss an der Stelle auf dem Desktop logischerweise irgendein Icon oder Text sein. Bedenke aber, das du die Taskleiste nicht mitwerten darfst!
Was hälst du davon? Ich habe hier einen Code, der Pixel für Pixel ausliest, ungetestet, aber falls falsch, kannst du dir ja die Idee übernehmen. Benutz bitte Bilder (Images), keine Sprites oder Fanta's!
Code: Alles auswählen
bild=useImage(#bild) ; Die Bild ID des zu scannenden Bildes
hoehe=ImageHeight()
breite=ImageWidth()
StartDrawing(ImageOutput())
For y=1 To hoehe
For x=1 To breite
Debug Point(x, y) ; Farbwert zum Test ausgeben (nachher rauslassen)
If Point(x, y) <> RGB(255, 0, 0) ; Wenn ungleich rot
Debug "Koordinate "+Str(x)+","+Str(y)+" ist nicht rot!"
EndIf
Next
Next
StopDrawing()
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Super !
Die Grundidee ist genial einfach.
Da hätte ich auch selbst drauf kommen können. Aber, manchmal sieht man den Wald vor lauter Bäumen nicht.
Da die Icons ja vor meinem eigenen Hintergrund sitzen kann ich mir das rot sparen und den Screenshot direkt mit
meinem Hintergrund vergleichen. Vorher muß ich noch alle Fenster schließen.
Ich glaube da habe ich die entsprechenden Routinen irgendwo (Oh jeh ...) auf meiner Platte.
Veränderungen sind auch nicht kritisch - schlimmstenfalls ändert sich das Hintergrundbild eben zeitversetzt.
Danke !
Die Grundidee ist genial einfach.
Da hätte ich auch selbst drauf kommen können. Aber, manchmal sieht man den Wald vor lauter Bäumen nicht.
Da die Icons ja vor meinem eigenen Hintergrund sitzen kann ich mir das rot sparen und den Screenshot direkt mit
meinem Hintergrund vergleichen. Vorher muß ich noch alle Fenster schließen.
Ich glaube da habe ich die entsprechenden Routinen irgendwo (Oh jeh ...) auf meiner Platte.
Veränderungen sind auch nicht kritisch - schlimmstenfalls ändert sich das Hintergrundbild eben zeitversetzt.
Danke !
Dankeschön!uweb hat geschrieben:Super !
Die Grundidee ist genial einfach.
Ich denke halt manchmal so um die Ecke, weil ich das so gewohnt bin.
Wenn man kein PhotoShop hat, um eine Grafik zu zeichnen, denkt man eben ein wenig komplizierter: Öffne Paint, male, öffne es in Microsoft Photo Editor und füge dort Tranzparenz hinzu.
Nur ein Beispiel. Trotzdem freue ich mich, das dich meine idee so gut überzeugt hat, du hast aber schon recht: Manhcmal sieht man den Wald vor lauter bäumen nicht...

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End