AddIPAdress keine änderung



  • Hab mir das ganze jetzt nochmal angesehen...
    Problem :

    Nach XP soll man Get_Adapter_Addresses nutzen. Hab jetzt alle Strukturen mal durchgesehen... aber auf die "benötigte" P_ADAPTER_INFO[] komme ich nicht.



  • XP?
    Get_Adapter_Addresses?
    Huch?



  • Also man soll für Windows 7 GetAdapterAdresses nutzen... Jetzt bin ich wieder genausoweit, weil ich auch in den weiterführenden Strukturen bis jetzt noch keinen NTEContext



  • GetPerAdapterInfo Liefert scheinbar auch den Contex und es steht auch nichts ersichtlich dabei, dies in Win 7 bzw. nach XP nicht zu nutzen. Ich versuch mein Glück mal damit 🙂



  • Ich glaub ich gebe auf. Da steht entweder nichts oder nur Muell drinnen.

    C# kann ich leider nicht. Aber ich glaub ich fange an das zu lernen.
    Sind solche aufgaben mit C# und .Net "leichter" zu loesen ?



  • Das ist über WMI relativ einfach zu machen.
    Und WMI ist mit VB und C# sehr einfach zu verwenden.

    Du kannst WMI auch in einem C++ Programm verwenden, aber in der Zeit die du brauchst bis du dir zusammengesucht und -probiert hast wie das funktioniert...
    ...kannst du vermutlich schon ausreichend gut C# lernen um so einfache Dinge zu programmieren.

    Siehe z.B. http://stackoverflow.com/questions/209779/how-can-you-change-network-settings-ip-address-dns-wins-host-name-with-code



  • Werd nächste Woche mal mit nem guten C# Buch anfangen. Das mit der WinApi naja, also da muss man wohl dafür gemacht sein.

    Ich hab´s jetzt noch hinbekommen, jedoch bleibt jetzt die Gatewayaddresse stehen. Das hältst doch im Kopf nicht aus.

    Bzgl. netsh.exe . Gibt es da noch alternative als den Befehl über "System(do_sth)" rauszuhauen ?



  • Klar.
    Du kannst direkt mit CreateProcess einen Prozess starten.
    Du kannst u.u. ShellExecuteEx verwenden.
    Und natürlich kannst du ein temporäres Batchfile erzeugen, und dann cmd.exe über system / CreateProcess / ShellExecuteEx rausstarten um dieses auszuführen.

    Wenn du allerdings den Output des Programms in dein eigenes Programm umleiten willst statt ein Commandline-Fenster anzeigen zu lassen, dann wird's wieder richtig viel Arbeit und richtig viel Code. Wohingegen es in C# 3 Zeilen sind. Weil die .NET Framework-Klasse "Process" dir den ganzen aufwendigen und haarigen Code abnimmt.

    Alternativ könntest du noch ein VB-Script bzw. Javascript File bauen und dieses über wscript.exe ausführen lassen.
    Darin könntest du dann wieder relativ einfach WMI verwenden.



  • Alternativ könntest du noch ein VB-Script bzw. Javascript File bauen und dieses über wscript.exe ausführen lassen.

    Das hört sich gar nicht schlecht an. Ich muss dann aber wscipt.exe über ShellExecute starten und mit Parametern, bzw. dem Script versorgen, oder hab ich das jetzt falsch verstanden ?

    Auf jeden Fall nochmal vielen Dank für die Hilfe, hab mir jetzt mal die Bücher : "C# in a Nutshell " und "Visual C#2012 - Grundlagen und Profiwissen" besorgt. Denke damit sollte ich relativ gut versorgt sein ?





  • 👍 Danke, werd ich mir noch genauer ansehen.



  • api_prob schrieb:

    Alternativ könntest du noch ein VB-Script bzw. Javascript File bauen und dieses über wscript.exe ausführen lassen.

    Das hört sich gar nicht schlecht an. Ich muss dann aber wscipt.exe über ShellExecute starten und mit Parametern, bzw. dem Script versorgen, oder hab ich das jetzt falsch verstanden ?

    Starten kannst du die ganze Show auch über CreateProcess.
    Und was die Parameter angeht ... dein C++ Programm kann ja ein Temp-File generieren, wo alle nötigen Einstellungen schon drinnen sind, und das dann ausführen lassen.

    Die nötigen Parameter die du an wscript.exe übergeben musst sind dann nur der Pfad zu dem Temp-File und evtl. noch die Info welche Sprache es verwendet (VB-Script oder Javascript).

    api_prob schrieb:

    Auf jeden Fall nochmal vielen Dank für die Hilfe, hab mir jetzt mal die Bücher : "C# in a Nutshell " und "Visual C#2012 - Grundlagen und Profiwissen" besorgt. Denke damit sollte ich relativ gut versorgt sein ?

    OK, Bücher sind gut. Wobei ich C# wirklich einfach zu lernen fand. Gab dann natürlich ein paar "aha!s" später, aber sowas doch eher einfaches ist in C# ... eher einfach hinzubekommen 🙂
    Gibt viel Beispielcode im Netz und Stackoverflow etc. ist voll von Antworten auf alle nur denkbaren Fragen. Fast. Aber genug dass kaum wirklich schwierige Probleme übrigbleiben.



  • Ich hab sowas ähnliches mal programmiert um es für uns schneller zu machen unsere Service-Laptos von DHCP (Firmenetzwerk) auf definierte Statische IPs um zustellen um Feldgeräte beim Kunden per Webinterface zu progammieren. Also per API war mir das zu schwierig, da hab ich einfach ne GUI für netsh.exe programmiert. Die Besonderheit ist eben unter XP benötigt das Proggy keine Adminrechte unter Vista aufwärts schon, liegt halt am OS. Ansonste um die Befehlsfolge auszutesten die mit netsh.exe notwendig ist, das Ganze mit ner Batchdatei erst ausprobieren, dann die Befehle in die GUI einbauen. Hab dann das Proggy mit speicherbaren Settings ausgestattet, hat soweit super funktioniert.
    Ist halt die Spar-Lösung für den kleinen Mann der's nicht besser kann 🙂


Anmelden zum Antworten