سلام.
یه کامپوننت برای وی بی می خوام که بشه باهاش پس زمینه ویندوز رو تغییر داد.
چنین چیزی رو توی MultiMedia Builder درست کردم. ولی الآن می خوام پروژم رو با وی بی طراحی کنم و نیاز به این کامپوننت دارم.
این رو هم بگم که نگین چرا سرچ نکردی؟ خودم اول گشتم ولی چیزی پیدا نکردم.
سلام.
چرا سرچ نکردی؟
کد:
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
Private Const SPI_SETDESKWALLPAPER = 20
Private Sub ChangeWallpaper(PicAdrs As String)
SystemParametersInfo SPI_SETDESKWALLPAPER, 0, PicAdrs, 0
End Sub
باحاله چرا سرچ نکردی اخه ؟؟؟
(۱۵-شهریور-۱۳۸۸, ۰۱:۰۶:۲۱)Payman62 نوشته است: [ -> ]سلام.
چرا سرچ نکردی؟
کد:
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
Private Const SPI_SETDESKWALLPAPER = 20
Private Sub ChangeWallpaper(PicAdrs As String)
SystemParametersInfo SPI_SETDESKWALLPAPER, 0, PicAdrs, 0
End Sub
خوب الآن باید چکار کنم؟ من تازه کار هستما!
باید یه cmd بسازم و توی دستوراتش بنویسم که این تابع رو با پارامتر تصویر اون عکس اجرا کنه؟
دستت درد نکنه آقا پیمان. یکی درست کردم.
سلام.
وقتی پروژه رو دیدم گفتم صادق چی کارکرده که حجم پروژه فشرده شده شده 450 کیلو. ولی بعد دیدم 4 تا عکس گذاشتی کنارش.
این سبک عکسا خوراک پس زمینه ویندوزه. البته با طرح ویندوز. مثل این.
![[تصویر: attachment.php?aid=3782]](http://forum.iranled.com/attachment.php?aid=3782)
(۱۵-شهریور-۱۳۸۸, ۱۵:۳۳:۱۸)Payman62 نوشته است: [ -> ]سلام.
وقتی پروژه رو دیدم گفتم صادق چی کارکرده که حجم پروژه فشرده شده شده 450 کیلو. ولی بعد دیدم 4 تا عکس گذاشتی کنارش.
پیمان جون، نگران نباش. به اونجا هم می رسه. فعلاً مشغول تحقیقات و فعالیت هستم. فکرهای زیادی برای کار دارم.
راستی، این پروژه توی ویندوز 7 خوب کار می کنه. ولی توی XP کار تعویض پس زمینه از روی عکس رو با مشکل انجام میده. البته با تصاویر BMP مشکلی نداره. برای تعویض تصاویر JPG باید چکار کنم؟
سلام.
اینم برای jpg و gif.
فقط قبل از استفاده از منوی project>refrences>microsoft scripting runtime رو به پروژه اضافه کن.
کد:
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
Private Const SPI_SETDESKWALLPAPER = 20
Private Sub ChangeWallpaper(PicAdrs As String)
Dim fsoType As New Scripting.FileSystemObject
Dim OtherPictures As StdPicture
Dim strNewAdrs As String
If Dir(PicAdrs) <> "" Then
Select Case UCase(fsoType.GetExtensionName(PicAdrs))
Case Is = "JPG", "GIF"
Set OtherPictures = LoadPicture(PicAdrs)
strNewAdrs = fsoType.GetParentFolderName(PicAdrs) & "\" & fsoType.GetBaseName(PicAdrs) & ".bmp"
SavePicture OtherPictures, strNewAdrs
SystemParametersInfo SPI_SETDESKWALLPAPER, 0, strNewAdrs, 0
Case Is = "BMP"
SystemParametersInfo SPI_SETDESKWALLPAPER, 0, PicAdrs, 0
Case Else
MsgBox "The File Type Is Invalid. Please Select A Picture.", vbCritical + vbOKOnly, "Error"
End Select
Else
MsgBox "Cant Find This Picture: """ & PicAdrs & """", vbCritical + vbOKOnly, "Error"
End If
End Sub
پیمان جان.
این کدها رو استفاده کردم و کار کرد. دستت درد نکنه.
فقط چند نکته هست که برام مشکل ایجاد کرده.
1- این کد فقط عکس رو تبدیل به BMP می کنه و همون رو به عنوان پس زمینه قرار میده.
2- من اگر بخوام این کار رو از روی CD انجام بدم برام مشکل بوجود میاد.
3- حجم عکس های BMP تولید شده زیاده و بعد از استفاده همونجا، توی پوشه عکس ها می مونه.
سلام.
خوب آدرس تمپ رو بگیر و اون جا ذخیره کن. عکس هم باید بمونه دیگه. اگه پاکش کنی که با ریست وین بکگراند عوض میشه.
آدرس تمپ رو هم با این ای پی آی GetTempPath بگیر.
(۲۵-شهریور-۱۳۸۸, ۱۹:۰۷:۱۲)Loyal نوشته است: [ -> ]فقط چند نکته هست که برام مشکل ایجاد کرده.
1- این کد فقط عکس رو تبدیل به BMP می کنه و همون رو به عنوان پس زمینه قرار میده.
2- من اگر بخوام این کار رو از روی CD انجام بدم برام مشکل بوجود میاد.
3- حجم عکس های BMP تولید شده زیاده و بعد از استفاده همونجا، توی پوشه عکس ها می مونه.
1- منم یه همچین برنامه ای نوشتم و هر چی سرچ کردم که عکس رو به BMP تبدیل نکنه پیدا نکردم تا آخر متوجه شدم که ویندوز هم همین کار رو انجام میده
2و3-همین کاری که آقا پیمان گفت رو انجام بدین بهترین راه (البته اگه توی پوشه ویندوز یا system ذخیره کنید بهتره، چون اگه درایو ویندوز رو CleanUp کنین محتویات پوشه temp هم پاک میشه و وقتی ریست کردین بکگراند عوض میشه