powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / vbs: побитовые операции над целыми
1 сообщений из 1, страница 1 из 1
vbs: побитовые операции над целыми
    #34514939
Zum-Zum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть задача: считать значение ключа реестра типа REG_DWORD в переменную, модифицировать ее побитово и записать назад в ключ реестра.
Подумал, что решить ее будет проще vbs-скриптом.
Однако, при выполении операции модификации операторами AND, OR, XOR над целыми числами, которые выходят за диапазон 2 байт получаю ошибку переполнения. Это что, такое ограничение vbs, что эти операторы не разрешены для 4-байтовых операндов?

Вот тестовый код (ключ выбран только для примера):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Const HKEY_CURRENT_USER = &H80000001

strComputer = "."
 
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
 
strKeyPath = "SOFTWARE\Far\Screen"
strValueName = "Clock"

oReg.GetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue

w =  2 ^ 32 - 1  -  2 ^ 6 
'w =  2 ^ 15 - 1  -  2 ^ 6 

Wscript.Echo "Current dwValue: " & dwValue 
Wscript.Echo "w: " & w

dwValue = dwValue and w

Wscript.Echo "New dwValue: " & dwValue 
Если раскомментировать строку w = 2^15-1 - 2^6, то ошибка не возникает.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / vbs: побитовые операции над целыми
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]