Freitag, 14. November 2008

Konvertierung von FAT32 File System in NTFS

Ich habe mir letztens eine WD 1TB Externe gekauft! Läuft gut und stabil jedoch hat mich letztendlich aufgeregt, dass wenn ich ein Backupimage rüberziehen wollte das mir gesagt wird das der Speicher nicht größ genug wäre was natürlich blanker unsinn ist ... ich habs dann einfach mal gelassen und in einem kurzen gespräch mit einem Kollegen nochmal aufgebracht. Dieser brachte dann den Schlüssel mit der Bemerkung "FAT32". Ich hab mir erstmal an den Kopf gefasst und gefragt wieso ich das nicht zuerst überprüft habe ... naja wie immer sind die offensichtlichen Sachen doch nicht so offensichtlich ;)

Aufjedenfall wollte ich nicht Formatieren, da ich bereits einige Daten gesichert hatte. Aber zum Glück gibt es den Befehl CONVERT unter XP, ob es ihn bereits bei anderen Versionen von Windows gibt weiß ich gerade nicht.

Befehl:
CONVERT C: /FS:NTFS

!!!ACHTUNG!!!: Es ist ein "one way process" das heist es gitb keine sicher funktionierende Möglichkeit von NTFS zu FAT32 zurück zu konvertieren. Windows selbst bietet keinen solchen Service und Drittanbieter Software funktoniert nicht immer wie gewünscht!

Samstag, 16. August 2008

Xbox 360 als Media Extender

Hallo Leute, ich habe mir überlegt wie ich es wohl am besten schaffe DVDs, Musik oder sonstiges von meinem PC auf dem Fernseher anzuschauen. Mir ist dann eingefallen das die Xbox ja so eine art Media Extender ist, neben der normalen Eigenschaft eine Spielekonsole zu sein ;)

Versuch Nr. 1:
Zuerst habe ich versucht mit meiner Xbox über den Microsoft Media Player 11 und der integrierten Medien Freigabe zu kommunizieren. Hat nicht ganz hingehauen. Meine Xbox wurde zwar erkannt aber meine Xbox wollte nicht auf den PC. Nach vielem hin und her habe ich es damit gelassen ...

Versuch Nr. 2:
Media Player 11 wieder runtergehauen und Windows Media Connect installiert. Ähnliches Problem nur nicht permanent. Manchmal konnte ich auf meinen PC zugreifen manchmal nicht .. aber leider mehr "nicht" ;). Also auch wieder ab damit ... runter vom PC.

Versuch Nr. 3:
TVersity heist das Zauberwort. Wirklich eine klasse Software. Mit TVersity klappt es wunder bar. Es ist leicht zu bedienen und bietet eine schöne Administrations Oberfläche. Auf die genauen Funktionen und was diese Software überhaupt alles schönes kann darauf gehe ich jetzt in diesem Posting nicht ein.

Um über TVersity auf z.B. eure Xbox 360, Playstation3 oder WII Konsole zu Connecten braucht Ihr jedoch wieder den Media Player 11 .. aber achtet darauf das die Medienfreigabe im Microsoft Media Player 11 deaktiviert ist! Ambesten auch die Codecs usw. mit intallieren. Es installiert sich ein Dienst auf eurem Rechner der "TVersity Media Server". Wenn Ihr die standard einstellungen lasst dürfe es eigendlich sofot funktionieren wenn nicht schaut ambesten mal welchen Port Ihr in den Settings habt (nomaler weiße der Standard Port 41952) und gebt diesen in eurer Firewall frei sowie die Freigabe für den Media Server Dienst!

Kleiner Hinweiß es kann sein das Ihr Probleme bekommt beim zweiten Starten des Dienstes, das liegt an Windows und hat etwas mit DLL Konflikten zu tun .. laut Windows.... naja ... Wie auch immer wenn dem so ist startet ihr einfach über euer (Startmenü -> TVersity Media Server ->TVersity Tools->Share Meida Command Promt) und gebt dort folgendes in die Konsole ein:
( mediaserver -debug ) Nun dürte der Dienst laufen!

TVersity Link: http://tversity.com/

Ach zum Schluss noch eins: Verlasst euch nicht auf den Integrierten Netzwerktest der Xbox360.. dieser ist nichts aussagend! Geht einfach auf Media und dann auf Videos und drückt X um eine andere Quelle zu wählen dort müsste dann euer PC zu sehen sein! Es kann nämlich auch sein das Versuch 1 oder Versuch 2 bei euch Funktionieren ;) .. im empfehle trotzdem Versuch 3!

Viel spaß noch!

:)

PS: Bei Fragen zu bestimmten Punkten einfach in die Komments schreiben, danke!

Mittwoch, 13. August 2008

Outlook: Desktopbenachrichtigung dauerhaft anzeigen!

Ein Kollege aus meiner Arbeit (Leider keinen Eigenen Blog) hat danach geforscht wie man die Desktopnachricht von Microsoft Outlook dauerhaft bzw. länger anzeigt lassen kann.


Früher war es in Microsoft Outlook so, dass bei einer neuen E-Mail dauerhaft ein kleines Fenster aufpoppte. Nun ist es leider so, dass dieses Fenster nur max. 30 Sekunden angezeigt bleibt. Der kleine Briefumschlag im System-Tray wird ja leider auch unter Umständen nicht angezeigt, sondern ausgeblendet (je nach Einstellung der Taskleiste).

Lösung:

1. Möglichkeit:

Ändern eines Wertes in der Registry:

HKCU\Software\Microsoft\Office\11.0\Common\DesktopAlerts
Den Wert bei TimeON höher setzten. (1000 = 1 sekunde)

2. Möglichkeit:

Regel erstellen.

Extras -> Regeln und Benachrichtigungen -> Neue Regel… ->Regel ohne Vorlage erstellen -> Nachrichten bei Ankunft prüfen -> Welche Bedingungen möchten Sie auswählen?
Hier nichts auswählen, die Regel wird dann auf alle eingehenden Mails angewendet.
Bei der Nachfrage, ob die Regel wirklich auf alle Mails angewedet werden soll auf “JA” klicken.
-> Was soll mit dieser Nachricht passieren? Hier den Punkt “Im Benachrichigungsfenster diesen Text anzeigen” (fast ganz unten) auswählen.
Nun auf den blau gefärbten Schriftzug “diesen Text” klicken und nach belieben einen Text eingeben. (z.B.: Du hast ne neue E-Mail) Dann auf “OK” und auf “Weiter”.
-> Möchten Sie Ausnahmen festlegen?
Hier nichts auswählen, sondern nur auf “Weiter” klicken.
-> Regel fertig stellen
Hier darauf achten, dass der Haken bei “Regel aktivieren” gesetzt ist und dann auf “Fertig stellen”

Danke dafür!

SQL Update Befehl mit JOIN

Jeder kennt den UPDATE Befehl in SQL, doch wie Update ich etwas in meiner Tabelle wenn ich mich als Bedingung auf eine Spalte in einer zweiten Tabelle beziehen muss.

Na klar! Mit JOINS :)

Hier das Beispiel:
UPDATE Tabelle1
SET Spalte = Wert
FROM Tabelle1 INNER JOIN
Tabelle2 AS t2 ON Tabelle1.id_t2 = t2.id
WHERE (t2.spalte = 33)

Anstatt INNER JOIN kann natürlich auch LEFT oder RIGHT JOIN verwendet werden.

Ich verwende für die entwicklung von Windows Anwendungen Microsoft SQL Server 2005 und für Web Anwendungen mySQL Server.

Wenn es Fragen gibt oder Anregungen bitte in die Komments schreiben :)

Dienstag, 12. August 2008

Highlight Focused Textbox

Hier ein kleiner einstieg in Custom Forms für Microsoft .NET und dem Microsoft Visual Studio!

Was ist unser ziel?
Unser Ziel ist es, eine Textbox zu erstellen die wenn sie den focus auf sich hat eingefärbt wird und somit dem User eine kleine Orientierungshilfe bietet. Dazu werden wir einfach die schon vorhandene Standard Textbox von Microsoft Visual Studio etwas modifizieren.


Was wird benutzt?
Ich verwende Microsoft Visual Studio 2005 und schreibe dieses Beispiel in Microsoft VB.net


Wie gehen wir vor?
Schritt 1:
Wir erstellen uns ein Neues Projekt für eine Klassenbibliothek (*.dll) und Nennen das Projekt: customForms

Schritt 2:
Nun fügen wir unserem Projekt eine Neue Klasse hinzu und nennen diese: FocusedTextBox

Schritt 3:
Kopiert nun folgendes in die Datei:
Imports System.Drawing
Public Class FocusedTextBox
Inherits TextBox
End Class

Schritt 4:
Fügt nun folgende Variablen in euren Programmcode ein:
Imports System.Drawing
Public Class FocusedTextBox
Inherits TextBox

Private myFocusColor As Color ' Einfärbfarbe
Private myOriginalBackcolor As Color ' Ursprüngliche Farbe
Private myOnFocusColor As Boolean ' Flag für Fokusierung

End Class

Schritt 5:
Anlegen einer neuen Instanz dieser Klasse:
Sub New()

'Den Basiskonstruktor aufrufen!
MyBase.New()
'Text = "FocusedTextBox"
'Standart Text setzen
BackColor = System.Drawing.Color.Gainsboro
BorderStyle = System.Windows.Forms.BorderStyle.None
Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Size = New System.Drawing.Size(100, 16)
'Voreingestellter Wert ist Moccasin
myFocusColor = System.Drawing.Color.Moccasin
'Voreingestellt ist: Bei Fokus wird eingefärbt.
myOnFocusColor = True

End Sub


Schritt 6:
Wir benötigen zum weiter machen noch folgende 2 Methoden in unserer Klasse:
Public Property FocusColor() As Color
Get
Return myFocusColor
End Get
Set(ByVal value As Color)
myFocusColor = value
End Set
End Property
und
Public Property OnFocusColor() As Boolean
Get
Return myOnFocusColor
End Get
Set(ByVal value As Boolean)
myOnFocusColor = value
End Set
End Property


Schritt 7:
Jetzt kommen wir dazu die Event behandlungen zu überschreiben:
Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
MyBase.OnGotFocus(e)
If OnFocusColor Then
myOriginalBackcolor = Me.BackColor
Me.BackColor = FocusColor
End If
End Sub
und
Protected Overrides Sub OnLostFocus(ByVal e As System.EventArgs)
MyBase.OnLostFocus(e)
If OnFocusColor Then
Me.BackColor = myOriginalBackcolor
End If
End Sub

(Erklärungen zu den einzelnen Methoden werden später hinzugefügt)


Soweit sogut, nun haben wir uns eine eigene Dynamic Link Library (DLL) geschrieben. Doch was machen wir damit?

Zuersteinmall ertellen wir unsere Dynamic Link Library (DLL) über den übligen weg ;)
Wir kopieren unsere customForms.dll aus unserem /bin ordner und stecken sie in das Verzeichnis des Projektes in dem wir unsere neue Form verwenden möchten.

Jetzt öffnen wir das Projekt in dem wir die Forms verwenden möchten und gehen auf:
Extras -> Toolboxelemente auswählen

Dort wählen wir dann unsere dll (durchsuchen klicken) aus und laden sie in die Toolbox.

Fertig! Nun könnt ihr eure Textbox verwenden :) Viel spaß!
Wenn es Fragen oder Probleme gibt einfach in die Komments schreiben!

Reihenfolge von Events in Windows Forms

Mircosoft WIndows Forms anwendungen mit dem Microsoft Visual Studio.
Ich Benutze das Microsoft Visual Studio 2005

Wenn eine Microsoft Windows Forms Anwendung gestartet wird, werden die startup events in folgender Reihenfolge abgearbeitet:

System.Windows.Forms.Control.HandleCreated
System.Windows.Forms.Control.BindingContextChanged
System.Windows.Forms.Form.Load
System.Windows.Forms.Control.VisibleChanged
System.Windows.Forms.Form.Activated
System.Windows.Forms.Form.Shown

Wenn eine Microsoft Windows Forms Anwendung geschlossen wird, werden die shutdown events in folgender Reihenfolge abgearbeitet:

System.Windows.Forms.Form.Closing
System.Windows.Forms.Form.FormClosing
System.Windows.Forms.Form.Closed
System.Windows.Forms.Form.FormClosed
System.Windows.Forms.Form.Deactivate

interessant hierzu ist der MSDN Eintrag