|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2005
Città: Milano
Messaggi: 176
|
[VBS] non so una dannata cicca ma non dovrebbe essere difficile per voi :D
dato che a quanto pare non esiste un programma che nasconda e mostri le icone sul desktop con una command-lineho trovato in giro per internet questo vbs ...... io non so una cicca di programmazione quindi chiedo qui a voi .... c'è il modo di disabilitare le finestre di consenso ? vorrei semplicemente che lo script venisse eseguito una volta lanciato senza bisogno delle conferme.....
Codice:
'Enable or Disable Desktop Icons
Message = "To work correctly, the script will close" & vbCR
Message = Message & "and restart the Windows Explorer shell." & vbCR
Message = Message & "This will not harm your system." & vbCR & vbCR
Message = Message & "Continue?"
X = MsgBox(Message, vbYesNo, "Notice")
If X = 6 Then
On Error Resume Next
Dim WSHShell, n, MyBox, p, t, errnum, vers
Dim itemtype
Dim enab, disab, jobfunc
Set WSHShell = WScript.CreateObject("WScript.Shell")
p = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDesktop"
itemtype = "REG_DWORD"
enab = "ENABLED"
disab = "DISABLED"
jobfunc = "Desktop Icons are now "
t = "Confirmation"
Err.Clear
n = WSHShell.RegRead (p)
errnum = Err.Number
if errnum <> 0 then
WSHShell.RegWrite p, 0, itemtype
End If
If n = 0 Then
n = 1
WSHShell.RegWrite p, n, itemtype
Mybox = MsgBox(jobfunc & disab & vbCR, 4096, t)
ElseIf n = 1 then
n = 0
WSHShell.RegWrite p, n, itemtype
Mybox = MsgBox(jobfunc & enab & vbCR, 4096, t)
End If
Set WshShell = Nothing
On Error GoTo 0
For Each Process in GetObject("winmgmts:"). _
ExecQuery ("select * from Win32_Process where name='explorer.exe'")
Process.terminate(0)
Next
MsgBox "Finished." & vbcr & vbcr , 4096, "Done"
Else
MsgBox "No changes were made to your system." & vbcr & vbcr, 4096, "User Cancelled"
End If
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Ho fatto qualche "taglio" allo script che hai postato. Ne ho fatti 2 di script: uno per mostrare e l'altro per nascondere le icone.
MostraIcone.vbs Codice:
'-------- Mostra icone desktop --------
Dim WshShell, Name
Set WshShell = WScript.CreateObject("WScript.Shell")
Name = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDesktop"
WshShell.RegWrite Name, 0, "REG_DWORD"
For Each Process in GetObject("winmgmts:").ExecQuery("select * from Win32_Process where name='explorer.exe'")
Process.terminate(0)
Next
Codice:
'-------- Nascondi icone desktop --------
Dim WshShell, Name
Set WshShell = WScript.CreateObject("WScript.Shell")
Name = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDesktop"
WshShell.RegWrite Name, 1, "REG_DWORD"
For Each Process in GetObject("winmgmts:").ExecQuery("select * from Win32_Process where name='explorer.exe'")
Process.terminate(0)
Next
In teoria dovrebbero funzionare. Io ho cercato di provarli sul mio pc (Windows 2000) ma .... ho avuto un problema: la chiave Policies\Explorer sembra essere di sola lettura, cioè non modificabile/scrivibile. Non so (e non mi ricordo) se avevo smanettato io sul mio pc e fatto qualcosa o se c'è qualche altra policy che mi impedisce di scrivere in quella chiave. Tu prova, poi fammi sapere. Tra l'altro lo script fa in modo di "terminare" il processo di explorer, che in teoria dovrebbe ripartire, rileggendo quindi la nuova impostazione. Far "morire" explorer non mi sembra (tecnicamente) una buona cosa.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2005
Città: Milano
Messaggi: 176
|
ah guarda, sul fatto che "tecnicamente" non sia una cosa buona, mi trovi d'accordo, ma non c'è altra scelta, a quanto pare,
tra l'altro, funziona tutto a dovere, ti ringrazio infinitamente resto cmq in attesa di qlcn che magari risolve con un programmino o senza far ripartire explorer azzie mille sul serio ancora |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:50.



















