Avatar billede hp-power Nybegynder
18. september 2002 - 23:40 Der 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.


Heino
Avatar billede jelzin101 Praktikant
19. september 2002 - 00:22 #1
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

Private Sub Form_Load()
SelRandFile
End Sub
Avatar billede hp-power Nybegynder
19. september 2002 - 09:35 #2
okay det glæder jeg mig til
Avatar billede hp-power Nybegynder
20. juni 2003 - 16:16 #3
1
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester