Name des Programms:
Desktop Pinner v6.8.2
Kurze Beschreibung:
Mit dem Programm können Dateien und Ordner am linken Bildschirmrand angepinnt werden.
Es bleibt ein 1 Pixel breiter Streifen am linken Bildschirmrand sichtbar, auf den man klicken kann, um das Fenster anzuzeigen. Die Fenster werden mit der API SetWindowPos() immer im Vordergrund gehalten. Das Design ist an Metro angelehnt. Zu Details zu den Farbschemen siehe Punkt "Farbschemen".
Die Bedienung sollte größtenteils recht intuitiv sein. Mit dem Mausrad kann man scrollen. Mit der rechten Maustaste können angepinnte Objekte markiert werden. Einträge können per Drag&Drop hinzugefügt werden. Der markierte Eintrag kann mit dem Mausrad oder den Hoch- und Runter-Buttons verschoben werden und ist an das Hinzufügen-Fenster gebunden, womit die Einträge auch bearbeitet werden können.
Das Hinzufügen von Verknüpfungen ist etwas komplizierter, als das Hinzufügen einer Datei. Da der OpenFileDialog nicht die .lnk-Datei selbst, sondern die verknüpfte Datei bzw. den verknüpften Ordner auswählt, muss man sich ein Workaround überlegen. Im Hinzufügen-Fenster im Unterpunkt "Verknüpfung" kann man Verknüpfungen einfügen.
Dateien und Ordner können per Drag&Drop hinzugefügt werden.
Screenshots:
Farbschemen:
Das Farbschema der Anwendung kann angepasst werden.
Dazu muss im Einstellungsmenü (unterster Button) auf "Farbschema wählen" geklickt werden. Es öffnet sich dieses Fenster (hier mit unterschiedlichen Auswahlen dargestellt):
Benutzerdefinierte Farbschemen
Farbschemen werden in Form von PlugIn-Dlls oder in Form von Textdateien angegeben.
Eine Dll kann mehrere Farbschemen enthalten.
Ein Farbschema besteht aus folgenden Eigenschaften:
Assembly:
(Für aktuelle Details zu Farbschemen in Textform siehe Post #23.)
Codebeispiel für das Farbschema Dunkelgrün
Verwendete Programmiersprache und IDE:
Visual Basic .Net (Visual Studio 2010 Express)
Systemanforderungen:
.Net Framework 4.0
Mindestens ~630 Pixel Bildschirmhöhe.
Vom Programm erstellte Dateien/Ordner:
%Appdata%\Local\Desktop Pinner v6\Settings.ini
%Appdata%\Local\Desktop Pinner v6\Tree.ini
(Programmordner)\Presets\
Registrywert: HKEY_LOCAL_USER\Software\Microsoft\Windows\CurrentVersion\Run\Desktop Pinner v6
Bekannte Bugs:
Desktop Pinner v6.8.2.zip (146KB gepackt, 368KB entpackt)
MetroScheme v2.xml (für die Weiterverwendung) (61,4KB)
Erklärung zu den Dateien:
Dateien von mir:
Für meine Dateien gilt:
Das Programm darf beliebig weitergegeben werden, solange dafür keine Gegenleistung verlangt wird.
Dekompilieren erlaubt, ich beantworte Fragen zum Code aber auch gerne so.
Verwenden in anderen Programmen bzw. einkompilieren erlaubt, es wäre aber nett, wenn man mich informieren würde, damit ich bescheid weiß.
Für Dateien von Alex-Digital gilt:
Die Dateien dürfen nicht-kommerziell verwendet werden. Einkompilieren ist erlaubt.
Dekompilieren ist nicht erlaubt.
Desktop Pinner v6.8.2
Kurze Beschreibung:
Mit dem Programm können Dateien und Ordner am linken Bildschirmrand angepinnt werden.
Es bleibt ein 1 Pixel breiter Streifen am linken Bildschirmrand sichtbar, auf den man klicken kann, um das Fenster anzuzeigen. Die Fenster werden mit der API SetWindowPos() immer im Vordergrund gehalten. Das Design ist an Metro angelehnt. Zu Details zu den Farbschemen siehe Punkt "Farbschemen".
Die Bedienung sollte größtenteils recht intuitiv sein. Mit dem Mausrad kann man scrollen. Mit der rechten Maustaste können angepinnte Objekte markiert werden. Einträge können per Drag&Drop hinzugefügt werden. Der markierte Eintrag kann mit dem Mausrad oder den Hoch- und Runter-Buttons verschoben werden und ist an das Hinzufügen-Fenster gebunden, womit die Einträge auch bearbeitet werden können.
Das Hinzufügen von Verknüpfungen ist etwas komplizierter, als das Hinzufügen einer Datei. Da der OpenFileDialog nicht die .lnk-Datei selbst, sondern die verknüpfte Datei bzw. den verknüpften Ordner auswählt, muss man sich ein Workaround überlegen. Im Hinzufügen-Fenster im Unterpunkt "Verknüpfung" kann man Verknüpfungen einfügen.
Dateien und Ordner können per Drag&Drop hinzugefügt werden.
Screenshots:
Farbschemen:
Das Farbschema der Anwendung kann angepasst werden.
Dazu muss im Einstellungsmenü (unterster Button) auf "Farbschema wählen" geklickt werden. Es öffnet sich dieses Fenster (hier mit unterschiedlichen Auswahlen dargestellt):
- Unter "Vordefinierte Farbschemen" werden die von mir erstellten Farbschemen aufgelistet. Diese sind Desktop Farbe, Grün, Dunkelgrün, Rot, Dunkelrot, Violett, Blau und Dunkelblau.
Wird "Desktop Farbe" ausgewählt, passt sich das Farbschema automatisch an der in Windows ausgewählten Aero-Schema-Farbe an. - Unter "Eigene Farbschemen" werden die Farbschemen aufgelistet, die sich im Ordner "Presets" im Programmordner befinden.
Eigene Farbschemen können in Form einer Assembly (dll oder exe) oder in Form einer Textdatei (txt oder ini) hinterlegt werden. (Für aktuelle Details zu Farbschemen in Textform siehe Post #23.)
Handelt es sich um eine Assembly, wird vor dem Doppelpunkt der Dateiname und dahinter der Name des Farbschemas angezeigt.
Handelt es sich um eine Textdatei, wird nur der Name des Farbschemas angezeigt.
Für Details siehe Expander "Benutzerdefinierte Farbschemen". - Unter "Aus Basisfarbe" können die RGB-Werte für eine Basisfarbe eingestellt werden. Die anderen Farben werden aus der Basisfarbe errechnet.
Farbschemen werden in Form von PlugIn-Dlls oder in Form von Textdateien angegeben.
Eine Dll kann mehrere Farbschemen enthalten.
Ein Farbschema besteht aus folgenden Eigenschaften:
- BackGroundColor (Color)
Gibt die Hintergrundfarbe für Fenster an.
Meist BaseColor, aber dunkler. - BaseColor (Color)
Gibt die Hauptfarbe an, die für Controls verwendet wird. - FontColor (Color)
Gibt die Farbe für allgemeinen Text, für Symbole und für einige UI-Elemente wie z.B. ScrollBars oder Highlightings an Buttons an.
Meist weiß. - AccentColor (Color)
Gibt die Akzentfarbe für hervorgehobene Inhalte und Überschriften an.
Meist BaseColor, aber intensiver. - DisabledColor (Color)
Gibt eine Farbe an, die darstellen soll, dass ein Objekt deaktiviert ist.
Meist ein Grauton. - ButtonGradientWidth (Double)
Gibt die Breite für Farbverläufe bei Buttons an.
Gültig von -1 bis 1.
Bei 0 wird genau die Farbe "BaseColor" verwendet.
Bei 1 wird der gesamte Helligkeits-Bereich der Farbe in HSB verwendet.
Bei -1 wird der Helligkeitsbereich umgekehrt.
Der Standardwert für alle vordefinierten Farbschemen ist 0.08. - ButtonMouseDownGradientOffset (Double)
Gibt an, um welchen Prozentsatz die Helligkeiten der Verlauffarben verändert werden.
Gültig von -1 bis 1.
Ein Positiver Wert bedeutet, dass die Helligkeit erhöht wird. Ein negativer Wert bedutet, dass die Helligkeit verringert wird.
Der Standardwert für alle vordefinierten Farbschemen ist 0.08. - PresetName (String)
Gibt den Namen des Farbschemas an.
Assembly:
- Im VisualStudio eine neue Projekt vom Typ Klassenbibliothek erstellen.
- Einen Verweis auf MetroScheme.dll hinzufügen.
- Die Vorhandene Klasse Class1 umbenennen.
Das ist nicht der sichtbare Name des Farbschemas. Theoretisch könnte die Klasse auch BundesKanzlerinAngelaMerkel heißen, aber es empfiehlt sich, die Klasse sinnvoll zu benennen. - Die Klasse von MetroScheme.CustomPreset erben lassen.
MetroScheme.ColorScheme kann nicht verwendet werden, da die CustomPreset-Klasse eine zusätzliche Funktion implementiert. Darüberhinaus gibt es sowieso eine Friend MustOverride -Eigenschaft, die außerhalb der ursprünglichen Assembly nicht überschrieben werden kann. - Normalerweise werden die zu überschreibenden Member von VisualStudio automatisch eingefügt. Sollte das nicht der Fall sein, müssen die oben aufgezählten Eigenschaften überschrieben werden.
- Die entsprechenden Werte zurückgeben.
Anmerkung zur PresetName-Eigenschaft: Das ist der sichtbare Name. - Das Projekt kompilieren.
- Die erstellte Assembly (ohne die MetroScheme.dll) in den Ordner "Presets" im Programmordner kopieren.
Falls dieser Ordner nicht existiert, diesen erstellen (oder das Programm einmal ausführen). - Das Programm ausführen, falls es noch nicht ausgeführt wird.
- Im Einstellungsmenü auf "Farbschema wählen" klicken und die Option "Eigene Farbschemen" auswählen.
- Das Farbschema suchen und anklicken.
(Für aktuelle Details zu Farbschemen in Textform siehe Post #23.)
(Dieser Expander sollte eigentlich innerhalb des vorherigen Expanders sein, es ist aber nicht möglich, Expander zu schachteln.)
VB.NET-Quellcode
- Public Class DarkGreen
- Inherits MetroScheme.CustomPreset
- Public Overrides ReadOnly Property BackGroundColor As System.Drawing.Color
- Get
- Return Color.FromArgb(0, 62, 0)
- End Get
- End Property
- Public Overrides ReadOnly Property BaseColor As System.Drawing.Color
- Get
- Return Color.FromArgb(0, 83, 0)
- End Get
- End Property
- Public Overrides ReadOnly Property FontColor As System.Drawing.Color
- Get
- Return Color.FromArgb(255, 255, 255)
- End Get
- End Property
- Public Overrides ReadOnly Property AccentColor As System.Drawing.Color
- Get
- Return Color.FromArgb(20, 160, 0)
- End Get
- End Property
- Public Overrides ReadOnly Property DisabledColor As System.Drawing.Color
- Get
- Return Color.FromArgb(128, 128, 128)
- End Get
- End Property
- Public Overrides ReadOnly Property ButtonGradientWidth As Double
- Get
- Return -0.07
- End Get
- End Property
- Public Overrides ReadOnly Property ButtonMouseDownGradientOffset As Double
- Get
- Return 0.08
- End Get
- End Property
- Public Overrides ReadOnly Property PresetName As String
- Get
- Return "Dunkelgrün"
- End Get
- End Property
- End Class
Verwendete Programmiersprache und IDE:
Visual Basic .Net (Visual Studio 2010 Express)
Systemanforderungen:
.Net Framework 4.0
Mindestens ~630 Pixel Bildschirmhöhe.
Vom Programm erstellte Dateien/Ordner:
%Appdata%\Local\Desktop Pinner v6\Settings.ini
%Appdata%\Local\Desktop Pinner v6\Tree.ini
(Programmordner)\Presets\
Registrywert: HKEY_LOCAL_USER\Software\Microsoft\Windows\CurrentVersion\Run\Desktop Pinner v6
Bekannte Bugs:
- An der Grenze zwischen zwei Controls wird die Hintergrundanimation etwas verschoben. Daran kann ich nicht wirklich was ändern.
- (Erledigt) Benutzerdefinierte Farbschemen nicht über die PresetName-Eigenschaft, sondern über den Klassennamen identifizieren. Dadurch werden die Einschränkungen für den Namen aufgehoben.
- (Erledigt) Benutzerdefinierte Farbschemen auch in Form einer Textdatei hinterlegbar machen.
- (Erledigt) Eventuell Farbschema aus einer einzigen Grundfarbe erstellen lassen.
- (Erledigt) Aktuelle Fensterfarbe von Windows automatisch auslesen und anwenden.
- (Erledigt) Autostart-Eintrag erstellen lassen.
- (Erledigt) Objekte per Drag-Drop hinzufügen
- (Erledigt) Einstellungen-Zurücksetzen-Button einbauen.
- Hilfsprogramm zum einfachen Erstellen von Farbschemen erstellen.
- Hintergrundanimation anpassbar machen.
- (Eventuell) Forms langsam einblenden lassen. Das ist problematisch, weil der Streifen ganz links mit verschwindet, wenn die Opacity-Eigenschaft der Form gegen 0 geht. Ein Workaround hätte ich im Kopf. Mal sehen, das hat erst mal eine niedrige Priorität.
Desktop Pinner v6.8.2.zip (146KB gepackt, 368KB entpackt)
MetroScheme v2.xml (für die Weiterverwendung) (61,4KB)
Erklärung zu den Dateien:
Dateien von mir:
- Desktop Pinner v6.exe: Hauptprogramm.
- DPElevatedServices.exe: Ein Programm, das beim Starten Administratorberechtigungen anfordert. Es wird gestartet, wenn der Benutzer nicht ausreichende Rechte hat, um den Autostart-Registrywert zu erstellen/löschen bzw. den Presets-Ordner zu erstellen.
- MetroScheme v2.dll: Enthält Metro-Controls mit der Farbschemenunterstützung und einige Helfer.
- MetroScheme v2.xml: Enthält die XML-Dokumentation der MetroScheme v2.dll. Dadurch werden in Visual Studio in Intellisense die Informationen zu Klassen/Methoden/etc. angezeigt.
- VistaFBD.dll: Enthält einen FolderBrowserDialog, der so aussieht wie der SaveFileDialog. Der normale FolderBrowserDialog sieht nämlich nicht schön aus und ist unintuitiv.
- AssemblyPresetCompiler.dll: Enthält Methoden zum kompilieren von Farbschemen zu Dlls und zum Laden selbiger.
- Interfaces.dll: Enthält die Interfaces, die für die Controller für Presets nötig sind. Eine Datei, die im Moment noch nicht vorhanden ist (Zuständig für das Laden von Presets in TextForm. Siehe Post #23 für Details.) wird als PlugIn behandelt und benötigt eine externe Assembly mit den Iterface-Deklarationen
Für meine Dateien gilt:
Das Programm darf beliebig weitergegeben werden, solange dafür keine Gegenleistung verlangt wird.
Dekompilieren erlaubt, ich beantworte Fragen zum Code aber auch gerne so.
Verwenden in anderen Programmen bzw. einkompilieren erlaubt, es wäre aber nett, wenn man mich informieren würde, damit ich bescheid weiß.
Für Dateien von Alex-Digital gilt:
Die Dateien dürfen nicht-kommerziell verwendet werden. Einkompilieren ist erlaubt.
Dekompilieren ist nicht erlaubt.
"Luckily luh... luckily it wasn't poi-"
-- Brady in Wonderland, 23. Februar 2015, 1:56
Desktop Pinner | ApplicationSettings | OnUtils
-- Brady in Wonderland, 23. Februar 2015, 1:56
Desktop Pinner | ApplicationSettings | OnUtils
Dieser Beitrag wurde bereits 24 mal editiert, zuletzt von „Niko Ortner“ ()