Gå til innhold

Legge til Windos Firewall Exception


Anbefalte innlegg

Hei!

 

Jeg jobber for tiden med et program som skal sende store filer til mange maskiner synkront. I dette programmet tenkte jeg legge til at den legger seg selv til som en windows firewall exception (spør brukeren først selvsagt)

 

Problemet er at ingenting skjer! er det noe jeg har gjort feil?

 

Jeg fulgte mer eller mindre denne guiden:

 

http://www.milkcarton.com/blog/2007/10/08/...Exceptions.aspx

 

Men jeg bruker FirewallAPI.dll og ikke den som er nevnt i tråden (fant ikke dll filen det var snakk om)

 

Jeg bruker Windows Vista 64

 

Klikk for å se/fjerne innholdet nedenfor
static void AddFirewallException()
{

NetFwTypeLib.INetFwMgr mgr = Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr") ) as NetFwTypeLib.INetFwMgr;

if ( mgr.LocalPolicy.CurrentProfile.FirewallEnabled && !mgr.LocalPolicy.CurrentProfile.ExceptionsNotAllowed )
{
	object allowed;
	object restriced;

	mgr.IsPortAllowed( Application.ExecutablePath, NetFwTypeLib.NET_FW_IP_VERSION_.NET_FW_IP_VERSION_ANY, Port, null, NetFwTypeLib.NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP, out allowed, out restriced );

	if ( !(bool)allowed || (bool)restriced )
	{
		if ( MessageBox.Show( "This program is blocked by your windows firewall, would you like to add an exception?", "Windows Firewall", MessageBoxButtons.YesNo, MessageBoxIcon.Question ) == DialogResult.Yes )
		{
			NetFwTypeLib.INetFwAuthorizedApplication auth;
			auth = Activator.CreateInstance( Type.GetTypeFromProgID( "HNetCfg.FwAuthorizedApplication" ), false ) as NetFwTypeLib.INetFwAuthorizedApplication;
			auth.ProcessImageFileName = Application.ExecutablePath;
			auth.Name = Application.ProductName;
			//auth.IpVersion = NetFwTypeLib.NET_FW_IP_VERSION_.NET_FW_IP_VERSION_ANY; // Not valid in Windows Vista
			auth.RemoteAddresses = null;
			auth.Scope = NetFwTypeLib.NET_FW_SCOPE_.NET_FW_SCOPE_ALL;
			auth.Enabled = true;
			mgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add( auth );

		}
	}
}
}

 

Jeg mistenker at jeg bruker feil ProgID men ærlig talt aner jeg ikke hvordan jeg kan finne ut de forskjellige progid-ene.

 

Det funker helt opp til mgr.LocalPolicy.CurrentProfile.AutorizedApplications.Add

Da skjer det absolutt ingenting, ingen feilmelding eller noe.

 

Har noen vært borti dette før?

Endret av GeirGrusom
Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...