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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
jeykey

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
timurgall
Можно через WMI сделать Подробнее...

Всего записей: 21 | Зарегистр. 29-08-2006 | Отправлено: 20:33 10-04-2012 | Исправлено: jeykey, 23:14 10-04-2012
smaharbA

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ОbjShell.RegWrite "HKLM\X\X\X\Windows\Layers\M:/WORKDB/CLIENT/deal32.exe","DisableNXShowUI","REG_SZ"
 
либо вми

Всего записей: 8 | Зарегистр. 08-04-2012 | Отправлено: 06:30 11-04-2012
Black_Lung



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

Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 14:51 11-04-2012
Capacitor

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Black_Lung
 
Спасибо огромное! Очень выручили!
 
Не знаю как, но все работает четко, и даже лучше, чем я думал!!!
 
Еще раз спасибо!

Всего записей: 2 | Зарегистр. 02-10-2006 | Отправлено: 14:27 12-04-2012
tgkonvent

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго времени суток!
Помогите написать скрипт по деинсталяции AutoCAD любой версии.
Если взять строку, которую он прописывает в реестре Uninstall, то там запускается оболочка в котороый пользователь должен сам выбрать что он хочет делать - обновить, исправить или деинсталлировать Автокад
А, мне необходим скрипт в котором будет производиться безусловное удаление автокада с машины, без всяких запросов.

Всего записей: 438 | Зарегистр. 02-11-2005 | Отправлено: 14:47 12-04-2012
megamozg13



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
tgkonvent
Уважаемый, может вам поискать портативные сборки, не требующие инсталяции и не оставляющие следов на машине?

Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 15:20 12-04-2012
tgkonvent

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

Цитата:
Уважаемый, может вам поискать портативные сборки, не требующие инсталяции и не оставляющие следов на машине?

Поишу и такие сборки! А, через скрипт есть возможность удаления такой программы?

Всего записей: 438 | Зарегистр. 02-11-2005 | Отправлено: 15:31 12-04-2012
kazavo4ka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
tgkonvent
http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=16077500&linkID=9240617
 
при необходимости модифицируй под свои задачи

Всего записей: 1655 | Зарегистр. 17-02-2006 | Отправлено: 15:44 12-04-2012
timurgall



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

Всего записей: 92 | Зарегистр. 29-07-2008 | Отправлено: 08:49 13-04-2012
nicka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть такие команды
 
adb install .\apk\notepad.apk
adb install .\apk\teamviewer.apk
adb install .\apk\angrybirds.apk
 
...
 
надо сделать vbs с выбором файла - и выбрать когда надо notepad.apk, потом teamviewer.apk и т.д.
 
можно реализовать?

Всего записей: 756 | Зарегистр. 01-10-2002 | Отправлено: 15:59 17-04-2012
chel78



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток.
 может и не в тему пишу, но не знаю куда правильнее.
есть скрипт, который пишется в Excele  с помощью SAP.
  то есть в екселе стоит аддон, который подключается к SAP и пишет в Excel код скрипта, который потом можно многоразово запускать на выполнение с переменной. вопрос вот в чем. необходимо как то вставить паузу, в определенный момент выполнения скрипта. просто подождать при записи - результата не дает.
пример скрипта.
[img]  Uploaded with ImageShack.us[/img]

Код:
 
IsInput    ID    ScriptCode
START    001    
    002    MySession.findById("wnd[0]").resizeWorkingPane 65,28,false
x    003    MySession.findById("wnd[0]/usr/ctxtLIKP-VBELN").text = "74641979"
    004    MySession.findById("wnd[0]/usr/ctxtLIKP-VBELN").caretPosition = 8
    005    MySession.findById("wnd[0]").sendVKey 0
    006    MySession.findById("wnd[0]/mbar/menu[3]/menu[1]/menu[0]").select
    007    MySession.findById("wnd[0]/usr/tblSAPDV70ATC_NAST3/ctxtDNAST-KSCHL[1,3]").text = "zua4"
    008    MySession.findById("wnd[0]/usr/tblSAPDV70ATC_NAST3/ctxtDNAST-KSCHL[1,3]").setFocus
    009    MySession.findById("wnd[0]/usr/tblSAPDV70ATC_NAST3/ctxtDNAST-KSCHL[1,3]").caretPosition = 4
    010    MySession.findById("wnd[0]").sendVKey 0
    011    MySession.findById("wnd[0]/tbar[0]/btn[11]").press
    012    MySession.findById("wnd[0]/usr/chkNAST-DIMME").selected = true
    013    MySession.findById("wnd[0]/usr/ctxtNAST-LDEST").text = "locl"
    014    MySession.findById("wnd[0]/usr/txtNAST-ANZAL").text = "1"
    015    MySession.findById("wnd[0]/usr/chkNAST-DIMME").setFocus
    016    MySession.findById("wnd[0]").sendVKey 3
    017    MySession.findById("wnd[0]/tbar[0]/btn[11]").press
STOP    018    
 

 

Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 14:17 18-04-2012 | Исправлено: chel78, 14:21 18-04-2012
WestGott

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем
Извините что вопрос немножко не попадает в тему, но может тут наёдётся тот кто с этим сталкивался.
Я написал скрипт в языке JScript
Но как только дошёл до его обкатки в системах с включённым UAC упёрся в грабли, чтобы скрипт работал его нужно запускать с административными полномочиями.
А в контекстном меню для файлов с расширением "js" нет пункта "Запуск от имени администратора".
 
Погуглив тему наткнулся на код перезапуска скрипта с полномочиями администратора для VBScript.
 

Код:
 
If WScript.Arguments.Count = 0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & " Run", , "runas", 1
Else
 'Сюда пишем код скрипта
End If
 

 
На VBScript этот код работает.
Но тот же самый код переведённый в JScript напрочь отказывается работать.

Код:
 
if (WScript.Arguments.length == 0)
 {
   var objShell = WScript.CreateObject("Shell.Application");
 
   objShell.ShellExecute("wscript.exe", + "\"" + WScript.ScriptFullName +
    "\"" + " Run", "", "runas", 1);  
 }
else
 {  
   //Сюда пишем код скрипта
 }
 

 
Переписывать весь свой скрипт из js в vbs неохота.
Делать vbs-скрипт для запуска js-скрипта тоже не хочется.
Может есть кто, кто знает, как решить проблему перезапуска скрипта JScript от имени администратора?
 
Блин, написал пост.
Перечитал код, и увидел лишний символ плюс.
Убрал его и код заработал.
 
Вот рабочий код

Код:
 
if (WScript.Arguments.length == 0)
 {
   var objShell = WScript.CreateObject("Shell.Application");
 
   objShell.ShellExecute("wscript.exe", "\"" + WScript.ScriptFullName +
    "\"" + " Run", "", "runas", 1);  
 }
else
 {  
   //Сюда пишем код скрипта
 }
 

 
Уважаемые модераторы, я бы удалил своё сообщение, но не нашёл такой опции.
Поэтому к Вам просьба, либо удалите мой пост, либо перенесите в соответствующую тему.

Всего записей: 96 | Зарегистр. 10-04-2010 | Отправлено: 22:27 18-04-2012 | Исправлено: WestGott, 23:27 18-04-2012
Black_Lung



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nicka
 
можно реализовать через InternetExplorer.Application,  htm в vbs
 
chel78
команда ожидания: wscript.sleep(количество мсек)

Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 11:51 19-04-2012
chel78



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

Цитата:
команда ожидания: wscript.sleep(количество мсек)

не катит, ошибку кажет.
 

Код:
"VBError --> Number: 424    Source: Microsoft VBScript runtime error    Description: Object required: 'wscript'    Line: 4    Column: 0"

 
Это по ходу для VBS,  а тут немного другое..  

Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 12:40 19-04-2012 | Исправлено: chel78, 13:15 19-04-2012
Black_Lung



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, ошибка, если без vbs то можно так:

Код:
 
Application.Wait Now + TimeValue("00:00:10")
 


Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 13:51 19-04-2012
chel78



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

Цитата:
Да, ошибка, если без vbs то можно так:  
 
Код:
 
Application.Wait Now + TimeValue("00:00:10")  
 

 снова не оно.. ошибки не кажет, пишет сакцесс, но в итоге ничего не происходит

Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 15:40 19-04-2012
Black_Lung



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chel78
оно ничего писать не должно, просто ждёт время заданное параметром TimeValue
Если нужна явная пауза то можно вставить Msgbox "Pause", это будет висеть пока не нажмеш ОК.

Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 18:38 19-04-2012
chel78



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

Цитата:
оно ничего писать не должно

 так оно и не делает ничего

Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 19:04 19-04-2012
johnysc3



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!  
Windows Server 2008 R2, VBS, терминальные пользователи без админ-прав.  
Подскажите, пожалуйста, как мне в скрипте vbs увидеть переменные окружения текущего пользователя, если я запускаю скрипт из планировщика с полными правами (галочка "Выполнять с наивысшими правами")?
Подробнее:  
Есть скрипт, меняющий временные папки для пользователей в терминале:  

Код:
const HKEY_CURRENT_USER = &H80000001  
strComputer = "."  
 
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_  
strComputer & "\root\default:StdRegProv")  
 
strKeyPath = "Environment"  
strValue1Name = "TEMP"  
strValue1 = "t:\Temp\" & createobject("wscript.shell").expandenvironmentstrings("%username%")  
 
strValue2Name = "TMP"  
strValue2 = "t:\Temp\" & createobject("wscript.shell").expandenvironmentstrings("%username%")  
 
oReg.SetExpandedStringValue _  
HKEY_CURRENT_USER,strKeyPath,strValue1Name,strValue1  
 
oReg.SetExpandedStringValue _  
HKEY_CURRENT_USER,strKeyPath,strValue2Name,strValue2

Если я вношу терминального пользователя в группу админов, то скрипт запущенный под этим пользователем отрабатывает на ура. Если пользователь не в группе админов, то скрипт ничего не делает. Если я запускаю этот скрипт при входе пользователя планировщиком с админ-правами, то он и выполняется в контексте админа, т.е. меняет параметры у админа, а не у того пользователя под которым я вошел в терминал. А мне надо чтоб юзеры были без админ-прав, но и с временными папками шоб проблем не было, да и еще в этом скрипте много чего есть, но остальное не работает по этим же причинам. ЧЯДНТ?!

Всего записей: 72 | Зарегистр. 12-12-2006 | Отправлено: 16:54 23-04-2012
megamozg13



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
johnysc3
вот вырезка из моего основного логон скрипта, все в синтаксисе JavaScript:
 

Цитата:
Shell=WScript.CreateObject("WScript.Shell");
path=WScript.ScriptFullName.substr(0,WScript.ScriptFullName.length-WScript.ScriptName.length);
user=Shell.ExpandEnvironmentStrings("%USERNAME%"); user=user.toUpperCase();
comp=Shell.ExpandEnvironmentStrings("%COMPUTERNAME%"); comp=comp.toUpperCase();
 
 
if (comp=="SERVER"|comp=="SERVER2"){
  try {Shell.Run(path+"Set_TMP.js",0,true)} catch(e) {WScript.Echo("Ошибка автозагрузки: "+path+"Set_TMP.js\nОбратитесь к администратору")};
};

 
скрипт прописывания темпов для каждой сессии Set_TMP.js:

Цитата:
function STR0(x,y)
 { var str=x.toString(10); while (str.length<y){str="0"+str}; return (str);}
 
Sh=new ActiveXObject("WScript.Shell"); Fso=new ActiveXObject("Scripting.FileSystemObject");
username=Sh.ExpandEnvironmentStrings("%USERNAME%");   username=username.toUpperCase();
comp=Sh.ExpandEnvironmentStrings("%COMPUTERNAME%");   comp=comp.toUpperCase();
 
session=Sh.ExpandEnvironmentStrings("%SESSIONNAME%"); session=session.toUpperCase();
if (session.length>7) { session=session.substr(8); session=STR0(session,5); };
 
if (comp=="SERVER"){
  tmp_path="E:\\TMP\\";         if (!Fso.FolderExists(tmp_path)) Fso.CreateFolder(tmp_path);
  tmp_path="E:\\TMP\\"+session; if (!Fso.FolderExists(tmp_path)) Fso.CreateFolder(tmp_path);
  Sh.RegWrite("HKEY_CURRENT_USER\\Environment\\TEMP",tmp_path);
  Sh.RegWrite("HKEY_CURRENT_USER\\Environment\\TMP",tmp_path);
};  
 
if (comp=="SERVER2"){
  tmp_path="D:\\TMP\\";          if (!Fso.FolderExists(tmp_path)) Fso.CreateFolder(tmp_path);
  tmp_path="D:\\TMP\\"+session;  if (!Fso.FolderExists(tmp_path)) Fso.CreateFolder(tmp_path);
  Sh.RegWrite("HKEY_CURRENT_USER\\Environment\\TEMP",tmp_path);
  Sh.RegWrite("HKEY_CURRENT_USER\\Environment\\TMP",tmp_path);  
};  

 
вот эта может быть непонятная штука:

Цитата:
session=Sh.ExpandEnvironmentStrings("%SESSIONNAME%"); session=session.toUpperCase();
if (session.length>7) { session=session.substr(8); session=STR0(session,5); };
 

это проверка логина на консоль сервака, там выстреливает "CONSOLE" когда в других случаях "SESSIONNAME=RDP-Tcp#722" например

Всего записей: 313 | Зарегистр. 27-07-2004 | Отправлено: 17:04 23-04-2012 | Исправлено: megamozg13, 17:08 23-04-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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