TheJaeck.NET

The Life of Jaeck
rundeecke
Mai30

Programme mit Shortcuts unter Windows öffnen – FastOpener

Author: Jaeckel - Kategorien: Programming, Projekte - Tags: , - Kommentare: 0
FastOpener - Tastenkürzel

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

Mai17

Fenster in den Vordergrund holen C#

Author: Jaeckel - Kategorien: Programming - Tags: - Kommentare: 0

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

Dez14

PostMessage in C#

Author: Jaeckel - Kategorien: Programming, Tutorials - Tags: - Kommentare: 0

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);

Read it all…

Okt7

Paint.Net – Deformation Effect

Author: Jaeckel - Kategorien: Studium - Tags: , , , , - Kommentare: 0

Zweite Aufgabe im viertem Semester “Computer Graphics” war ein Deformations Effekt in C# als Plugin für Paint.NET zu entwickeln. Kristin und Ich merkten, dass die vorherigen drei Semester Mathe nicht ganz unsinnig waren.

Deformiertes Bild

Perfekt Deformiert :)

Read it all…

Okt5

Paint

Author: Jaeckel - Kategorien: Studium - Tags: , , , - Kommentare: 0

Die erste Aufgabe im vierten Semester “Computer Graphics” bei Jörn Loviscach sollte ein einfaches Zeichenprogramm sein mit dem man per Maus einfache Figuren zeichnen, selektieren, bewegen, rotieren und skalieren lassen kann. Read it all…