Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IP Adresse einer Lan-Verbindung ändern (https://www.delphipraxis.net/110328-ip-adresse-einer-lan-verbindung-aendern.html)

Xzeer 16. Mär 2008 16:57


IP Adresse einer Lan-Verbindung ändern
 
Hallo,

Ich möchte ein kleines Tool schreiben, was schnell und einfach die IPAdresse des Rechner im Netzwerk ändert.

Dazu möchte ich die Funktion "Shellexecute" benutzen, wie in diesem Theard auch vorgschlagen wird.

Ich verstehe jetzt nur nicht, mit welchen Paramentern ich Shellexecute aufrufen muss. Ich habe diesen Code erstellt:

Delphi-Quellcode:
ShellExecute(PChar('C:\Windows\System32\netsh interface ip set address name = "LAN-Verbindung" source = static addr = 192.168.1.28 mask = 255.255.255.0'),SW_SHOWNORMAL);
Ich bekomme aber vom Compiler die folgende Fehlermeldung:

Zitat:

Inkompatible Typen: HWND und PAnsiChar
Inkompatible Typen: Integer und PAnsiChar
Wie kann ich die IP Adresse mit Hilfe von Shellexecute ändern???

thkerkmann 16. Mär 2008 16:59

Re: IP Adresse einer Lan-Verbindung ändern
 
Hi,

wenn Du dir ShellExecute in der Hilfe anschaust, wirst Du sehen, dass ein paar mehr Parameter gefordert sind.

Gruss

Der.Kaktus 16. Mär 2008 17:01

Re: IP Adresse einer Lan-Verbindung ändern
 
Hallo,

wurde in der DP schon behandelt..schau mal hier IPaendern vielleicht hilft es ja.

Xzeer 17. Mär 2008 12:27

Re: IP Adresse einer Lan-Verbindung ändern
 
also ich möchte es über ShellExecute machen und habe in der MSDN auch schon nachgelesem welche Parameter ich brauche:

allgeimeine Syntax:

Delphi-Quellcode:
ShellExecute(HWND, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd);
Jetzt habe ich auch schon angefangen die richtigen Paramenter zu setzten, bekomme aber immer noch einen Fehler:

Delphi-Quellcode:
ShellExecute(application.Handle,'open','C:\Windows\System32\netsh', 'interface ip set address name = "LAN-Verbindung" source = static addr = 192.168.1.28 mask = 255.255.255.0', NULL, SW_SHOWNORMAL);
Vom Compiler bekomme ich folgenden Fehler:

Zitat:

Inkompatible Typen: Variant und PAnsiChar
Was muss ich denn noch ändern, damit die Funktion ausgeführt werden kann...

//EDIT:

Habs gelöst, statt "NULL" muss man einfach '' schreiben, dann gehts.....

shmia 17. Mär 2008 16:38

Re: IP Adresse einer Lan-Verbindung ändern
 
Zitat:

Zitat von Leos-Studio
Habs gelöst, statt "NULL" muss man einfach '' schreiben, dann gehts.....

Falsch, statt NULL muss man nil schreiben.
NULL ist ein vordefinierter Variant-Datentyp, während nil ein Zeiger auf die Adresse 0x00000000 ist.
Vergleich:
Code:
Delphi - nil
C/C++  - (void *)0

Xzeer 18. Mär 2008 10:36

Re: IP Adresse einer Lan-Verbindung ändern
 
stimmt :thumb: klappt auch und sieht sogar besser aus. Aber von der Funktion her ist es aber doch das selbe, also "" oder nil, oder?

Xzeer 19. Mär 2008 14:40

Re: IP Adresse einer Lan-Verbindung ändern
 
jetzt habe ich noch eine Frage:

Kann man über netsh auch die Arbeitsgruppe eines Computers ändern??? :gruebel:

TurboMartin 19. Mär 2008 15:04

Re: IP Adresse einer Lan-Verbindung ändern
 
Da gibt es soetwas das nennt sich Hilfe:

Folgendes sagte meine Windows Console als ich den Befehl netsh eingab:

Folgende Befehle sind verfügbar:

Befehle in diesem Kontext:
.. - Wechselt zu einer Kontextebene höher.
? - Zeigt eine Liste der Befehle an.
abort - Verwirft Änderungen, die im Offlinemodus vorgenommen wurden.
add - Fügt einen Konfigurationseintrag zur Liste hinzu.
advfirewall - Wechselt zum "netsh advfirewall"-Kontext.
alias - Fügt einen Alias hinzu.
bridge - Wechselt zum "netsh bridge"-Kontext.
bye - Beendet das Programm.
commit - Überträgt Änderungen, die im Offlinemodus vorgenommen wurden.
delete - Löscht einen Konfigurationseintrag aus der Liste der Einträge.
dhcpclient - Wechselt zum "netsh dhcpclient"-Kontext.
dump - Zeigt ein Konfigurationsskript an.
exec - Führt eine Skriptdatei aus.
exit - Beendet das Programm.
firewall - Wechselt zum "netsh firewall"-Kontext.
help - Zeigt eine Liste der Befehle an.
http - Wechselt zum "netsh http"-Kontext.
interface - Wechselt zum "netsh interface"-Kontext.
ipsec - Wechselt zum "netsh ipsec"-Kontext.
lan - Wechselt zum "netsh lan"-Kontext.
nap - Wechselt zum "netsh nap"-Kontext.
netio - Wechselt zum "netsh netio"-Kontext.
offline - Setzt den aktuellen Modus auf offline.
online - Setzt den aktuellen Modus auf online.
p2p - Wechselt zum "netsh p2p"-Kontext.
popd - Wechselt zum durch pushd im Stapel gespeicherten Kontext.
pushd - Überträgt den aktuellen Kontext auf den Stapel.
quit - Beendet das Programm.
ras - Wechselt zum "netsh ras"-Kontext.
rpc - Wechselt zum "netsh rpc"-Kontext.
set - Aktualisiert Konfigurationseinstellungen.
show - Zeigt Informationen an.
unalias - Löscht einen Aliasnamen.
winhttp - Wechselt zum "netsh winhttp"-Kontext.
winsock - Wechselt zum "netsh winsock"-Kontext.
wlan - Wechselt zum "netsh wlan"-Kontext.

Folgende Unterkontexte sind verfügbar:
advfirewall bridge dhcpclient firewall http interface ipsec lan nap netio p2p r
as rpc winhttp winsock wlan

Geben Sie den Befehl, gefolgt von einem Leerzeichen und ? ein, um Hilfe
bezüglich des entsprechenden Befehls zu erhalten.


Ansonsten gibt es noch einen Eintrag in Microsofts Knowledge Base

Und dann würdest Du auch sehen wenn Du googlest, veraltete Befehle verwendest :mrgreen:


[edit]Da hat ja einer seinen ganzen Text im Post verändert :evil: [/edit]

Xzeer 19. Mär 2008 15:51

Re: IP Adresse einer Lan-Verbindung ändern
 
mhhh, also ich hab mir jetzt mal so ein paar sachen mit netsh angeschaut, konnte aber nichts finden womit ich die arebitsgruppe ändern könnte. Hab ich da was übersehen?

Und Google gibt nicht besonders viel her...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz