يمكن تغيير كل من خلفية سطح المكتب وشاشة التوقف عن طريق دوال API كما يلي:
أولاً: بالنسبة لخلفية سطح المكتب:
- قم بوضع التعريفات التالية في قسم التصريحات العام للنموذج:
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long Const SPI_SETDESKWALLPAPER = 20 Const SPIF_UPDATEINIFILE = &H1
- قم بوضع الكود التالي فى حدث تحميل النموذج:
Private Sub Form_Load() Dim strWallPaper As String strWallPaper = "C:\WINDOWS\Web\Wallpaper\Windows XP.bmp" SystemParametersInfo SPI_SETDESKWALLPAPER, 0, strWallPaper, SPIF_UPDATEINIFILE End Sub
حيث المتغير strWallPaper عبارة عن اسم ملف الصورة المطلوب تحميله (مع مساره كاملاً كما في المثال)
مع ملاحظة أن هذه الدالة تتعامل مع ملفات الصور النقطية من نوع BMP.
والمثال التالي يوضح الفكرة:
ثانياً: بالنسبة لشاشة التوقف:
- قم بوضع التعريفات التالية في قسم التصريحات العام للنموذج:
Const REG_SZ = 1 Const HKEY_CURRENT_USER = &H80000001 Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult 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 Form_Load() Dim Ret Dim strKeyPath As String Dim strScreenSaver As String strKeyPath = "Control Panel\Desktop" strScreenSaver = "C:\WINDOWS\system32\ss3dfo.scr" RegCreateKey HKEY_CURRENT_USER, strKeyPath, Ret RegSetValueEx Ret, "SCRNSAVE.EXE", 0, REG_SZ, ByVal strScreenSaver, Len(strScreenSaver) RegCloseKey Ret End Sub
حيث المتغير strScreenSaver عبارة عن اسم ملف شاشة التوقف المطلوب تشغيله (مع مساره كاملاً كما في المثال).
والمثال التالي يوضح الفكرة:
مع تحياتي