Newsgroup: it.comp.lang.visual-basic
Titolo: Questione di vita o di morte

Il problema è questo: ho uno sfondo in 1024x768 di Tomb Raider (chi ne
vorrebbe una copia posso mandargliela via e-mail), che non posso nè voglio
rimuovere, ma sono costretto con scuse varie a nasconderlo sotto la vista
dei miei (di solito tramite finestre di directory), altrimenti rischio che
mi prendano per maniaco (già che la situazione è abbastanza incasinata...).
Dico, non è possibile con VB5 far sì che con una sequenza di tasti (tipo
Ctrl+Alt+G) si possa cambiare temporaneamente lo sfondo corrente con un
altro, senza che il programma in questione non abbia alcun'interfaccia
grafica visibile? So già che la API da usare per cambiare lo sfondo è
SystemParametersInfo, ma il problema è controllare se l'utente (il
sottoscritto) abbia premuto la sequenza apposita. Cerco un'anima pia che
possa aiutarmi, è una questione di vita o di morte...
=========================
E.G. er Cicca
Forse potrete trovarmi la sera su Italiano_chat.
Il mio nick è Cicca o Cicca2 e ho la faccia di un alieno.
=========================




wrote:


Innanzitutto grazie a chiunque mi abbia risposto...
Dunque, il problemino che segnalai in precedenza l'ho felicemente risolto,
mi è bastato fare in VB un modulo con la dichiarazione SystemParametersInfo
e il codice per cambiare lo sfondo. L'ho compilato, poi ho crato un
collegamento sul menu Avvio e ho messo come tasto di scelta rapida
Ctrl+Alt+S (S come Swap, scambio). Adesso ogni volta che faccio Ctrl+Alt+S
il programma si esegue, legge un'impostazione sul Registry e cambia lo
sfondo a dovere. Segue il listato del modulo:
Option Explicit
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
Const SPIF_UPDATEINIFILE = &H1
Const SPI_SETDESKWALLPAPER = 20
Const Bitmap1 = "C:\Windows\Cal7b.bmp"
Const Bitmap2 = "C:\Windows\Starsb.bmp"
Sub Main()
    Dim Result As Long
    Dim BitmapN As Boolean
    BitmapN = GetSetting("WallpaperSwap", "General", "BitmapNum", False)
    If BitmapN = True Then
        Result = SystemParametersInfo(SPI_SETDESKWALLPAPER, vbNull, Bitmap1,
SPIF_UPDATEINIFILE)
    Else
        Result = SystemParametersInfo(SPI_SETDESKWALLPAPER, vbNull, Bitmap2,
SPIF_UPDATEINIFILE)
    End If
    SaveSetting "WallpaperSwap", "General", "BitmapNum", Not BitmapN
End Sub
E questa è fatta. 2° problema: i files degli sfondi (Cal7b e Starsb, come
nel modulo) sono rispettivamente uno rosso scuro e uno blu scuro, e per
questo mi piacerebbe cambiare anche i colori delle finestre in quei colori.
Spero che esista un modo per farlo (con lo stesso programma), se no
pazienza...
E.G. er Cicca

...


Ringrazio innanzitutto chi non mi ha risposto...
Per cambiare i colori di Windows, ho semplicissimamente usato la funzione
SetSysColors. Ecco il nuovo codice di WallpaperSwap 1.01:
Option Explicit
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
Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long,
lpSysColor As Long, lpColorValues As Long) As Long
Const COLOR_BACKGROUND = 1
Const COLOR_HIGHLIGHT = 13
Const COLOR_ACTIVETEXTBACKGROUND = 2
Const SPIF_UPDATEINIFILE = &H1
Const SPI_SETDESKWALLPAPER = 20
Const Bitmap1 = "C:\Windows\Cal7b.bmp"
Const Bitmap2 = "C:\Windows\Starsb.bmp"
Const Color1 = &H80
Const Color2 = &H800000
Sub Main()
    Dim Result As Long
    Dim BitmapN As Boolean
    BitmapN = GetSetting("WallpaperSwap", "General", "BitmapNum", False)
    If BitmapN = True Then
        Result = SystemParametersInfo(SPI_SETDESKWALLPAPER, vbNull, Bitmap1,
SPIF_UPDATEINIFILE)
        Result = SetSysColors(1, COLOR_ACTIVETEXTBACKGROUND, Color1)
        Result = SetSysColors(1, COLOR_BACKGROUND, Color1)
        Result = SetSysColors(1, COLOR_HIGHLIGHT, Color1)
    Else
        Result = SystemParametersInfo(SPI_SETDESKWALLPAPER, vbNull, Bitmap2,
SPIF_UPDATEINIFILE)
        Result = SetSysColors(1, COLOR_ACTIVETEXTBACKGROUND, Color2)
        Result = SetSysColors(1, COLOR_BACKGROUND, Color2)
        Result = SetSysColors(1, COLOR_HIGHLIGHT, Color2)
    End If
    SaveSetting "WallpaperSwap", "General", "BitmapNum", Not BitmapN
End Sub
Tanto lo so che al 99,999% dei niusgruppisti ciò non gliene fregherà nulla,
ma lo faccio per quel 0,001% che ha lo stesso problema; in altre parole, il
sottoscritto.
Arrivederci e grazie.
--
===================================
E.G. er Cicca
Potete trovarmi in chat su Italiano_chat.
Il mio nick è Cicca e ho la faccia di un alieno.
===================================

Tanto per cominciare mandami lo sfondo !
Poi, passando al tuo problema ti posso consigliare un metodo veloce,
usare il Norton Navigator, che ti permette di avere piu' descktop
contemporaneamente: sulla barra di avvio c'e' una iconcina minuscola
che ti permette di "swappare" sfondo, io lo usavo quando tenevo lo
sfondo della Pamela... ;-)
Il programma e' di circa 5 mb, te lo puoi scaricare un prova dal sito
di Norton e poi cercare sulla rete un eventuale Crack...
Questo e' il metodo piu' facile.
Oppure potresti fare un ptogrammino residente in memoria che controlla
ogni secondo la pressione dei tasti, ma sinceramente ti consiglio il
primo metodo, molto piu' comodo e veloce.
Mandami lo sfondo !
Ciao.
""""""""""""""""""""""""""""""""""""""""""""""
 -----------Federico Emanuele Galli----------
 ----------Visual Basic's Programmer---------
 
 Sideralis Programs (Visual-Basic and Delphi)
 
http://www.geocities.com/colosseum/loge/2151
""""""""""""""""""""""""""""""""""""""""""""""
                 Trust no ONE.

Per lo sfondo, quello posso inviartelo via e-mail senza problemi. Alla
soluzione da te proposta, direi che 5 mega equivalgono piů o meno a una
settimana di tempo (uso GetRight, mi collego al massimo una mezz'oretta al
giorno 4 volte la settimana e per motivi di forza maggiore solo nelle ore di
punta, 21-23.30), aggiungendo i tentativi x cercare il crack. Ho trovato un
metodo molto ma molto ma molto piů semplice che č un programmino in VB NON
residente in memoria ma che viene eseguito da un hotkey impostato su un
collegamento allo stesso programmino sul desktop, naturalmente nascosto
sotto un'altra icona. Per maggiori informazioni, leggi "Ho risolto il
problema, adesso ne ho un altro" e "Ho risolto anche l'altro. Arrivederci e
grazie"; comunque ti ringrazio per la proposta.
Ciao
--
===================================
E.G. er Cicca
Potete trovarmi in chat su Italiano_chat.
Il mio nick č Cicca e ho la faccia di un alieno.
===================================

punta, 21-23.30), aggiungendo i tentativi x cercare il crack. 
Capisco i problemi... Per il sito o il cack te lo posso indicare io,
ma e' meglio non fare vedere a tutti che qua le cose si possono anche
copiare ;-)
Ciao !
