PDA

View Full Version : [C#] Settare lockscreen Windows 8 programmaticamente


waielsi
05-01-2015, 09:41
Salve a tutti,

sto lavorando su una piccola utility a linea di comando (desktop app come la chiama ora Microsoft) che tra le altre cose mi dovrebbe anche settare il lockscreen su Windows 8 su una specifica immagine.

ho cercato in rete e trovato un paio di approcci differenti ma nessuno dei due funziona come deve, spero ci sia qualcuno nel forum che sappia aiutarmi.

la prima e piu' veloce soluzione e' quella di modificare il registro di sistema e dirgli dov'e' l'immagine su cui settare il lockscreen, col codice:

myKey = Registry.LocalMachine.OpenSubKey("Software\\Policies\\Microsoft\\Windows\\Personalization", true);
if (myKey == null) {
// Key does not exist, create it
myKey = Registry.LocalMachine.CreateSubKey("Software\\Policies\\Microsoft\\Windows\\Personalization");
}

myKey.SetValue("LockScreenImage", filename, RegistryValueKind.String);
myKey.Close();


dove filename e' una variabile passata al metodo che contiene il codice di sopra e specifica il path completo (incluso nome file) del file immagine che voglio settare come lockscreen.

Il risultato e' che quando il codice e' eseguito e la chiave inserita nel registro, nei settaggi del lockscreen vedo l'immagine che ho scelto tra le varie immagini che posso selezionare ma non e' settata come immagine principale, che resta invariata su quella di default (o cmq quella che era settata inizialmente)

il secondo metodo e' piu' complesso e prevede l'utilizzo di un API (http://msdn.microsoft.com/library/windows/apps/windows.system.userprofile.lockscreen.aspx) che normalmente funziona solo su metro style applications ma non su desktop applications, ho dovuto fare un po' di magheggi per fargliela vedere (si devono referenziare alcune DLL), il risultato e' che non succede nulla. Non da errori, eccezzioni, niente di niente e non setta nulla.

spero che qualcuno possa aiutarmi.

x_Master_x
05-01-2015, 14:57
In Windows 10 TP una volta scritta la chiave e lanciato LockWorkStation per controllare vedo l'immagine corretta, senza fare altro.

waielsi
06-01-2015, 14:11
grazie per la risposta, almeno so che funziona su Windows 10 cosi' sono pronto per quando uscira'.

Purtroppo ho bisogno di risolvere ora su Windows 8 e non riesco a trovare la soluzione, ovunque guardi su internet il processo sembra essere sempre lo stesso :(