Jump to content

Multiple Desktops - V 1.5.1


Achilles
 Share

Recommended Posts

Thanks! I don't know about the CPU usage. I'm getting an average of 12% with a 3.0 Ghz, but I don't think it would be that much of a difference... Are other people getting 100% CPU usage?

Yeah I do.

Screenshot:

Posted Image

EDIT:

Possible to remove the processbar while change desktop?

Kind of ugly :rolleyes:

Edited by Mr. Zero
Link to comment
Share on other sites

  • Replies 172
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Yeah I do.

Screenshot:

Posted Image

EDIT:

Possible to remove the processbar while change desktop?

Kind of ugly :rambo:

Hmm, that's really weird... However, I have changed this project a lot and maybe I fixed that somewhere (I'm still getting "00" cpu usage for this individual program).

As to the process bar, that's all covered :rolleyes: I've made a GUI for it and it has all these options, among those options is the possibility of disabling the progress meter.

(You can also choose from between 10 entrance animations and 10 exit animations and any color you want and about 10 different speed options :x )

My Programs[list][*]Knight Media Player[*]Multiple Desktops[*]Daily Comics[*]Journal[/list]
Link to comment
Share on other sites

  • 5 weeks later...

all desktop items and information is stored in:

C:\Documents and Settings\<user name>\Application Data\Desktops

I have also updated the script to be compliant with the current prod version of AutoIt and the current version of Auto3Lib, ClipPutFile.au3 is no longer required as it is included in the micl.au3 which is included with one of the other includes.

#include <File.au3>
#Include <Array.au3>
;#include "ClipPutFile.au3"
#include <A3LListView.au3>
#include <A3LGDIPlus.au3>
#include <A3LScreenCap.au3>
#NoTrayIcon

Global $progress, $copyFromDesktop, $XS_n
$currentClip = -14 & 'asdf""' ;Random text so that it will run through a loop later
$oldWallPaperSyle = RegRead('HKEY_CURRENT_USER\Control Panel\Desktop', 'WallpaperStyle')
$oldTileWallPaper = RegRead('HKEY_CURRENT_USER\Control Panel\Desktop', 'TileWallpaper')
$oldWallPaper = RegRead('HKEY_CURRENT_USER\Control Panel\Desktop', 'Wallpaper')

Opt('TrayOnEventMode',1)
Opt('TrayMenuMode',1)
Opt("WinTitleMatchMode", 4)
Opt('OnExitFunc','_Exit')

Dim $desktops[30][2]
If DirGetSize(@MyDocumentsDir & '\My Pictures') > 0 then 
    $dir = @MyDocumentsDir & '\My Pictures'
Else 
    $dir = @MyDocumentsDir
EndIf 

$open = TrayCreateMenu('Open...') 
$changePictures = TrayCreateItem('Change wallpaper')
    TrayItemSetOnEvent($changePictures, '_ChangePicture')
    TrayCreateItem('')
    
$create = TrayCreateItem('Create New Desktop') 
    TrayItemSetOnEvent($create, '_NewDesktop')
    TrayItemSetState($create, 512)
$delete = TrayCreateItem('Delete a Desktop')
    TrayItemSetOnEvent($delete, '_Delete')
TrayCreateItem('')
$animationItem = TrayCreateItem('Use animation') 
    TrayItemSetOnEvent($animationItem, '_Animation') 
    TrayItemSetState($animationItem, 1)
    TrayCreateItem('')
$exit = TrayCreateItem('Exit') 
    TrayItemSetOnEvent($exit, '_Exit')

$desktopsDir = @AppDataDir & '\Desktops'
If DirGetSize($desktopsDir, 1) < 1 then DirCreate($desktopsDir & '\Default')

$currentDesktop = IniRead($desktopsDir & '\DesktopInfo.ini', '_Startup Info', 'Last used desktop', '')
If  $currentDesktop = '' then 
    IniWrite($desktopsDir & '\DesktopInfo.ini', '_Startup Info', 'Last used desktop', 'Default')
    $currentDesktop = 'Default'
EndIf

If IniRead($desktopsDir & '\DesktopInfo.ini', '_Background', $currentDesktop, '') = '' then 
    IniWrite($desktopsDir & '\DesktopInfo.ini', '_Background', $currentDesktop, RegRead('HKEY_CURRENT_USER\Control Panel\Desktop', 'Wallpaper'))
EndIf

$animation = IniRead($desktopsDir & '\DesktopInfo.ini', '_Animation', 'Activated', '')
If $animation = '' Then 
    IniWrite($desktopsDir & '\DesktopInfo.ini', '_Animation', 'Activated', 'True')
    $animation = True 
EndIf

$priorDesktops = _FileListToArray($desktopsDir, '**', 2) 

$count = 1
If IsArray($priorDesktops) then 
    If $priorDesktops[0] > 0 then 
        For $a = 1 to $priorDesktops[0]
            $desktops[$a][0] = TrayCreateItem($priorDesktops[$a], $open)
                TrayItemSetOnEvent($desktops[$a][0], '_SwitchDesktop')
            $desktops[$a][1] = $priorDesktops[$a]
            If $priorDesktops[$a] = $currentDesktop then 
                TrayItemSetState($desktops[$a][0], 1)
                $currentIndex = $a
            EndIf
            $count += 1
        Next    
    EndIf 
Else
    $desktops[1][0] = TrayCreateItem('Default', $open)
        TrayItemSetState($desktops[1][0], 1)
        TrayItemSetOnEvent($desktops[1][0], '_SwitchDesktop')
    $desktops[1][1] = 'Default'
    $count = 2 
    $currentIndex = 1
EndIf
TraySetState()

While 1    
    If ClipGet() <> $currentClip then
        $clipSplit = StringSplit(ClipGet(), '\') 
        If IsArray($clipSplit) then 
            If $clipSplit[0] > 4 then 
                If $clipSplit[1] & '\' & $clipSplit[2] & '\' & $clipSplit[3] & '\' & $clipSplit[4] = @UserProfileDir & '\Desktop' then 
                    $copyFromDesktop = True
                    ConSoleWrite('Copy from desktop = True')
                Else 
                    ConSoleWrite('Copy from desktop = False')
                    $copyFromDesktop = False
                EndIf
            Else 
                ConSoleWrite('Copy from desktop = False')
                $copyFromDesktop = False
            EndIf
        Else 
            ConSoleWrite('Copy from desktop = False')
            $copyFromDesktop = False
        EndIf 
        $currentClip = ClipGet()
        Sleep(200)
    EndIf
Wend

Func _Animation() 
    $animation = Not $animation 
    IniWrite($desktopsDir & "\Desktopinfo.ini", '_Animation', 'Activated', $animation)
EndFunc

Func _SwitchDesktop()    
    If $animation = True then 
        $gui = GuiCreate('', @DesktopWidth , @DesktopHeight, 0, 0, BitOR($WS_SYSMENU, $WS_POPUP), $WS_EX_TOPMOST) 
            GuiSetBkColor(0)
        XPStyle(1)  
        $progress = GuiCtrlCreateProgress(@DesktopWidth / 2 - 200, @DesktopHeight /2 - 20, 400, 40, $PBS_SMOOTH)
        WinSetTrans($gui, '', 0)
        GUISetState(@SW_Show)
        _WinFade($gui, 0, 255, 20, 1, 0)
        XPStyle(0)
    EndIf
    
    $files = _FileListToArray(@DesktopDir, "*.*", 1)
    If $animation = True then  GuiCtrlSetData($progress, 5)
    
    _StoreDesktop('','')
    If $animation = True then  GuiCtrlSetData($progress, 10)
        
    TrayItemSetState($desktops[$currentIndex][0], 4)
    If $animation = True then  GuiCtrlSetData($progress, 15)
    $lastCurrentDesktop = $currentDesktop
    For $a = 1 to $count 
        If @Tray_ID = $desktops[$a][0] then 
            $currentDesktop = $desktops[$a][1] 
            $currentIndex = $a
        EndIf 
    Next 
    If $animation = True then  GuiCtrlSetData($progress, 20)
    
    TrayItemSetState($desktops[$currentIndex][0], 1)
    If $animation = True then  GuiCtrlSetData($progress, 25)
    
    _StoreDesktop(@DesktopDir, $desktopsDir & '\' & $currentDesktop, 0)
    
    If $copyFromDesktop = True Then
        $toClip = ''
        $split = StringSplit(ClipGet(), @LF) 
        If IsArray($split) then 
            For $a = 1 to $split[0] 
                $nameSplit = StringSplit(ClipGet(), '\') 
                $last = $nameSplit[0]
                $toClip &= @AppDataDir & '\Desktops\' & $lastCurrentDesktop & '\' & $nameSplit[$last] & '|'
            Next 
            $toClip = StringTrimRight($toClip, 1)
            _ClipPutFile($toClip)    
        EndIf 
    EndIf

    $newWallpaper = IniRead($desktopsDir &'\DesktopInfo.ini' , '_Background', $currentDesktop, '')
    If $animation = True then GuiCtrlSetData($progress, 95)
    If $newWallpaper <> '' then _ChangeDesktopBackground($newWallpaper)

    If $animation = True then 
    GuiCtrlDelete($progress)
    _WinFade($gui, 255, 0, 20, 1, 1)
    GuiDelete($gui)    
    EndIf

EndFunc

Func _StoreDesktop($to, $from, $type = 1)     
    If $from = '' then $from = @DesktopDir
    If $to = '' then $to = $desktopsDir & '\' & $currentDesktop
    If $type = 1 then 
        $original = @DesktopDir 
    Else 
        $original = $from 
    EndIf
    
    If $type = 1 then 
        $handle = ControlGetHandle("Program Manager", "", "SysListView321")

        IniDelete($desktopsDir & "\Desktopinfo.ini", $currentDesktop)
        $go = _ListView_GetItemCount($handle)
        For $i = 0 to _ListView_GetItemCount($handle)
            $pos = _ListView_GetItemPosition($handle, $i)
            $name = _ListView_GetItemText($handle, $i)
            If $pos[0] = True Then
                IniWrite($desktopsDir & "\Desktopinfo.ini", $currentDesktop, $name & "x", $pos[0])
                IniWrite($desktopsDir & "\Desktopinfo.ini", $currentDesktop, $name & "y", $pos[1])
            EndIf
        Next
    EndIf
    If $type = 0 and $animation = True then GuiCtrlSetData($progress, 35)
    
    $files = _FileListToArray($original, "*.*", 1)

    If IsArray($files) then
        For $a = 1 to $files[0] 
            FileMove($from & '\' & $files[$a], $to, 1)
        Next
    EndIf
    If $type = 0 and $animation = True Then GuiCtrlSetData($progress, 50)

    $files = _FileListToArray($original, "**", 2) 
    If IsArray($files) then 
        For $a = 1 to $files[0] 
            DirMove($from & '\' & $files[$a], $to, 1)
        Next
    EndIf 
    If $type = 0 and $animation = True then GuiCtrlSetData($progress, 70)

    $hWnd = WinGetHandle("classname=Progman")
    DllCall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", 0x111, "int", 28931, "int", 0)

    If $type = 0 then 
        If $animation = True then 
            $handle = ControlGetHandle("Program Manager", "", "SysListView321")
            _ListView_BeginUpdate($handle)
            GuiCtrlSetData($progress, 80)
            $currentProgress = 70
            $step = 20 / _ListView_GetItemCount($handle)
            For $i = 0 to _ListView_GetItemCount($handle)
                $name = _ListView_GetItemText($handle, $i)
                $x = IniRead($desktopsDir & "\Desktopinfo.ini", $currentDesktop, $name & "x", "Unknown")
                $y = IniRead($desktopsDir & "\Desktopinfo.ini", $currentDesktop, $name & "y", "Unknown")
                If $x <> "Unknown" Then _ListView_SetItemPosition32($handle, $i, $x, $y)
                GuiCtrlSetData($progress, $currentProgress + $step)
                $currentProgress += $step
            Next
            GuiCtrlSetData($progress, 90)
            _ListView_EndUpdate($handle)    
        Else
            $handle = ControlGetHandle("Program Manager", "", "SysListView321")
            _ListView_BeginUpdate($handle)
            GuiCtrlSetData($progress, 80)
            For $i = 0 to _ListView_GetItemCount($handle)
                $name = _ListView_GetItemText($handle, $i)
                $x = IniRead($desktopsDir & "\Desktopinfo.ini", $currentDesktop, $name & "x", "Unknown")
                $y = IniRead($desktopsDir & "\Desktopinfo.ini", $currentDesktop, $name & "y", "Unknown")
                If $x <> "Unknown" Then _ListView_SetItemPosition32($handle, $i, $x, $y)
            Next
            GuiCtrlSetData($progress, 90)
            _ListView_EndUpdate($handle)    
        EndIf
    EndIf

EndFunc

Func _Delete() 
    $desktopDelete = Inputbox('Desktop Delete', 'Type the name of the desktop you would like to delete...' & @CRLF & @CRLF & 'All files currently in that desktop will also be deleted!', '', '', 350, 150)
    If $desktopDelete = '' then Return
    If $desktopDelete = 'Default' then 
        Msgbox(48, 'Error', 'You can not delete the default desktop')    
        Return 
    EndIf
    If $currentDesktop = $desktopDelete then 
        Msgbox(48, 'Error', 'You can not delete a desktop if it is currently active.' & @CRLF & @CRLF & 'Please load a new desktop and try again.')
        Return 
    EndIf 
    
    DirRemove($desktopsDir & '\' & $desktopDelete) 
    
    For $a = 1 to $count 
        If $desktops[$a][1] = $desktopDelete then TrayItemDelete($desktops[$a][0])
    Next
            
EndFunc

Func _NewDesktop() 
    GuiCreate('Create a New Desktop', 416, 456) 
    
    GuiCtrlCreateGroup('Desktop Name', 8, 8, 400, 40) 
        $newName = GuiCtrlCreateInput('', 18, 23, 383, 20) 
    
    GuiCtrlCreateGroup('Desktop Background', 10, 52, 400, 360)
        $picDir = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop", "Wallpaper")
        $currentDesktopPic = GuiCtrlCreatePic($picDir, 18, 67, 383, 306) 
    
        $change = GuiCtrlCreateButton('Change Picture', 18, 380, 383, 25)
        
    $cancel = GuiCtrlCreateButton('Cancel', 118, 418, 100, 30) 
    $ok = GuiCtrlCreateButton('Ok', 238, 418, 100, 30)
        
        
    GuiSetState() 
    
    While 1 
        Switch GuiGetMsg() 
            Case -3 
                GuiDelete()
                Return 0
            Case $cancel 
                GuiDelete() 
                Return 0 
            Case $change 
                $tempDir = FileOpenDialog('Chose a new background...', $dir, '(*.jpg;*.bmp;*.gif;*.png)', 2)
                If Not @Error then 
                    GuiCtrlSetImage($currentDesktopPic, $tempDir)
                    $picDir = $tempDir 
                EndIf
            Case $ok 
                $pass = True
                $priorDesktops = _FileListToArray($desktopsDir, '**', 2) 
                $newNameText = StringStripWS (GuiCtrlRead($newName), 3)
                If $newNameText = '' then 
                    Msgbox(48, 'Error', 'Please insert a name for the new desktop') 
                Else 
                    If IsArray($priorDesktops) then 
                        For $a = 1 to $priorDesktops[0]
                            If $priorDesktops[$a] = $newNameText then $pass = False 
                        Next
                    EndIf 
                
                    If $pass = False Then
                        Msgbox(48, 'Error', 'There is alreay a desktop with that name or the name you specified can not be used.')
                    Else 
                        DirCreate($desktopsDir & '\' & $newNameText) 
                    
                        _StoreDesktop('','')
                        
                        $desktops[$count][1] = $newNameText 
                        $desktops[$count][0] = TrayCreateItem($newNameText, $open)
                            TrayItemSetOnEvent($desktops[$count][0], '_SwitchDesktop')
                            TrayItemSetState($desktops[$count][0], 1)
                            TrayItemSetState($desktops[$currentIndex][0], 4)
                        $currentDesktop = $newNameText
                        $currentIndex = $count
                        _ChangeDesktopBackground($picDir)
                        IniWrite($desktopsDir & '\DesktopInfo.ini', '_Background', $currentDesktop, $picDir)
                        GuiDelete()
                        $count += 1    
                        $hWnd = WinGetHandle("classname=Progman")
                        DllCall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", 0x111, "int", 28931, "int", 0)
                        Return
                    EndIf
                EndIf
        EndSwitch 
    Wend
EndFunc

Func _Exit() 
    #NoTrayIcon
    IniWrite($desktopsDir & '\DesktopInfo.ini', '_Startup Info', 'Last used desktop', $currentDesktop)
    $handle = ControlGetHandle("Program Manager", "", "SysListView321")

    IniDelete($desktopsDir & "\Desktopinfo.ini", $currentDesktop)
    $go = _ListView_GetItemCount($handle)
    For $i = 0 to _ListView_GetItemCount($handle)
        $pos = _ListView_GetItemPosition($handle, $i)
        $name = _ListView_GetItemText($handle, $i)
        If $pos[0] = True Then
            IniWrite($desktopsDir & "\Desktopinfo.ini", $currentDesktop, $name & "x", $pos[0])
            IniWrite($desktopsDir & "\Desktopinfo.ini", $currentDesktop, $name & "y", $pos[1])
        EndIf
    Next
    RegWrite('HKEY_CURRENT_USER\Control Panel\Desktop', 'WallpaperStyle', 'REG_SZ', $oldWallPaperSyle)
    RegWrite('HKEY_CURRENT_USER\Control Panel\Desktop', 'TileWallpaper', 'REG_SZ', $oldTileWallPaper)
    RegWrite('HKEY_CURRENT_USER\Control Panel\Desktop', 'Wallpaper', 'Reg_SZ', $oldWallpaper)
    _ChangeDesktopBackGround($oldWallPaper, 0)
    Exit 
EndFunc

Func _ChangePicture() 
    GuiCreate('Change Wallpaper', 416, 414) 

    GuiCtrlCreateGroup('Desktop Background', 10, 8, 400, 360)
        $picDir = RegRead('HKEY_CURRENT_USER\Control Panel\Desktop', 'Wallpaper')
        $currentDesktopPic = GuiCtrlCreatePic($picDir, 18, 25, 383, 306) 
    
        $change = GuiCtrlCreateButton('Change Picture', 18, 338, 383, 25)
        
    $cancel = GuiCtrlCreateButton('Cancel', 118, 376, 100, 30) 
    $ok = GuiCtrlCreateButton('Ok', 238, 376, 100, 30)
    
    GuiSetState() 
    
    While 1 
        Switch GuiGetMsg() 
            Case -3
                Guidelete() 
                Return 
            Case $cancel 
                GuiDelete() 
                Return 
            Case $change
                $tempDir = FileOpenDialog('Chose a new background...', $dir, '(*.jpg;*.bmp;*.gif;*.png)', 2)
                If Not @Error then 
                    GuiCtrlSetImage($currentDesktopPic, $tempDir)
                    $picDir = $tempDir 
                EndIf
            Case $ok
                _ChangeDesktopBackground($picDir)
                IniWrite($desktopsDir & '\DesktopInfo.ini', '_Background', $currentDesktop, $picDir)
                GuiDelete() 
                Return
        EndSwitch
    Wend
EndFunc 

Func _ChangeDesktopBackground($path, $type = 1) 
    _GDIP_StartUp()
    $hImage = _GDIP_ImageLoadFromFile($path)
    $file = StringSplit($path, '.')
    ;$sCLSID = _GDIP_EncodersGetCLSID("BMP")
    _GDIP_ImageSaveToFile($hImage, @WindowsDir & '\xwall.bmp');, $sCLSID) ;$file[1] & '.bmp'
    _GDIP_ShutDown()
    If $type = 1 then 
        RegWrite('HKEY_CURRENT_USER\Control Panel\Desktop', 'WallpaperStyle', 'REG_SZ', 2)
        RegWrite('HKEY_CURRENT_USER\Control Panel\Desktop', 'TileWallpaper', 'REG_SZ', 0)
        RegWrite('HKEY_CURRENT_USER\Control Panel\Desktop', 'Wallpaper', 'Reg_SZ', $path)
    EndIf
    Sleep(250)
    DllCall('User32.dll', 'int', 'SystemParametersInfo', 'int', 20, 'int', 0, 'string', @WindowsDir & '\xwall.bmp', 'int', 0)
EndFunc

Func _WinFade($hWnd, $iStart, $iEnd, $iStep = 3, $iSleep = 1, $iFade = 1); $iFade: 1 = Fade Out - 0 = Fade In
    If $iFade Then
        For $iCount = $iStart To $iEnd Step - $iStep
            WinSetTrans($hWnd, '', $iCount)
            Sleep($iSleep)
        Next
        Return 1
    ElseIf Not $iFade Then
        For $iCount = $iStart To $iEnd Step $iStep
            WinSetTrans($hWnd, '', $iCount)
            Sleep($iSleep)
        Next
        Return 1
    EndIf
    Return SetError(1, 0, 0)
EndFunc

Func XPStyle($OnOff = 1)
    If $OnOff And StringInStr(@OSTYPE, "WIN32_NT") Then
        $XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
        Return 1
    ElseIf StringInStr(@OSTYPE, "WIN32_NT") And IsArray($XS_n) Then
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
        $XS_n = ""
        Return 1
    EndIf
    Return 0
EndFunc   ;==>XPStyle

@Piano_Man if you don't mind I could add "Hide processes unless the user adds the window to the "no-hide" list " to this, as I have allready done this in my old desktop switcher it would be easy for me and its a feature i would really like to see in your desktop switcher.

Edited by smstroble

MUHAHAHAHAHA

Link to comment
Share on other sites

I am using Windows Vista Home Premium.

I have downloaded and tested out the winspaces feature by opening an ftp program and positioning it where I want it and also outlook and internet explorer.

On various load attempts only 2 out of the 3 windows will load, usually the one that won't load is internet explorer, but not always. My last attempt before this post loaded Outlook and IE, but not the FTP program.

I have a few questions (and btw, am a total ignorant person when it comes to modifying these scripts):

1. Are you designing your script based on XP, or Vista? or is it a thing that should work on both?

2. Will this script help someone that is using an external monitor on a laptop in order to have dual monitors?

Regarding question #2: The problem I need to resolve deals with running dual monitors with the 2nd monitor being an external flat scree and the primary being the laptop screen. When the laptop is unplugged and taken away for business and then plugged back in, Vista requires that we redesignate the primary and secondary monitors and also reassemble all the programs and windows where they should be.

Will this program work to solve my dual monitor situation?

Thanks in advance, and great job on this script.

Link to comment
Share on other sites

I am using Windows Vista Home Premium.

I have downloaded and tested out the winspaces feature by opening an ftp program and positioning it where I want it and also outlook and internet explorer.

On various load attempts only 2 out of the 3 windows will load, usually the one that won't load is internet explorer, but not always. My last attempt before this post loaded Outlook and IE, but not the FTP program.

I have a few questions (and btw, am a total ignorant person when it comes to modifying these scripts):

1. Are you designing your script based on XP, or Vista? or is it a thing that should work on both?

2. Will this script help someone that is using an external monitor on a laptop in order to have dual monitors?

Regarding question #2: The problem I need to resolve deals with running dual monitors with the 2nd monitor being an external flat scree and the primary being the laptop screen. When the laptop is unplugged and taken away for business and then plugged back in, Vista requires that we redesignate the primary and secondary monitors and also reassemble all the programs and windows where they should be.

Will this program work to solve my dual monitor situation?

Thanks in advance, and great job on this script.

Umm, are you shure this is the thread you are trying to post in? "winspaces feature," I dont think that is a feature of the script in this thread. The purpose of the script in this thread is to create "multiple desktops." For example you can have several "Dekstops" which each have their own desktop icons and background, currently this script does not deal with windows at all, and would work fine reguardless of the number and priority of monitors.

Edited by smstroble

MUHAHAHAHAHA

Link to comment
Share on other sites

Umm, are you shure this is the thread you are trying to post in? "winspaces feature," I dont think that is a feature of the script in this thread. The purpose of the script in this thread is to create "multiple desktops." For example you can have several "Dekstops" which each have their own desktop icons and background, currently this script does not deal with windows at all, and would work fine reguardless of the number and priority of monitors.

I run the program and there is something in there called winspaces, have you used the program?

Link to comment
Share on other sites

ok, this does work great.........but I dont need it and cant get my original desktop back. I cant find the directory please help my noob @ss out

Should be:
@AppDataDir & '\Desktops'
Should be a folder called "Default" that stores everything that was on your desktop when the program started.

@smstroble

I have also updated the script to be compliant with the current prod version of AutoIt and the current version of Auto3Lib, ClipPutFile.au3 is no longer required as it is included in the micl.au3 which is included with one of the other includes.

The misc.au3 causes problem with my copying files details. In case you didn't notice (I think this how this version of desktops is) when you copy a file, and it's on the desktop it will automatically change the directory when you switch the desktop. That wasn't working right with the standard _Clipputofile() so I took out "$sSeperator" in line 254 of the misc.au3 and made that my ClipPutFile.au3... I am planning on playing around with this for a while to see if I can get to be more consistent.

@Piano_Man if you don't mind I could add "Hide processes unless the user adds the window to the "no-hide" list " to this, as I have allready done this in my old desktop switcher it would be easy for me and its a feature i would really like to see in your desktop switcher.

Hmm, I've made all the GUI (where you add the windows you want to be hidden) but I haven't integrated with the desktops program yet. It would probably be easier for me to write it myself, but thanks a lot for offering!

@Mackenzie

1. Are you designing your script based on XP, or Vista? or is it a thing that should work on both?

I haven't tested this with Vista (I use XP still) and I don't know if anyone has :whistle:

2. Will this script help someone that is using an external monitor on a laptop in order to have dual monitors?

I think you have misunderstood the purpose of this program. It's not designed to have two visible desktops at the same time, rather several possible desktops, each of which can be shown by using the tray icon(but only one at a time). I'm guessing that with two monitors the program would work just as it would with a single monitor desktop.

Please let me know if I didn't answer your question adequately!

EDIT: look what smstroble said too...

ANOTHER EDIT: I am 100% sure that the word "winspaces" is not mentioned in my code!

Edited by Piano_Man
My Programs[list][*]Knight Media Player[*]Multiple Desktops[*]Daily Comics[*]Journal[/list]
Link to comment
Share on other sites

Should be:

@AppDataDir & '\Desktops'
Should be a folder called "Default" that stores everything that was on your desktop when the program started.

@smstroble

The misc.au3 causes problem with my copying files details. In case you didn't notice (I think this how this version of desktops is) when you copy a file, and it's on the desktop it will automatically change the directory when you switch the desktop. That wasn't working right with the standard _Clipputofile() so I took out "$sSeperator" in line 254 of the misc.au3 and made that my ClipPutFile.au3... I am planning on playing around with this for a while to see if I can get to be more consistent.

Hmm, I've made all the GUI (where you add the windows you want to be hidden) but I haven't integrated with the desktops program yet. It would probably be easier for me to write it myself, but thanks a lot for offering!

@Mackenzie

I haven't tested this with Vista (I use XP still) and I don't know if anyone has :whistle:

I think you have misunderstood the purpose of this program. It's not designed to have two visible desktops at the same time, rather several possible desktops, each of which can be shown by using the tray icon(but only one at a time). I'm guessing that with two monitors the program would work just as it would with a single monitor desktop.

Please let me know if I didn't answer your question adequately!

EDIT: look what smstroble said too...

ANOTHER EDIT: I am 100% sure that the word "winspaces" is not mentioned in my code!

Okay, thanks for the reply. It appears I did misunderstand your initial use, but it may play to my purposes.

FYI though, when I run _SplitMon_v3.0.0.au3 I have winspaces as an option. This may be due to some other stuff I've download possibly, but it's there.

Link to comment
Share on other sites

@Piano_Man

interesting i ran the copy of that i posted with no problems at all but maybe something was not working that I did not notice. Also I have already added to the copy on my computer some code that will notice if a file on your desktop is locked and prompt you to Abort, Retry, or Ignore the problem if you are interested in the code ill give it to ya but if not then another idea for you to implement :whistle: .

@Mackenzie

_SplitMon_v3.0.0.au3 ? You are in the wrong thread altogether. Go here and post your question http://www.autoitscript.com/forum/index.ph...amp;hl=SplitMon

MUHAHAHAHAHA

Link to comment
Share on other sites

C:\Documents and Settings\<user name>\Application Data\Desktops

The username is your case is most likely owner (its based on the name you log into windows with) so

C:\Documents and Settings\owner\Application Data\Desktops

if not owner than it would be

C:\Documents and Settings\computer\Application Data\Desktops

it wont be in all users.

MUHAHAHAHAHA

Link to comment
Share on other sites

You scared the hell out of me, i lost about 3 gig of my life in just a few seconds. i quit your program and it was all gone! :lmao:

after all i found it back, but it scared me.

ain't it a good idea by exiting your program to restore all the desktops in the 'main' (real) desktop?! ;):P:whistle:

p.s. don't take it too personely

Link to comment
Share on other sites

Hey this is really cool, I have a suggestion though there was another multiple desktop program which instead of moving destop icons it moved applications around, I think if the 2 were combined it would be even better, so a new desktop has no previous apps visible

Other one is here http://www.autoitscript.com/forum/index.php?showtopic=27910

Link to comment
Share on other sites

Hey this is really cool, I have a suggestion though there was another multiple desktop program which instead of moving destop icons it moved applications around, I think if the 2 were combined it would be even better, so a new desktop has no previous apps visible

Other one is here http://www.autoitscript.com/forum/index.php?showtopic=27910

I am doing something similar to that... I will have list where the user can add processes that they want to be "Desktop specific"... For example, I have an autoit desktop, I will add the autoit helpfile and scite to the "Exclude list" and they will only be shown when the autoit desktop is active.

Would it be better if I were to automatically make all windows desktop specific and then had an exclude list of ones that were for all desktops?

EDIT: For all those that interested I have resolved to finish this as soon as possible!!! (Hopefully a few days, I'm working full time :whistle: )

Edited by Piano_Man
My Programs[list][*]Knight Media Player[*]Multiple Desktops[*]Daily Comics[*]Journal[/list]
Link to comment
Share on other sites

Well, I really like this, with this I will finally be able to have a clean regular destop and have one for each project that I am working on to keep the loads of icons I currently have on my only desktop.

One thing while tring this at work, is that it doesn't remember the desktop backround sizing, ie...stretch or centered. Could it also remember these as well..

Thanks,

Edit: Also, why does it need to be overly active while not doing anything? It is taking like 88-91% of CPU usage...

Edited by AMD
Link to comment
Share on other sites

I am doing something similar to that... I will have list where the user can add processes that they want to be "Desktop specific"... For example, I have an autoit desktop, I will add the autoit helpfile and scite to the "Exclude list" and they will only be shown when the autoit desktop is active.

Would it be better if I were to automatically make all windows desktop specific and then had an exclude list of ones that were for all desktops?

EDIT: For all those that interested I have resolved to finish this as soon as possible!!! (Hopefully a few days, I'm working full time :whistle: )

Personally I prefer making all windows desktop specific with just a couple exclusions. But perhaps you could make an option to toggle between the two modes.

MUHAHAHAHAHA

Link to comment
Share on other sites

Well, I really like this, with this I will finally be able to have a clean regular destop and have one for each project that I am working on to keep the loads of icons I currently have on my only desktop.

One thing while tring this at work, is that it doesn't remember the desktop backround sizing, ie...stretch or centered. Could it also remember these as well..

Thanks,

Edit: Also, why does it need to be overly active while not doing anything? It is taking like 88-91% of CPU usage...

Desktop sizing is all supported in the version I'm working on so that will solve that.

I don't know why the CPU usage is so big but for me it never exceeds 7%... Wait until I release the new version of this program and see if that solves the problem. If it doesn't I'll try to fix it :whistle:

@smstroble: I think I'll make the option to toggle between... That will let everyone be satisfied (hopefully)

My Programs[list][*]Knight Media Player[*]Multiple Desktops[*]Daily Comics[*]Journal[/list]
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...