HAMID484
26-07-2006, 17:25
من دارم برنامه ای میسازم که عکسی رو هنگام بالا اومدن ویندوز نشون بده که باید در رجیستری تغییراتی داده شود
HKEY_USERS\.DEFAULT\Control Panel\Desktop\Wallpaper
حالا این تغییرات رو میخوام با تابع Reg Set ValueEX انجام بدم
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal _
hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType _
As Long, lpData As Any, ByVal cbData As Long) As Long
حالا مشکل من اینه که نمیدونم ادرس عکس مرتبط با کدوم متغییر هستش ظاهرا به LpData مربوطه ولی نمیدونم
چرا پیغام خطا میده
Payman_62
27-07-2006, 02:14
سلام.
اول با RegOpenKeyExA کلیدتو باز کن. بعد هندل به دست اومده رو بذار تو RegSetValueEx.
مقدار جدید رو هم درسته در lpData قرار بده.
HAMID484
27-07-2006, 19:39
اقا پيمان در متغيير Lpdata نميشه ادرس عكس رو بذاري , error ميده
سلام
من یه سورس واست میزارم
اینو بخونی فکر کنم کاملا مشکلت حل بشه
فقط باید یک Textbox و دوتا command button توی فرم بذاری
البته چون محیط فارسیه یکم قاطی شده وقتی توی VB کپی کنی درست میشه
Private Const ERROR_SUCCESS = 0&
Private Const REG_OPTION_VOLATILE = 1
Private Const REG_OPTION_NON_VOLATILE = 0
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_DYN_DATA = &H80000006
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_USERS = &H80000003
Private Const KEY_WRITE = &H20006
Private Const KEY_READ = &H20019
Private Const KEY_ALL_ACCESS = &HF003F
Private Const REG_BINARY = 3
Private Const REG_DWORD = 4
Private Const REG_SZ = 1
Private Const REG_EXPAND_SZ = 2
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal _
hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, _
phkResult As Long) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal _
hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal _
lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal _
samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, _
lpdwDisposition As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal _
hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType _
As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Sub Command1_Click()
Dim hKey As Long
Dim subkey As String
Dim Retval As Long
Dim Buffer As Long
Dim secattr As SECURITY_ATTRIBUTES
subkey = "Software\Microsoft\Windows\CurrentVersion\Policies \Explorer"
secattr.nLength = Len(secattr)
secattr.lpSecurityDescriptor = 0
secattr.bInheritHandle = 1
Retval = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, "", 0, KEY_WRITE, secattr, hKey, ByVal 0&)
If Retval <> 0 Then
Exit Sub
End If
Buffer = &H1 'Value for Drive A
RegSetValueEx hKey, "NoDrives", 0, REG_BINARY, Buffer, Len(Buffer)
RegCloseKey hKey
Text1.Text = "NoDrives-->=Open"
End Sub
Private Sub Command2_Click()
Dim hKey As Long
Dim Retval As Long
Dim subkey As String
subkey = "Software\Microsoft\Windows\CurrentVersion\Policies \Explorer"
Retval = RegOpenKeyEx(HKEY_CURRENT_USER, subkey, 0, KEY_ALL_ACCESS, hKey)
If Retval = 0 Then
RegDeleteValue hKey, "NoDrives"
RegCloseKey hKey
Text1.Text = "NoDrives------->=Deleted"
End If
End Sub
Payman_62
28-07-2006, 20:25
سلام.
اگه مشکلت با کد آقا عرفان حل شد که هیچی. اگه نشد تیکه کدتو بذار تا مشکلشو پیدا کنیم.
vBulletin , Copyright ©2000-2024, Jelsoft Enterprises Ltd.