Newsgroup: it.comp.lang.visual-basic
Titolo: [posizionamento sfondo desktop] ci sono quasi

dopo innumerevoli tentativi, ci sono quasi :-)
facendo finta che non esistano esempi sul sito comune (che non mi
funzionano)
qualcuno mi sa dire come impostare la propietà estesa del desktop?
sono riuscito a farlo nei 2 modi (centrata,affiancata) prendendo spunto da
uno script che ho trovato sui vecchi post, ma li non parla di come
posizionarlo in maniera estesa e neanche nei vecchi post
lo script è il seguente:
Dim TileValue As String
Const REG_SZ = 1
Const SPI_SETDESKWALLPAPER = 20
Const SPIF_UPDATEINIFILE = &H1
Const SPIF_SENDWININICHANGE = &H2
Const HKEY_CURRENT_USER = &H80000001
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias
"GetWindowsDirectoryA" _
    (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32" _
    (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32" Alias "RegOpenKeyA" _
    (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As
Long
Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA"
_
    (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As
Long, _
    ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As
Long
Private Declare Function SystemParametersInfo& Lib "user32" Alias
"SystemParametersInfoA" _
     (ByVal uAction&, ByVal uParam&, ByVal lpvParam As Any, ByVal fuWinIni&)
Public Function GetWinDir() As String
    On Error GoTo errman
    Dim Temp As String * 256
    Dim X As Integer
    X = GetWindowsDirectory(Temp, Len(Temp))
    GetWinDir = Left$(Temp, X)
    GetWinDir = IIf(Right(GetWinDir, 1) = "\", GetWinDir, GetWinDir & "\")
    Exit Function
errman: MsgBox Error
End Function
' qui ho le 2 opzioni centrato affiancato ho provato a mettere 2, ma non è
quella estesa
Private Sub Check1_Click()
    ' "0" = centered wp ; "1" = tiled wp
    TileValue = IIf(Check1 = 1, "1", "0")
End Sub
Private Sub Command1_Click()
    SavePicture Image1.Picture, GetWinDir & "mywp.bmp"
    Dim KeyName As String, ImgName As String
    Dim rtn As Long, hKey As Long, KeyValueLength As Long
    ImgName = GetWinDir & "mywp.bmp"
    KeyName = "desktop\TileWallpaper"
    KeyValueLength = Len(TileValue) + 1
    rtn = RegOpenKey(HKEY_CURRENT_USER, "Control Panel\desktop", hKey)
    rtn = RegSetValueEx(hKey, "TileWallpaper", 0, REG_SZ, TileValue,
KeyValueLength)
    rtn = RegCloseKey(hKey)
    rtn = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ImgName, _
        SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
    Label1 = "Tiled: " & TileValue
    Exit Sub
errman: MsgBox Error
End Sub
Private Sub Form_Load()
    TileValue = "0"
End Sub
in pratica il valore di TileValue è 0 o 1
centrata , affiancata
ma l'estesa?????

 qualcuno mi sa dire come impostare la propietą estesa del desktop?
a naso, fai uno stretchblt alle dimensioni del desktop, con tilevalue falso.
ciao, j.

 di come posizionarlo in maniera estesa e neanche nei vecchi post
[cut]
Non vorrei dire una cavolata ma penso che l'opzione "estesa" non sia altro
che l'opzione "centrata" che in + ridimensiona l'immagine in base alla
risoluzione video (800x600, 1024x768, etc).
Infatti se metti come sfondo un immagine molto più piccola della tua
risoluzione video l'immagine appare centrata ma completamente sgranata, se
viceversa utilizzi un'immagine più grande, la stessa sarà sempre centrata ma
perderà i dettagli presenti ai bordi dell'immagine.
Ciao
-- 
Riccardo
____________________________________________________________
Maggiore: "Lei è l'uomo sbagliato, nel posto sbagliato, al momento
sbagliato". John McLane: "La storia della mia vita".

 dell'immagine.
opss..
mi correggo,  volevo dire l'immagine risulterà schiacciata.


 mi correggo,  volevo dire l'immagine risulterà schiacciata.
si l'immagine viene ridimensionata, però pensavo fosse una cosa che fa 
windows e non che deve fare il mio programma, dopotutto se vai nelle 
opzioni del desktop nel menù a tendina le voci sono 3, mi sembra strano 
che quella voce la debba fare io manualmente
ovvero anche se faccio questo lavoro io, nel menù rimane cmq la voce 
estesa e quindi avrei una centrata ridimensionata
-- 
     _
    [_]     SCIRIO
  /;   :\
()'---' C  100% COMMERCIALE
   | | |    
http://scirio.altervista.org
   [=|=]

 
cioè come ha datto anche cyberman, devo ridimensionarla io l'immagine e 
salvarla?
non è x fare lo sfaticato, ma siete sicuri che sia la soluzione 
migliore? :-)
quel terzo flag nelle proprietà del desktop rimane quindi inutilizzato?


 estesa e quindi avrei una centrata ridimensionata
anche la scompressione da jpeg devi farla tu...
ciao, j.

 
si la conversione in bmp l'ho fatta
ed č giusto che sia cosě, dato che windows accetta bmp
ma l'opzione estesa fa parte delle opzioni del desktop di windows
x questo mi sembra strano


 x questo mi sembra strano
si', puo' benissimo essere che tu abbia ragione.
ma se metti active desktop, win accetta anche jpeg.
ciao, j.

 ciao, j.
anche questo è vero :-)
bè aspetto fino a questa sera, se a nessuno risulta che si può impostare 
quella proprietà, la faccio a mano io


 lo script è il seguente:
Non so se ti può interessare, cmq puoi invocare le proprietà dello schermo
anche in questo modo:
Private Sub Command1_Click()
    X = Shell("Rundll32.exe shell32.dll,Control_RunDLL desk.cpl")
End Sub
Ciao


 
così chiamo proprio l'applicazione del desktop giusto?
e devo usare sendkeys x mandargli i comandi x applicare l'opzione giusta?
o c'è un altro metodo x cambiare quel valore?
io avevo fatto uno scriptno del genere x cambiare le proprietà del 
monitor, però funzionava solo se erano settate in un certo modo
usando questo metodo, se x esempio è selezionata la prima voce del menu 
a tendina (centrata), gli devo passare il comando di andare in giu 2 
volte x raggiungere quella estesa
ma se non sono in quella posizione?
da cosa lo capisco?
nel mio programma posso capirlo in base alla voce che ho selezionato nel 
mio menù a tendina
ma se x caso ho modificato a mano lo sfondo del desktop, non ho + il 
riferimento giusto e la cosa non mi funge
era questo che intendevi?


 era questo che intendevi?
Ciao
