Desktop Icons speichern/restoren mit zwei ausführbaren scripten ohne GUI

  • Moin!

    Da das mein erster Post ist, bitte ich um Nachsicht, wenn ich gleich mal in eine Falle tippen sollte :)

    Mein Problem:
    Ich suche zwei Scripte, die die Aufgabe erledigen könne einmal die Icons auf dem Desktop zu speicher und dann wieder zu restoren.
    Es gibt zwar einige shareware/freeware programme und reg Dateien die dazu in der Lage sind, doch fehlt mir im Netz ein AutoIt Script >ohne GUI<, dass das ebenfalls kann: Einfach einen Doppelklick auf das jeweilige Script und gut ist.

    Das AutoIt Script das dazu in der Lage sein soll - oder mal in der Lage war - ist hier zu finden:
    http://www.autoitscript.com/forum/index.php?showtopic=50804

    ...in der ersten Zeile findet man schon gleich das erste Problem. Da es die A3LListView.au3 nicht mehr gibt (ich bekomme sie jedenfalls nirgenswo her) und wohl das Script GuiListView.au3 dies abgelöst hat, ist das gesamte Script garnicht mehr in der Lage die Funktion noch auszuführen. Zudem muste ich mir 16 weitere Scripte für das eigentlich Script zusammensuchen und das ist anhand der simplen Aufgabe die die zwei Scripte erledigen sollen doch etwas überdemensioniert:
    IconPos.au3, Array.au3, Constants.au3, File.au3, GUIConstants.au3, GuiListView.au3, ImageListConstants.au3, ListViewConstants.au3, Memory.au3, MemoryConstants.au3, Misc.au3, Security.au3, SecurityConstants.au3, StructureConstants.au3, WinAPI.au3, WindowsConstants.au3
    Da ich ein AutoIt Neuling bin, habe ich es leider nicht geschaft den berteits existierenden Code zu zwei simplen Scripten zusammenzufrickeln. Und genau da wäre es klasse wenn mir jemand dabei helfen könnte... vielleicht ist es nur eine Sache von 5 Minuten oder noch weniger.

    Thanks,
    Simon

    Einmal editiert, zuletzt von Simoncom (15. Februar 2008 um 10:23)

  • Moin Simoncom,

    ich verstehe was du möchtest, aber es wär schon cool wenn du es mal probierst und dann Fragen stellst.
    Gleich zu Anfang mal einen Tipp : Die neuen Funktionen für die ListView fangen mit'_GUICtrlListView_' an ;)

    P.S. : Du brauchst folgendes include '#include <GuiListView.au3>' ganz am Anfang.

  • Hallo JanSchmidt,

    Das kann lange dauern.... Bevor ich mir kein Variable ausgeben lassen kann stecke ich fest. Ich kenne mich mit AutoHotKey ganz gut aus, doch AutoIt scheint wieder anders zu ticken. Nun gut aller Anfang ist schwer. Deshalb lasse ich gleich mal eine n00b-Frage loß. Was hab ich hier falsch gemacht? Ich hab es nach dem Tutorial aufgesetzt doch es will nicht.

    Code-Anfang
    ---------------
    $var1 = "BeispielString"
    MsgBox(4096, "MeineTestVariable", "$var1")
    ------------
    Code-Ende

    Thanks,
    Simon

  • Freut mich das du es probierst :thumbup:
    Also $var1 ist eine Variable und Strings begrenzt man mit ".
    Wenn du in der MsgBox "$var1" ist das für ihn ein String und nicht die Variable.
    Also richtig wäre :
    MsgBox(4096, "MeineTestVariable", $var1)

  • _GUICtrlListViewCopyItems ( $h_Source_listview, $h_Destination_listview [, $i_DelFlag = 0 ] )
    Ok, jetzt hab ich das problem an die control id des Desktops (also der Classe Progman) zu kommen.
    WinGetID von Classe XY gibt es nicht. Die Variable $h_Source_listview muss ich doch mit der ID des Desktop füttern um so an die ions auf dem Desktop zu kommen oder denke ich da in die falsche richtung.

  • Nur eine Verständnissfrage, es soll zwei Scripte ergeben? Einses was eine INI anlegt wo die Positionen der Icons gespeichert sind und eines welches die Icons wieder an ihre Position schiebt oder sie auch wieder herstellt, weil irgend jemand eines der Icons bzw. Verknüpfungen gelöscht hat?

    Nebenbei der oben gepostete Quelltext ohne A3LListView.au3

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #Include <GuiListView.au3>
    #include <File.au3>
    #include <GuiConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $guiwindow = GUICreate("Window Selection", 350, 150)
    $font = "Arial Bold"

    [/autoit] [autoit][/autoit] [autoit]

    $LoadB = GUICtrlCreateButton(" Load ", 5, 123)
    $SaveB = GUICtrlCreateButton(" Save ", 45, 123)
    GUICtrlSetFont(-1, 8.5, 400, -1, $font)
    $refreshbutton = GUICtrlCreateButton("Refresh", 100, 123, 60, 25)
    GUICtrlSetFont(-1, 8.5, 400, -1, $font)
    $nListview = GUICtrlCreateListView(" Title|State ", 0, 0, 350, 120)
    GUICtrlSendMsg($nListview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    GUICtrlSendMsg($nListview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)

    [/autoit] [autoit][/autoit] [autoit]

    RefreshWidth()
    Func RefreshWidth()
    _GUICtrlListView_SetColumnWidth($nListview,1,$LVSCW_AUTOSIZE_USEHEADER)
    _GUICtrlListView_SetColumnWidth($nListview,1,_GUICtrlListView_GetColumnWidth ($nListview,1)-2)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ListWindows()

    [/autoit] [autoit][/autoit] [autoit]

    LoadInis() ; only that one visible in ListView

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_Event_Close
    GUIDelete($guiwindow)
    Exit
    Case $msg = $LoadB
    Restore()
    ContinueLoop
    Case $msg = $SaveB
    Save()
    ListWindows()
    LoadInis()
    ContinueLoop
    Case $msg = $refreshbutton
    ListWindows()
    LoadInis()
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func ListWindows()
    GUISetState(@SW_SHOW)
    _GUICtrlListView_DeleteAllItems ($nListview)
    $aWindows = WinList("[CLASS:CabinetWClass]") ; To remove visible windows take out 'IsVisible' function.
    For $i = 1 To $aWindows[0][0]

    [/autoit] [autoit][/autoit] [autoit]

    ;~ MsgBox(0, 0, "You choose: " & ControlGetText ($aWindows[$i][0], "", "SysListView321"))
    If $aWindows[$i][0] <> "" And ControlGetText ($aWindows[$i][0], "", "SysListView321") = "FolderView" Then
    GUICtrlCreateListViewItem($aWindows[$i][0], $nListview)
    EndIf
    Next
    GUICtrlCreateListViewItem("Program Manager(Desktop)", $nListview)
    _GUICtrlListView_SetColumnWidth($nListview, 0, $LVSCW_AUTOSIZE)

    EndFunc ;==>ListWindows

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func LoadInis()

    $FileList =_FileListToArray(@ScriptDir & "\WindowsPos","*.ini")
    If @error <> 0 Then
    If @error = 1 Then DirCreate ( @ScriptDir & "\WindowsPos" )
    Return -1
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To _GUICtrlListView_GetItemCount ($nListview)-1
    $name = _GUICtrlListView_GetItemText ( $nListview, $i ,0)
    If @error <> 0 Then Return False
    $Load = LoadIni($name,$i)
    If $Load Then
    _GUICtrlListView_SetItemText ( $nListview, $i, 1, $Load )
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    RefreshWidth()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func LoadIni($name,$listnr)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $PosList[1][3]

    [/autoit] [autoit][/autoit] [autoit]

    If Not FileExists(@ScriptDir & "\WindowsPos\"&$name&".ini") Then Return False ; keine Ini gefunden
    $IniSec = IniReadSection (@ScriptDir & "\WindowsPos\"&$name&".ini","Positions by Name")
    If @error=1 Then
    Return "Error in ini" ; ini gefunden aber fehlerhaft
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return "Positions found"

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Restore()
    $winname = _GUICtrlListView_GetItemText ( $nListview, -1 ,0)
    If $winname = "Program Manager(Desktop)" Then
    $handle = ControlGetHandle("Program Manager", "", "SysListView321")
    Else
    $handle = ControlGetHandle($winname, "", "SysListView321")
    EndIf
    _GUICtrlListView_BeginUpdate ($handle)
    For $i = 0 To _GUICtrlListView_GetItemCount ($handle)
    $name = _GUICtrlListView_GetItemText ($handle, $i)
    $x = IniRead(@ScriptDir & "\WindowsPos\"&$winname&".ini", "Positions by Name", $name & "x", "Unknown")
    $y = IniRead(@ScriptDir & "\WindowsPos\"&$winname&".ini", "Positions by Name", $name & "y", "Unknown")
    If $x <> "Unknown" Then
    _GUICtrlListView_SetItemPosition32 ($handle, $i, $x, $y)
    EndIf
    Next
    _GUICtrlListView_EndUpdate ($handle)
    EndFunc ;==>Restore

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Save()
    $winname = _GUICtrlListView_GetItemText ( $nListview, -1 ,0)
    If $winname = "Program Manager(Desktop)" Then
    $handle = ControlGetHandle("Program Manager", "", "SysListView321")
    Else
    $handle = ControlGetHandle($winname, "", "SysListView321")
    EndIf
    If @error = 1 Then MsgBox(0,0," Error(ControlGetHandle) : cant get handle")
    $t= MsgBox(4, "Confirm","Window Name: "&$winname&@CRLF& _
    "Icon Count: "&_GUICtrlListView_GetItemCount ($handle)&@CRLF& _
    "Name of first Icon: "&_GUICtrlListView_GetItemText($handle, 0)&@CRLF&@CRLF& _
    " Do you really want to save?")
    If $t <> 6 Then Return
    _GUICtrlListView_SetItemText ( $nListview, _GUICtrlListView_GetSelectedColumn ($nListview), 1, "saving..." )
    FileDelete(@ScriptDir & "\WindowsPos\"&$winname&".ini")
    For $i = 0 To _GUICtrlListView_GetItemCount ($handle)
    $pos = _GUICtrlListView_GetItemPosition ($handle, $i)
    $name = _GUICtrlListView_GetItemText ($handle, $i)
    If $pos[0] = True Then
    IniWrite(@ScriptDir & "\WindowsPos\"&$winname&".ini", "Positions by Name", $name & "x", $pos[0])
    IniWrite(@ScriptDir & "\WindowsPos\"&$winname&".ini", "Positions by Name", $name & "y", $pos[1])
    EndIf
    Next
    _GUICtrlListView_SetItemText ( $nListview, _GUICtrlListView_GetSelectedColumn ($nListview), 1, "done" )
    RefreshWidth()
    Sleep(1500)
    EndFunc ;==>Save

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Hi McPoldy,

    An das Erstellen von gelöschten Objekten auf dem Desktop hatte ich noch nicht gedacht. Das soll es auch nicht können. Aber den Rest den Du als Verständnisfrage geschrieben hast ist exakt richtig.

  • McPoldy
    Wie kannst man mit dem Script die Position wiederherstellen?
    Drücke ich auf Load passiert nix (also die Icons werden nicht wiederhergestellt) ?(

  • @Jan
    ich habe es nur angepasst das es lauffähig ist :) aber ich finde es interessant glaube ich bastele auch mal wenn ich Zeit finde (Übung macht den Schlumpf/Meister) ;)

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • @JanSchmidt
    Dann bist Du weiter als ich...
    Wenn ich IconPos.au3 öffne, öffnet sich das Fenster "Window Selection" mit den Titeleinträgen "Suchergebnisse" und "Program Manager(Desktop)"
    Bei beiden Einträgen ist der "State" kein "Positions found" angezeigt. Wenn ich auf Save klicke bekomme ich eine Fehlermeldung
    "Line 137... IconPos.au3"
    "Error: Unknown function name"
    Es betrifft das Kommando "_ListView_GetItemCount ($handle)..."

  • Hi McPoldy,

    wäre sehr fett! Bei mir gibt es einige Spiele/Emu's die den Desktop auf 800*600 schalten und dann sind alle Icons 'zusammengequescht' :cursing:
    Da wäre so'n Tool verdammt praktisch :D

    @Simoncon
    Die mußt du in '_GUICtrlListView_GetItemCount ($handle)' ändern, dann klappt's (wenigstens da ;) )
    Hast du McPoldy Version genommen?

  • ...und bei mir fliegen die Icons immer dann durcheinander, wenn ich auf 1024x780 zurückschalten muss um meinen TV-Out nutzen zu können - u.a. Wäre echt nett wenn du dich darum kümmern könntest.

    @JanSchmidt
    hab ich nicht :)
    ich probiers mal...

    Einmal editiert, zuletzt von Simoncom (15. Februar 2008 um 12:28)

  • Ausprobiert und bekomme beim Starten von IconPos.au3 gleich die Fehlermeldung:

    Line 21... IconPos.au3
    Error: Unknown funktion name
    Der ERROR kommt ganz am Ende der Zeile zu Stande.

  • @Simoncom
    Benutzt du auch die neueste stabile Version 3.2.10.0?
    Hast du alle alten include's rausgeschmissen?

    Xenobiologist
    Mir reicht auch ein Prog...
    Wäre nett wenn du den Link postest 8o

  • So gehts bei mir mit 3.2.10.0:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <GuiListView.au3>
    #include <File.au3>
    #include <GuiConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $guiwindow = GUICreate("Window Selection", 350, 150)
    $font = "Arial Bold"

    [/autoit] [autoit][/autoit] [autoit]

    $LoadB = GUICtrlCreateButton(" Load ", 5, 123)
    $SaveB = GUICtrlCreateButton(" Save ", 45, 123)
    GUICtrlSetFont(-1, 8.5, 400, -1, $font)
    $refreshbutton = GUICtrlCreateButton("Refresh", 100, 123, 60, 25)
    GUICtrlSetFont(-1, 8.5, 400, -1, $font)
    $iListview = GUICtrlCreateListView(" Title|State ", 0, 0, 350, 120)
    $nListview = GUICtrlGetHandle($iListview)
    GUICtrlSendMsg($nListview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    GUICtrlSendMsg($nListview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)

    [/autoit] [autoit][/autoit] [autoit]

    RefreshWidth()
    Func RefreshWidth()
    _GUICtrlListView_SetColumnWidth($nListview,1,$LVSCW_AUTOSIZE_USEHEADER)
    _GUICtrlListView_SetColumnWidth($nListview,1,_GUICtrlListView_GetColumnWidth ($nListview,1)-2)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ListWindows()

    [/autoit] [autoit][/autoit] [autoit]

    LoadInis() ; only that one visible in ListView

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_Event_Close
    GUIDelete($guiwindow)
    Exit
    Case $msg = $LoadB
    Restore()
    ContinueLoop
    Case $msg = $SaveB
    Save()
    ListWindows()
    LoadInis()
    ContinueLoop
    Case $msg = $refreshbutton
    ListWindows()
    LoadInis()
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func ListWindows()
    GUISetState(@SW_SHOW)
    _GUICtrlListView_DeleteAllItems ($nListview)
    $aWindows = WinList("[CLASS:CabinetWClass]") ; To remove visible windows take out 'IsVisible' function.
    For $i = 1 To $aWindows[0][0]

    [/autoit] [autoit][/autoit] [autoit]

    ;~ MsgBox(0, 0, "You choose: " & ControlGetText ($aWindows[$i][0], "", "SysListView321"))
    If $aWindows[$i][0] <> "" And ControlGetText ($aWindows[$i][0], "", "SysListView321") = "FolderView" Then
    GUICtrlCreateListViewItem($aWindows[$i][0], $iListview)
    EndIf
    Next
    GUICtrlCreateListViewItem("Program Manager(Desktop)", $iListview)
    _GUICtrlListView_SetColumnWidth($nListview, 0, $LVSCW_AUTOSIZE)

    EndFunc ;==>ListWindows

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func LoadInis()

    $FileList =_FileListToArray(@ScriptDir & "\WindowsPos","*.ini")
    If @error <> 0 Then
    If @error = 1 Then DirCreate ( @ScriptDir & "\WindowsPos" )
    Return -1
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To _GUICtrlListView_GetItemCount ($nListview)-1
    $name = _GUICtrlListView_GetItemText ( $nListview, $i ,0)
    If @error <> 0 Then Return False
    $Load = LoadIni($name,$i)
    If $Load Then
    _GUICtrlListView_SetItemText ( $nListview, $i, 1, $Load )
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    RefreshWidth()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func LoadIni($name,$listnr)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $PosList[1][3]

    [/autoit] [autoit][/autoit] [autoit]

    If Not FileExists(@ScriptDir & "\WindowsPos\"&$name&".ini") Then Return False ; keine Ini gefunden
    $IniSec = IniReadSection (@ScriptDir & "\WindowsPos\"&$name&".ini","Positions by Name")
    If @error=1 Then
    Return "Error in ini" ; ini gefunden aber fehlerhaft
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return "Positions found"

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Restore()
    $winname = _GUICtrlListView_GetItemText ( $nListview, -1 ,0)
    If $winname = "Program Manager(Desktop)" Then
    $handle = ControlGetHandle("Program Manager", "", "SysListView321")
    Else
    $handle = ControlGetHandle($winname, "", "SysListView321")
    EndIf
    _GUICtrlListView_BeginUpdate ($handle)
    For $i = 0 To _GUICtrlListView_GetItemCount ($handle)
    $name = _GUICtrlListView_GetItemText ($handle, $i)
    $x = IniRead(@ScriptDir & "\WindowsPos\"&$winname&".ini", "Positions by Name", $name & "x", "Unknown")
    $y = IniRead(@ScriptDir & "\WindowsPos\"&$winname&".ini", "Positions by Name", $name & "y", "Unknown")
    If $x <> "Unknown" Then
    _GUICtrlListView_SetItemPosition32 ($handle, $i, $x, $y)
    EndIf
    Next
    _GUICtrlListView_EndUpdate ($handle)
    EndFunc ;==>Restore

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Save()
    $winname = _GUICtrlListView_GetItemText ( $nListview, _GUICtrlListView_GetSelectedIndices($nListview))
    If $winname = "Program Manager(Desktop)" Then
    $handle = ControlGetHandle("Program Manager", "", "SysListView321")
    Else
    $handle = ControlGetHandle($winname, "", "SysListView321")
    EndIf
    If @error = 1 Then MsgBox(0,0," Error(ControlGetHandle) : cant get handle")
    $t= MsgBox(4, "Confirm","Window Name: "&$winname&@CRLF& _
    "Icon Count: "&_GUICtrlListView_GetItemCount ($handle)&@CRLF& _
    "Name of first Icon: "&_GUICtrlListView_GetItemText($handle, 0)&@CRLF&@CRLF& _
    " Do you really want to save?")
    If $t <> 6 Then Return
    _GUICtrlListView_SetItemText ( $nListview, _GUICtrlListView_GetSelectedColumn ($nListview), 1, "saving..." )
    FileDelete(@ScriptDir & "\WindowsPos\"&$winname&".ini")
    For $i = 0 To _GUICtrlListView_GetItemCount ($handle)
    $pos = _GUICtrlListView_GetItemPosition ($handle, $i)
    $name = _GUICtrlListView_GetItemText ($handle, $i)
    If $pos[0] = True Then
    IniWrite(@ScriptDir & "\WindowsPos\"&$winname&".ini", "Positions by Name", $name & "x", $pos[0])
    IniWrite(@ScriptDir & "\WindowsPos\"&$winname&".ini", "Positions by Name", $name & "y", $pos[1])
    EndIf
    Next
    _GUICtrlListView_SetItemText ( $nListview, _GUICtrlListView_GetSelectedColumn ($nListview), 1, "done" )
    RefreshWidth()
    Sleep(1500)
    EndFunc ;==>Save

    [/autoit]


    Geändert: das Die mußt du in '_GUICtrlListView_GetItemCount ($handle)' ändern, dann klappt's (wenigstens da ;)
    und $nListview ist jetzt das Handle, $iListview jetzt die CtrlID

    Ich verwende aber immmer noch DIManager, da kann man auch für jede Auflösung ein eigenes Profil machen :)
    //Edit: Es gibt auch einträge ins Kontextmenu des Papierkorbs -> ohne GUI save+restore möglich

  • Na toll - ich hatte eine ältere Version von AutoIt installiert. Funktioniert aber dennoch nicht richtig. Wenn ich speichere wird eine ".ini" erstellt ohne name und es kommt eine Fehlermeldung beim Speichern:

    "Use GUICtrlDelete to delete items
    Or if items were created with UDF funktions MAKE sure to pass in handle to control NOT the controlid"

    Hier die ".ini":

    [Positions by Name]
    Suchergebnissex=4
    Suchergebnissey=20
    Program Manager(Desktop)x=4
    Program Manager(Desktop)y=34
    x=4
    y=48

    ...da fehlt was so wie es aussieht...

    das Programm was ich nutze nennt sich "IconSaver". Ich nutze die Version 1.21. Seit der Version 2.0 ist das ding Shareware. Allerding läst er manchmal ein Icon falsch stehen. Dann muss man nochmal restoren und dann erst klappt es. Hier gibt es auch zwei exen die das machen was ich möchte. Ich hab es nur unter XP getestet nicht unter vista.

    generell stelle ich mir die Frage ob es mit AutoHotKey und Sendmessage es nicht einfacher sprich kürzer wäre dies umzusetzen und das nur mit zwei Scripten ohne ohne zusätzlichen Scripten. Geht sowas überhaupt mit AutoHotKey? In der Hilfe habe ich sowas nicht gefunden. Beim googeln bin ich dafür auf AutoIt und dieses oben gepostete Script im Web gestossen...

  • @progandy

    Danke! Das funktioniert ja sogar :-). nur die Load Funktion klappt noch nicht. Nach dem Speichern steht nun eine 1 unter Suchergebnisse, kann aber nix restoren. Ist es für dich möglich zwei Scripte ohne GUI draus zu bastel?

    @ JanSchmidt
    http://www.midiox.com/html/dtcoding.htm
    interessantes hintergrundwissen. Die commandline version ist interessant und das alles freeware...

    Thanks,
    Simon