Avatar billede bpraem Nybegynder
05. juni 2007 - 11:27 Der er 11 kommentarer og
1 løsning

ændre værdi i registraringsDB

Hej med jer,

Er der nogen der kan hjælpe mig med noget kode til at ændre en i værdi i en REG_EXPAND_SZ

værdien skal ændres fra %USERPROFILE%/Foretrukne tii H:\Foretrukne

Stien er HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

Håber nogen vil hjælpe mig...

Praem
Avatar billede morten_leth Nybegynder
06. juni 2007 - 12:12 #1
Option Explicit

Const HKEY_CURRENT_USER = &H80000001

Dim strComputer
Dim objRegistry
Dim strKeyPath
Dim strValueName
Dim strValue

strComputer = "."

Set objRegistry=GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootdefault:StdRegProv")

'Set Expandable String value
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
strValueName = "Hvad den nu hedder"
strValue = "H:\Foretrukne"
objRegistry.SetExpandedStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue

Set objRegistry = Nothing


prøv lige at leg lidt med det her, jeg har desværre ikke mulighed for at teste da jeg sidder med en vista.. :D

men det kan googles...
Avatar billede morten_leth Nybegynder
06. juni 2007 - 12:16 #2
http://ezinearticles.com/?VBScript---Working-with-the-Windows-Registry&id=305615

denne her brugte jeg til lige at lave det lille eksempel der..
Avatar billede bpraem Nybegynder
06. juni 2007 - 13:54 #4
Lækkert takker... men jeg har lige prøvet det af... Og det virker ikke! jeg får fejl i linie 13 tegn 1. fejlen hedder 0x80041021
Avatar billede morten_leth Nybegynder
06. juni 2007 - 16:03 #5
Option Explicit

Const HKEY_CURRENT_USER = &H80000001

Dim strComputer
Dim objRegistry
Dim strKeyPath
Dim strValueName
Dim strValue

strComputer = "."

Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

'Set Expandable String value
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
strValueName = "Hvad den nu hedder"
strValue = "H:\Foretrukne"
objRegistry.SetExpandedStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue

Set objRegistry = Nothing

der manglede lidt \ og noget i den linje skulle være fikset nu... beklager... synes nok min underbevidsthed sagde mig det så forkert ud.. :D

Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
Avatar billede bpraem Nybegynder
08. juni 2007 - 10:00 #6
Du er en stjerne... Hvis jeg smider lidt flere point.. kan du så ikke løse den her..

Jeg har taget den del du har lavet og pastet det her ind i.
dim filesys

    set filesys=CreateObject("Scripting.FileSystemObject")
    If filesys.FolderExists("H:\Foretrukne\") Then
    filesys.CopyFolder "C:\Documents and Settings\bp\Foretrukne", "H:\Foretrukne"
else

set fso = createobject("scripting.filesystemobject")
    fso.createfolder("H:\Foretrukne")
    filesys.CopyFolder "C:\Documents and Settings\bp\Foretrukne", "H:\Foretrukne"

end if

Men det virker ikke... De virker begge hver for sig men ikke sammen.
Avatar billede morten_leth Nybegynder
08. juni 2007 - 15:38 #7
dim filesys

set filesys = CreateObject("Scripting.FileSystemObject")
If filesys.FolderExists("H:\Foretrukne\") Then
    filesys.CopyFolder "C:\Documents and Settings\bp\Foretrukne", "H:\Foretrukne"
else
    filesys.createfolder("H:\Foretrukne")
    filesys.CopyFolder "C:\Documents and Settings\bp\Foretrukne", "H:\Foretrukne"
end if

hehe... den var nu heller ikke så svær.. :D du behøver ikke at initiere det object 2 gange.. det her burde fungere som det skal...
Avatar billede bpraem Nybegynder
12. juni 2007 - 09:31 #8
Jamen det er jo kun let for dig fordi du kan.... ;O)

Takker mange gange
Avatar billede bpraem Nybegynder
12. juni 2007 - 09:51 #9
Hov jeg har lige et tillægsspørgsmål.... Hvad hedder %USERPROFILE% i VBs? Så der ikke står C:\Documents and Settings\bp\ men at jeg kan bruge det på flere brugere!
Avatar billede morten_leth Nybegynder
12. juni 2007 - 10:01 #10
He he... jeg har også brugt lang tid på at lære det lort.. hehe.. men jeg kan kun sige øvelse gør mester...


Dim wsh, fs, profile
set wsh = createobject("WScript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")
profile = wsh.ExpandEnvironmentStrings("%UserProfile%")

denne her gør hvad du ønsker..


set wsh = createobject("WScript.Shell")
profile = wsh.ExpandEnvironmentStrings("%UserProfile%")

set filesys = CreateObject("Scripting.FileSystemObject")
If filesys.FolderExists("H:\Foretrukne\") Then
    filesys.CopyFolder profile & "\Foretrukne", "H:\Foretrukne"
else
    filesys.createfolder("H:\Foretrukne")
    filesys.CopyFolder profile & "\Foretrukne", "H:\Foretrukne"
end if

sådan her burde din kode så se ud.. :D held og lykke...
Avatar billede bpraem Nybegynder
12. juni 2007 - 10:55 #11
Jeg kan altså ikke få det til at virke sammen. Kan man ikke bare paste det hele sammen? Eller skal der laves om ?

Option Explicit

Const HKEY_CURRENT_USER = &H80000001

Dim strComputer
Dim objRegistry
Dim strKeyPath
Dim strValueName
Dim strValue

strComputer = "."

Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

'Set Expandable String value
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
strValueName = "Favorites"
strValue = "H:\Foretrukne"
objRegistry.SetExpandedStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue

Set objRegistry = Nothing

Dim wsh, fs, profile
set wsh = createobject("WScript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")
profile = wsh.ExpandEnvironmentStrings("%UserProfile%")

denne her gør hvad du ønsker..


set wsh = createobject("WScript.Shell")
profile = wsh.ExpandEnvironmentStrings("%UserProfile%")

set filesys = CreateObject("Scripting.FileSystemObject")
If filesys.FolderExists("H:\Foretrukne\") Then
    filesys.CopyFolder profile & "\Foretrukne", "H:\Foretrukne"
else
    filesys.createfolder("H:\Foretrukne")
    filesys.CopyFolder profile & "\Foretrukne", "H:\Foretrukne"
end if

Den siger
Linje: 28
Tegn: 11
Fejl: "Slut på sætning var ventet"
Avatar billede morten_leth Nybegynder
12. juni 2007 - 11:38 #12
Jow da... men hvis jeg var dig ville jeg tjekke hvad der står i linje 28... :D alt+h i notepad kan gå til en linje...

"denne her gør hvad du ønsker.."

Det er hvad der står i linje 28.. :D :D man kan stire sige blind på meget.. hehe..

Option Explicit

Const HKEY_CURRENT_USER = &H80000001

Dim strComputer
Dim objRegistry
Dim strKeyPath
Dim strValueName
Dim strValue

strComputer = "."

Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

'Set Expandable String value
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
strValueName = "Favorites"
strValue = "H:\Foretrukne"
objRegistry.SetExpandedStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue

Set objRegistry = Nothing

Dim wsh, fs, profile
set wsh = createobject("WScript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")
profile = wsh.ExpandEnvironmentStrings("%UserProfile%")

set wsh = createobject("WScript.Shell")
profile = wsh.ExpandEnvironmentStrings("%UserProfile%")

set filesys = CreateObject("Scripting.FileSystemObject")
If filesys.FolderExists("H:\Foretrukne\") Then
    filesys.CopyFolder profile & "\Foretrukne", "H:\Foretrukne"
else
    filesys.createfolder("H:\Foretrukne")
    filesys.CopyFolder profile & "\Foretrukne", "H:\Foretrukne"
end if





det muligt der er mere der skal declares det gør du bare ved at sætte den i eks.
dim filesys

så har du declaret variablen filesys...

Jeg skal ikke kunne sige men jeg er ret sikker på du løber ind i et par variabler der skal declares...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester