18. september 2002 - 23:40Der er
2 kommentarer og 1 løsning
wallpaper
jeg ville høre om der er nogle der kan lavet et program der random vælger en JPG fil i en bestemt mapper og sættter den som wallpaper skulle kunne køre i xp og 2000. den skal gøre det hvergang den starter.
jeg har brygget lidt sammen, er ikke helt sikker paa at det koerer saerligt godt, da jeg ikke har en compiler ved haanden lige her... men kigger paa det engang tors. eller fredag. :
Option Explicit Private FName As String Private Type SHFILEOPSTRUCT hwnd As Long wFunc As Long pFrom As String pTo As String fFlags As Integer fAnyOperationsAborted As Long hNameMappings As Long lpszProgressTitle As Long End Type Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long Private Const FO_DELETE = &H3 Private Const FOF_ALLOWUNDO = &H40 Private Sub SetWallP(filename As String) Dim t As Long Dim Wallpaper As String Dim filename As String filename = SelRandFile Wallpaper = filename If Wallpaper = "" Then Exit Sub t = SystemParametersInfo(ByVal 20, vbnostring, ByVal Wallpaper, &H1) If t = 0 Then MousePointer = 0 MsgBox "Error changing wallpaper" Exit Sub End If End Sub Private Sub SelRandFile() SortedFiles ("c:\windows") a = Int(Rnd * (UBound(files)) + 1) SetWallP (files(a)) End Sub Private Sub Quicksort(list() As String, ByVal min As Long, ByVal max As Long) Dim mid_value As String Dim hi As Long Dim lo As Long Dim i As Long If min >= max Then Exit Sub i = Int((max - min + 1) * Rnd + min) mid_value = list(i) list(i) = list(min) lo = min hi = max Do Do While list(hi) >= mid_value hi = hi - 1 If hi <= lo Then Exit Do Loop If hi <= lo Then list(lo) = mid_value Exit Do End If list(lo) = list(hi) lo = lo + 1 Do While list(lo) < mid_value lo = lo + 1 If lo >= hi Then Exit Do Loop If lo >= hi Then lo = hi list(hi) = mid_value Exit Do End If list(hi) = list(lo) Loop Quicksort list, min, lo - 1 Quicksort list, lo + 1, max End Sub Private Function SortedFiles(ByVal dir_path As String, Optional ByVal exclude_self As Boolean = True, Optional ByVal exclude_parent As Boolean = True) As String() Dim num_files As Integer Dim files() As String Dim file_name As String file_name = Dir$(dir_path) Do While Len(file_name) > 0 If Not _ (exclude_self And file_name = ".") Or _ (exclude_parent And file_name = "..") _ Then num_files = num_files + 1 ReDim Preserve files(1 To num_files) files(num_files) = file_name End If file_name = Dir$() Loop Quicksort files, 1, num_files SortedFiles = files End Function
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.