Im Rahmen der Veranstaltung Internettechnologien SS ‘10 hatten wir die Aufgabe ein einfaches mySQL Abfrageprogramm zu implementieren. Hierbei handelt es sich um eine Konsolenanwendung.
Download
- Hier herunterladen…
Im Rahmen der Veranstaltung Internettechnologien SS ‘10 hatten wir die Aufgabe ein einfaches mySQL Abfrageprogramm zu implementieren. Hierbei handelt es sich um eine Konsolenanwendung.
Download
Für eine Maske in Papervision braucht man eigentlich viel. Nur wissen muss man es erstmal. Eine Maske definiert den Bereich eines Viewports in Papervision der nur angezeigt werden soll.
1 2 3 4 5 6 7 8 | viewport.cacheAsBitmap = true; var mask:MovieClip = new MovieClip(); mask.graphics.beginFill(0x00000); // Bereich der angezeigt werden soll mask.graphics.drawRect( x, y, width, height); mask.graphics.endFill(); mask.cacheAsBitmap = true; viewport.mask = mask; |
Vor kurzem benötigte ich für ein Projekt eine Klasse die Daten aus einer Textdatei liest. Adobe bietet ja eine umfangreiche Bibliothek an was Klassen und deren Funktionen betrifft. Aber als die load-Funktion des URLLoaders immer wieder einen Error wurf und ich diese nicht mit Hilfe einer try … catch Anweisung abfangen konnte, war ich schon etwas stutzig und musste erst mal 15 Min googlen.
Während meiner Recherche fand ich raus das andere meistens das selbe Problem hatten. Dann bin ich aber doch wieder bei Adobe gelandet, habe mir dann die Klasse des URLLoaders etwas genauer angeschaut und prompt war da auch ein Beispiel.
Ich habe mich mal gestern und heute hingesetzt und ein kleines Tool geschrieben mit dem man per Windows Taste + A-z Programme seiner Wahl öffnen kann. Die Tastenkürzelfunktion von Windows XP scheint irgendwie nicht zu gehen und selbst dann muss man mühsam STRG+ALT+A-z drücken.
Mit meinem kleinem Tool braucht man lediglich nur die Windows Taste + A-z drücken und das Programm seiner Wahl startet automatisch. Weiterhin erscheint zusätzlich beim drücken der Windows Taste eine kleine Übersicht (siehe Bild rechts) aller Tasten die mit einem Programm verknüpft sind. Welche Programme mit welchen Tasten verknüpft sind, kann man über ein XML-Konfigurationsfile einstellen. Das XML-File bitte im Programmordner des Shortcut-Programms lassen. Hier ein Beispiel (liegt auch im ZIP-File bei).
Tastenkürzel vergeben – config.xml
<shortcuts> <app> <key>N</key> <path>notepad.exe</path> </app> <app> <key>I</key> <path>C:\Programme\iTunes\iTunes.exe</path> </app> <app> <key>S</key> <path>sndvol32.exe</path> </app> </shortcuts>
Wie man hier sieht gibt es 3 Shortcuts die mit Programmen verknüpft sind. Mit dem Element <app> legt man einen neuen Shortcut an. Dies besitzt 2 Unterelemente <key> und <path>. <key> ist das Tastenkürzel und <path> das Programm welches ausgeführt werden soll.
| Win + N | Notepad |
| Win + I | i-Tunes |
| Win + S | Lautstärkereglung |
Denkt bitte daran das Windows auch einige Tastenkürzel mit der Windows Taste verwendet. Mit Windows-M minimiert man z.B. alle Fenster. Legt man einen neuen Shortcut mit der selben Tastenbelegung an, wird dieses überschrieben. Eine Liste aller Tastenkürzel von Windows findet ihr hier.
Programm beenden
Fast hätte ich es vergessen. Um das Programm zu beenden einfach Windows Taste + X drücken.
Programm verschieben
Windows Taste gedrückt halten. Die Shortcut Liste erscheint. Liste mit linker Maustaste auswählen und gedrückt lassen. Maus bewegen. Fertig!
Autostart
Möchte man das Shortcut-Programm immer zur Verfügung haben. Einfach eine Verlinkung in den Autostart Ordner im Windows Startmenü anlegen.
Download
Links
Für ein Projekt programmiere ich derzeit mit ActionScript 3 und verwende dabei diverse Components der fl.controls Bibliothek. Nun wollte Ich einen Button verwenden. Dieser funktioniert auch wunderbar. Allerdings erscheint nur der gewöhnliche Arrow Mauszeiger bei einem MouseOver. Ich möchte aber den schönen Pointer Mauszeiger wie rechts im Bild bei einer Bewegung über den Button als Mauszeiger haben.
Ich habe eine Lösung gefunden. Zunächst einmal :
Nun kann es losgehen. Read it all…
Für ein Projekt benötigte Ich die Möglichkeit per Tastenkombination ein Fenster definitiv in den Vordergrund zu holen. Ein gutes Beispiel wäre ein Instant Messenger der automatisch seine Chatfenster aufploppen lässt, sobald eine Nachricht eintrifft.
Dazu benötigt man ein paar DLL-Imports aus der user32.dll :
[DllImport("user32.dll")] static extern bool IsIconic(IntPtr hWnd); [DllImport("user32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); /// Win32 API Constants for ShowWindowAsync() public const int SW_HIDE = 0; public const int SW_SHOWNORMAL = 1; public const int SW_SHOWMINIMIZED = 2; public const int SW_SHOWMAXIMIZED = 3; public const int SW_SHOWNOACTIVATE = 4; public const int SW_RESTORE = 9; public const int SW_SHOWDEFAULT = 10;
Nun steht uns nichts mehr im Weg.
IntPtr pWindow = new WindowInteropHelper( System.Windows.Application.Current.MainWindow).Handle; System.Windows.Window actWnd = Application.Current.MainWindow; if (IsIconic(pWindow)) { ShowWindowAsync(pWindow, SW_RESTORE); } else { if (!(actWnd.IsActive)) { while( !(SetForegroundWindow(pWindow) > 0 )) ; ShowWindowAsync(pWindow, SW_SHOWDEFAULT); } else ShowWindowAsync(pWindow, (SW_SHOWMINIMIZED)); } }
Zunächst wird geprüft ob das Fenster minimiert ist. Wenn ja, wird der Status des Fensters mit Hilfe des Befehls SW_RESTORE auf wiederherstellen gesetzt. Ist das Fenster nicht minimiert, wird zunächst geprüft ob das Fenster im Hintergrund anderer Fenster liegt. In diesem Fall wird der Befehl SetForeGroundWindow so lange an die Anwendung geschickt, bis das Fenster wieder sichtbar auf dem Desktop steht. Ansonsten wird unsere Anwendung minimiert.
Links
Vor kurzem brauchte Ich für die Arbeit ein kleines Programm mit dem man Nachrichten mit C# an andere Programme schicken konnte. Nach großem Googlen durchs Netz bin ich auch fündig geworden und habe eine kleine Applikation zum testen geschrieben.
Da man in C# keine Funktionen für die Übermittlung von Nachrichten zur Verfügung hat, benötigt man Dll-Imports aus der user32.dll was im Quelltext für PostMessage dann so aussieht:
[DllImport("user32.dll", SetLastError = true)] static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
Vor kurzem habe Ich mich mal rangesetzt und eine Projektmanagement-Webanwendung mit cakePHP programmiert. cakePHP ist ein Framework geschrieben in PHP mit dem Programmierer in kürzester Zeit große Resultate erzielen können.
Warum das Ganze?! Es gibt schon fertig OpenSource Lösungen im Netz, die man runterladen und auf seinem Webserver installieren kann. Allerdings entsprach keine dieser Lösungen meinen Ansprüchen. Ich wollte was einfaches mit Aufgaben und Kommentaren, die zu den Aufgaben verfassen kann. Wie zum Beispiel bei Entwicklung von Programmen. Man muss irgendwas programmieren und kann dies auch gleichzeitig als Kommentar speichern. So kann man später immer wieder darauf zurückgreifen.
Bei meiner Projektmanagement-Anwendung handelt es sich allerdings noch um eine starke Beta-Version. Mir fallen jetzt schon wieder tausend Dinge ein was noch alles zu verbessern, optimeren, fixen und hinzuzufügen wäre. Seit also bitte gnädig. Read it all…
Zur Zeit beschäftige Ich mich auch wieder bedingt durchs Studium viel mit CakePHP. CakePHP ist ein Framework mit dem Entwickler leichter komplexe Webanwendungen realisieren können. Für das Userlogin habe ich mich für die Componente othAuth entschieden.
Allerdings hat sich hier ein kleiner Fehler beim Login eingeschlichen. Wenn Ich mich z.B. als root anmelde wird nicht “last_visit” vom root aktualisiert, sondern ein ganz neuer Datensatz in die Tabelle “users” geschrieben. Ich bin den Code der othAuth-Componente mal durchgegangen und war erfolgreich.
\app\controllers\components\oth_auth.php
Zeile 330
$res = $UserModel->save($row,true,array($this->user_table_last_visit));
ändern in
Zeile 330
$res = $UserModel->save($row,true);
Das wars. Danach wird wieder ein Update statt ein Insert durchgeführt.
Links