Bleibt noch die Frage Wann? und ggf. Wie oft?
Am einfachsten den Code unterhalb des Buttons in eine Funktion packen, die dann sowohl bei Button-klick aufgerufen wird als auch automatisch an jeder von dir gewünschten Position.
Bleibt noch die Frage Wann? und ggf. Wie oft?
Am einfachsten den Code unterhalb des Buttons in eine Funktion packen, die dann sowohl bei Button-klick aufgerufen wird als auch automatisch an jeder von dir gewünschten Position.
Und wo ist das Problem jetzt?
0 kannst du als numerischen Wert prüfen. Wird 0 aber als String übergeben und es soll aber numerisch sein, kannst du das erzwingen:
[autoit]Dim $var = '0'
$var = Number($var)
If IsNumber($var) Then MsgBox(0, '', 'Das ist eine numerische Variable')
Zeig einfach mal etwas Code, dann wissen wir besser wo das Problem ist.
Welcher Button denn? Button20 oder Button23 ?
Wir reden wohl aneinander vorbei ![]()
Hmm.. ich weiß nicht so recht, was du meinst.
Edit: War ein Fehler drin
Aber du kannst dir das Auslesen der Inputs vereinfachen:
$strParams = ''
For $i = $Input_2 To $Input_9
$strParams &= '"' & GUICtrlRead($i) & '" '
Next
$strParams &= '"' & GUICtrlRead($Input_10) & '"'
Vor kurzem lief doch grad wieder dieser Film im TV (Titel vergessen), wo ein Monopolist gezielt Netze von Industrie und Staat lahmlegte und dann seine Firewall als DAS einzige Sicherungswerkzeug überall implementiert wurde - netterweise mit Backdoor für den Mega-Diebstahl ![]()
Dieses Szenario wird dann durchaus realistisch.
Es zeigt sich leider immer wieder, dass Politiker in dem Moment, wenn sie an den Schaltstellen der Macht angekommen sind, jede Bodenhaftung verlieren (ganz wenige Ausnahmen).
Vor allem aber vergessen sie eines: Sie sind gewählt als Volksvertreter um die Interessen desa Volkes wahrzunehmen und nicht diese mit Füßen zu treten.
Über Wahlmüdigkeit und Politikverdrossenheit braucht sich doch da keiner wundern, bringt auch gleich den Nährboden für extremistische Gruppierungen.
Aber wie heißt es doch richtig:
Wenn Wahlen etwas verändern könnten, wären sie schon längst verboten.
Doch zurück zum Thema. Wenn dieses Gesetz Schule macht, müssen demnächst alle Autos verboten werden - damit kann man nämlich prima Menschen totfahren.
Ganz klar - solche Gesetze gehören auf den Müll. (Diejenigen, die sowas durchwinken gleich dazu)
ZitatMuss ich was an _ArrayDisplay(_GetNetworkAdapterIPEnabled()) ändern?
Ja, das hab ich nur drüber gestellt, damit du das Ergebnis der Funktion gleich siehst.
Du mußt natürlich so vorgehen:
$ArrayAktiveAdapter = _GetNetworkAdapterIPEnabled()
[/autoit]und anschließend den Inhalt des Array abfragen, steht ja im Funktionskopf alles erklärt.
ZitatGibt's keine Func, die automatisch den die Ip der "Local Area Connection" ausgibt?
Hab ich bis jetzt nicht entdeckt. Ich habe aber eine Funktion, die die Windowsbezeichnungen für die Adapter (also LAN1; LAN2 usw.) ermittelt. Vielleicht läßt sich das kombinieren. Wenn ich es hinkriege, aktualisiere ich das hier.
Bleibt aber nach wie vor, dass du wissen mußt welches die verwendete Verbindung (LAN1; LAN2 usw.) ist.
ZitatOriginal von smsgott
Wie schon gesagt: So oder so bedeuten solche Tools Verluste, weshalb sie möglichst unterbunden werden.
Du bist wie eine tibetanische Gebetsmühle. Nur davon, dass man Behauptungen ständig wiederholt, gewinnen sie nicht an Wahrheitsgehalt.
Bisher konntest du noch mit keinem Argument erklären, wie denn die Verluste entstehen sollen (trotz Aktivierung Werbebanner).
Und diese naßforsche Art ist ja geradezu ein Aufruf an alle Skripter, dir zu zeigen, dass all deine Gegenmaßnahmen in den Wind schießen.
Ist immer nur eine Frage der Zeit bis eine Hürde überwunden wird.
Aber wer sich Gott nennt, muß halt damit leben, dass die Welt voller Atheisten ist. ![]()
ZitatOriginal von ManuIt
[autoit]
Danke.
Aber wie kann ich machen dass es automatisch die Ip des benutzten Rechners nimmt?
So gehts nicht.Dim $MY_IP = @IPAddress1
[/autoit]
Tja, generell kannst du das nur automatisieren, wenn sicher ist, dass der Rechner NUR einen aktiven Netzwerkadapter hat.
Ich hab z.B. WLAN, LAN und Bluetooth-LAN - also 3 aktive Adapter. Somit kann ich da nur manuell auswählen oder ich frage den Adapternamen ab.
Hier eine Funktion von mir, die ein Array mit den aktiven Adaptern zurückgibt.
#include <array.au3>
_ArrayDisplay(_GetNetworkAdapterIPEnabled())
;****************************************************************************************
; Function _GetNetworkAdapterIPEnabled()
;
; Description Get all IP-Enabled networkadapter
;
; Return Array networkadapter
; Array[n][0] Caption
; Array[n][1] IP-Adresse
; Array[n][2] Subnet
; Array[n][3] Standardgateway
; If not found IPEnabled Adapter:
; Return -1 und @error = 1
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;****************************************************************************************
Func _GetNetworkAdapterIPEnabled()
Dim $arAdapter[1], $var
$arAdapter[0] = -1
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
$IPConfigSet = $objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
For $IPConfig in $IPConfigSet
For $i=0 to UBound($IPConfig.IPAddress)-1
If $IPConfig.IPAddress($i) <> '0.0.0.0' Then
$settings = $IPConfig.Caption & '|' & _
$IPConfig.IPAddress($i) & '|' & _
$IPConfig.IPSubnet(0) & '|' & _
$IPConfig.DefaultIPGateway(0)
If $arAdapter[0] = -1 Then
$arAdapter[0] = $settings
Else
For $i = 0 To UBound($arAdapter)-1
If $arAdapter[$i] = $settings Then
ExitLoop
Else
ReDim $arAdapter[UBound($arAdapter)+1]
$arAdapter[UBound($arAdapter)-1] = $settings
EndIf
Next
EndIf
EndIf
Next
Next
If $arAdapter[0] = -1 Then
SetError(1)
Return -1
Else
Local $arOut[UBound($arAdapter)][4]
For $i = 0 To UBound($arAdapter)-1
$var = StringSplit($arAdapter[$i], '|')
$arOut[$i][0] = $var[1]
$arOut[$i][1] = $var[2]
$arOut[$i][2] = $var[3]
$arOut[$i][3] = $var[4]
Next
EndIf
Return $arOut
EndFunc ;==>_GetNetworkAdapterIPEnabled
Da gebe ich dir natürlich recht. ![]()
Wenn die technischen Voraussetzungen einen einfacheren Weg zulassen sollte man den natürlich wählen.
Bin nicht so firm in Netzwerktechnik. Aber ich find die Problemstellung sehr reizvoll. ![]()
Ich denke mal, ein tatsächlicher Scan in allen Oktetts ist auch nicht das Ziel.
(Schon allein das Erstellen aller Adressen von 0.0.0.0 bis 255.255.255.255 dauert auf einem 'normalschnellen' PC mindestens 12 Stunden.)
Wichtig war nur einen Algorithmus zu finden, der berücksichtigt, dass innerhalb eines Oktetts nach 255 wieder ab 0 gezählt wird.
Hier mal komplett:
[autoit]#include <guiconstants.au3>
#include <misc.au3>
$GUI_Popup = GUICreate('', 200, 100, 12, 12,$WS_POPUP)
GUICtrlCreateLabel("Irgendein Text", 70, 38)
GUISetState(@SW_SHOW, $GUI_Popup)
Do
sleep(100)
Until _IsPressed('0D')
GUISetState(@SW_HIDE, $GUI_Popup)
Erstelle eine GUI mit Style: $WS_POPUP
Über _IsPressed() fragst du die Entertaste ab (Wert schau mal in die Hilfe)
Do
sleep(100)
Until _IsPressed('Wert_für_ENTER')
GUISetState(@SW_HIDE, $GUI_Popup)
Eine Funktion wird mit ihrem Namen aufgerufen und die notwendigen Parameter werden übergeben:
[autoit]Dim $meineIP = 192.168.0.100
Dim $realGateway = 192.168.0.1
Dim $fakeGateway = 10.10.0.1
Dim $Zeit_bis_reconnect = 5000 ; Standard ist 2000 ms, dann brauchst du den Parameter nicht angeben
_ChangeGatewayAndBack($meineIP, $realGateway, $fakeGateway, $Zeit_bis_reconnect)
GtaSpider : Mit deinem Muster wird aber nicht das jeweilige Oktett komplett durchlaufen.
P.S. Ich hatte vor dir nen Post. Hatte ich aber wegen eines Fehlers wieder gekillt.
Hier mal mein Vorschlag, nachdem ich ein paar Knoten im Hirn gelöst hatte funktioniert es nun auch. ![]()
; generiert alle möglichen Adressen zwischen 192.166.250.1 und 192.168.0.1 ($s1.$s2.$s3.$s4 bis $e1.$e2.$e3.$e4)
[/autoit] [autoit][/autoit] [autoit]Dim $s1 = 192, $e1 = 192
Dim $s2 = 166, $e2 = 168
Dim $s3 = 250, $e3 = 0
Dim $s4 = 1, $e4 = 1
Dim $start2 = $s2, $start3 = $s3, $start4 = $s4
For $1 = $s1 To $e1
If $1 <> $e1 Then
$end2 = 255
If $1 <> $s1 Then $start2 = 0
Else
$end2 = $e2
EndIf
For $2 = $start2 To $end2
If ( $2 <> $e2 Or $1 <> $e1 ) Then
$end3 = 255
If $2 <> $s2 Then $start3 = 0
Else
$end3 = $e3
EndIf
For $3 = $start3 To $end3
If ( $3 <> $e3 Or $2 <> $e2 Or $1 <> $e1 ) Then
$end4 = 255
If $3 <> $s3 Then $start4 = 0
Else
$end4 = $e4
EndIf
For $4 = $start4 To $end4
ConsoleWrite($1 &'.'& $2 &'.'& $3 &'.'& $4 & @CRLF)
Next
Next
Next
Next
Edit: Ich habe die Generierung der IP's mal in eine Funktion gepackt.
;----------------------------------------------------------------------------------------------------------------------
; Function _GenerateIPsInRange($IPstart, $IPend)
;
; Description Generate all possible IP's between $IPstart and $IPend and write in an array
;
; Parameter $IPstart 1st Ip in range
; $IPend last Ip in range
;
; Return Succes Array 1D with all generated IP's
; Failure 0 and set @error 1 : given IP not correct
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _GenerateIPsInRange($IPstart, $IPend)
Local $pattern = '(\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.'& _
'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b)'
If ( Not StringRegExp($IPstart, $pattern, 0) Or _
Not StringRegExp($IPend, $pattern, 0) ) Then
SetError(1)
Return 0
EndIf
$var = StringSplit($IPstart, '.')
Local $s1 = $var[1], $s2 = $var[2], $s3 = $var[3], $s4 = $var[4]
$var = StringSplit($IPend, '.')
Local $e1 = $var[1], $e2 = $var[2], $e3 = $var[3], $e4 = $var[4]
Local $start2 = $s2, $start3 = $s3, $start4 = $s4
Local $arOut[1] = [0]
For $1 = $s1 To $e1
If $1 <> $e1 Then
$end2 = 255
If $1 <> $s1 Then $start2 = 0
Else
$end2 = $e2
EndIf
For $2 = $start2 To $end2
If ( $2 <> $e2 Or $1 <> $e1 ) Then
$end3 = 255
If $2 <> $s2 Then $start3 = 0
Else
$end3 = $e3
EndIf
For $3 = $start3 To $end3
If ( $3 <> $e3 Or $2 <> $e2 Or $1 <> $e1 ) Then
$end4 = 255
If $3 <> $s3 Then $start4 = 0
Else
$end4 = $e4
EndIf
For $4 = $start4 To $end4
If $arOut[0] = 0 Then
$arOut[0] = $1 &'.'& $2 &'.'& $3 &'.'& $4
Else
ReDim $arOut[UBound($arOut)+1]
$arOut[UBound($arOut)-1] = $1 &'.'& $2 &'.'& $3 &'.'& $4
EndIf
Next
Next
Next
Next
Return $arOut
EndFunc ;==>_GenerateIPsInRange
Aber hälts du es nicht selbst für hilfreich, diese Informationen im Vorfeld zu bringen?
Dann kommen gar nicht erst solche *bösen* Gedanken auf. ![]()
In der heutigen Welt, die gespickt ist mit Abmahnwellen u.ä., achtet natürlich jeder stark darauf, sich nicht in rechtlichen Fallstricken zu verfangen.
Dementsprechend sind natürliche Vorbehalte auf unklare Anfragen/Erklärungen vorprogrammiert.
In diesem Sinne - Viel Spaß noch beim :comp1:
*huggy-voll-zustimm*
Unser spanischer User war auch schon lange nicht mehr da - aber er hat ja sein eigenes spanisches AutoIt-Forum eröffnet.
Bei den Worten: "...mein Programmierer" läuft es mir auch eiskalt den Rücken runter. Das erinnert doch zusehr an den Ex-User, der in "seiner Firma" über 10 Programmierer beschäftigte....
![]()
Automatisiere den manuellen Vorgang:
-Neuer Drucker -Netzwerkdrucker -IP-Adresse angeben
Vielleicht gibts noch 'ne andere Variante. Aber so sollte es klappen.
ZitatOriginal von ManuIt
Hat jemand eine Idee, wie ich die Netzwerk-conection disablen und danach wieder enablen kann?
Vielleicht hilft das:
Netzwerkadapter vom Netz trennen
Wenn ich nicht irre, hast du zum selben Thema bei German-nLite einen Thread eröffnet.
http://www.german-nlite.de/Installationsp…ern-t10657.html
Wenn schon Crossposting, dann bitte auch in den jeweiligen Posts darauf verweisen. Sonst wird alles mehrfach durchgekaut. ![]()
ZitatIf $find_1 = True Then
oder
If Not $find_1 = False Then
Das ist schon doppelt gemoppelt ![]()
Wenn eine Variable einen boolschen Wert hat brauchst du nicht explizit den Inhalt abfragen.
Statt
If $find_1 = True Then
[/autoit]
besser
If $find_1 Then
[/autoit]
und statt
If Not $find_1 = False Then
[/autoit]
besser
If Not $find_1 Then
[/autoit]