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

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

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

ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

   

Scaramanga



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток. Можно ли сделать следующее чтобы при запуске vbs скрипта эмулировалось нажатие клавиши ctrl(зажатая)+scrolllock+scrolllock(т.е. принудительное вызываение дампа памяти) ?
Пытаюсь  

Код:
Set WSHShell = CreateObject("WScript.Shell")
wshshell.Sendkeys "^({{SCROLLLOCK} 2})"
 

выдает ошибку

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 22:46 05-02-2011 | Исправлено: Scaramanga, 23:29 05-02-2011
JohnSilver182



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hi
 
а) В Win 7 такой запрос перестал выдавать список VPN подключений

Код:
Set colAdapters = objWMIService.ExecQuery _  
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")  

б)  как  заставить  WshShell.Exec  ждать завершений запускаемого приложения  ??

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 22:41 06-02-2011
ComradG



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

Код:
WSHSHell.SendKeys "^{SCROLLLOCK}{SCROLLLOCK}"
не эстетично, но по крайней мере работает.
 
JohnSilver182
может WSHSHell.Sleep?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 00:36 07-02-2011
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JohnSilver182

Цитата:
как  заставить  WshShell.Exec  ждать завершений запускаемого приложения  ??  

Не совсем ясно. Продолжить скрипт после завершения запущенного через Exec приложения?  
Можно использовать метод Run, а не Exec. Или через Sleep, как писал ComradG.
Так, примерно:

Код:
Set WshShell = CreateObject("Wscript.Shell")
Set WshExec = WshShell.Exec("notepad")
 
Do While True  
 If WshExec.Status Then Exit Do
 WScript.Sleep 1000
Loop
 
WScript.Echo "Программа закрыта"

 

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 07:15 08-02-2011
ChiStiK_XaSeR



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
У меня должны быть три скрипта:  
1 скрипт просто копирует два других и еще некоторые файлы в определенную папку,  
2 скрипт откладывает запуск 3 скрипта на 4 дня  
3 скрипт должен содержать команды для командной строки(как это реализовать?), и после их выполнения вывести определенный текст и запустить другой файл  
если знаешь как это можно сделать напиши...

Всего записей: 9 | Зарегистр. 20-01-2011 | Отправлено: 16:41 12-02-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ChiStiK_XaSeR
чтобы выполнить определенные консольные команды используется конструкция вроде:
Код:
Set objShell = CreateObject("WScript.Shell")
objShell.Run "%comspec% /c [команда]", 0, False
для вывода текста используется команда WScript.Echo, например, так:
Код:
Set objShell = CreateObject("WScript.Shell")
objShell.Run "%comspec% /k test.bat", 0, True
WScript.Echo "Чего-то там сделано, - принимай работу, хозиян!"
 
Set objShell = Nothing
как видно, ничего сложного, чтобы препятствовало пониманию сих простых в общем-то конструкций, нет.
едем далее. как запустить файл? опять-таки использовать Run или Exec(применение зависит от обстоятельств).
далее, копирование. копирование файлов - это по сути действие над файловой системой, а раз так, то простейший пример копирования файла из одной в папки в другую выглядит так:
Код:
'возможно ли будет перезаписывать уже существующие файлы
Const OverwriteExisting = True
 
'далее создаем экземпляр объекта
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\root\file_1.txt", "E:\docs\", OverwriteExisting
 
Set objFSO = Nothing
ну, а если не нужно, чтобы перезаписывались файлы и при этом не выводились какие-либо сообщения, то придется написать что-то вроде:
Код:
On Error Resume Next
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\root\file_1.txt", "E:\docs\"
objFSO.CopyFile "C:\root\file_2.txt", "E:\docs\"
...
если используются каталоги вроде Application Data или Temp, то для этих целей можно юзать константы, определенные для командной оболочки.
а вот на счет второго пункта, дай немного времени подумать.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 17:31 12-02-2011
Smitis



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

Цитата:
2 скрипт откладывает запуск 3 скрипта на 4 дня

Планировщик?


----------
Разум когда-нибудь победит

Всего записей: 3215 | Зарегистр. 09-02-2003 | Отправлено: 23:34 12-02-2011
ChiStiK_XaSeR



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
планировщик использовать не могу...
 
Добавлено:

Цитата:
чтобы выполнить определенные консольные команды используется конструкция вроде:
Код:
Set objShell = CreateObject("WScript.Shell")  
objShell.Run "%comspec% /c [команда]", 0, False
для вывода текста используется команда WScript.Echo, например, так:
Код:
Set objShell = CreateObject("WScript.Shell")  
objShell.Run "%comspec% /k test.bat", 0, True  
WScript.Echo "Чего-то там сделано, - принимай работу, хозиян!"  
 
Set objShell = Nothing

не выходит...

Всего записей: 9 | Зарегистр. 20-01-2011 | Отправлено: 10:16 13-02-2011
Smitis



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

Цитата:
планировщик использовать не могу...

Зря
 

Цитата:
не выходит...

 
Запуск ком. файла с перехватов консольного вывода и отображением в консоли

Код:
 
Set shl = CreateObject("WScript.Shell")
Set oe = shl.Exec( "test.cmd" )
Set ts = oe.StdOut
Do While Not ts.AtEndOfStream
    x = ts.ReadLine
    WScript.Echo x
Loop
 



----------
Разум когда-нибудь победит

Всего записей: 3215 | Зарегистр. 09-02-2003 | Отправлено: 12:17 13-02-2011
ChiStiK_XaSeR



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
вроде запускается, но появляется лишнее сообщение в неправильной кодировке
теперь осталось только решить как отложить запуск скрипта на 4 дня..

Всего записей: 9 | Зарегистр. 20-01-2011 | Отправлено: 22:14 13-02-2011
Smitis



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

Цитата:
но появляется лишнее сообщение в неправильной кодировке

Правь кодировку командного файла + chcp 1251

Цитата:
теперь осталось только решить как отложить запуск скрипта на 4 дня

Либо планировщик либо sleep

----------
Разум когда-нибудь победит

Всего записей: 3215 | Зарегистр. 09-02-2003 | Отправлено: 09:50 14-02-2011
cambit

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
 Вы на предидущей странице писали  

Цитата:
Код:Const btnYes = 6  
Const bntNo = 7  
 
Set objShell = CreateObject("Wscript.Shell")  
 
intReturn = objShell.Popup("Хотите прослушать мелодию?", 10, "Light Alloy", 36)  
 
If intReturn = btnYes Then  
   strSound = "F:\Soft\LAP\1.ac3"  
   strCommand = "F:\Soft\LAP\LA.exe" & Chr(34)  & strCound & Chr(34)  
   objShell.Run strCommand, 0, False  
   WScript.Sleep 50000  
   Wscript.Quit  
Else  
   MsgBox "Операция отменена пользователем.", 48, "Отмена"  
   Wscript.Quit  
End If  

Не выполняется, пишет : строка 11 ряд 4 Файл не найден, хотя все файлы есть точно - перепроверил.
И еще вопрос, каким образом можно запустить DOS-приложение скрытно - без отбражения окна и в панели задач тоже?
 
Добавлено:
Извините, оговорился, не "запустить" а выполнить DOS- приложение без вывода окна.

Всего записей: 601 | Зарегистр. 09-06-2008 | Отправлено: 14:29 15-02-2011
JohnSilver182



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hi  
 
А как узнать по имени СЕТЕВОГО  интерфейса , его номер ??????

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 15:08 15-02-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cambit
можно тогда вывод команды dir тех каталогов, что должны быть задействованы, а также скриншот ошибки. а на счет запуска DOS-приложений писалось выше:
Код:
Set objShell = CreateObject("WScript.Shell")
objShell.Run "%comspec% /c [команда]", 0, False

 
JohnSilver182
можно более развернуто?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 15:37 15-02-2011
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cambit

Цитата:
strSound = "F:\Soft\LAP\1.ac3"  
   strCommand = "F:\Soft\LAP\LA.exe" & Chr(34)  & strCound & Chr(34)  

Вы никаких странностей не замечаете?

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 15:56 15-02-2011
cambit

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ай! Семен Семеныч!

Всего записей: 601 | Зарегистр. 09-06-2008 | Отправлено: 16:19 15-02-2011
JohnSilver182



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

Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 16:22 15-02-2011 | Исправлено: JohnSilver182, 11:22 16-02-2011
cambit

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Опять я у раздорожья...
Я так понимаю, если запускать приложение из скрипта  методом WshShell.Exec - обязательно будет DOS-окно, но его (приложение) можно контролировать с помощью WshExec.Status.
Если запускать через objShell.Run - можно окно скрыть, но проверить, запущен ли процесс нельзя. А как быть, если хоцца? Вообще, можно ли проконтролировать наличие выполняемого процесса по имени (напр. Spk.exe)?

Всего записей: 601 | Зарегистр. 09-06-2008 | Отправлено: 18:27 15-02-2011 | Исправлено: cambit, 19:22 15-02-2011
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cambit
Так можно:

Код:
ProcName = "Spk.exe"
strWQL = "Select * from Win32_Process Where Name = '" & ProcName & "'"
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
RunApp = CBool(objWMI.ExecQuery(strWQL).Count)

 
Добавлено:
А если хочется знать, например, открыт ли определенный файл этим приложением, тогда можно так:

Код:
ProcName = "LA.exe"
CmdLine = "1.ac3"
strWQL = "Select * from Win32_Process Where Name = '" & _
          ProcName & "' And CommandLine Like '%" & CmdLine & "%'"
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
RunApp = CBool(objWMI.ExecQuery(strWQL).Count)

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 19:26 15-02-2011 | Исправлено: Rush, 04:33 16-02-2011
webern

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос к опытным.
Подскажите пожалуйста, есть ли принципиальная возможность, используя только WSH и JScript, получать данные непосредственно из файлов JPG/BMP/GIF/PNG (конкретно - формат и размер), и при этом не регистрируя сторонних компонентов вроде GFLAx. Т.е. использовать только то, что есть в голой Vista/Win7.
Пока я вынужден делать это через консольные возможности IrfanView, создавая и анализируя лишний текстовый info-файл, который потом приходится удалять. Хочется избавиться от избыточных, пусть и автоматических операций.
Рыл в направлении Windows Imaging Component, но безуспешно.
Прошу прощения, что вопрос не по VBScript, пишу лишь иногда только на JScript, а подходящего активного топика по JScript на этом форуме нет.
Разжёвывать не обязательно, достаточно направить по верному пути, если возможно.

Всего записей: 1022 | Зарегистр. 04-11-2004 | Отправлено: 00:54 16-02-2011
   

Страницы: 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript
ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru