![]() |
![]() |
![]() |
|
VBScript и реестр | ☑ | ||
---|---|---|---|---|
0
1Снечег
07.09.07
✎
15:23
|
Подскажите как правильно считать с помощью конструкции WshShell.RegRead() значение параметра из ветки реестра "HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles\"
проблема в том что названия параметров там в виде "I:\1C_Base\" то есть в результате получается следующее: WshShell.RegRead("HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles\I:\1C_Base\") и при попытке случается ошибка (Err.Number=-2147024735, Err.Description="Неверная ссылка на корень в разделе реестра") подскажите пожалуйста синтаксис, а то я уже всю голову сломал |
|||
1
DGorgoN
07.09.07
✎
15:29
|
мыло скажи..
|
|||
2
IUnknown
07.09.07
✎
15:30
|
||||
3
DGorgoN
07.09.07
✎
15:32
|
HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles\I:\1C_Base\ - загоняешь в переменную, и уже WshShell.RegRead(переменная)
|
|||
4
DGorgoN
07.09.07
✎
15:33
|
+ (3) попробуй..
|
|||
5
1Снечег
07.09.07
✎
15:36
|
(2) не, мне именно в VBScript нужно. боюсь что все-таки есть разница
|
|||
6
IUnknown
07.09.07
✎
15:40
|
там есть именно на VBScript
function vlGetListBase() только ковычки надо будет по сокращать |
|||
7
1Снечег
07.09.07
✎
15:40
|
у меня это сейчас так:
PathToListBases = "HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles\" UnderTestPath = "I:\1C_Bases\Автосалон\v7\Бух\" KeyBase = WshShell.RegRead(PathToListBases & UnderTestPath) не работает |
|||
8
DGorgoN
07.09.07
✎
15:42
|
(5) (3) не помогло?
|
|||
9
DGorgoN
07.09.07
✎
15:45
|
хм
|
|||
10
DGorgoN
07.09.07
✎
15:53
|
Const HKEY_CURRENT_USER = &H80000001
Set oRegProv = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") strKeyPath = "Software\1C\1Cv7\7.7\Titles" iRes = oRegProv.EnumValues(HKEY_CURRENT_USER, strKeyPath, arrValues) MsgBox("база" & strpath,vbOK) |
|||
11
DGorgoN
07.09.07
✎
15:57
|
Const HKEY_CURRENT_USER = &H80000001
Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") Set oRegProv = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") strKeyPath = "Software\1C\1Cv7\7.7\Titles" iRes = oRegProv.EnumValues(HKEY_CURRENT_USER, strKeyPath, arrValues) strpath = join(arrValues,";") MsgBox "база" & strpath, vbOK |
|||
12
DGorgoN
07.09.07
✎
15:58
|
arrValues - там список всех баз.. удачи..
|
|||
13
DGorgoN
07.09.07
✎
16:04
|
Книга знаний: Получение списка баз vb скриптом (краткий пример) добавил в КЗ как полный, простой и исчерпывающий пример..
|
|||
14
1Снечег
07.09.07
✎
16:15
|
блин, ладно, с тем что дали как-нибудь разберусь
но вообще мне список баз не нужен был, мне нужно было проверить конктретную базу |
|||
15
DGorgoN
07.09.07
✎
16:21
|
(14) Ну так и воспользуйся (11)
|
|||
16
1Снечег
07.09.07
✎
16:23
|
(6)
правильно порезал? а то все равно не пашет |
|||
17
DGorgoN
07.09.07
✎
16:24
|
Const HKEY_CURRENT_USER = &H80000001
Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") Set oRegProv = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") strKeyPath = "Software\1C\1Cv7\7.7\Titles" iRes = oRegProv.EnumValues(HKEY_CURRENT_USER, strKeyPath, arrValues) strpath = join(arrValues,";") if instr(1,strPath,"ПУТЬ К ИСКОМОЙ БАЗЕ")>0 Then ' если нет в списке то добавим MsgBox "Эта база уже зарегена!",vbOK End If |
|||
18
1Снечег
07.09.07
✎
16:25
|
(15) ага, спасиб
правда и тот способ пригодится потом |
|||
19
DGorgoN
07.09.07
✎
16:25
|
(16) помогло или нет? Или тебе че-то другое надо было?
|
|||
20
1Снечег
07.09.07
✎
16:29
|
(19)блин, копипаст забыл сделать=) порезал вот так:
function strGetListBase() const RootKey = &H80000001 set Reg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\." & "\root\default:StdRegProv") PathKey = "Software\1C\1Cv7\7.7\Titles" Reg.EnumValues RootKey, PathKey, Arr for x = LBound(Arr) to UBound(Arr) call Reg.GetStringValue(RootKey, PathKey, Arr(x), Value) Answer = Answer & Arr(x) & Value ' if x <> UBound(Arr) then Answer = Answer & "","" next Msg Answer end function |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |