Frohe Weihnachten

    • Release

    Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Niko Ortner.

      Frohe Weihnachten

      Name des Programms:
      Frohe Weihnachten.exe
      Frohe Weihnachten Screensaver.exe

      Beschreibung:
      Das Programm lässt "Frohe Weihnachten" in verschiedenen Farben und Schriftarten herumhüpfen.

      Ich wollte Euch allen Frohe Weihnachten wünschen.
      Da kam ich auf diese Idee ^^

      Auf Wunsch habe ich das Programm zu einem Bildschirmschoner umgeschrieben.
      Allerdings gibt es Probleme mit der Registrierung der Datei.

      Screenshot(s):


      Verwendete Programmiersprache:
      VB.Net (IDE Visual Basic 2010)

      Systemanforderungen:
      .Net Framework 2.0
      Mind. 800x600 Bildschirmauflösung, um eine vernünftige Darstellung zu bekommen.

      Download:
      Frohe Weihnachten.zip
      Frohe Weihnachten Screensaver.zip
      ca.12 KB gepackt / 20 KB entpackt

      Lizenz/Weitergabe:
      Freeware
      Also beliebig weitergeben /-kopieren, aber nicht verkaufen.
      Gegen Dekompilieren habe ich in diesem Fall nichts, weil es sowiso nur ein recht kleines Programm ist.
      "Luckily luh... luckily it wasn't poi-"
      -- Brady in Wonderland, 23. Februar 2015, 1:56
      Desktop Pinner | ApplicationSettings | OnUtils

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Niko Ortner“ ()

      bei mir ist die Animation ziemlich schnell. Ist das so gedacht oder hängt die Geschwindigkeit auch vom PC ab? Hast du schon mal daran gedacht, das als Bildschirmschoner zu benutzen? Musst nur ein ganz klein wenig ändern

      Skybird schrieb:

      Das sind ja Ubisoftmethoden hier !

      Danke erst mal an alle.

      Ich lese alle Installierten Fonts aus und wähle eine zufällige aus.

      VB.NET-Quellcode

      1. 'Global
      2. Dim FontNames() As FontFamily = FontFamily.Families
      3. 'In einer Sub
      4. 'If...
      5. AllShapes.Add(New Shape(..., ..., FontNames(Rnd.Next(0, FontNames.Length)).Name))
      6. 'Konstruktor der Shape Klasse:
      7. Try
      8. TextFont = New Font(TextFontName, TextSize) 'TextSize wird auch zufällig (zwischen 8 und 32) gewählt.
      9. Catch ex As Exception
      10. TextFont = New Font("Courier New", TextSize)
      11. End Try

      Das Try ist deshalb, weil manche Schriftarten den Typ "Regular" nicht erlauben. Warum das so ist weiß ich auch nicht. Für diesen Fall wird dann einfach Courier New verwendet.

      Bei mir (Windows 7) habe ich noch nicht erlebt, dass diese Rechtecke angezeigt werden (z.B. Wingdings ergibt natürlich diese komischen Zeichen).
      Moment! Jetzt ist es gerade passiert.
      Ich habe aber eine Vermutung: Bei manchen speziellen Schriftarten kann es sein, dass gewisse Zeichen nicht für den entsprechenden Wert vorhanden sind.
      Ich habe einen Screenshot gemacht:

      Ich vermute mal, dass z.B. bei der bläulichen Schriftart einfach die entsprechenden Zeichen gefehlt haben und deswegen Rechtecke dargestellt werden.
      Dieses Zeichen kann man übrigens auch in Notepad mit Strg+Backspace schreiben:
      Allerdings scheint es hier im Forum nicht problemlos darstellbar zu sein.

      Wegen Intervall:

      Der Intervall des Timers ist auf 60ms gestellt. Also bei mir ist sie nicht soo schnell. Eher fast schon Mondgravitation.
      "Luckily luh... luckily it wasn't poi-"
      -- Brady in Wonderland, 23. Februar 2015, 1:56
      Desktop Pinner | ApplicationSettings | OnUtils
      Danke für den Hinweis!
      Gerade getestet. Mein Verdacht hat sich bestätigt:

      Ein Blick in Word mit eingestellter Schriftart: Nur wenige Zeichen werden nicht als Kästchen dargestellt.
      Ein Blick in die Zeichentabelle bestätigt: Hier fehlen einige Zeichen (siehe Screenshot oben).

      Dagegen kann ich leider nichts machen. Ich müsste eine Liste aller funktionierenden Schriftarten beilegen. Das wäre aber ein Bisschen viel Aufwand für dieses Programm.


      Und weil ich es letztes Mal vergessen habe: Am Screensaver veruche ich mich mal.
      Ich habe schon ein Bisschen Erfahrung damit und vielleicht wird's ja was. Einstellungsmöglichkeiten gibt's halt keine ^^.
      So, ich habe das Programm jetzt so umgeschrieben, dass es größtenteils funktioniert.

      Aber ich komme nicht drauf, warum der Bildschirmschoner einfach nicht beibehalten wird.
      Ich kann zwar auf OK klicken, wenn ich "Installieren" im Kontextmenü der Datei auswähle, aber es wird weder gespeichert (siehe nachfolgender Screenshot), noch wird eine Kopie im System32 Ordner angelegt.


      Aber vielleicht kann trotzdem jemand was damit anfangen.
      "Luckily luh... luckily it wasn't poi-"
      -- Brady in Wonderland, 23. Februar 2015, 1:56
      Desktop Pinner | ApplicationSettings | OnUtils
      Hi, du könntest doch nach der Wahl einer Font überprüfen ob ein unerwünschtes Zeichen enthalten ist und daraufhin einfach eine neue Front auswählen lassen.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „n1234n“ ()

      @n1234n:
      Wie geht das denn? Ich habe da wirklich keinen blassen Schimmer. Die einzige Möglichkeit wäre das "Frohe Weihnachten" auf eine Bitmap zeichnen zu lassen und anhand dieser Bitmap zu überprüfen, ob Kästchen enthalten sind. Das Problem ist allerdings: Wie soll ich herausfinden ob Kästchen drin sind?

      @vb-checker:
      Ja, hab ich schon gesehen.
      Ich habe jetzt mal umgestellt auf deaktiviertes Anwendungsframework.
      Dadurch hat es ein mal funktioniert und anstelle des von mir im letzten Post gezeigten Textes "Kein" wurde "Frohe Weihnachten Screensaver" angezeigt.
      Soweit sogut.
      Dann habe ich testweise auf Einstellungen geklickt. Da ich es nicht geschafft habe herauszufinden welches Argument an das Programm übergeben wird habe ich im Falle eines unbekannten Argumentes einfach "Unbekanntes Argument" ausgeben lassen und die Form wieder geschlossen.
      Anscheinend wird beim Starten der Vorschau entweder das KeyDown oder das MouseDown Event ausgelöst, was dazu führt, dass der Bildschirmschoner sofort wieder geschlossen wird. Darum habe ich die Vorschau entfernt und lasse einfach "Vorschau ist nicht verfügbar" ausgeben.
      Nach dem Klick auf OK (MessageBox) kommt eine Meldung "Frohe Weihnachten Screensaver.exe funktioniert nicht mehr". In den Details steht irgendwas von ObjectDisposedException. Ich habe alle möglichen Szenarien im Debugging durchgespielt (sogar mit Befehlszeilenargumenten), aber wenn die Form geschlossen wird wird auch die Sub Main im Modul verlassen und die Anwendung beendet. Es gibt hier keine Möglichkeit erneut Application.Run(...) auszuführen, oder auf die erstellte Instanz der Form zuzugreifen (Die Ausnahme bildet hier "End Using", aber das ist nur das Ende von "Using ApplicationForm As New Form_Main").

      Tja, und dann war wieder das selbe Problem da.


      Ich weiß nicht.
      "Luckily luh... luckily it wasn't poi-"
      -- Brady in Wonderland, 23. Februar 2015, 1:56
      Desktop Pinner | ApplicationSettings | OnUtils
      Beides hilft mir in keiner Weise weiter, weil im String die Zeichen "Frohe Weihnachten" ja (fix) drin sind. Das Problem ist ja nicht dass diese Zeichen drin sind, sondern dass sie bei manchen Schriftarten nicht richtig dargestellt werden.
      "Luckily luh... luckily it wasn't poi-"
      -- Brady in Wonderland, 23. Februar 2015, 1:56
      Desktop Pinner | ApplicationSettings | OnUtils