Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопросы, задачи и их решения по VBScript.

 
Мануал (english, 600 Кб). | Зеркало
MS Scripting 5.6 (700 КБ), включает последнюю версию VBS. Владельцам XP/2000(?) должен быть не нужен. | Зеркало
Немного на wikiпедии.
Предыдущие части: 1
 
Смежные темы:
Сценарии Windows
Командная строка, батники\сценарии (bat, cmd)
Скрипты KiXtart

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:12 12-07-2011 | Исправлено: Smitis, 23:28 26-02-2018
Laserje18

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!  
При запуске файла myscript.vbs в диспетчере задач появляется процесс wscript.exe.
Подскажите, пожалуйста, каким образом средствами VBS можно сделать так, чтобы при запуске VBScript в диспетчере задач появлялся процесс с именем этого файла, а не wscript.exe?

Всего записей: 64 | Зарегистр. 11-09-2012 | Отправлено: 16:02 05-01-2015
VadimLou



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никак т.к. *.vbs это не процесс.

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 18:49 06-01-2015
slime555



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
скомпилировать программу.

Всего записей: 151 | Зарегистр. 08-07-2008 | Отправлено: 22:49 09-01-2015
idiMAN

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Laserje18
Можно с помощью программ типа vbs2exe преобразовать твой скрипт в самостоятельную программу

Всего записей: 466 | Зарегистр. 05-05-2003 | Отправлено: 10:36 10-01-2015
Laserje18

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VadimLou
slime555
idiMAN
 
Да я думал как-нибудь так:

Код:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
n = "myscript.vbs"
n1 = "C:\Windows\System32\"&Replace(n,".vbs","")&".exe"
FSO.CopyFile "C:\Windows\System32\wscript.exe", n1
WshShell.Run n1 n
FSO.DeleteFile n1

Только пока не разобрался с WshShell.Run, оно так не хочет работать.
Что скажите?
 
Или же другой вариант: при запуске скрипта можно получить ProcessID, а вот этому ProcessID можно присвоить другое имя на время работы скрипта?

Всего записей: 64 | Зарегистр. 11-09-2012 | Отправлено: 20:48 16-01-2015 | Исправлено: Laserje18, 21:27 16-01-2015
slime555



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго дня! Нужен скриптик, который бы следил за процессом ragent.exe и если тот падает делал "net start "1C:Enterprise 8.3 Server Agent""

Всего записей: 151 | Зарегистр. 08-07-2008 | Отправлено: 07:21 23-01-2015
sundraw

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго здоровья!  
Вынужден запросить подмоги у вас из соседней ветки http://forum.ru-board.com/topic.cgi?forum=5&topic=26082&start=1420 которая 3 месяца  мёртвая. Работа с nnCron, который поддерживает и VBScript. Имеется следующее:
 

 
В главном окне "Main" при отсутствии соединения открывается дочернее окно "Ошибка". Нужно сделать так, чтоб при появлении окна "Ошибка" срабатывал батник на выполнение команды.
Пытаюсь делать по документации www.nncron.ru/help/help_ru.htm , как описано в примере

Код:
 
\ после слова 'WIN-EXIST:' переменная 'WIN-HWND'
\ установлена должным образом
WIN-EXIST: "xxx"
IF  
    FOR-CHILD-WINDOWS: "yyy"
        \ ... выполняем работу с дочерними окнами
    ;FOR-CHILD-WINDOWS
THEN  
   
\ при каждом цикле 'FOR-WINDOWS:' переменная
\ 'WIN-HWND' содержит window handle текущего окна
FOR-WINDOWS: "xxx"
    \ ... выполняем работу
    FOR-CHILD-WINDOWS: "yyy"
        \ ... выполняем работу с дочерними окнами
    ;FOR-CHILD-WINDOWS
;FOR-WINDOWS
 

 
Не могу понять, куда что вставлять. HANDLE и главного и дочернего окон непостоянный, после перезагрузки системы меняется. А на слово "Ошибка" не реагирует.

Всего записей: 844 | Зарегистр. 15-05-2011 | Отправлено: 15:46 23-01-2015
Tilks

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sundraw
по описанию: вместо xxx вставляете верхний заголовок "Main"
потом в цикле поиска дочерних окон, вместо yyy "Ошибка"

Всего записей: 2688 | Зарегистр. 14-08-2005 | Отправлено: 17:16 23-01-2015
sundraw

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tilks
Сделал следующее:

Код:
 
WatchWinCreate: "*Main"
Action:
WIN-EXIST: "*Main"
IF  
FOR-CHILD-WINDOWS: "Ошибка"
;FOR-CHILD-WINDOWS
THEN  
FOR-WINDOWS: "*Main"
FOR-CHILD-WINDOWS: "Ошибка"
START-APP: C:\Windows\NewIP.bat
;FOR-CHILD-WINDOWS
;FOR-WINDOWS  

 
При создании окна "Main" батник NewIP.bat срабатывает независимо от того, есть "Ошибка" или нет. Скорей всего ошибся где-то в скрипте.

Всего записей: 844 | Зарегистр. 15-05-2011 | Отправлено: 19:08 23-01-2015
Tilks

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sundraw
в личку ответил, тут оффтоп.

Всего записей: 2688 | Зарегистр. 14-08-2005 | Отправлено: 19:16 23-01-2015
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, дома. А этого не получается.  
    Повторил всё то, что я делал для запуска скрипта, а именно:
  1. Установил новую винду на отдельный раздел диска.
  2. Установил Microsoft Developer Support OLE File Property Reader 2.1  
    http://www.microsoft.com/en-us/download/details.aspx?id=8422#overview
  3. Через 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
  4. Скопировал отсутствовавшие файлы 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
     

  5. В итоге, скрипт так и не запускается. Выдает окошко "Файлы не выбраны". Насколько я понимаю, не удается запустить Microsoft Common Dialog Control. Но что для этого нужно сделать, я не догоняю уже. Поэтому прошу помощи.


Всего записей: 19 | Зарегистр. 17-06-2013 | Отправлено: 10:28 31-01-2015 | Исправлено: Parazitif, 10:37 31-01-2015
Tilks

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Parazitif
удалите или закомментируйте строку  On error Resume Next , тогда будет видно ошибки.
вообще то уже было, или это очередной виток истории.

Цитата:
после чего зарегистрировал через cmd:  

всякий мусор зарегистрировали, а где нужный comdlg32.ocx

Всего записей: 2688 | Зарегистр. 14-08-2005 | Отправлено: 12:49 31-01-2015
Parazitif

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tilks
У вас хорошая память) Со скриптами всё хорошо, их редактировать не надо. Дело было в нужном comdlg32.ocx. Спасибо огромное, всё заработало!

Всего записей: 19 | Зарегистр. 17-06-2013 | Отправлено: 23:45 31-01-2015
Laserje18

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 64 | Зарегистр. 11-09-2012 | Отправлено: 23:08 02-02-2015 | Исправлено: Laserje18, 23:48 02-02-2015
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, Laserje18
Самый примитивный способ - через Left.

Код:
 
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("test")
Set WshShell = CreateObject("WScript.Shell")
For Each File In Folder.Files
  if Left(File.Name,4)="tty-" Then MsgBox File.Name
Next
 

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 23:50 02-02-2015
PavelSES



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди добрые помогите пожалуйста, есть задача:
нужно создать средствами vbs ярлык на рабочем столе текущего пользователя (который запускает скрипт) к гугл хрому уже установленному на компьютере с параметром преехода на корпоративный сайт, сложность в том что гугл хром может быть установлен в разных местах, профиле пользователя, програмных файлах с разной разрядностью ос...
 
пробовал так... но что то не получается...

Код:
 
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
DIM fso
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists("%userprofile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe")) Then
Set oShellLink = WshShell.CreateShortcut(strDesktop + "\Яндекс.lnk")
oShellLink.TargetPath = "%userprofile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe"
oShellLink.WindowStyle = 3
oShellLink.IconLocation = "%userprofile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe, 0"
oShellLink.Description = "Яндекс"
oShellLink.WorkingDirectory = "%userprofile%\Local Settings\Application Data\Google\Chrome\Application"
oShellLink.Arguments = "http://www.ya.ru/"
oShellLink.Save
Else
If (fso.FileExists("%programfiles%\Google\Chrome\Application\chrome.exe")) Then
Set oShellLink = WshShell.CreateShortcut(strDesktop + "\Яндекс.lnk")
oShellLink.TargetPath = "%programfiles%\Google\Chrome\Application\chrome.exe"
oShellLink.WindowStyle = 3
oShellLink.IconLocation = "%programfiles%\Google\Chrome\Application\chrome.exe, 0"
oShellLink.Description = "Яндекс"
oShellLink.WorkingDirectory = "%programfiles%\Google\Chrome\Application"
oShellLink.Arguments = "http://www.ya.ru/"
oShellLink.Save
Else
If (fso.FileExists("%programfiles%\Google\Chrome\Application\chrome.exe")) Then
Set oShellLink = WshShell.CreateShortcut(strDesktop + "\Яндекс.lnk")
oShellLink.TargetPath = "%programfiles%\Google\Chrome\Application\chrome.exe"
oShellLink.WindowStyle = 3
oShellLink.IconLocation = "%programfiles(x86)%\Google\Chrome\Application\chrome.exe, 0"
oShellLink.Description = "Яндекс"
oShellLink.WorkingDirectory = "%programfiles(x86)%\Google\Chrome\Application"
oShellLink.Arguments = "http://www.ya.ru/"
oShellLink.Save
Else
End If
End If
End If
WScript.Quit()
 

Всего записей: 223 | Зарегистр. 18-07-2006 | Отправлено: 14:35 05-02-2015
LordHomyak

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PavelSES
 
Не получается из-за наличия в параметре FileExist пути с переменными окружения.
Их нужно перед этим раскрыть например функцией ExpandEnvironmentStrings.
 
Если гугл хром установлен, то должна быть отметка в AppPath, попробуйте так

Всего записей: 45 | Зарегистр. 10-02-2010 | Отправлено: 14:56 06-02-2015 | Исправлено: LordHomyak, 14:58 06-02-2015
PavelSES



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LordHomyak
Спасибо за помощь, но не срвсем верно получается, дело в том что ключ реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" существует если гугл хром установлен от администртатора через установщик для всех пользователей. Но часто юзер сам ставит себе хром при отсутствии админ прав, тогда этот ключ находится по адресу "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\". Тоесть нужно сначала проверять есть ли ключ реестра у юзера и брать значение оттуда а если у юзера нет то из общей HKEY_LOCAL_MACHINE.
 
Спасибо за ранее.

Всего записей: 223 | Зарегистр. 18-07-2006 | Отправлено: 07:48 07-02-2015
LordHomyak

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PavelSES
Это был всего лишь пример, для юзер\локал скрипт будет выглядеть так

Всего записей: 45 | Зарегистр. 10-02-2010 | Отправлено: 17:42 07-02-2015 | Исправлено: LordHomyak, 17:47 07-02-2015
msmih



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Буду признателен за помощь.
Набросал скрипт для автоматической авторизации и входа на сайт.
захожу и перехожу по ссылкам с помощью .Navigate  
все работает.
Но уже с авторизованной страницы необходимо перейти по ссылке методом post. как это сделать?

Всего записей: 1192 | Зарегистр. 29-01-2006 | Отправлено: 10:31 08-02-2015
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru