Parazitif
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ребят, помогите советом, пожалуйста. Есть скрипт, который мне помогали дописать здесь vadim100 и Tilks. Вот его код. Код: 'VBS Set objShellApp = CreateObject("Shell.Application") ' создаем объект оболочки Set FSO = CreateObject("Scripting.FileSystemObject") ' создаем объект файловой системы FileChangedCount = 0 ' Количество обработанных файлов Main ' Поиск файлов Sub Main '""""""""""""""""" Поиск файлов On error Resume Next ' Если файлы открыты приложением, будут пропущены Set OpenDialog = CreateObject("MSComDlg.CommonDialog") ' Microsoft Common Dialog Control With OpenDialog .DialogTitle = "Откройте нужный Вам файл(ы)" .InitDir = "C:\" .Filter = "Модели Solidworks (*.sldprt,*.sldasm)|*.sldprt;*.sldasm" ' Расширения файлов .FilterIndex = 1 .Flags = 2621952 .MaxFileSize =32000 .ShowOpen Filename = .Filename End With If (Len(OpenDialog.FileName)= 0) Then msgbox "Файлы не выбраны!" Exit Sub End If files = Split(OpenDialog.Filename, vbNullChar) count_files = UBound(files) If count_files > 0 Then path = files(0) + "\" ' в ХР работает этот вариант path = files(0), в W7 почему то в окончании \ отсутствует For i = 1 To count_files PropertySearch path + files(i) ' Если выбрано несколько файлов Next Else PropertySearch path + files(0) ' Если выбран один файл End If Msgbox "Выполнено." &chr(13)& "Количество обработанных файлов: "& FileChangedCount, vbInformation End Sub Sub PropertySearch (FilePath) '""""""""""""""""" поиск свойств файла 'msgbox "FilePath = " & FilePath Set Cprop = CreateObject("DSOFile.OleDocumentProperties") ' создаем объект подключения к свойствам файла Cprop.Open FilePath, false ' Открываем текущий файл IsHere = "" ' Наличие свойства Раздел СП, если останется "" то нету if Cprop.CustomProperties.count > 0 then ' Если у файла есть свойства for iprop=0 to Cprop.CustomProperties.count-1 ' цикл по свойствам if Cprop.CustomProperties.item(iprop).Name = "Раздел СП" then ' если Раздел СП есть IsHere = 1 ' делаем отметку Exit For End if Next End if If IsHere = "" then ' если Раздела СП нету AddCustomProperty Cprop ' назначение свойств для файла else AddCustomPropertyEx Cprop, iprop ' если есть End if Cprop.close ' закрываем файл End Sub Sub AddCustomProperty(Cprop) '""""""""""""""""" назначение свойств для файла key = "Раздел СП" ' Имя свойства valueForKey = "Прочие изделия" ' Значение свойства Cprop.CustomProperties.Add key, valueForKey ' Добавляем новое свойство с Cprop.Save ' Сохранить изменения FileChangedCount = FileChangedCount + 1 ' Инкрементация счетчика обработанных End Sub Sub AddCustomPropertyEx(Cprop,iprop) '""""""""""""""""" назначение свойств для файла valueForKey = "Прочие изделия" ' Значение свойства Cprop.CustomProperties.Item(iprop).value = valueForKey ' изменяем свойство Cprop.Save ' Сохранить изменения FileChangedCount = FileChangedCount + 1 ' Инкрементация счетчика обработанных End Sub '""""""""""""""""" Освобождаем память Set objShellApp = Nothing Set FSO = Nothing Set Cprop = Nothing Set OpenDialog = Nothing | В своё время работал на Win XP и Win 7 32bit на работе. На Win 7 64bit запустить так и не получилось. Теперь мне нужно запустить скрипт на Win 7 32bit, дома. А этого не получается. Повторил всё то, что я делал для запуска скрипта, а именно: - Установил новую винду на отдельный раздел диска.
- Установил Microsoft Developer Support OLE File Property Reader 2.1
http://www.microsoft.com/en-us/download/details.aspx?id=8422#overview - Через regedit в HKEY_CLASSES_ROOT добавил отсутствующий раздел Licenses, в который добавил все разделы с соответствующими значениями с данной страницы:
http://www.tutorialsto.com/dotnet/control-and-components/with-regard-to-the-registration-and-license-control-solution-to-the-problem.html - Скопировал отсутствовавшие файлы mscomct2.ocx, MSCOMCTL.OCX, MSCOMM32.OCX в папку Windows\System32\ , после чего зарегистрировал через cmd:
Код: C:\Users\Пользователь>cd C:\Windows\System32 C:\Windows\System32>regsvr32.exe mscomct2.ocx C:\Windows\System32>regsvr32.exe MSCOMCTL.OCX C:\Windows\System32>regsvr32.exe MSCOMM32.OCX C:\Windows\System32>regsvr32.exe oleacc.dll C:\Windows\System32>regsvr32.exe wmnetmgr.dll | - В итоге, скрипт так и не запускается. Выдает окошко "Файлы не выбраны". Насколько я понимаю, не удается запустить Microsoft Common Dialog Control. Но что для этого нужно сделать, я не догоняю уже. Поэтому прошу помощи.
| Всего записей: 19 | Зарегистр. 17-06-2013 | Отправлено: 10:28 31-01-2015 | Исправлено: Parazitif, 10:37 31-01-2015 |
|