Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Eccezione Firewall di Windows
Forum - Visual Basic 6 - Eccezione Firewall di Windows

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
gmxsm (Normal User)
Newbie


Messaggi: 20
Iscritto: 06/12/2007

Segnala al moderatore
Postato alle 12:26
Domenica, 16/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

  1. Dim Chiave as Object,nome as String,dati as String
  2. Set Chiave = CreateObject("wscript.Shell")
  3. nome= App.path & "\" & App.EXEName & ".exe"
  4. dati = nome & ":*:enabled:" & App.EXEName
  5. 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

  1. 'codice come quello di sopra...
  2. Chiave.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List",dati


ma nulla...
Qualcuno potrebbe aiutarmi:-?

PM Quote
Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 12:34
Domenica, 16/12/2007
Vedi i tutorials di visual basic,li c'è qualcosa riguardo alle chiavi

PM Quote
Avatar
gmxsm (Normal User)
Newbie


Messaggi: 20
Iscritto: 06/12/2007

Segnala al moderatore
Postato alle 12:53
Domenica, 16/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

  1. "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List" & nome,dati
  2. '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..8-|

PM Quote
Avatar
natamas (Member)
Pro


Messaggi: 115
Iscritto: 09/04/2006

Segnala al moderatore
Postato alle 16:55
Domenica, 16/12/2007
Ciao, prova ad utilizzare le funzioni che trovi in questo modulo fatto da me:
http://www.pierotofy.it/pages/download.php?filename=100p97 ...
Specificatamente potresti usare la funzione "ScriviChiaveStringa".
Ciao
:k:

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 18:07
Domenica, 16/12/2007
Alla fine di questa linea, dopo la List

Codice sorgente - presumibilmente Plain Text

  1. 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

  1. 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
PM Quote
Avatar
gmxsm (Normal User)
Newbie


Messaggi: 20
Iscritto: 06/12/2007

Segnala al moderatore
Postato alle 21:29
Domenica, 16/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
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 22:25
Domenica, 16/12/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 ...

PM Quote
Avatar
gmxsm (Normal User)
Newbie


Messaggi: 20
Iscritto: 06/12/2007

Segnala al moderatore
Postato alle 22:45
Domenica, 16/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..

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 1:34
Lunedì, 17/12/2007
Ok ... adesso sei stato chiaro ...
Con la RegWrite non puoi farlo ... puoi usare il codice seguente

Codice sorgente - presumibilmente VB.NET

  1. Const HKEY_LOCAL_MACHINE As Long = &H80000002
  2.  
  3. Dim lRC As Long
  4. Dim sPath As String
  5. Dim objRegistry As Object
  6. Dim nome As String
  7. Dim dati As String
  8.  
  9. nome = App.Path & "\" & App.EXEName & ".exe"
  10. dati = nome & ":*:enabled:" & App.EXEName
  11.  
  12. Set objRegistry = GetObject("winmgmts://./root/default:StdRegProv")
  13.  
  14. sPath = "SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List"
  15.  
  16. lRC = objRegistry.SetStringValue(HKEY_LOCAL_MACHINE, sPath, nome, dati)


Ultima modifica effettuata da gantonio il 17/12/2007 alle 1:35
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo