? Константы const APP_TITLE = «SetPlaces» const REG_PLACESBAR = «HKCUSoftwareMicrosoftWindowsCurrentVersionPolicies ComDlg32Placesbar» ?———————————————————————————————- Dim place ? содержит place-номер Dim canContinue ? boolean guard ? Пробуем получить place-номер, с которым работаем в настоящий момент canContinue = True While canContinue place = InputBox(«Enter the place number (0 thru 4)», APP_TITLE, 0) ? Завершаем программу без обработки If place = «» Then WScript.Quit End If If place > 4 Then MsgBox «Invalid place number!», 16, APP_TITLE Else ? Получили place-номер, теперь читаем реестр ChangePlace place End If Wend ?———————————————————————————————- ? ChangePlace (place) ?———————————————————————————————- Sub ChangePlace (place) Dim shell, curPath, buf, rc, newPath, theType Set shell = CreateObject(«WScript.Shell») On Error Resume Next curPath = shell.RegRead(REG_PLACESBAR & «Place» & place) On Error Goto 0 ? Формируем значение по умолчанию If curPath = «» Then curPath = «the default item» buf = «» buf = buf & «Place» & place & « is currently set to « & _ Chr(34) & curPath & Chr(34) & vbCrLf & vbCrLf & _ «Click YES to set a file system folder» & vbCrLf & _ «Click NO to set a special system folder» & vbCrLf & _ «Click CANCEL to exit» rc = MsgBox(buf, 3, APP_TITLE) ? YES=6, NO=7, CANCEL=2 If rc = vbCancel Then Exit Sub ? Изменяем place-номер Select Case rc Case vbYes newPath = InputBox(«Enter the new folder path», APP_TITLE, curPath) If newPath = «» Then Exit Sub theType = «REG_SZ» Case vbNo buf = «» buf = buf & «Choose the new folder.» & vbCrLf & vbCrLf & _ «5 — My Documents» & vbCrLf & _ «6 — Favorites» & vbCrLf & _ «17 — My Computer» & vbCrLf & _ «18 — My Network Places» & vbCrLf & _ «36 — Windows» & vbCrLf & _ «34 — History» newPath = InputBox(buf, APP_TITLE, curPath) If newPath = «» Then Exit Sub theType = «REG_DWORD» End Select shell.RegWrite REG_PLACESBAR & «Place» & place, newPath, theType End Sub