Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - автоматиеская очистка рабочего стола

Ответить
Настройки темы
Любой язык - автоматиеская очистка рабочего стола

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


посоветуйте как с помощью сценария входа в систему очищать рабочий стол – чтобы оставался фиксированный набор ярлыков, а все файлы и папки перемещались в папку пользователя. ограничение – под конкретного пользователя, а не всех сразу.
в идеале текст сценария и куда его подставить.

Отправлено: 10:12, 15-07-2010

 

Пользователь


Сообщения: 140
Благодарности: 92

Профиль | Отправить PM | Цитировать


sanek-l,

Код: Выделить весь код
Option Explicit

Dim objFSO, objWshShell, objShell
Dim objFile, objSubFolder, objFolder
Dim objFolderItem, objShellFolder
Dim objWshShortcut, strDesktop, strDstPath
Dim strUserTask, strUserName, strTask

  Set objFSO      =  WScript.CreateObject("Scripting.FileSystemObject")
  Set objShell    =  WScript.CreateObject("Shell.Application")
  Set objWshShell =  WScript.CreateObject("WScript.Shell")

  strDesktop      =  objWshShell.SpecialFolders("Desktop")  ' Определяем "Рабочий стол" пользователя
  strDstPath      =  objWshShell.SpecialFolders("MyDocuments")
  strUserName     =  objwshshell.ExpandEnvironmentStrings("%USERNAME%")
  strDstPath      =  strDstPath &"\"&"DeskResource"  ' Определяем целевую папку (в "Моих документах")
  strUserTask     =  "HP Pavilion"   ' Определяем "конкретного пользователя"
 
  If Not strUserTask = strUserName Then

     MsgBox "Процедура не предусмотрена для текущего пользователя"  ' Если пользователь не тот, то... (необязательно)
     WScript.Quit 0
   
  Else
    
       strTask = False
       Call ClearDesktop("str")
       IF strTask Then
          Call Shortcut("str")
       End if

       Set objShell    = Nothing
       Set objWshShell = Nothing
       Set objFSO      = Nothing
     
  End If

Wscript.Echo "Сценарий успешно выполнен!"  ' Необязательно
WScript.Quit 0

' ************************************************************************
  Function ClearDesktop(str)   ' Проверяем все элементы рабочего стола
  
     set objFolder = objFSO.GetFolder(strDesktop)

     For Each objFile In objFolder.Files
                                                          ' Если не ярлык
                                                         ' и не ярлык интернета (можно убрать)
                                                         ' и не файл desktop.ini 

         IF UCase(objFSO.GetExtensionName(objFile)) <> UCase("lnk") And _  
            UCase(objFSO.GetExtensionName(objFile)) <> UCase("url") And _  
            objFSO.GetBaseName(objFile.Name) <> "desktop" Then  
               strTask = True

               If Not objFSO.FolderExists(strDstPath) Then   ' Если целевой папки нет
                  objFSO.CreateFolder strDstPath   ' создаем её
               End If

               objFile.Move strDstPath &"\"   ' перемещаем файлы

         End if
     Next
' -------------------------------------------------------------------------
    For Each objSubFolder In objFolder.SubFolders

    Set objShellFolder = objShell.NameSpace(objSubFolder.Path)

        IF Not Len(objShellFolder.Self) < Len(objSubFolder.Name) Then ' Если папка не ярлык 
              strTask = True

               If Not objFSO.FolderExists(strDstPath) Then
                  objFSO.CreateFolder strDstPath
               End If

               If objSubFolder.Files.Count = 0 Then   ' Если папка пустая
                  objSubFolder.Delete  ' Удаляем 
               Else
                  objSubFolder.Move strDstPath &"\"  ' Если нет - перемещаем
               End If

        End if
     Next
  End function

' *************************************************************************
 Function Shortcut(str)   ' Создаем ярлык для папки с перемещенными файлами (если его нет)    

     If not objFSO.FileExists(strDesktop & "\DeskResource.lnk") Then

        Set objWshShortcut = objWshShell.CreateShortcut(strDesktop & "\DeskResource.lnk")

        objWshShortcut.WorkingDirectory = strDstPath
        objWshShortcut.TargetPath       = strDstPath
        objWshShortcut.Description = "Сохраненные файлы рабочего стола"
        objWshShortcut.IconLocation = "shell32.dll, 260"
        objWshShortcut.Save

     End If

 End function
Испытано на WinVista! Прошу отписаться по факту проверки...

Последний раз редактировалось deepred, 30-07-2010 в 11:11.


Отправлено: 12:43, 21-07-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - автоматиеская очистка рабочего стола

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Конкурс - Очистка истории расположений фонов рабочего стола в Windows 7 OSZone Microsoft Windows 7 0 07-12-2009 09:30
Разное - [решено] Очистка меню Фоновые рисунки рабочего стола Windows Vista genuge Microsoft Windows Vista 1 12-08-2009 09:42
Загрузка - Загрузка Рабочего стола Feodora Microsoft Windows 2000/XP 15 12-02-2009 20:56
Настройка рабочего стола 98 Alexia2 Microsoft Windows 95/98/Me (архив) 5 08-07-2003 05:31




 
Переход