dann sollte vielleicht mal einer in die Tasten hauen
Beiträge von Sonderbaar
-
-
Guten Morgen!
Vielen lieben Dank... klar brauch ich noch Hilfe
Bin in letzter Zeit nicht dazu gekommen weiter zu machen... daher können Antworten (Reaktionen) auch mal was dauern
Ich berichte nach dem Test -
Hallo zusammen,
so hatte nochmal Zeit mich mit dem Thema auseinander zu setzen...
aktuell probiere ich die Labels zu erzeugen... funktioniert auch soweit ganz gut, jedoch krieg ich die Höhe nicht resetet...Mit Resetet meine ich, dass wenn er (hier testhalber 5 Zeilen) geschrieben hat eine neue Spalte anfängt. Bei mir läuft Sie jedoch weiter fort, statt direkt oben wieder neu anzufangen... quasi neben 192.168.1.1
Wo muss ich denn $j wieder auf 40 bringen??? Im Case selbst bringt es nix, dann schreibt er alle in erste "Zeile"...
Spoiler anzeigen
AutoIt
Alles anzeigenHotKeySet("{ESC}", "beenden") ergebnis() Func ergebnis() $gui = GuiCreate("Label Creation", 400, 600, -1, -1) GuiSetState(@SW_SHOW) $j = 40 $m = 1 $netz = "192.168.1." For $i = 1 to 12 Switch $i Case 1 To 5 $Spalte1 = 5 Case 6 To 10 $Spalte1 = 155 EndSwitch ConsoleWrite($j & @CRLF) $ip_adresse_abfrage = Ping($netz & $i, 50) If $ip_adresse_abfrage Then GUICtrlCreateIcon(@SCRIPTDIR & "\green.ico", "Grüner Punkt", $Spalte1, $j, 20, 20) Else GUICtrlCreateIcon(@SCRIPTDIR & "\red.ico", "Roter Punkt", $Spalte1, $j, 20, 20) EndIf $dummy1[$m] = GUICtrlCreateLabel($netz & $i, $Spalte1+50, $j, 100, 30) GUICtrlSetFont(-1, 12,400,2, $schrift) $j = $j +25 $m = $m +1 Next While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd EndFunc Func beenden() Exit EndFunc
Hilfe
-
probier mal statt Case $nMsg Case $inp_IP_Adresse
Wenn ich das mache, wird die Checkbox darunter liegend nicht mehr korrekt "abgearbeitet"...
für WM_Command bin ich offenbar noch nicht weit genug
Mal als Hinweis:
Wenn du tatsächlich 254 Adressen scannen willst, verwende unbedingt den Parameter timeout in der Ping Funktion. Ich würde die Laufzeit zum physikalisch am schlechtesten angebundenen Rechner als Referenzzeit nehmen, kleinen Toleranzzuschlag und das als Timeout. Im Normalfall solltest du somit keinen Timeout > 100 ms brauchen (oder hat jemand so grottige Netze mit längerer Laufzeit?). Und dann ist auch die Gesamt-Scanzeit noch akzeptabel.
Um sich am Programmieren zu üben ist das Basteln dieses Tools sicher nicht schlecht. Aber für den Einsatz würde ich dann doch einen fertigen Scanner bevorzugen.Das scheint mir ein sehr guter Tip zu sein, werde ich berücksichtigen...
mal gut, dass es dieses Forum gibt... -
Hallo Gemeinde,
ich hätte da gerne mal ne Hilfestellung bitte:
ich bin gerade dabei mir ein Script zu basteln, welches beim ausführen zwei Mögliche Optionen zur Auswahl gibt...
1. Option: per Ping einen bestimmten Host "anpingen". Bei Antwort (oder eben keiner Antwort) auf den Ping soll in der GUI der Host mit einer art "Ampel" (rot od. grün) anzeigt werden.
2. Option hier liegt mein aktuelles "Problem": Auswahl über eine GUI mit Hilfe von Checkboxen... Wir die 1. Checkbox angehakt, werden zwei weitere Checkboxen per $GUI_SHOW angezeigt, deren Sinn darin besteht entweder eins, oder halt beide Netze zu scannen.
Bei einem Klick auf einen Startknopf soll dann die Ping-Prozedur durchlaufen werden und alle Hosts in der GUI angezeigt werden mit je roter oder grüner Ampel.Meine Frage wäre jetzt aktuell...
ich prüfe das Inputfeld für die IP-Adresse... ist die Eingabe größer als 10 Zeichen, so sollen die Checkboxen (samt Text) verschwinden... klappt soweit auch prima, ABER da ich einen fetten Fehler in der Switchanweisung habe (und ehrlich gesagt nicht weiß, wie ich das Problem gelöst kriege) nimmt das Script keine Befehle entgegen, da es wieder die Länge abfragt... (man gibt ne IP ein, alles wunderbar, klickt dann auf "Neue Adresse" und versucht dann zu beenden, fehlanzeige... gibt man dann in die Inputbox wieder etwas größer 10 Zeichen ein, beendet sich das Script...Anbei Script meiner GUI mit der Problematik zum vorherigen Absatz.
Bitte nicht wundern, die Ampelfunktion ist noch nicht eingebaut... ich arbeite gerne Schritt für Schritt... zumal mich das aufbauen einer Range (IPs von 1-254) noch nerven kosten wird (hier müssen ja die Labels und ampeln quasi dynamisch erstellt werden, da komme ich sicherlich im weiteren Verlauf nochmal auf euch zu, wenn ich darf)
und ja ich weiß, es gab bereits ein ähnliches Thema
Spoiler anzeigen
AutoIt
Alles anzeigen#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <MsgBoxConstants.au3> HotKeySet("{ESC}", "beenden") Dim $checkbox1, $checkbox2, $checkbox3, $lab_control_checkbox2, $lab_control_checkbox3, $schrift = "Arial Narrow", $var $Form1 = GUICreate("Form1", 1000, 666, 184, 115) $Label1 = GUICtrlCreateLabel("Aktive Clients im Netzwerk", 24, 8, 354, 44) GUICtrlSetFont($Label1, 25, 800, 0, $schrift) ;~ GUICtrlCreateIcon(@SCRIPTDIR & "\green.ico", "Grüner Punkt", 50, 190, 20, 20) ;~ GUICtrlCreateIcon(@SCRIPTDIR & "\red.ico", "Roter Punkt", 50, 220, 20, 20) ;~ Checkbox 1 Auswahl komplette Range scannen $checkbox1 = GUICtrlCreateCheckbox("", 24, 87, 25, 25) $lab_control_checkbox1 = GUICtrlCreateLabel("Komplette Range Scannen", 100, 87, 164, 24) GUICtrlSetFont($lab_control_checkbox1, 12, 400, 0, $schrift) ;~ Checkbox 2+3 Auswahl wird erst frei wenn checkbox 1 ausgewählt $checkbox2 = GUICtrlCreateCheckbox("", 24, 127, 25, 25) GUICtrlSetState($checkbox2, $GUI_HIDE) $checkbox3 = GUICtrlCreateCheckbox("", 24, 159, 25, 25) GUICtrlSetState($checkbox3, $GUI_HIDE) $lab_control_checkbox2 = GUICtrlCreateLabel("0er Netz", 50, 129, 61, 24) GUICtrlSetFont($lab_control_checkbox2, 12, 400, 0, $schrift) GUICtrlSetState($lab_control_checkbox2, $GUI_HIDE) $lab_control_checkbox3 = GUICtrlCreateLabel("1er Netz", 50, 160, 61, 24) GUICtrlSetFont($lab_control_checkbox3, 12, 400, 0, $schrift) GUICtrlSetState($lab_control_checkbox3, $GUI_HIDE) ;~ Hier nur eine IP-Adresse prüfen $lab_control_IP_Adresse = GUICtrlCreateLabel("EINE IP checken", 170, 50, 105, 24) GUICtrlSetFont($lab_control_IP_Adresse, 12, 400, 0, $schrift) $inp_IP_Adresse = GUICtrlCreateInput("192.168.0.", 24, 48, 129, 24) GUICtrlSetFont($inp_IP_Adresse, 12, 400, 0, $schrift) GUISetState(@SW_SHOW) ;~ Startbutton für prozeduren $start_button = GUICtrlCreateButton("Start", 24, 190, 50, 24) GUICtrlSetFont($start_button, 12, 400, 0, $schrift) ;~ exitbutton $exit_button = GUICtrlCreateButton("Programm beenden", 24, 220, 150, 24) GUICtrlSetFont($exit_button, 12, 400, 0, $schrift) ;~ clearbutton $clear_button = GUICtrlCreateButton("Neue Adresse", 280, 50, 150, 24) GUICtrlSetFont($clear_button, 12, 400, 0, $schrift) ;~ ConsoleWrite(StringLen(GUICtrlRead($inp_IP_Adresse))) Func checkbox_on_off() If GuiCtrlRead($checkbox1) = 1 Then GUICtrlSetState($checkbox2, $GUI_SHOW) GUICtrlSetState($checkbox3, $GUI_SHOW) GuiCtrlSetState($lab_control_checkbox2, $GUI_SHOW) GuiCtrlSetState($lab_control_checkbox3, $GUI_SHOW) GUICtrlSetState($lab_control_IP_Adresse, $GUI_HIDE) GUICtrlSetState($inp_IP_Adresse, $GUI_HIDE) GUICtrlSetState($clear_button, $GUI_HIDE) Else GUICtrlSetState($checkbox2, $GUI_HIDE) GUICtrlSetState($checkbox2, $GUI_UNCHECKED) GUICtrlSetState($checkbox3, $GUI_HIDE) GUICtrlSetState($checkbox3, $GUI_UNCHECKED) GuiCtrlSetState($lab_control_checkbox2, $GUI_HIDE) GuiCtrlSetState($lab_control_checkbox3, $GUI_HIDE) GUICtrlSetState($lab_control_IP_Adresse, $GUI_SHOW) GUICtrlSetState($inp_IP_Adresse, $GUI_SHOW) GUICtrlSetState($clear_button, $GUI_SHOW) EndIf Sleep(400) EndFunc ;~ GUI-Schleife While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $exit_button Exit Case $start_button pingabfrage() case $clear_button GUICtrlSetData($inp_IP_Adresse, "192.168.0.") Case $nMsg $long_inp_IP_Adresse = (StringLen(GuiCtrlRead($inp_IP_Adresse))) If $long_inp_IP_Adresse > 10 Then GUICtrlSetState($checkbox1, $GUI_HIDE) GUICtrlSetState($lab_control_checkbox1, $GUI_HIDE) Else GUICtrlSetState($checkbox1, $GUI_SHOW) GUICtrlSetState($lab_control_checkbox1, $GUI_SHOW) checkbox_on_off() EndIf EndSwitch WEnd Func pingabfrage() $ip_adresse_abfrage = Ping(GuiCtrlRead($inp_IP_Adresse),250) If $ip_adresse_abfrage Then MsgBox($MB_SYSTEMMODAL, "", "Host " & GuiCtrlRead($inp_IP_Adresse) & " ist online! Die Antwortzeit beträgt: " & $ip_adresse_abfrage & "ms.") Else EndIf EndFunc Func beenden() Exit EndFunc
Solange keine beschimpfungen kommen, bin ich für jede Kritik offen...
-
Ich konnte mir vorstellen, dass eine solche Formel tatsächlich irgendeine Lösung bringt...
aber ich bin ja noch Jung und lernwillig
-
-
Mit ner Schleife würde ich sagen?
irgendwelche Ansätze schon vorhanden?
-
-
-
$varNOT= "not" > ok? sicherlich zum Suchen des Wortes "not" in einem Array?
Wenn "not" $test = 5 Dann > ich stimme Oscar zu, macht so echt garkeinen Sinn...Solltest du negieren wollen, wäre die Syntax eine andere, erzähl doch mal was die zwei Zeilen Code machen sollen, wenns fertig ist...
-
Das winden wie ein Wurm um die Thematik herum und ein PixelGetColor ist immer sehr verdächtig...
Mal sehen, ob noch was kommt, was er/sie erreichen möchte
-
bin da nicht angemeldet... würde mich aber wundern? Es war mal irgendwann glaube ich im Gespräch, dass man an Facebook User Mails senden können sollte, aber was letztlich drau geworden ist, keine Ahnung?
-
Hi,
ich war sehr euphorisch heute morgen, hat sich alles sehr plausibel gelesen, aber leider funktioniert mein StringSplit dann nicht mehr.
Der Consolewrite aus dem Case war auch nicht zu sehen... anbei Code mit Split-Funktion. Habe um überhaupt weiter zu kommen Case auf die Länge des Eingabesatzes größer/gleich 16 gemacht gehabt... (hier aber auskommentiert) *edit* funzt bescheiden habe ich heute festgestellt... ich glaube ich kommt um die DefaultButton dingens nicht rum... aber wie sieht sowas aus? Kann mir da adhoc nix drunter vorstellen...
Mit der bitte um erneutes Bemühen
Spoiler anzeigen
AutoIt
Alles anzeigen#include <mysql.au3> #include <array.au3> #include <file.au3> #include <MsgBoxConstants.au3> #include <date.au3> #include <GuiButton.au3> #include <GuiEdit.au3> #include <GuiStatusBar.au3> #include <GUIConstantsEx.au3> #include <FontConstants.au3> #include <Misc.au3> HotKeySet("{ESC}", "Terminate") Global $zeitstempel, $datumsstempel, $tbl_jobs_datumsstempel, $auftrags_nr Global $value[8] Global $inhalt[8] Global $hDLL = DllOpen("user32.dll") Main() Func Main() Global $key GUICreate("") Local Const $sFont = "Comic Sans Ms" Global $label_1 = GUICtrlCreateLabel("Ich brauche Nachschub", 10, 10, 300, 35) GUICtrlSetFont($label_1, 15, $FW_NORMAL, $GUI_FONTUNDER, $sFont) Global $auftrags_nr = GUICtrlCreateInput("", 10, 70, 300, 35) GUICtrlSetFont($auftrags_nr, 15, $FW_NORMAL, $sFont) GUISetState(@SW_SHOW) Local $idMsg While 1 $idMsg = GuiGetMsg() Select Case $idMsg = $GUI_EVENT_CLOSE ExitLoop ;~ Case StringLen(GuiCtrlRead($auftrags_nr)) >= 16 Case $auftrags_nr ConsoleWrite(GUICtrlRead($auftrags_nr)&@CRLF) string_trennen() EndSelect WEnd EndFunc Func string_trennen() Global $string_gesplittet $string_gesplittet = StringSplit(GuiCtrlRead($auftrags_nr), ".") _arrayDisplay($string_gesplittet) GUICtrlSetData($auftrags_nr, "") ;~ neuer_datensatz() EndFunc
-
Hi,
habe mir eine GUI gebaut, die auf eine Zeichenfolge eines Barcode-Scanners reagieren sollte...
Der Barcorde-Scanner schickt eine Zahlenkombination im Format "xxxxxx.yyyyyy" wobei die Zeichenzahl unterschiedlich lang sein kann.
Abschließend schickt der Barcorde-Scanner auch eine "ENTER" als "Fertig-Meldung".Problem an der Sache ist, dass offenbar nicht immer das "ENTER" durch den Scanner vom Script akzeptiert wird...
Mach ich den Scan ist Notepad, kein Problem. Ziffernfolge wird angezeigt und ein Enter wird "angefügt" und man landet in der nächsten Zeile.
Mache ich den Scan auch im Scite wird der erste Scan ignoriert, der zweite setzt dann 2x die Zeichenfolge xxxxxx.yyyyyy ein und dann ein "ENTER".
Nächste Zeile kommt dann 3x die Zeichenfolge xxxxxx.yyyyyy dann ein ENTER usw.Spoiler anzeigen
AutoIt
Alles anzeigen#include <mysql.au3> #include <array.au3> #include <file.au3> #include <MsgBoxConstants.au3> #include <date.au3> #include <GuiButton.au3> #include <GuiEdit.au3> #include <GuiStatusBar.au3> #include <GUIConstantsEx.au3> #include <FontConstants.au3> #include <Misc.au3> HotKeySet("{ESC}", "Terminate") Global $oError = ObjEvent("AutoIt.Error", "_ErrFunc") Global $zeitstempel Global $value[7] Global $inhalt[7] Global $hDLL = DllOpen("user32.dll") Main() Func Main() Global $key GUICreate("") Local Const $sFont = "Comic Sans Ms" Global $label_1 = GUICtrlCreateLabel("Ich brauche Nachschub", 10, 10, 300, 35) GUICtrlSetFont($label_1, 15, $FW_NORMAL, $GUI_FONTUNDER, $sFont) Global $auftrags_nr = GUICtrlCreateInput("", 10, 70, 300, 35) GUICtrlSetFont($auftrags_nr, 15, $FW_NORMAL, $sFont) GUISetState(@SW_SHOW) Local $idMsg $trigger = 0 While $trigger = 0 $idMsg = GuiGetMsg() Select Case $idMsg = $GUI_EVENT_CLOSE ExitLoop Case _IsPressed("0D", $hDLL) wasnun() EndSelect WEnd EndFunc Func wasnun() $wasnun = GuiCtrlRead($auftrags_nr) Consolewrite($wasnun & @CRLF) GuiCtrlSetData($auftrags_nr, "") ;~ DllClose ($hDLL) EndFunc Func Terminate() Exit EndFunc
Kann mal einer über den Code gucken, wo der Hund begraben liegt??? Ich vermute es liegt an _IsPressed?! Hat jemand eine andere (elegantere, bessere) Idee?
Ziel ist es Barcode Scannen, den String aufgrund des Punktes splitten und diese beiden Werte weiter verwenden im Script... (Abfrage in einer DB, aufgrund des zweiten Wertes muss ein weiterer Wert aus der Datenbank abgefragt werden)
Freue mich auf eure Ideen und Kritiken ,
Volumeman
-
Hallo und guten Morgen zusammen!
Es hat wirklich twas mit dem IE zu tun. Habe den Kompatibilitätsmodus auf IE7 eingestellt und siehe da, es funktioniert. Dann muss ich halt entweder warten oder halt einfach den IE Kompatibilitätsmodus auf IE7 lassen... btw speichert der IE den Kompamode oder setzt er ihn beim schließen wieder zurück)
Die letzte Idee von Norman war leider auch ohne Ergebnis (im nicht IE7 Mode^^)
Da ich es nicht mit Java habe und auch nicht weiß wie ich das einpflegen sollte, lasse ich es jetzt mal so und warte wie gesagt auf "IE9 UDF Update" bzw. nehme einfach den IE7 Kompa-Mode
Danke an alle
-
Hallo zusammen,
ich habe ein Problem mit folgendem Script:
Spoiler anzeigen
[autoit]#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <String.au3>
#include <Inet.au3>
#include <Array.au3>#AutoIt3Wrapper_UseX64=y
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("1", "_beenden")
Dim $i
$sUsername = "Sensemann"
$sPassword = "test"$sUrl = "http://www.otr-files.de"
[/autoit] [autoit][/autoit] [autoit]
$oIE = _IECreate ($sUrl)
Sleep(1000)
$oHWND = _IEPropertyGet($oIE, "hwnd")
WinSetState ($oHWND, "", @SW_MAXIMIZE )
$oForm = _IEFormGetCollection ($oIE, 'login')$oUsername = _IEGetObjByName ($oForm, "username")
[/autoit] [autoit][/autoit] [autoit]
$oPassword = _IEGetObjByName ($oForm, "passwd")
_IEFormElementSetValue ($oUsername, $sUsername)
_IEFormElementSetValue ($oPassword, $sPassword)$oSubmit = _IEGetObjByName($oForm, 'Submit')
[/autoit]
_IEaction($oSubmit, "click")Ich müsste nach dem Eintragen von Benutzername und Passwort auf diesen Anmelde-Button klicken, Eintragen von Benutzername und PW funktioniert einwandfrei, aber dann bei Submit Clicken verlässt es mich, leider...
wer kann mir da von euch helfen?
nur weil ich ein 64-bit System fahre, wird es doch wohl funktionieren müssen?