Jump to content

SimpsoN_Bart
 Share

Recommended Posts

Bu ufak programla masaüstü arkaplan resminizi kolayca değiştirebilirsiniz.. GUI arayüzü koymaya şimdilik gerek duymadım, Sistem Tepsisinde çalışıyor. Windows 7 nin böyle bir özelliği var. XP kullanırken çok sevdiğim bir özellik olduğundan bunu geliştirdim, sizinde işinize yarayabilir diye paylaşıyorum.Geliştirmeye açık bir proje.Umarım işinize yarar.Kolay gelsin.

 

Bonus olarak paket içine 10 Adet HD Wallpaper Koydum.İyi günlerde Kullanın.

 

gZ3KYi6.png

 

DhIv7JH.jpg

#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=image.ico
#AutoIt3Wrapper_Compression=3
#AutoIt3Wrapper_Res_Comment=BartSimpson
#AutoIt3Wrapper_Res_Description=Random WallPaper Changer
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=S.K CODER (C) 2013 | TNCTR
#Obfuscator_Parameters=/striponly
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <File.au3>
#include <Array.au3>
#include <GDIPlus.au3>

Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)

If UBound(ProcessList(@ScriptName)) > 2 Then
    MsgBox(16, "Hata!", "Zaten çalışan bir program mevcut!", 5)
    Exit 0
EndIf

Global $PIC_FOLDER = IniRead("Settings.ini", "Path", "PicPath", @ScriptDir)

Global $EXT_PICS[6]
$EXT_PICS[0] = 5
$EXT_PICS[1] = 'jpeg'
$EXT_PICS[2] = 'jpg'
$EXT_PICS[3] = 'png'
$EXT_PICS[4] = 'bmp'


Global $TEMPFILE_PATH = @TempDir & "\+~RandomWallPaper~+.bmp"
Global $BACKUP_FILE_PATH = @TempDir & "\+~RandomWallPaperBackUp~+.bmp"

$RANDOM_WALL = TrayCreateItem("Rastgele Masaüstü ArkaPlanı")
$UNDO = TrayCreateItem("Önceki Masaüstü ArkaPlanı")
$PIC_PATH = TrayCreateItem("Resimler Klasörünü Seç...")
$ABOUT = TrayCreateItem("Hakkında")
TrayCreateItem("")
$EXIT = TrayCreateItem("Çıkış")

TrayItemSetOnEvent($RANDOM_WALL, "_SetRandomWallPaper")
TrayItemSetOnEvent($PIC_PATH, "_PicPath")
TrayItemSetOnEvent($UNDO, "_Undo")
TrayItemSetOnEvent($EXIT, "_Exit")
TrayItemSetOnEvent($ABOUT, "_ABOUT")

Global $PICS = _FileListToArrayEx($PIC_FOLDER, $EXT_PICS)
If $PICS = 0 Then _PathInValid()

While 1
	Sleep(100)
WEnd

Func _SetRandomWallPaper()
	TrayItemSetState($RANDOM_WALL, 4)
	If FileExists($TEMPFILE_PATH) Then FileCopy($TEMPFILE_PATH, $BACKUP_FILE_PATH, 1)
	_GDIPlus_Startup()
	$BMP_WALL = _GDIPlus_BitmapCreateFromFile($PIC_FOLDER & "\" & $PICS[Random(1, $PICS[0], 1)])
	_GDIPlus_ImageSaveToFile($BMP_WALL, $TEMPFILE_PATH)
	_GDIPlus_BitmapDispose($BMP_WALL)
	_GDIPlus_Shutdown()
	_SetWallPaper($TEMPFILE_PATH)
EndFunc   ;==>_SetRandomWallPaper

Func _PicPath()
	TrayItemSetState($PIC_PATH, 4)
	$PIC_FOLDER_TEMP = FileSelectFolder("Resimlerin bulunduğu dizini seçin", "", 7, $PIC_FOLDER)
	If Not @error And IsArray(_FileListToArrayEx($PIC_FOLDER_TEMP, $EXT_PICS)) Then
		If StringRight($PIC_FOLDER_TEMP, 1) = "\" Then $PIC_FOLDER_TEMP = StringTrimRight($PIC_FOLDER_TEMP, 1)
		$PIC_FOLDER = $PIC_FOLDER_TEMP
		$PICS = _FileListToArrayEx($PIC_FOLDER, $EXT_PICS)
		IniWrite("Settings.ini", "Path", "PicPath", $PIC_FOLDER)
		Return 1
	EndIf
	Return 0
EndFunc   ;==>_PicPath

Func _PathInValid()
	Switch MsgBox(52, "Uyarı!", "Belirlediğiniz yolda uyumlu resim dosyaları yok veya yol geçersiz.Şimdi yolu tekar belirlemek ister misiniz?")
		Case 6
			If Not _PicPath() Then _PathInValid()
		Case 7
			MsgBox(64, "Bilgi", "Lütfen Resim Dosyalarınızın Bulunduğu Klasörü Seçin.Aksi Takdirde Rastgele Masaüstü ArkaPlanı Değişikliği Yapamazsınız.")
			TrayItemSetState($RANDOM_WALL, 128)
	EndSwitch
EndFunc   ;==>_PathInValid

Func _FileListToArrayEx($PATH, $_EXT)
	If Not IsArray($_EXT) Then Return SetError(1, 0, 0)

	Local $FILES_RAW = _FileListToArray($PATH, '*', 1)
	Local $FILES_RETURN[1]

	For $I = 1 To $FILES_RAW[0]
		$EXT_TMP = StringRight($FILES_RAW[$I], StringLen($FILES_RAW[$I]) - StringInStr($FILES_RAW[$I], ".", 0, -1))
		$VALID = False
		For $J = 1 To $_EXT[0]
			If $EXT_TMP = $_EXT[$J] Then $VALID = True
		Next
		If $VALID = True Then _ArrayAdd($FILES_RETURN, $FILES_RAW[$I])
	Next
	If UBound($FILES_RETURN) <= 1 Then Return SetError(2, 0, 0)
	$FILES_RETURN[0] = UBound($FILES_RETURN) - 1
	Return $FILES_RETURN
EndFunc   ;==>_FileListToArrayEx

Func _Undo()
	TrayItemSetState($UNDO, 4)
	If FileExists($BACKUP_FILE_PATH) Then
		FileCopy($TEMPFILE_PATH, $TEMPFILE_PATH & '.copybuffer', 1)
		FileCopy($BACKUP_FILE_PATH, $TEMPFILE_PATH, 1)
		FileCopy($TEMPFILE_PATH & '.copybuffer', $BACKUP_FILE_PATH, 1)
		FileDelete($TEMPFILE_PATH & '.copybuffer')
		_SetWallPaper($TEMPFILE_PATH)
	EndIf
EndFunc   ;==>_Undo

Func _SetWallPaper($IMAGE_PATH)
	RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "TileWallPaper", "REG_SZ", 0)
	RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "WallpaperStyle", "REG_SZ", -1)
	RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "Wallpaper", "REG_SZ", $IMAGE_PATH)
	DllCall("user32.dll", "int", "SystemParametersInfo", "int", 20, "int", 0, "str", $IMAGE_PATH, "int", BitOR(1, 2))
EndFunc   ;==>_SetWallPaper

Func _EXIT()
	Exit
EndFunc   ;==>_EXIT

Func _ABOUT()
	Local $RTN = DllCall("shell32.dll", "long", "ShellAboutA", "ptr", "hwnd", "str", "Random WallPaper Changer", "str", "© " & @YEAR & " SimpsoN_Bart | TNCTR.COM", "long", 0)
	If @error Then SetError(1, 0, 0)
	Return $RTN
EndFunc   ;==>_ABOUT

Paket içeriği : Program + Kaynak Kod + 10 Adet HD Wallpaper

https://www.box.com/s/c2o8i1rxgl7b8z93108v
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...