Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
 
 
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,803
Записей в блоге: 16
#1

Полезные VBS скрипты и программы по работе с ними - VBScript/JScript

15.10.2012, 00:41. Просмотров 90183. Ответов 32
Метки нет (Все метки)

В этой теме выкладываем скрипты, которые часто используются Вами
или на Ваш взгляд могут иметь большое практическое значение.

Также приветствуются скрипты высокой степени сложности, полезные с точки зрения
изучения принципа их работы.

Правила темы:
  • При выкладывании скрипта постарайтесь тщательно описывать принцип его работы и по-больше комментировать строки Вашего кода.
  • Если Ваш код очень большой, помещайте его под CUT. Также можно сделать 2 варианта: 1. Чистый код. 2. С комментариями.
  • Запрещаются любые обсуждения выложенных здесь работ;
  • если в этом есть необходимость, создайте отдельную тему в которой опишите замечание или проблему при работе с данным скриптом, указав ссылку на сообщение из этой темы (правый клик по слову "Permalink" вверху каждого сообщения).
  • Если Вы хотите внести исправление в выложенный Вами код - пишите мне в личку ссылку на Ваше старое сообщение и новый исправленный вариант. (полный вариант с тегами Вашего старого сообщения можно получить, нажав на него - кнопка "Цитата").
  • Допускается размещение обзора программ, помогающих редактировать/отлаживать код.

Схожая тема: Полезные макросы, надстройки и шаблоны (VBA)
Смежная тема: http://www.cyberforum.ru/cmd-bat/thread671391.html


******************* Перечень полезных скриптов: *******************
Отправка файла на FTP (Drag & Drop) и копирование ссылки в буфер обмена ссылка
Получение времени сервера ссылка

http://www.cyberforum.ru/vbscript-wsh/thread1374204.html

5
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 00:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Полезные VBS скрипты и программы по работе с ними (VBScript/JScript):

VBS, метод POST, заполнение полей и иже с ними
С помощью скрипта лезу на сайт. Далее нужно заполнить поля формы. Тут ступор...

Добавление программы в автозагрузку через скрипт vbs
Доброго врмени суток. Никак не могу найти скрипт vbs добавления в автозагрузку....

Vbs -скрытый запуск программы с параметрами и её отслеживание
Требуется скрыто запускать программу с параметром, если она завершится, скрыто...

Создание бинарного файла из vbs / Как создать exe файл из vbs
Имеется файл с расширением exe. Нужно как-нибудь занести массив байт в скрипт,...

Вывод сообщений из программы сценария VBScript (.vbs-файл)
Дано: Win2003Srv До переустановки системы сценарий VBScript выводил сообщения...

32
greg zakharov
Покинул форум
1937 / 813 / 233
Регистрация: 07.05.2015
Сообщений: 1,640
10.11.2015, 10:16 #21
Uptime (без использования WMI):
Javascript
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
(function() {
  var enc, arr, i, s = '', std,
      loc = {
        419 : ['019', '1251'],
        409 : ['009', '1252']
      };
  
  Array.prototype.to_s = function() {
    var s = '';
    
    for (var i = 0; i < this.length; i++) {
      s += i === 0 ? parseInt(this[i]) + '.'
        : (parseInt(this[i]) < 10 ? '0' + parseInt(this[i]) : parseInt(this[i])) + ':';
    }
    return s.replace(/\:$/, '');
  };
  
  with (new ActiveXObject('WScript.Shell')) {
    enc = Number(RegRead('HKCU\\Control Panel\\International\\Locale'));
    arr = RegRead(
      'HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\' +
      'PerfLib\\' + loc[enc][0] + '\\Counter'
    ).toArray();
    
    for (i = 0; i < arr.length; i++) {
      if (parseInt(arr[i]) === 2 || parseInt(arr[i]) === 674) {
        s += '\\' + arr[i + 1];
      }
    }
    
    std = Exec('cmd /c chcp');
    i = std.StdOut.ReadAll().match(/\d+/);
    std = Exec('cmd /q /k echo off');
    std.StdIn.WriteLine('chcp ' + loc[enc][1]);
    std.StdIn.WriteLine('typeperf "' + s + '" -sc 1');
    std.StdIn.WriteLine('chcp ' + i + '&exit');
    s = parseInt(std.StdOut.ReadAll().match(/\d+\.\d+/g)[2]);
  };
  WScript.echo([s / 86400, s / 3600 % 24, s % 3600 / 60, s % 60].to_s());
}());
Генерация случайного файла (функция генерирует случайное имя со случайным расширением):
Javascript
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
(function(len) {
  if (isNaN(len) || (len > 32 || len < 1)) {
    WScript.echo('Should be a number ranging from 1 to 32.');
    WScript.Quit(1);
  }
  
  var getRandom = function(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  };
  
  var std, arr, i, ext = [];
  with (new ActiveXObject('WScript.Shell')) {
    std = Exec('cmd /q /k echo off');
    std.StdIn.WriteLine('assoc & exit');
    arr = std.StdOut.ReadAll().split('\n');
  }
  
  for (i = 0; i < arr.length; i++) {
    if (!arr[i].match(/.\d+\=/) && arr[i].match(/=\w+/)) {
      ext.push(arr[i].split('=')[0]);
    }
  }
  
  with (new ActiveXObject('Scriptlet.TypeLib')) {
    WScript.echo(GUID.substring(1, 37).replace(/-/g, '')
      .toLowerCase().slice(0, len) + ext[getRandom(0, ext.length - 1)]
    );
  }
}(
  WScript.Arguments.length !== 1
  ? WScript.Quit(1)
  : WScript.Arguments.Unnamed(0)
));
2
xeon13
30 / 33 / 1
Регистрация: 22.11.2012
Сообщений: 275
13.11.2015, 09:15 #22
Uptime простейший.
Visual Basic
1
2
3
4
5
6
7
'Писал для себя по примерам в интернете. E}|{uk@RUSnet
Set objDT = CreateObject ("WbemScripting.SWbemDateTime") 
For Each objItem in GetObject ("winmgmts:root\cimv2").Get ("Win32_OperatingSystem").Instances_ 
       objDT.value = objItem.LastBootUpTime 
       nUp = DateDiff ("n", objDT.GetVarDate (TRUE), NOW) 
       wscript.echo "Up for", int (nUp/1440), "Day(s)", int (nUp/60) mod 24, "hour(s)", nUp mod 60, "minute(s)" 
Next
Добавлено через 38 минут
Скрипт получения имени пользователя и по имени локального компа по SIDу
Часто бывает необходим для выяснения кто стал причиной ошибки в журнале виндовс.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
'Скрипт получения имени пользователя и по имени локального компа по SIDу (VBScript)
'Просто в появившемся диалоговом окне вводим SID нужного юзверя ОК
'Автор E}|{uk@RUSnet (xeon) 2013г.
 
sSID = InputBox ("Введите SID пользователя:")
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & strComputer & "\root\cimv2")
Set objAccount = objWMIService.Get _
("Win32_SID.SID='" & sSID & "'")
Wscript.Echo "ИмяПольз\ИмяКомпДомен: " & objAccount.AccountName & " \ " & objAccount.ReferencedDomainName
Добавлено через 20 минут
Visual Basic
1
2
3
4
'Скрпт синхронизирующий время с указанной рабочей станции. \\adms
'Автор E}|{uk@RUSnet (xeon)
set WshShell = WScript.CreateObject("WScript.Shell")  
WSHShell.Run "net time \\adms /set /yes", 0, True
1
greg zakharov
Покинул форум
1937 / 813 / 233
Регистрация: 07.05.2015
Сообщений: 1,640
16.11.2015, 11:05 #23
Определяет физическое местоположение COM-модуля.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(function(com) {
  try {
    with (new ActiveXObject('WScript.Shell')) {
      WScript.Echo(RegRead('HKLM\\SOFTWARE\\Classes\\CLSID\\' +
        RegRead('HKLM\\SOFTWARE\\Classes\\' + com + '\\CLSID\\') +
      '\\InProcServer32\\'));
    }
  }
  catch (e) {
    WScript.echo('Error (' + e.number + '): unknown COM on this system.');
  }
}(
  WScript.Arguments.length !== 1
  ? (function() {
    WScript.echo('Usage: ' + WScript.ScriptName + ' <COM>');
    WScript.echo('e.g.: ' + WScript.ScriptName + ' Scripting.FileSystemObject');
    WScript.Quit(1);
  }()) : WScript.Arguments.Unnamed(0)
));
1
xeon13
30 / 33 / 1
Регистрация: 22.11.2012
Сообщений: 275
20.11.2015, 16:03 #24
Visual Basic
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
'####################################################
'#  Скрипт для автоматического изменения или добавления логотипа  Фирмы#
'#  в свойствах системы Win7. Можно использовать в доменных политиках      #
'# Необходимо, чтобы в папке со скриптом лежал сам логотип oemlogo.bmp
'# У мена размер логотипа был: 120 x 33 x 24 BPP
'#   Автор: E}|{uk@RUSnet 2015год                    #
'####################################################
 
'Копирование логотипа
 
strComputer = "."
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
 
'#######добавил проверку наличия папки и её создание########
'переменная пути с папкой логотипа
strDirectory = "c:\Windows\System32\oobe\info"
 
'если переменная strDirectory есть то...
If objFSO.FolderExists(strDirectory) Then 
'попытка открытия папки.
Set objFolder = objFSO.GetFolder(strDirectory) 
'Для оповещения ниже строчку можно раскоментировать.
'WScript.Echo "Папка  ''"& strDirectory &"''  уже создана " 
Else
Set objFolder = objFSO.CreateFolder(strDirectory) 
'Для оповещения ниже строчку можно раскоментировать.
'WScript.Echo "Вновь созданная папка ''"& strDirectory &"''."
End If
 
'##########проверка окончена#################################
 
objFSO.CopyFile "oemlogo.bmp", "c:\Windows\System32\oobe\info\oemlogo.bmp", True
    If Err.Number <> 0 Then
set  mes = Err.Number & ": " & Err.Description
MsgBox mes, 0, " Внимание!!!"
'       WScript.Quit
    end if
 
'Удаление лишний инфы с реестра OEMINFO.
On error Resume Next
Set SHELL = CreateObject("WScript.Shell")
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\Manufacturer"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\Model"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\SupportHours"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\SupportPhone"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\SupportURL"
SHELL.RegWrite RegValue, "", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
RegValue = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" & _
"CurrentVersion\OEMInformation\Logo"
SHELL.RegWrite RegValue, "\Windows\System32\oobe\info\oemlogo.bmp", "REG_SZ"
    If Err.Number <> 0 Then
        WScript.Echo "Не добавился ключ: " & RegValue
        WScript.Quit
    end if
 
wscript.echo "Логотип добавлен, инфа oeminf стёрта."
Visual Basic
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
'####################################################
'# Скрипт на изменение добавление логотипа Фирмы   #
'# В свойствах системы WinXP   Можно использовать в доменных политиках  #
'# Необходимо, чтобы в папке со скриптом лежал сам логотип oemlogo.bmp
'# и файл oeminfo.ini с содержанием:
'# [General]
'# Manufacturer=СуперКомпьютер:
'# Model=
'# 
'# [Support Information]
'# Line1=
'# Line2=
'# У мена размер логотипа был: 120 x 33 x 16бит. при 24Битах - отображается белый фон.
'#   Автор: E}|{uk@RUSnet 2010год                    #
'####################################################
 
'Копирование логотипа
 
strComputer = "."
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
 
objFSO.CopyFile "oemlogo.bmp", "c:\Windows\System32\oemlogo.bmp", True
    If Err.Number <> 0 Then
set  mes = Err.Number & ": " & Err.Description
MsgBox mes, 0, " Внимание!!!"
'       WScript.Quit
    end if
 
objFSO.CopyFile "oeminfo.ini", "c:\Windows\System32\oeminfo.ini", True
    If Err.Number <> 0 Then
set  mes = Err.Number & ": " & Err.Description
MsgBox mes, 0, " Внимание!!!"
'       WScript.Quit
    end if
 
wscript.echo "Логотип добавлен"
1
greg zakharov
Покинул форум
1937 / 813 / 233
Регистрация: 07.05.2015
Сообщений: 1,640
30.11.2015, 13:22 #25
Crc32 файла
Суть идеи - запихать файл в zip и уже оттуда получить Crc32 файла (смещение 14 байт от начала архива, само поле crc32 - 4 байта). Концепт расчитан прежде не на шибко большие файлы.
Visual Basic
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
On Error Resume Next
 
If WScript.Arguments.Count <> 1 Then
  WScript.Echo "Usage: " & WScript.ScriptName & " <file>"
  WScript.Echo ".e.g.: " & WScript.ScriptName & " E:\sandbox\app.exe"
  WScript.Quit(1)
End If
 
Dim strFile
Dim strTemp
Dim objFile
Dim objDump
Dim strDump
 
strFile = WScript.Arguments.Unnamed(0)
 
With CreateObject("Scripting.FileSystemObject")
  If Not .FileExists(strFile) Then
    WScript.Echo "Could not locate specified file."
    WScript.Quit(1)
  End If
  
  strFile = .GetAbsolutePathName(strFile)
  strTemp = .BuildPath(.GetSpecialFolder(2), "~crc32.zip")
  
  Set objFile = .CreateTextFile(strTemp)
  objFile.Write "PK" & Chr(5) & Chr(6) & String(18, 0)
  objFile.Close
  
  With CreateObject("Shell.Application")
    .NameSpace(strTemp).CopyHere strFile
    WScript.Sleep 500
  End With
  
  With CreateObject("SAPI.SpFileStream")
    .Open strTemp, 0
    .Seek 14, 1
    .Read objDump, 4
    .Close
  End With
  
  With CreateObject("Microsoft.XMLDOM")
    Set strDump = .createElement("Binary")
    strDump.dataType = "bin.hex"
    strDump.nodeTypedValue = objDump
  End With
  
  strDump = strDump.text
  WScript.StdOut.Write "0x"
  For i = Len(strDump) - 1 To 0 Step -2
    WScript.StdOut.Write UCase(Mid(strDump, i, 2))
  Next
  WScript.Echo
  .GetFile(strTemp).Delete
End With
1
xeon13
30 / 33 / 1
Регистрация: 22.11.2012
Сообщений: 275
11.12.2015, 15:04 #26
Скрипт получения полного имени пользователя и его описание из домена
возникла необходимость узнавать, кто открыл файл ексель.
Автор E}|{uk@RUSnet 2015г.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
'#####################################################
'# Скрипт получения полного имени пользователя и его описание из домена
'# возникла необходимость узнавать, кто открыл файл ексель.
'# Автор E}|{uk@RUSnet 2015г.
'#####################################################
 
set nw = WScript.CreateObject("WScript.Network")
username=InputBox ("Введите логин пользователя:")
 
'Вместо DOMEN меняем на свой домен в сети.
set objuser = GetObject("WinNT://DOMEN/" & username)
 
wscript.Echo (username) & " => " & (objuser.fullname) & " (" & (objuser.description) &")"
1
Oleg_cyber
5 / 5 / 2
Регистрация: 03.02.2012
Сообщений: 123
15.03.2016, 13:53 #27
Доброго времени суток!
Предлагаю вашему вниманию небольшой vbскриптик с помощью которого можно создать ярлык для программы в меню программ кнопки Пуск

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim FSO, file, oFile, objArgs, n, p, pf, WshShell, link
Set objArgs = WScript.Arguments
If objArgs.Count > 0 Then file = objArgs(0)
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set oFile = FSO.GetFile(file)
p = oFile.Path
n = FSO.GetBaseName(p)
pf = oFile.ParentFolder
Set WshShell = WScript.CreateObject("WScript.Shell")
Set link = WshShell.CreateShortcut("C:\Users\имя_пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs" & n & ".lnk")
link.TargetPath = p
link.WindowStyle = 1
link.Description = "Shortcut Script"
link.WorkingDirectory = pf
link.Save
MsgBox "     Ярлык создан!"
Скопируйте код в блокнот и сохраните с расширением .vbs (в 10-й строке замените имя_пользователя на ваше имя)
Затем нажмите win+R и введите shell:sendto и ОК
Перетащите файл в эту папку. Далее просто: ПКМ на нужном файле > Отправить > Ваш скрипт--Готово!
1
xeon13
30 / 33 / 1
Регистрация: 22.11.2012
Сообщений: 275
15.04.2016, 15:25 #28
NetCompNameMAIN+Timer.vbs Скрипт вывода сообщения Имени Компьютера и Юзера по таймеру. (Можно засунуть в доменные политики)

Несколько лет бился с тем что юзеры не желают знать сетевого имени своего компа и имени юзера.
Написал поначалу скрипт вывода сообщения при включении и всунул в политики домена. Юзеры стали тупо нажимать ОК и не читали, а потом при звонке в ИТ отдел только бе и ме, "придите сами посмотрите". Бегать неохота, проще подключиться удалённо, но без опознавательных координат это сложно. Вобщем вот сегодня прикрутил таймер к этому скрипту, чтобы ленивый юзер задолбался нажимать ОК, так как сообщение будет выскакивать снова поверх окон и заставит его вчитаться и запомнить. Вобщем собрал по интернетам из кусков скриптег и добавил свои вкусности . Думаю мою работу оценять многие начинающие админы ))).

Visual Basic
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
'Скрипт вывода Имени Компьютера и имени пользователя
'Сообщение нельзя закрыть по истечению времени
' Автор: E}|{uk@RUSnet #Dimitrovgrad 2016г.
' Спасибо "гуру" из интернета создавшему вывод сообщения по таймеру...
 
 
rem Option Explicit
 
Dim WshShell
 
Dim intTime4Show                  ' Заданное (оно же максимально возможное) время показа сообщения
Dim intMinimumTime                ' Минимальное время показа сообщения
Dim intTimeStartShowing           ' Время начала показа сообщения
Dim intRetValue                   ' Возвращаемое значение метода .Popup
Dim WshSysEnv, SysInfo, COMPUTERNAME, USERNAME 
 
Set WshShell = WScript.CreateObject("WScript.Shell")
 
intTime4Show    = 60              ' Заданное    время показа сообщения — 1 минута
intMinimumTime  = 10              ' Минимальное время показа сообщения — 10 секунд
 
intTimeStartShowing = Timer       ' Засекаем время
 
 
Function Server()
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    If Err.Number <> 0 Then
        rem WScript.Echo Err.Number & Err.Description
        WScript.Quit
    End If
    Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    strInfo = vbNullString
    For Each objOperatingSystem in colOperatingSystems
        strInfo=objOperatingSystem.Caption & " __ " & objOperatingSystem.Version
        Exit For
    Next
    Server = 0
    If InStr(LCase(strInfo),LCase("server"))>0 Then 
        Server = 1
    End If
End Function
 
 
If Server()=0 Then
    'создаем объект WshShell: 
    Set WshShell = WScript.CreateObject("WScript.Shell") 
 
    'создаем объект Environment со значением SYSTEM: 
    COMPUTERNAME = WshShell.Environment("PROCESS").Item("COMPUTERNAME")
    USERNAME = WshShell.Environment("PROCESS").Item("USERNAME")
 
    SysInfo = "Для обращения в отдел ИТ Запомните!     " & vbCrLf & vbCrLf & _
    "Ваш  ""КОМПЬЮТЕР"" —  " & COMPUTERNAME & "          "  & vbCrLf & vbCrLf & _
    "Ваш  ""ПОЛЬЗОВАТЕЛЬ"" —  "  & USERNAME & vbCrLf _
 
End If
 
Do
 
'   Код 262144 - поверх всех окон, а 64 значёк информативного сообщения.
    MsgBox SysInfo, 262144 + 64, " Внимание!!!"
 
    ' Повторяем вывод сообщения, пока не будет выполнено одно из условий:
    ' 1. Истечёт отведённое время и сообщение будет закрыто по таймауту [intRetValue = -1]
    ' 2. Сообщение будет закрыто вручную и с момента первого показа
    '    сообщения до текущего момента пройдёт не менее минимального [intMinimumTime]
    '    времени [(Timer - intTimeStartShowing) > intMinimumTime]
 
Loop Until intRetValue = -1 Or (Timer - intTimeStartShowing) > intMinimumTime
 
Set WshShell = Nothing
 
WScript.Quit 0
2
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,803
Записей в блоге: 16
15.05.2017, 20:11  [ТС] #29
Registry Time Decoder

Консольный VBS скрипт.

Позволяет увидеть в привычном формате DD.MM.YYYY hh:mm:ss даты, которые указаны в реестре в бинарном формате или в виде 16-ричного значения.

Можно указывать на выбор:
  • бинарную строку
  • 16-ричное число
  • путь к параметру реестра
Поддерживаемые форматы:
  • Unix-Time (4 байта)
  • FILETIME (8 байт)
  • SYSTEMTIME (16 байт)

Фейс и доп. инфа

Полезные VBS скрипты и программы по работе с ними

Примечание:
Скрипт поддерживает задание конвертируемой строки через аргументы, например:
Код
cscript путь\RegTimeDecoder.vbs 00,80,8c,a3,c5,94,c6,01
Скрипт может попросить повышения привилегий, если ему их не хватит, чтобы прочитать параметр реестра.

Буфер обмена
Чтобы вставить содержимое буфера обмена в окно консоли CSCRIPT, нажмите правой кнопкой мыши по заголовку окна => Свойства => Общие => Поставьте галочку на "Выделение мышью" => ОК.
Теперь вы сможете вставлять буфер правой кнопкой мышки.
Полезные VBS скрипты и программы по работе с ними

1
Вложения
Тип файла: zip RegTimeDecoder.zip (3.2 Кб, 5 просмотров)
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
01.06.2017, 09:18 #30
Календарь к 100 летию "нового стиля" для применения в издательском/полиграфическом деле а также для SOHO/ИЧП, фрилансеров и просто хороших людей ; данный пост есть ссылка на соотв. тред в котором (в том треде) планируется возможные (надеюсь) доработки, обсуждения и более новый версии
http://www.cyberforum.ru/vbscript-wsh/thread1994857.html
1
greg zakharov
Покинул форум
1937 / 813 / 233
Регистрация: 07.05.2015
Сообщений: 1,640
20.10.2017, 23:10 #31
Декодер активационного ключа Windows (CD-Key)

Javascript
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
(function() {
  var map = ('BCDFGHJKMPQRTVWXY2346789').split(''),
      key = [], i, j, k, dpi, ver;
 
  with (new ActiveXObject('WScript.Shell')) {
    ver = Exec('cmd /c ver').StdOut.ReadAll().match(/\d+\.\d+/);
    dpi = RegRead('HKLM\\SOFTWARE\\Microsoft\\Windows NT\\' +
                  'CurrentVersion\\DigitalProductId').toArray();
  }
 
  ver = Boolean(6.1 <= parseFloat(ver));
  if (ver) {
    var nb = (dpi[66] / 6) & 1;
    dpi[66] = (dpi[66] & 0xF7) || ((nb & 2) * 4);
  }
 
  dpi = dpi.slice(52, 67);
  for (i = 24; i >= 0; i--) {
    k = 0;
    for (j = 14; j >= 0; j--) {
      k = (k * 256) ^ dpi[j];
      dpi[j] = Math.floor(k / 24);
      k %= 24;
    }
    key = map[k] + key;
 
    if ((i % 5) === 0 && i !== 0) key = '-' + key;
  }
 
  if (ver) {
    var part = key.substring(1, k + 1);
        real = k === 0 ? 'N' + part : part + 'N';
    key = key.substring(1, key.length).replace(part, real);
  }
  WScript.echo(key);
}());
2
MegaBatcher2000
0 / 0 / 0
Регистрация: 20.01.2018
Сообщений: 1
15.02.2018, 19:37 #32
Мой скрипт.
Заранее предупрежу, может быть код не правильный, не тестил полностью.

Вот:
Visual Basic
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
a=msgbox("Cкрипт написан DirectRussianBeer.",100,"INFO")
Set st = CreateObject("Wscript.Shell")
do
st.sendkeys"{numlock}"
WScript.sleep 90
st.sendkeys"{capslock}"
WScript.sleep 90
st.sendkeys"{scrolllock}"
WScript.sleep 90
loop
Dim off
off=msgbox("Выключить?",4,"Переливающаяся клавиатура")
if off = vbYes then
Set cmd = CreateObject("WScript.Shell")
cmd.Run chr(34) & "@taskkill /f /im wscript.exe >nul" & Chr(34), 0, True
Set cmd = Nothing
Set st = Nothing
else
do
st.sendkeys"{numlock}"
WScript.sleep 90
st.sendkeys"{capslock}"
WScript.sleep 90
st.sendkeys"{scrolllock}"
WScript.sleep 90
loop
end if
Довольно простой, но реально у кого нет клавиатуры переливающийся, пусть пользуется.
0
Homarty
136 / 114 / 27
Регистрация: 12.02.2017
Сообщений: 308
11.04.2018, 21:33 #33
Всем доброго здоровья!
Как-то ко мне обратился один из участников форума с просьбой написать небольшой скрипт, который бы читал теги ID3V1 MP3-файлов в указанной пользователем папке и затем бы создавал в ней подкаталоги по музыкальным жанрам, в тех опять создавать вложенные подпапки с артистами, и т.д. по годам альбома->по названиям альбомов, и в итоге, все mp3-файлы должны быть аккуратненько рассортированы по всем этим многочисленным подпапкам.
Скажу честно, я не смог сразу выполнить это, руки не доходили, но тут выкроил немного времени и вот что получилось.
Написал за пару дней, много не тестировал, но вроде бы, работает нормально, если будут замечания сообщайте, учту.
2
Вложения
Тип файла: rar Сортировка mp3-файлов.rar (4.9 Кб, 4 просмотров)
11.04.2018, 21:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2018, 21:33
Привет! Вот еще темы с решениями:

Полезные PowerShell скрипты
Здесь публикуются полезные с практической точки зрения сценарии PowerShell или...

Полезные BAT/CMD скрипты
В этой теме выкладываем скрипты, которые часто используются Вами или на Ваш...

Полезные коды и авторские программы на Lisp
Расскажите, пожалуйста, что на лиспе пишите? вкратце, хотя бы. Очень интересно....

Полезные программы для програмистов под VB
Предлагаю сюда скидывать все программы которые упрощают жизнь програмисту....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru