Shortcut Icon automatisch wechseln

HLK

Captain
Registriert
Feb. 2009
Beiträge
3.465
Sers,
ich hab ein AutoIt Script welches im Asus Audiocenter das Ausgabegerät wechselt und zu diesem Script ein Shortcut im Quick Launch Ordner in der Taskleiste (Win7).
Was ich jetzt noch brauche ist eine Anzeige welches Ausgabegerät aktiv ist in Form von einem LS oder KH Icon.

1) Meine Idee war es die .ico Datei des Shortcuts zu ersetzen, also jedes mal beim Wechseln die ico auf die der Shortcut zugreift zu überschreiben. Windows aktualisiert das Icon allerdings nicht automatisch. Ideen?
2) Zweite Idee: Shortcut jedes mal überschreiben durch einen mit anderem Icon. Funktioniert, allerdings bleibt die Position in der Quick Launch Leiste nicht erhalten. Ne Idee wie ich die Position wiederherstellen kann (abgesehen es mit Autoit mit der Maus wieder an seine Stelle zu ziehen)?
3) Dritte Idee: Eine kleine Anwendung in der Taskbar die ihr Icon entsprechend wechselt (und evtl auch beim anklicken des Icons zum starten des Scripts genutzt wird). Hier bräuchte ich hilfe beim erstellen dieses Dreizeilers der selbstverständlich keine Ressourcen fressen oder weitere Programme erfordern sollte.
4) Vorschläge?

Vorweg schonmal eine Dankeschön und Grüße,
HLK
 
Afaik kannst du ja von AutoIt aus auf COM-Objekte zugreifen.

Mal ein Auszug mit den relevanten Stellen aus meiner Klasse (C#):
Code:
private IWshShortcut _Shortcut;
public string Filename { get { return _Shortcut.FullName; } set { } }
public string Arguments { get { return _Shortcut.Arguments; } set { _Shortcut.Arguments = value; } }
public string Description { get { return _Shortcut.Description; } set { _Shortcut.Description = value; } }
public string Icon { get { return _Shortcut.IconLocation; } set { _Shortcut.IconLocation = value; } }
public string Target { get { return _Shortcut.TargetPath; } set { _Shortcut.TargetPath = value; } }
public string WorkingDirectory { get { return _Shortcut.WorkingDirectory; } set { _Shortcut.WorkingDirectory = value; } }

public ShellShortcut( string ShortcutFilename )
	: this( ShortcutFilename, "", "", new IconReference(), "", "" )
{
	WshShell shell = new WshShell();
	_Shortcut = (IWshShortcut)shell.CreateShortcut( ShortcutFilename );
}
public ShellShortcut( string ShortcutFilename, string TargetFilename, string Arguments, string Icon, string WorkingDirectory,
	string Description )
{
	WshShell shell = new WshShell();
	_Shortcut = (IWshShortcut)shell.CreateShortcut( ShortcutFilename );
	if( !Arguments.Equals( string.Empty ) ) _Shortcut.Arguments = Arguments;
	if( !Description.Equals( string.Empty ) ) _Shortcut.Description = Description;
	if( !Icon.Equals( string.Empty ) ) _Shortcut.IconLocation = Icon;
	if( !TargetFilename.Equals( string.Empty ) ) _Shortcut.TargetPath = TargetFilename;
	if( !WorkingDirectory.Equals( string.Empty ) ) _Shortcut.WorkingDirectory = WorkingDirectory;
}

static public ShellShortcut LoadFromFile( string ShortcutFilename )
{
	if( System.IO.File.Exists( ShortcutFilename ) )
		return new ShellShortcut( ShortcutFilename );
	return null;
}
public void SaveFile() { _Shortcut.Save(); }
Ich denke mal das sollte dir weiterhelfen.

PS: Denk dran, das Icon wird immer als <Datei>,<Index> gespeichert.
 
Konnt ich so nicht viel mit anfangen (ein wenig AutoIt vertiefen ging schneller), trotzdem danke.
Jetzt hab ich nen schönes Script welches mit nichtmal aufn Desktop wirft in Spielen, keine Fenster öffnet oder schließt und den Shortcut in der Windows Toolbar updated/ersetzt.
 
Zurück
Oben