Perfekt, müsste für meine Bedürfnisse passen.
VIELEN Dank
Perfekt, müsste für meine Bedürfnisse passen.
VIELEN Dank
Hallo zusammen
Ich stehe momentan vor der gleichen Frage.
Da diese Antwort schon ziemlich alt ist, wollte ich nochmals fragen ob jemand ne Idee hat wie man das doch machen könnte.
Ich gehe davon aus dass es immernoch nicht geht.
Fragen kostet aber nix
Versucht habe ich auf jeden fall schon verschiedene Möglichkeiten mit Eval aber ohne Erfolg.
Wow, das ging aber schnell.
Vielen Dank euch beiden
Auf _GUICtrlIpAddress_ShowHide hätte ich eigentlich selbst drauf kommen sollen
Schade das es nicht automatisch ist. Alles kann man nicht haben
Danke & Gruss
Sayen
Hallo zusammen
Ich habe mit Koda eine GUI mit Tabs erstellt und ein Feld für eine IP Adresse in einem der Tabs platziert.
In Koda scheint alles einwandfrei zu funktionieren. Beim wechseln in einen anderen Tab, verschwindet die Eingabemaske für die IP.
Aber beim Kompilieren geht es nicht
Die Eingabemaske für die IP bleibt in jedem Tab sichtbar.
Habe schon verschiedenes ohne Erfolg versucht.
Vieleicht habt Ihr noch einen Tip für mich.
Über die suche habe ich komischerweise nichts zu Thema "_GUICtrlIpAddress_Create" gefunden.
Mein letzter versuch sah so aus:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiIPAddress.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ###
$Form2 = GUICreate("Form2", 405, 296, 302, 218)
$Tab1 = GUICtrlCreateTab(40, 48, 321, 209)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$Button1 = GUICtrlCreateButton("Button1", 280, 216, 75, 25, $WS_GROUP)
$IPAddress1 = _GUICtrlIpAddress_Create($Form2, 64, 104, 130, 21)
_GUICtrlIpAddress_Set($IPAddress1, "127.0.0.1")
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 64, 184, 97, 17)
$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
$Radio1 = GUICtrlCreateRadio("Radio1", 80, 192, 113, 17)
$Radio2 = GUICtrlCreateRadio("Radio2", 80, 224, 113, 17)
$TabSheet4 = GUICtrlCreateTabItem("TabSheet4")
$Input3 = GUICtrlCreateInput("Input3", 64, 184, 121, 21)
GUICtrlCreateTabItem("")
$Input4 = GUICtrlCreateInput("0", 160, 6, 17, 21)
GUICtrlCreateLabel("Selektierter Tab:", 72, 8, 82, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Tab1
tabswitch(GUICtrlRead($Tab1))
EndSwitch
WEnd
Func tabswitch($i)
Switch $i
Case 0
GUICtrlSetState($IPAddress1,$GUI_ENABLE + $GUI_SHOW)
GUICtrlSetData($Input4,'0')
Case 1
GUICtrlSetState($IPAddress1,$GUI_HIDE)
GUICtrlSetData($Input4,'1')
Case 2
GUICtrlSetState($IPAddress1,$GUI_DISABLE)
GUICtrlSetData($Input4,'2')
Case 3
GUICtrlSetState($IPAddress1,$GUI_DISABLE + $GUI_HIDE)
GUICtrlSetData($Input4,'3')
EndSwitch
EndFunc
Hallo zusammen
Ich benötige auch ein paar ganz bestimmte Infos.
Und zwar geht es um die Netzwerkverbindungen.
Was mich Interessiert:
- Verwendete Geschwindigkeit (läuft die Netzwerkkarte auf 100Mbit oder Gbit?)
- Half-/Fullduplex?
Konnte leider nichts finden...
Hm, kann mir denn jemand sagen, wie das Script co routine funzt? Und wie ich das auf eins meiner Scripte anwende...
(2 Posts hier drüber)
Ich kriegs auch nicht hin.
Kann das biiite jemand an einem beispiel erklären?
Da gibts es einen Portscanner, musst das Script nur für deine Bedürfnisse anpassen:
http://www.autoitscript.com/forum/index.php?showtopic=50236&st=0Wenn das FTP Programm eine Rückmeldung in die Konsole schreibt kannst du diese Fehlermeldung auslesen und daraufhin die schleife abbrechen. Stichwort: StdoutRead.
Hatte sowas auch schon probiert, aber leider ist der timeout bei 'TCPConnect' auch 20 sekunden (wie beim FTP) wenn der rechner nichtmal erreichbar ist.
Ist es irgendwie möglich vorübergehend diesen timeout auf z.B. 3 sec. zu setzen??
Habe es hiermit ohne erfolg versucht: AutoItSetOption("TCPTimeout",3000) bis ich gesehen habe das der default Wert sowieso nur 100ms ist
Kann also nicht daran liegen.
Und ich möchte ja sowieso nicht abbrechen wenn eines der Rechner nicht verfügbar ist, sondern es geht mir um den Stop Knopf den ich nicht abfangen kann
Ähm ich glaube Ping geht, bei mir jedenfalls, gib einfach mal Ping ("Dein FTP") ein
Wie soll das funktionieren?? Ich müsste ja dem ping irgendwie mitteilen das es port 21 anpingen soll...
Das kann ich leider nicht machen weil ich nach jedem FTP Befehl die erhaltenen Daten zippen möchte.
Wenn ich nicht runwait nutze habe ich im hintergrund 10 offene ftp.exe mit denen ich nichts mehr anfangen kann.
Ich habe mir jetzt überlegt ob ich irgendwie auf eine schnelle art prüfen kann ob der FTP server erreichbar ist oder nicht.
So eine art ping, aber auf den port 21...
Wenn er dann nicht erreichbar währe würde ich den runwait überspringen und bei der nächsten ip weiter machen.
telnet geht leider nicht weil es in vista nicht mehr ab werk vorhanden ist.
Würde so ein portcheck vieleicht sogar mit autoit bordmitteln funktionieren?
Ich habe schon verschiedenes probiert, aber ich schaffe es nicht aus einer For Schleife auf Knopfdruck (GUI) rauszuspringen.
Mit einer Checkbox ist es ganz einfach, aber sieht halt komisch aus.
Das problem ist das in dieser For Schleife ein FTP Befehl steckt der wenn der zielrechner nicht verfügbar ist, es etwa 20 sekunden "stehen" bleibt.
Und ich so nicht auf den Knopf auf der GUI reagieren kann.
Um euch nicht mit meinem ganzen Code vollzuballern, habe ich es hier vereinfacht.
Hat jemand ne Idee wie ich den gedrückten Stop Knopf erkennen kann?
Ist es irgendwie möglich so zu machen das er gedrückt bleibt?? Und ich Ihn dann einfach wie die Checkbox nach dem Status abfragen kann.
Den timeout vom FTP kann ich vermutlich nicht umgehen, aber das es wenigstens möglich währe nach dem timeout die For Schlaube abzubrechen währe schon cool.
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 171, 65, -1, -1)
$bStart = GUICtrlCreateButton("Start", 7, 8, 75, 25, 0)
$bStop = GUICtrlCreateButton("Stop", 87, 8, 75, 25, 0)
$xStop = GUICtrlCreateCheckbox("Stop", 96, 40, 49, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUICtrlSetState($bStop,$GUI_DISABLE)
GUICtrlSetState($xStop,$GUI_DISABLE)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $bStart
GUICtrlSetState($bStart,$GUI_DISABLE)
GUICtrlSetState($bStop,$GUI_ENABLE)
GUICtrlSetState($xStop,$GUI_ENABLE)
For $1 = 100 To 110
RunWait('ftp -s:test.txt 192.168.0.' & $1,'',@SW_HIDE)
ConsoleWrite($1 & @CRLF) ;nur damit ich sehe wo es gerade steckt
If GUICtrlRead($xStop)=$GUI_CHECKED Then ExitLoop
Next
GUICtrlSetState($bStart,$GUI_ENABLE)
GUICtrlSetState($bStop,$GUI_DISABLE)
GUICtrlSetState($xStop,$GUI_UNCHECKED+$GUI_DISABLE)
EndSwitch
WEnd
Das ist der Inhalt der test.txt:
Ich hab es mir noch ein wenig genauer angeschaut.
Um einfach den Ordnerpfad rauszukriegen interessiert mich ja eigentlich der letzte Punkt, bzw. der Dateiname nicht.
Also müsste ich doch einfach nur bis zum letzten backslash suchen oder?
Also sollte das reichen?:
$pfad='D:\TEMP\a.b c\xyz\I M.G.jpg'
$pfad = StringRegExpReplace($pfad, '(.*\\).*', '$1')
MsgBox(0,0, $pfad)
und um nur den Dateinamen rauszukriegen?:
[autoit]$pfad='D:\TEMP\a.b c\xyz\I M.G.jpg'
$pfad = StringRegExpReplace($pfad, '.*\\', '')
MsgBox(0,0, $pfad)
Es geht mir jetzt nicht drum es noch ein paar zeichen kürzer zu machen, sondern damit ich es besser verstehe
Komplexe sache, aber vielen Dank für die Erklärung
Könntest du es mir ein wenig erklären damit es auch ein Anfänger verstehen kann?
Es ginge auch noch mit StringRegExpReplace:
[autoit][/autoit]
$pfad='D:\TEMP\abc\xyz\IMG.jpg'
$pfad = StringRegExpReplace($pfad, '(.*\\).*\..*', '$1')
MsgBox(0,0, $pfad)
Boa, der ist noch geiler, aber ich versteh den einfach nicht
Perfekt
Wusste nicht dass man bei StringInString von rechts aus suchen konnte.
Es ist so zwar nur ein biischen kürzer, aber cool das ich was neues weis
Vielen Dank
Hi zusammen
Ich habe in einer variablen einen Pfad zu einer Datei.
Jetzt brauche ich für die Weiterverarbeitung aber nur den Pfad zum Ordner.
Ich habs zwar hinbekommen, aber ich kann es nicht glauben das es nicht einfacher geht...
Gibt es keinen direkten befehl wie 'lösche alle Zeichen von rechts bis zum \'?
Hier was ich gebastelt habe.
[autoit]#include <Constants.au3>
#include <String.au3>
$pfadimg='D:\TEMP\abc\xyz\IMG.jpg'
$ordner=StringTrimRight($pfadimg,StringInStr(_StringReverse($pfadimg),'\')-1)
ConsoleWrite($ordner); Die Ausgabe ist genau was ich brauche: D:\TEMP\abc\xyz\
Edit, so ist es ein bischen verständlicher:
#include <Constants.au3>
#include <String.au3>
$pfadimg='D:\TEMP\abc\xyz\IMG.jpg'
$temp1=StringInStr(_StringReverse($pfadimg),'\')
$temp2=StringTrimRight($pfadimg,$temp-1)
ConsoleWrite($temp2)
Habe es inzwischen in dieser Form aufgegeben.
Habe aber jetzt bei SourceForge den vermutlich einzigen OPC Client auf Kommandozeilen Ebene gefunden
http://openopc.sourceforge.net/client.html
Damit habe ich erste erfolge in AutoIt.
Ich berichte hier sobald ich was gescheites fertig habe.
Äh doch?
Gui anwählen -> Bei Position in "poDesktopCenter" ändern
Und fertigPadmak
Ich liebe euch
bitte obigen Satz nicht wortwörtlich nehmen
Da muss man schon ein bischen Tricksen
Hab dir auch einen roten Rahmen eingebaut
PERFEKT
Herzlichen Dank
Währe cool wenn sowas in Koda möglich währe...
Der rote Rand hätte nicht sein müssen
Und noch das hier $toolsettings = GUICreate("tool Settings", 800, 615, -1, -1)
Nicht jeder hat nen 22'' Widescreen MonitorPadmak
Es sind zwei kleinere Monitore
In Koda kann ich leider nicht einstellen das es per Default zentriert ist..
Ziel ist das ich im rot markierten bereich ein neues feld mit tabs hinzufüge.
Und ich möchte wissen wenn ein tab gewechselt wird, welches selektiert ist.