PDA

View Full Version : [vb] dove sta l'errore?


snake78
17-09-2004, 10:14
Ho il seguente programmino vb ke permette ad ogni avvio di generare uno sfondo a caso.

Option Explicit
Dim iAccident, iNumber, iCounter
Dim szFolder, szWallpaper, szFileType
Dim objFileSystem, objFolder, objFile
iNumber = 0
iCounter = 0
szFolder = “C:\Sfondi”
szWallpaper = “C:\Sfondi\wallpaper.jpg”
set objFileSystem = CreateObject(“Scripting.FileSystemObject”)
set objFolder = objFileSystem.getFolder(szFolder)
‘ Determina numero dei file
iNumber = objFolder.files.count
do
‘ Genera un numero casuale
randomize
iAccident = Fix(rnd*(iNumber)) + 1
‘ Inserire il nome del file nel Registry
for each objFile in objFolder.files
iCounter = iCounter+1
If iCounter = iAccident then
szFileType=objFile.Type
if szFileType = “Immagine JPEG” then
Call objFile.Copy(szWallpaper, true)
end if
End if
next
loop until szFileType = “Immagine JPEG”


MI da errore in riga 7 carattere 12 (carattere non valido) codice 800A0408 origine: errore di compilazione di microsoft vbscript

Thx mille.
Ciao!

snake78
17-09-2004, 14:15
Uppete :muro: :muro:

snake78
17-09-2004, 16:00
nessuno lo sa? :cry:

RaouL_BennetH
17-09-2004, 16:18
Ci provo io ma non garantisco :D



szFolder = “C:\Sfondi”
szWallpaper = “C:\Sfondi\wallpaper.jpg”



Non č che al posto di "C:\Sfondi" tu debba mettere "C:/Sfondi" ? (cioč, mettere lo slash al posto del backslash??)

cioč, cosě:



szFolder = “C:/Sfondi”
szWallpaper = “C:/Sfondi/wallpaper.jpg”

snake78
17-09-2004, 16:32
No purtroppo, continua a darmi lo stesso errore.

RaouL_BennetH
17-09-2004, 18:43
mmm, allora, per quel poco che so di visual basic, prova cosě:



szFolder = App.Path & "C:\Sfondi"
szWallpaper = App.Path & "C:\Sfondi\wallpaper.jpg"

snake78
17-09-2004, 19:37
mettendo quello ke hai scritto tu ora mi viene errore di carattere non valido in riga 9 e carattere 34 codice:800A0408

RaouL_BennetH
17-09-2004, 19:43
uhm, giusto per provare di nuovo, sempre con l'app.path, cambia i "\" in "/"

snake78
18-09-2004, 07:56
no non funzia purtroppo :cry:

matpez
18-09-2004, 13:16
Ragazzi ma perchč siccome fate VB vi mettete a programamre il VBS ??? sono due cose diverse ma simili...

Direttamente chiamando le funzioni API della mircosoft, il codice per cambiare lo sfondo č questo.. provatelo:

Cmq nn sono convinto che funzioni cone le jpg, una volta avevo sentito che andavano solo con le bmp!!!


Private Const SPIF_UPDATEINIFILE = &H1
Private Const SPIF_SENDWININICHANGE = &H2
Private Const SPI_SETDESKWALLPAPER = 20

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

Public Sub CambiaSfondo(ByVal sWallPaper As String)

'cambio lo sfondo del desktop
If sWallPaper <> "" Then
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, sWallPaper, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
End If

End Sub

snake78
18-09-2004, 16:01
[B]
Direttamente chiamando le funzioni API della mircosoft, il codice per cambiare lo sfondo č questo.. provatelo:
[/CODE]

Thx. Ma dove lo devo mettere sto codice?
Devo crearlo con il notepad?

matpez
18-09-2004, 23:54
notepad :confused:

Ma nn stai chiedendo aiuto su VB ?

Altrimenti hai sbagliato il titolo del 3d :p

Il codice lo devi mettere nel form del tuo programma!! :)

snake78
19-09-2004, 10:41
Originariamente inviato da matpez
notepad :confused:

Ma nn stai chiedendo aiuto su VB ?

Altrimenti hai sbagliato il titolo del 3d :p

Il codice lo devi mettere nel form del tuo programma!! :)

Io non so usare VB
:cry:
Ho trovato sto programma in una sezione di questo forum e ho copiato il tutto suk notepad salvando poi il file come vbs.

Mi spiegheresti dove metterlo?
Cioč devo cancellare il programma e sostituirlo con il codice ke mi hai dato tu?
Thx.
Ciao!

DanieleC88
19-09-2004, 11:14
Forse basterebbe cambiare la linea
Dim objFileSystem, objFolder, objFile
con
Dim objFileSystem, objFolder, objFile as String
nel codice originale.