gmxsm (Normal User)
Newbie
Messaggi: 20
Iscritto: 06/12/2007
|
Salve a tutti,
avrei la necessità di creare un eccezione per la mia applicazione che usa winsock su una determinata porta .
Ho letto in giro che la chiave di registro dove il Firewall di Windows inserisce tali eccezioni è:
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List"
Quindi avevo provato ad usare questo codice:
Codice sorgente - presumibilmente VB.NET |
Dim Chiave as Object,nome as String,dati as String Set Chiave = CreateObject("wscript.Shell") nome= App.path & "\" & App.EXEName & ".exe" dati = nome & ":*:enabled:" & App.EXEName Chiave.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List" & App.ExeName,dati
|
Purtroppo non funziona, nel senso che mi crea una chiave all'interno di un altra sottochiave..
Ho provato anche :
Codice sorgente - presumibilmente Plain Text |
'codice come quello di sopra...
Chiave.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List",dati
|
ma nulla...
Qualcuno potrebbe aiutarmi |
|
gius (Ex-Member)
Expert
Messaggi: 294
Iscritto: 20/06/2007
|
Vedi i tutorials di visual basic,li c'è qualcosa riguardo alle chiavi
|
|
gmxsm (Normal User)
Newbie
Messaggi: 20
Iscritto: 06/12/2007
|
Ciao Gius,
avevo gia letto questo tutorial:
http://www.pierotofy.it/pages/guide_tutorials/Visual_Basic ...
Il problema è che dal regedit ho visto che il Firewall inserisce come dati:
nome= percorso completo dell'applicazione
dati= percorso completo dell'aplicazione + ":*:Enabled:" + il nome dell'applicazione
nel momento in cui inserisco:
Codice sorgente - presumibilmente Plain Text |
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List" & nome,dati
'nome= App.path & "\" & App.EXEName & ".exe"
|
Mi crea una sottochiave del tipo:
C:
|_Programmi
|_AppMia
e non inserisce invece il tutto nella chiave "List"
Non so se sono riuscito a spiegarmi..
|
|
natamas (Member)
Pro
Messaggi: 115
Iscritto: 09/04/2006
|
|
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Alla fine di questa linea, dopo la List
Codice sorgente - presumibilmente Plain Text |
Chiave.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List" & App.ExeName,dati
|
devi aggiungere la barra di separazione ... deve essere
Codice sorgente - presumibilmente Plain Text |
Chiave.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List\" & App.ExeName,dati
|
Ultima modifica effettuata da gantonio il 16/12/2007 alle 18:08 |
|
gmxsm (Normal User)
Newbie
Messaggi: 20
Iscritto: 06/12/2007
|
Grazie natamas, proverò presto la funzione del tuo modulo
gantonio, ho provato con la barra di separazione ma compare sempre il firewall a chiedermi di sbloccare l'applicazione..
Come puoi vedere sia sul regedit, sia qui:
http://www.fastserviceinformatica.it/enable-firewall-rules ...
come nome la chiave dovrebbe prendere non solo il nome dell'applicazione, ma tutto il percorso..
quindi, nel momento in cui metto il percorso dopo "List\", mi crea una sottochiave, e non la chiave con nome il percorso..
Come faccio ad inserire come nome della chiave il percorso?
[edit] natamas ho provato con il tuo modulo e funziona perfettamente..Solo che vorrei sapere se lo stesso si può fare con regwrite (mi sembra strano che non si possa creare una chiave con nome "c:\programmi\...\app.exe")
Ultima modifica effettuata da gmxsm il 16/12/2007 alle 22:17 |
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Dovresti spiegarti meglio perche' non ho capito quale sia il problema ...
Aggiungendo quella barra \ dopo List, riesci a scrivere nel registro ma non posso sapere se quello che scrivi e' corretto.
Se vuoi ulteriori chiarimenti dimmi ESATTAMENTE cosa viene scritto nel registro usando la barra dopo la List ...
|
|
gmxsm (Normal User)
Newbie
Messaggi: 20
Iscritto: 06/12/2007
|
Allora,
la chiave dovrebbe essere esattamente questa:
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List\C:\Programmi\MiaApp\App.exe"
Naturalmente cos' scrivendo mi crea le sottochiavi:
|_List
|_C:
|_Programmi
|_MiaApp -> App.exe
Mentre dovrebbe essere invece tutto nella chiave List:
|_List -> C:\Programmi\MiaApp\App.exe
Non so se sono riuscito a spegarmi..
|
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Ok ... adesso sei stato chiaro ...
Con la RegWrite non puoi farlo ... puoi usare il codice seguente
Codice sorgente - presumibilmente VB.NET |
Const HKEY_LOCAL_MACHINE As Long = &H80000002 Dim lRC As Long Dim sPath As String Dim objRegistry As Object Dim nome As String Dim dati As String nome = App.Path & "\" & App.EXEName & ".exe" dati = nome & ":*:enabled:" & App.EXEName Set objRegistry = GetObject("winmgmts://./root/default:StdRegProv") sPath = "SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List" lRC = objRegistry.SetStringValue(HKEY_LOCAL_MACHINE, sPath, nome, dati)
|
Ultima modifica effettuata da gantonio il 17/12/2007 alle 1:35 |
|