LAN oder WLAN aktiv

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: LAN oder WLAN aktiv

Re: LAN oder WLAN aktiv

by garry » 30 Jun 2020, 14:19

LAN oder WLAN , ein einfaches GUI , fragt nur nach a_ipaddress1 , evtl gilt nur für mein PC
wenn nichts angezeigt wird > kein Internet
Wäre dieses Beispiel ok ?
siehe :

Code: Select all

run, %ComSpec% /k ipconfig

Code: Select all

;- WLAN or LAN 
;- run, %comspec% /k Netsh wlan show networks mode=bssid  ;- zeigt alle WLAN's an
;run, %ComSpec% /k ipconfig
;msgbox,%a_ipaddress1%   ;- << IPv4-Adresse

#warn
#NoEnv
SetWorkingDir, %A_ScriptDir%
wa:=A_screenwidth,ha:=A_screenHeight,xx:=100
Gui,2:  -DPIScale
c1=D4D0C8                                                   ;- gray normal msgbox
Gui,2: Color, Black,%c1%                                    ;- Gui color / background from Edit
Gui,2: Font,cYellow s14 ,Lucida Console                     ;- font , font-size and color
;----------------
x:=(wa*1)/xx,y1:=(ha*2)/xx,y2:=(ha*5)/xx
gui,2: add, text,  x%x%  y%y1%         , LAN    =
gui,2: add, text,  x%x%  y%y2%         , WLAN   =
;----------------
x:=(wa*6)/xx,w:=(wa*8)/xx,h:=(ha*2.6)/xx
gui,2: add, edit,  x%x% y%y1%  h%h% w%w% vLAN  readonly right , 
gui,2: add, edit,  x%x% y%y2%  h%h% w%w% vWLAN readonly right , 
;----------------
x:=(wa*7)/xx,y:=(ha*1)/xx,w:=(wa*17)/xx,h:=(ha*17)/xx
gui,2: show ,x%x% y%y% w%w% h%h%,LAN or WLAN IPv4-Address
;----------------
Gui,2: add,text,x0 y0 h0 w0 vT1
GuiControl,2:Focus,T1
settimer,aas,1000
return
;------------------------
2Guiclose:
exitapp
;------------------------
Aas:
acx:=a_ipaddress1
GuiControl,2:,LAN
GuiControl,2:,WLAN
if (acx="192.168.1.113")
  GuiControl,2:,LAN,%acx%
if (acx="192.168.1.114")
  GuiControl,2:,WLAN,%acx%
return
;==========================================

Re: LAN oder WLAN aktiv

by haichen » 30 Jun 2020, 04:00

Ah ja. Mit den WMI-Abfragen bekomme ich dank dem "WMI Code Creator" so etwa hin, was ich haben will. Die API-Abfragen verstehe ich leider noch nicht so gut.
Viele Dank für deine Antwort.

Re: LAN oder WLAN aktiv

by jNizM » 30 Jun 2020, 03:39

WMI-Vorteil: Beinhaltet von Hause aus schon viele Informationen, die leicht(er) zu bekommen sind, ohne unnötig viele WinAPI's direkt abzufragen oder sich überhaupt mit der API (DllCall's usw.) zu befassen.
WMI-Nachteil: Es ist im Vergleich zur direkten WinAPI-Abfrage sehr langsam und verbraucht mehr Ressourcen (CPU / RAM)

Re: LAN oder WLAN aktiv

by garry » 30 Jun 2020, 03:19

danke für die scripts , sehr viel Informationen
hier nur kurze Uebersicht ob mit LAN oder WLAN verbunden ( z.B. bei meinem Computer Abfrage a_ipaddress1 ) :
Bemerkung : habe normal LAN , schalte WLAN ein sind kurzzeitig beide verbunden , danach Verbindung via WLAN

Code: Select all

;- run, %comspec% /k Netsh wlan show networks mode=bssid  ;- zeigt alle WLAN's an
run, %ComSpec% /k ipconfig
msgbox,%a_ipaddress1%   ;- << IPv4-Adresse
exitapp
;---------------------------------------------------------------------------
/*
Ethernet-Adapter Ethernet:
   ------------------------ wenn  getrennt : -------------------------------
   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix: home
   ------------------------ nicht getrennt : -------------------------------
   IPv4-Adresse  . . . . . . . . . . : 192.168.1.113
   =========================================================================


Drahtlos-LAN-Adapter WLAN:
   ------------------------ wenn  getrennt : -------------------------------
   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix: home
   ------------------------ nicht getrennt : -------------------------------
   IPv4-Adresse  . . . . . . . . . . : 192.168.1.114
   =========================================================================
*/

Re: LAN oder WLAN aktiv

by haichen » 30 Jun 2020, 03:14

Kannst du mir erklären warum die WMI-Abfrage nicht so "schön" ist? Ist sie zu langsam?

Re: LAN oder WLAN aktiv

by jNizM » 30 Jun 2020, 02:46

Könnte gut möglich sein haichen ;D
Aber ich würde WinAPI der WMI-Abfrage beforzugen (https://www.autohotkey.com/boards/viewtopic.php?f=6&t=71627)

Re: LAN oder WLAN aktiv

by haichen » 30 Jun 2020, 02:14

Der ursprüngliche Code ist vermutlich von jNizM und ich habe es durch ausprobieren nur wenig abgewandelt (so meine Erinnerung):

Code: Select all

MsgBox, % "GW " getGateway() "`nIP " getIP()

return

	getGateway(){
		objWMIService := ComObjGet("winmgmts:\\.\root\cimv2")
		colItems := objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")._NewEnum
		while colItems[objItem]
			loop,4
				if (objItem.IPAddress[0] == A_IPAddress%a_index%) and !(objItem.DefaultIPGateway[0] = 0)
					return objItem.DefaultIPGateway[0]
		return
	}
	
	getIP(){
		objWMIService := ComObjGet("winmgmts:\\.\root\cimv2")
		colItems := objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")._NewEnum
		while colItems[objItem]
			loop,4
				if (objItem.IPAddress[0] == A_IPAddress%a_index%) and !(objItem.DefaultIPGateway[0] = 0)
					return A_IPAddress%a_index%
		return
	}
   

Re: LAN oder WLAN aktiv

by PIcard_1983 » 30 Jun 2020, 01:51

Vielen Dank für die Hinweise. Ich denke, damit komme ich klar. DANKE!!!

Re: LAN oder WLAN aktiv

by garry » 29 Jun 2020, 15:07

@gregster , sorry, danke , hatte was gebastelt ... habe script oben geändert

Code: Select all

run, %ComSpec% /k ipconfig

Re: LAN oder WLAN aktiv

by gregster » 29 Jun 2020, 14:48

garry, in deiner Codebox oben scheint was zu fehlen (und unterscheidet sich zum Code im Topic), mindestens in der run-Zeile (run, %ComSpec% /k ipconfig, , ).
Diese Funktion beruht ja auf dem Umleiten des Ergebnisses in eine temporäre Datei, soweit ich das sehe: run, %ComSpec% /c ipconfig > %tempfile%, , Hide

Re: LAN oder WLAN aktiv

by garry » 29 Jun 2020, 14:42

@KHA , danke, hab noch dies gefunden
EDIT : modified ( tempfile fehlte )
https://www.autohotkey.com/boards/viewtopic.php?f=5&t=46333

Code: Select all

;-https://www.autohotkey.com/boards/viewtopic.php?f=5&t=46333   user gregster

;- https://www.autohotkey.com/boards/viewtopic.php?f=5&t=46333

msgbox % GetLanIP()
GetLanIP()			; Credit https://www.reddit.com/r/AutoHotkey/comments/6haneq/external_ip_address/
{
	tempfile = %a_desktop%\ipinfo.txt 				; adjust filepath
	FileDelete, % tempfile
	run, %ComSpec% /c ipconfig > %tempfile%, , Hide		
	While !FileExist(tempfile)
		sleep, 100
	FileRead lanInfo, % tempfile						
	loop, Parse, lanInfo, `n
	{
		if(InStr(A_LoopField, "IPv4"))
		{
			lanIp := Trim(SubStr(A_LoopField, InStr(A_LoopField, ":")+2), "`r`n")
			FileDelete, % tempfile
			Return lanIP
		}
	}
	lanIP := "Check Network Connection"
	Return lanIP
}

Re: LAN oder WLAN aktiv

by KHA » 29 Jun 2020, 14:35

Versuch mal damit.

Code: Select all

MsgBox, % RunWaitEin("netsh interface show interface")

RunWaitEin(Befehl) {
    shell := ComObjCreate("WScript.Shell")
    exec := shell.Exec(ComSpec " /C " Befehl)
    	For i, v in StrSplit(exec.StdOut.ReadAll, "`n", "`r")
    	{
	     if (v = "")
	     continue
   
	     if InStr(v, "Verbunden")
	     Verbunden = % v
	    }
    return % Verbunden
}

LAN oder WLAN aktiv

by PIcard_1983 » 29 Jun 2020, 13:45

Hallo,

ich habe mal eine Frage: Ich versuche irgendwie herauszufinden ob ich bei meine Ehternetverbindung das LAN Kabel angeschlossen habe oder nicht.
Also ob der Ethernetadapter aktiv ist oder nicht.

Das muss doch irgendwie gehen oder?

Ich habe schonmal im Forum herum gelesen und folgende Funktion gefunden:

Code: Select all

ConnectedToInternet(flag=0x40) { 
Return DllCall("Wininet.dll\InternetGetConnectedState", "Str", flag,"Int",0) 
}
Dort bekomme ich aber nur ob Internet ja oder nein. Das bringt mir nix. Ich suche eine Funktion, ob mein Laptop mit LAN oder WLAN verbunden ist.

Kann mir da jemand weiterhelfen?

Danke

Gruß
Picard

Top