
104596
27.02.2012
Wie kann man ein C Sharp Programm als Windows Dienst umschreiben?
Hallo,
ich möchte nun endlich zum Abschluss meines Projekts kommen und muss nur noch mein C# Programm, beim Ein- oder Ausstecken des Lankabels die Wlankarte im Gerätemanager de- oder aktiviert, mit Visual Studio als Windows Dienst umschreiben.
Der Quelltext des Programms sieht so aus:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.NetworkInformation;
using System.Management;
namespace Examples.Net.AddressChanges
{
public class NetworkingExample
{
public static void Main()
{
NetworkChange.NetworkAddressChanged += new
NetworkAddressChangedEventHandler(AddressChangedCallback);
Console.WriteLine("Listening for address changes. Press any key to exit.");
Console.ReadLine();
}
static void AddressChangedCallback(object sender, EventArgs e)
{
NetworkInterface adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach(NetworkInterface n in adapters)
{
if (n.Name == ("Local Area Connection"))
{
if (n.Speed == 0)
{
Console.WriteLine("Enable");
enable WLAN
Wireless Network Connection
WlanAction1();
}
else
{
Console.WriteLine("Disable");
Disable WLAN
WlanAction();
}
}
}
}
function Disable Wlan
public static void WlanAction()
{
Console.WriteLine("Disable Function");
SelectQuery wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter");
WHERE Name = 'Wireless Network Connection'"
ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(wmiQuery);
foreach (ManagementObject item in searchProcedure.Get())
{
if (((string)item["NetConnectionID"]) == "Wireless Network Connection")
NEtConnection Status = 2 for Active, 7 for LAN not connected
{
item.InvokeMethod("disable",null);
item.Put();
Console.WriteLine(item["name"]);
}
}
}
function Enable Wlan
public static void WlanAction1()
{
SelectQuery wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter");
ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(wmiQuery);
foreach (ManagementObject item in searchProcedure.Get())
{
if (((string)item["NetConnectionID"]) == "Wireless Network Connection")
{
item.InvokeMethod("Enable", null);
}
}
}
}
}
...und das hier ist die Blankoform des Windowsdienstes:
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Net;
using System.Net.NetworkInformation;
using System.Management;
namespace Testdienst
{
static class Program
{
/ <summary>
/ Der Haupteinstiegspunkt für die Anwendung.
/ </summary>
static void Main()
{
ServiceBase ServicesToRun;
ServicesToRun = new ServiceBase
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
}
}
Ich habe den Quelltext schon an alle möglichen Stellen eingefügt, aber es zeigt mir immer noch Programmteile als fehlerhaft an.
Hoffe jemand von euch kann mir helfen.
Danke und Gruß,
alcapone991
ich möchte nun endlich zum Abschluss meines Projekts kommen und muss nur noch mein C# Programm, beim Ein- oder Ausstecken des Lankabels die Wlankarte im Gerätemanager de- oder aktiviert, mit Visual Studio als Windows Dienst umschreiben.
Der Quelltext des Programms sieht so aus:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.NetworkInformation;
using System.Management;
namespace Examples.Net.AddressChanges
{
public class NetworkingExample
{
public static void Main()
{
NetworkChange.NetworkAddressChanged += new
NetworkAddressChangedEventHandler(AddressChangedCallback);
Console.WriteLine("Listening for address changes. Press any key to exit.");
Console.ReadLine();
}
static void AddressChangedCallback(object sender, EventArgs e)
{
NetworkInterface adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach(NetworkInterface n in adapters)
{
if (n.Name == ("Local Area Connection"))
{
if (n.Speed == 0)
{
Console.WriteLine("Enable");
enable WLAN
Wireless Network Connection
WlanAction1();
}
else
{
Console.WriteLine("Disable");
Disable WLAN
WlanAction();
}
}
}
}
function Disable Wlan
public static void WlanAction()
{
Console.WriteLine("Disable Function");
SelectQuery wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter");
WHERE Name = 'Wireless Network Connection'"
ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(wmiQuery);
foreach (ManagementObject item in searchProcedure.Get())
{
if (((string)item["NetConnectionID"]) == "Wireless Network Connection")
NEtConnection Status = 2 for Active, 7 for LAN not connected
{
item.InvokeMethod("disable",null);
item.Put();
Console.WriteLine(item["name"]);
}
}
}
function Enable Wlan
public static void WlanAction1()
{
SelectQuery wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter");
ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(wmiQuery);
foreach (ManagementObject item in searchProcedure.Get())
{
if (((string)item["NetConnectionID"]) == "Wireless Network Connection")
{
item.InvokeMethod("Enable", null);
}
}
}
}
}
...und das hier ist die Blankoform des Windowsdienstes:
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Net;
using System.Net.NetworkInformation;
using System.Management;
namespace Testdienst
{
static class Program
{
/ <summary>
/ Der Haupteinstiegspunkt für die Anwendung.
/ </summary>
static void Main()
{
ServiceBase ServicesToRun;
ServicesToRun = new ServiceBase
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
}
}
Ich habe den Quelltext schon an alle möglichen Stellen eingefügt, aber es zeigt mir immer noch Programmteile als fehlerhaft an.
Hoffe jemand von euch kann mir helfen.
Danke und Gruß,
alcapone991
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 181099
Url: https://administrator.de/forum/wie-kann-man-ein-c-sharp-programm-als-windows-dienst-umschreiben-181099.html
Ausgedruckt am: 23.05.2025 um 14:05 Uhr
3 Kommentare
Neuester Kommentar
Moin,
die Forumformatierungsmöglichkeiten sind dir bekannt für Quellcode?!
Schau dir diese Anleitung an.
Grüße,
Dani
die Forumformatierungsmöglichkeiten sind dir bekannt für Quellcode?!
Schau dir diese Anleitung an.
Grüße,
Dani
Moin,
schonmal mit einer Suche bei Google probiert?
Der erste Treffer: http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.80).aspx
/EDIT
Hat in einem Dienst nichts zu suchen. Da wirds reines copy&paste nicht tun 
lg,
Slainte
schonmal mit einer Suche bei Google probiert?
Der erste Treffer: http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.80).aspx
/EDIT
Console.WriteLine [...]
Console.ReadLine [...]
lg,
Slainte