Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmazione (https://www.hwupgrade.it/forum/forumdisplay.php?f=38)
-   -   Creazione collegamento su Windows XP.. (https://www.hwupgrade.it/forum/showthread.php?t=857852)


Gokuken 14-01-2005 18:47

Creazione collegamento su Windows XP..
 
Ciao a tutti. :)
Vi pongo subito il mio quesito:

esiste un modo per cambiare il colore del desktop di Windows XP da riga di comando anzichè da "pannello di controllo>proprietà schermo" facendo sì che il sistema scelga il colore in maniera random (cioè casualmente una volta rosso, un'altra bianco e così via..)?

Se sì, potreste scrivermi la sintassi corretta?
Lo chiedo perchè ho verificato che così facendo il sistema libera parecchia memoria ram ottimizzando l'uso del PC e pertanto vorrei realizzare un collegamento da mettere sulla barra delle applicazioni per un uso più agevole (all'occorrenza) di questo "tweak".

Un grazie in anticipo! ;)

DnA[TF] 15-01-2005 22:02

non lo so... però sicuramente ci sono una grande % di programmi che lo fanno... :D

Gokuken 16-01-2005 02:35

x Tutti
 
UP!

Gokuken 16-03-2005 17:56

x Tutti
 
Dai..non lo sa proprio nessuno? UP! :)

71104 16-03-2005 19:44

scusa non ho capito... cambiando il colore a random del desktop di xp... risparmi memoria??? be', di fronte a questa cosa non posso fare a meno di sorriere... :D
scusa, come l'hai verificato?
:sofico:

Gokuken 16-03-2005 20:04

x 71104
 
Sorridere? Beh..puoi farne a meno. ;)
Pare strano, eppure facendo questo trucchetto*, magari dopo una lunga sessione di lavoro (guardando immagini o video anche di una certa pesantezza, usando programmi e/o giochi, ecc.), "magicamente" tutto torna "fluido", dall'apertura delle normali finestre a quella delle pagine web, ecc.
Dal task manager apparentemente sembra non accadere nulla, invece le prestazioni tornano pari a quando si avvia il PC.
Io di norma uso 512 mega sdram e avevo già provato coi vari RamBooster, ecc., senza però ottenere i benfici di questa procedura (efficente come il vecchio MemTurbo v.1.0 che usavo col mio vecchio PII..mentre ora la nuova versione è uguale al RamBooster e quindi scarsa..).
Se sai qualcosa in merito scrivi pure, altrimenti lascia perdere, grazie.


*P.S.: ovviamente, se uno ha impostato un'immagine come sfondo, cambiando i colori del desktop quest'ultima non cambia.

Gokuken 17-03-2005 10:06

UP!

Gokuken 18-03-2005 02:24

UP! UP! UP!

tglman 18-03-2005 09:28

Vedi le funzione GetDesktopWindow() che ti ritorna il HWND del desktop poi usi la funzione getdc(HWND) per prenderti HDC del desktop e poi usi SelectObject(hdc,HOBJECT) per settare lo HBRUSH preso da CreateSolidBrush(RGB())

cioè: prova a fare questo
Codice:

int red=255,green=255,blue=255;
HWND desk=GetDesktopWindow();
HDC hdc=GetDC(desk);
SelectObject(hdc,CreateSolidBrush(RGB(red,green,blue)));

non so se funziona non l'ho provato con il desktop ma so che funziona con le finestre normali..
Se non l'avevi capito è visual c

Ciao..

Gokuken 18-03-2005 13:52

x tglman
 
Quote:

Originariamente inviato da tglman
Se non l'avevi capito è visual c

Ciao..
Ti ringrazio vivamente, però non ho esperienza col Visual C.
Che tu sappia non si può ottenere la stessa cosa con una sintassi da riga di comando di Windows XP?

tglman 18-03-2005 14:24

Non credo che esita un comando in grado di farlo da riga di comando...
mi sembra strano che per far liberare la ram devi cambiare continuamente il colore di sfondo, se vuoi rendere più performante il tuo pc togli tutta la grafica (secondo me anche schifosa) di stile winxp perche questa porta ad un doppio lavoro grafico del pc su ogni finestra, infatti se hai un computer molto lento con winxp sopra potrai notare che per esempio quando ridimensioni una finestra prima si ridimensiona la finestra e poi il contenuto grafico...
Ciao..

Gokuken 18-03-2005 15:52

x tglman
 
Non ho un PC lento e le differenze dopo un uso continuato delle applicazioni in fin dei conti non sono molto evidenti.
Ad ogni modo ho visto che un simile miglioramento avviene anche portando l'agp della scheda video a 1x, il che non mi darebbe fatidio se non fosse che, usando il tv-out su televisore, mi lacrimerebbero gli occhi.
Montando 1 GByte ram sparirebbe ogni problema?

DanieleC88 18-03-2005 16:15

Wow, questa cosa che hai postato sembra quasi quasi un memory leak di WinXP!! :)
Comunque, temo che ti toccherà compilare il programma da te (non è difficile, puoi anche farlo col Dev-C++ [http://www.bloodshed.net/dev], non ci metti niente).
Poi: forse montando un Gb di RAM risolveresti il problema, ma mi sembra una soluzione un po'... "brutale". Prova prima ad aumentare lo spazio di swap (anche detto di paging) utilizzato da Windows e a liberare spazio sull'HD.

kamehamehaaaaa!!!!

Gokuken 19-03-2005 10:27

x DanieleC88
 
Grazie della dritta, io cmq avevo momentaneamente risolto con un programmino molto interessante di nome "Ghost Mouse" e reperibile qui:

http://digilander.libero.it/winses/S...tml#ghostmouse

Dico momentaneamente, perchè con tale sistema viene riprodotta correttamente la sequenza di modifiche da me eseguite su schermo via mouse, a patto che la finestra di windows su cui agisco rimanga "ferma" ad ogni apertura.
Purtroppo però le finestre di per se "slittano" ogni volta vanificando il tutto.
Prima di usare Dev-C++ *, sapreste indicarmi come freezare tale fastidioso slittamento?

Grazie. :)


*P.S.: con quest'ultimo, andrebbero allora già bene le righe scritte da tglman (a patto che si modifichino i colori del desktop e non l'immagine impostata come sfondo che mi piace così com'è)?

Quote:

int red=255,green=255,blue=255;
HWND desk=GetDesktopWindow();
HDC hdc=GetDC(desk);
SelectObject(hdc,CreateSolidBrush(RGB(red,green,blue)));

DanieleC88 19-03-2005 13:46

Non saprei, non ho ben capito che intendi per "slittamento".

Comunque, il codice di tglman credo vada bene (non l'ho provato, uso Linux), ho solo due cose da ridire:
1 - Quel "HWND desk=GetDesktopWindow();" credo non ti serva a niente;
2 - Devi casualizzare la scelta del colore (il codice così com'è renderebbe il desktop sempre bianco, e a quanto pare non è quello che cerci) usando rand();

Facci sapere. Bye!


Tutti gli orari sono GMT +1. Ora sono le: 18:08.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.