1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. XovoxKingdom

Beiträge von XovoxKingdom

  • IniWrite Gui Variable

    • XovoxKingdom
    • 21. September 2010 um 11:47
    Zitat

    IniWrite(@ScriptDir & "/MeineDaten.ini","sektion2", "Schlüssel", "Das ist ein neuer Wert") ; das funktioniert!


    Sehr verwunderlich...
    ich schreibe immer IniWrite(@ScriptDir & "\MeineDaten.ini" ....)
    mit einer Variablen sollte es so funktionieren:

    [autoit]

    IniWrite(@ScriptDir & "\"&$Variable, ...

    [/autoit]


    Sofern $Variable z.B. "MeineDaten.ini" enthält.

  • Ping

    • XovoxKingdom
    • 21. September 2010 um 11:40

    Probiere mal dieses Beispiel :) :

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    Local $status = 0, $Pause = -1
    Opt("GuiOnEventMode",1)
    $Form1 = GUICreate("Ping->OFF", 290, 135, 192, 164)
    $Input1 = GUICtrlCreateInput("", 8, 8, 273, 21)
    $Button1 = GUICtrlCreateButton("Durchsuchen...", 192, 32, 89, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Starte Prozedur", 90, 64, 101, 49, $WS_GROUP)
    GUICtrlSetOnEvent($Button1,"Wahl")
    GUICtrlSetOnEvent($Button2,"StartStop")
    GUISetOnEvent(-3,"_Exit")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    If $Pause = 1 Then
    If FileExists(GUICtrlRead($Input1)) = False Then
    MsgBox(0,"ERROR!","Datei existiert nicht!")
    $Pause = 0
    GUICtrlSetData($Button2,"Starte Prozedur")
    Else
    $status = PingList(GUICtrlRead($Input1), 10)
    If $status = 1 Then
    MsgBox(0,"Herunterfahren","HIER EINSETZEN!")
    Exit
    EndIf
    EndIf
    EndIf
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func StartStop()
    If $Pause = -1 Then $Pause = 0
    $Pause = Not $Pause
    If $Pause = 0 Then
    GUICtrlSetData($Button2,"Starte Prozedur")
    Else
    GUICtrlSetData($Button2,"Pausiere Prozedur")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Wahl()
    GUICtrlSetData($Input1,FileOpenDialog("IP-Liste",@ScriptDir,"Alle Dateien (*.*)"))
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func PingList($liste, $wait = 100)
    Local $a=FileOpen($liste,0),$b=FileRead($a)
    FileClose($a)
    $a = StringStripCR($b)
    $b = StringSplit($a,@LF)
    $a = 1
    If IsArray($b) = False Then Return -1
    For $i=1 To $b[0]
    If Ping($b[$i],$wait) Then $a = 0
    Next
    If $a = 1 Then Return 1
    Return 0
    EndFunc

    [/autoit]

    Es sollte genau das tun was du willst - Außer der Shutdownfunktion -> kannste deshalb testen [ungetestet - sollte aber funzen] ;)

  • Fenster-Fokus Problem

    • XovoxKingdom
    • 17. September 2010 um 13:10

    Ich würde dir zur Firefoxautomatisierung zur FF.au3 raten...
    (Du benötigst dann jedoch auch Mozrepl - steht alles in dem Post)
    solltest du (aus einem mir nicht bekannten Grund) dich dagegen entscheiden,
    dann guck dir folgendes Beispiel an:

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("wintitlematchmode",2)
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 349, 115, 431, 187)
    $btnbrowser = GUICtrlCreateButton("Internet-Browser", 88, 40, 195, 25)
    $Firefox=WinGetHandle(WinGetTitle("Mozilla Firefox"))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    WinSetOnTop($Form1, "", 1)

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    Case $btnbrowser
    WinActivate($Firefox)
    WinWaitActive($Firefox)
    Send("^l")
    Sleep(3000)
    Send("www.autoit.de{Enter}")
    EndSwitch
    WEnd

    [/autoit]
  • Text auslesen dann nach jedem 7.Buchstaben trennen. und den code zurck in Buchstaben Vewandeln.

    • XovoxKingdom
    • 16. September 2010 um 10:14

    Ich hab auch eine Version geschrieben, die hoffendlich genau das macht, was du willst :)
    !Siehe Anmerkung!

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Crypttable[52][2]

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 51 Step 2
    $Crypttable[$i][0] = Chr($i / 2 + 65)
    If $i = 51 Then ExitLoop
    $Crypttable[$i + 1][0] = Chr(Ceiling($i / 2) + 97)
    Next
    ;Hier wurden alle Buchstaben eingetragen - Kleinbuchstabe folgt immer auf den jeweiligen Großbuchstaben

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 51 Step 2
    For $n = 6 To 0 Step -1
    If BitAND(Asc($Crypttable[$i][0]) - 65, 2 ^ $n) = 0 Then
    $Crypttable[$i][1] &= 0
    Else
    $Crypttable[$i][1] &= 1
    EndIf
    If $i < 51 Then
    If BitAND(Asc($Crypttable[$i + 1][0]) - 71, 2 ^ $n) = 0 Then
    $Crypttable[$i + 1][1] &= 0
    Else
    $Crypttable[$i + 1][1] &= 1
    EndIf
    EndIf
    Next
    Next
    ;Hier wurden alle in ein (eigenes) Dualsystem geschrieben

    [/autoit] [autoit][/autoit] [autoit]

    ;[Anmerkung]:
    ;Die Verschlüsselung der Großbuchstaben ist fortlaufend
    ;und die selbige der Kleinbuchstaben setzt nach dem 'Z' an:

    [/autoit] [autoit][/autoit] [autoit]

    ;A = 0000000 ...
    ;Z = 0011001
    ;a = 0011010 ...
    ;z = 0110011

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($Crypttable, "Verschlüsselung", -1, 0, "", "|", "Index|Buchstaben|Verschlüsselung")

    [/autoit]
  • String auslesen

    • XovoxKingdom
    • 14. September 2010 um 16:00

    Du kannst auch alternativ StringRegExp benutzen:

    [autoit]

    Dim $s[2]

    [/autoit][autoit][/autoit][autoit]

    $s[0] = "http://www.autoit.de/index.php?page=Index"
    $s[1] = "http://www.codeproject.com/KB/dotnet/regextutorial.aspx"

    [/autoit][autoit][/autoit][autoit]

    For $i = 0 To 1
    $a = StringRegExp($s[$i], "[^\.]+\.([^\.]+)", 3)
    MsgBox(0, "StringRegExp: " & $i + 1, $a[0])
    Next

    [/autoit]
  • StringRegExp funktioniert nicht bei Array?

    • XovoxKingdom
    • 6. September 2010 um 11:34
    Zitat von AutoITboy

    und dann sage $i = $i+1 und dann StringRegExp($htmlarray ... )


    Warum willst du den Index der gefundenen Zeile erhöhen?
    Das ist dann logischerweise die Zeile nach " <br> <br> <br> <br> <br>".
    Wenn du StringRegExp($offernoline,".*",3) ausgibst, solltest du den Inhalt von
    $htmlarray[$i] erhalten.
    Das es für mich nicht so plausibel erscheint, wäre es gut, wenn du vielleicht das Problem schilderst
    oder das, was du später haben willst (mit kleinem Beispielhtmlcode).

  • Hilfe bei 2 RegEx Ausdrücken

    • XovoxKingdom
    • 6. September 2010 um 11:28

    Wenn es immer dem selben Muster entspricht:

    Der Lieferant heisst [Hier der Name]. <br>
    und
    <b>Title: [Hier Bezeichnung] </b></br>

    dann sollte folgendes funktionieren:

    [autoit]

    $string1="Der Lieferant heisst Rolf-Peter. <br> "
    $string2="<b>Title: Tolles Gerät - PC5 </b><br> "

    [/autoit][autoit][/autoit][autoit]

    $reg1=StringRegExp($string1,"Der\sLieferant\sheisst\s(.+)\.\s<br>",3)
    MsgBox(0,0,$reg1[0])
    $reg2=StringRegExp($string2,"<b>Title:\s(.+)\s</b><br>",3)
    MsgBox(0,0,$reg2[0])

    [/autoit]
  • StringRegExp funktioniert nicht bei Array?

    • XovoxKingdom
    • 5. September 2010 um 13:21

    Also im Grunde ist es ganz einfach...
    Hier ist ein kleines Filterbeispiel, bei dem zwischen "<br> <br>" und "<br> <br>" in einer gemeinsamen Zeile der gesuchte Text steht:
    (Es geht natürlich auch ohne _ArraySearch, aber zur Verdeutlichung, dass es auch mit Arrays klappt, ist dies nun implementiert)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    Local $htmltext, $htmlarray, $index, $regexp
    $htmltext = "<html>" & @CR & "<head>" & @CR & "<title> Stringregexp-Filter </title>" & @CR & "</head>" & @CR & "<body>" & @CR & _
    "Hallo Welt!" & @CR & "<br> <br>Text<br> <br>" & @CR & "Noch mehr Text..." & @CR & "</body>" & @CR & "</html>"
    MsgBox(0, "HTML-Text", $htmltext)
    $htmlarray = StringSplit($htmltext, @CR)
    _ArrayDisplay($htmlarray, "Html-Array"); Anzeige des Arrays
    $index = _ArraySearch($htmlarray, "<br> <br>", 0, 0, 0, 1); Sucht die Arrayitems nach "<br> <br>" ab
    MsgBox(0, "Arrayitem mit Index: " & $index, $htmlarray[$index])
    $regexp = StringRegExp($htmlarray[$index], "<br>\s<br>(.+)<br>\s<br>", 3); Sucht zwischen "<br> <br>" und "<br> <br>" alle Zeichen
    _ArrayDisplay($regexp, "Wert zwischen <br> <br> UND <br> <br>"); Zeigt die gefundenen Zeichen an

    [/autoit]
  • Mit _ArraySearch() die Nummer des Arrays auslesen?

    • XovoxKingdom
    • 3. September 2010 um 11:27

    Hier noch ein Beispiel für das oben (gelöste) Problem

    Spoiler anzeigen
    [autoit]

    #include <array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $html = "<html>" & @CRLF & @TAB & "<head>" & @CRLF & @TAB & "</head>" & @CRLF & @TAB & "<body>" & @CRLF & @TAB & @TAB & "<b>Equipment Software </b><br>" & @CRLF & @TAB & "</body>" & @CRLF & "</html"
    $Suche = "<b>Equipment Software </b><br>"
    MsgBox(0, "HTML - Beispieltext", $html)
    $aHtml = StringSplit(StringStripCR($html), @LF)
    $GesuchteZeile = _ArraySearch($aHtml, $Suche, 0, 0, 0, 1)
    If Not @error Then
    MsgBox(0, "Ergebnis:", $Suche & " steht in Zeile : " & $GesuchteZeile & " von insgesamt " & $aHtml[0] & " Zeilen!" & @CRLF & _
    "und beginnt ab dem Zeichen: " & StringInStr($aHtml[$GesuchteZeile], $Suche) & " und besteht aus : " & StringLen($Suche) & " Zeichen!")
    EndIf

    [/autoit]

    Nun zu dem "neuen":

    [autoit]

    $aktExcelReihe = IniRead(@ScriptDir&"\config.ini","VALUES","$reihe","0")
    ;Sollte nun funktionieren, aber ggf. nicht das gewünschte Ergebnis liefern...

    [/autoit][autoit][/autoit][autoit]

    $reihe = "$reihe"
    $aktExcelReihe = IniRead(@ScriptDir&"\config.ini","VALUES",$reihe,"0"); sucht nun nach dem Key $reihe der den Wert "$reihe" besitzt...
    ; kann später ja eine Zahl beinhalten

    [/autoit]
  • Mit _ArraySearch() die Nummer des Arrays auslesen?

    • XovoxKingdom
    • 3. September 2010 um 10:46

    Hier ist ein kleines Beispiel...

    [autoit]

    #include <array.au3>

    [/autoit][autoit][/autoit][autoit]

    Local $string, $test
    Dim $a[5]

    [/autoit][autoit][/autoit][autoit]

    $string = "test"

    [/autoit][autoit][/autoit][autoit]

    $a[0] = "Hallo"
    $a[1] = "dies ist"
    $a[2] = "ein"
    $a[3] = "test"
    $a[4] = "... das wars"

    [/autoit][autoit][/autoit][autoit]

    $test = _ArraySearch($a, $string)
    If @error Then
    MsgBox(0, "Error!", $string & " : konnte nicht gefunden werden!")
    Else
    MsgBox(0, "Gefunden!", $string & " befindet sich im Array: $a[" & $test & "]" & " = " & $a[$test])
    EndIf

    [/autoit]

    PS: guck dir mal die Hilfedatei an.. die Hilft i.d.R. bei 50% aller Probleme

  • Aus einer URL nur das letzte "Dir" übernehmen?

    • XovoxKingdom
    • 2. September 2010 um 15:08

    Hier noch 2 Varianten ohne Arrays:

    [autoit]

    $string = "http:/test.de/blog/2010/9/2/auto-it-test"

    [/autoit][autoit][/autoit][autoit]

    ;Beispiel 1:
    $Variable = StringTrimLeft($string, StringInStr($string, "/", 0, -1))
    MsgBox(0, "Variable", $Variable)

    [/autoit][autoit][/autoit][autoit]

    ;Beispiel 2:
    $Variable = StringRegExpReplace($string, ".+/([^/]+)", "$1")
    MsgBox(0, "Variable", $Variable)

    [/autoit]
  • "Hardware sicher entfernen" Fenster anzeigen

    • XovoxKingdom
    • 27. August 2010 um 14:12

    Unter XP und Vista sollte folgendes (auch) klappen:

    [autoit]

    Run("rundll32 shell32.dll,Control_RunDLL hotplug.dll")

    [/autoit]


    Ich hab's unter Win7x64 ausprobiert und es funktioniert tadellos!

  • StringSplit Problem

    • XovoxKingdom
    • 18. August 2010 um 16:59

    Probier mal das folgende:

    [autoit]

    #include <array.au3>
    $s="Hallo ich bin Hans und meine E-Mail ist [email='abc@defg.hi'][/email] email@cool.com"&@CRLF& _
    "test@mail.com das hier ist eine weiter E-Mail adresse :D"
    $a = StringRegExp($s,"(\w+@\w+\.\w+)",3)
    If IsArray($a) = True Then
    _ArrayDisplay($a)
    Else
    MsgBox(0,"Nichts","-")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    #cs OUTPUT:

    [/autoit][autoit][/autoit][autoit]

    [0]|[email='abc@defg.hi'][/email]
    [1]|[email='email@cool.com'][/email]
    [2]|[email='test@mail.com'][/email]

    [/autoit][autoit][/autoit][autoit]

    #ce

    [/autoit]
  • String teilen!

    • XovoxKingdom
    • 13. August 2010 um 23:18

    Dies ist meine (leicht verspätete) Lösung:

    [autoit]

    #include <array.au3>

    [/autoit][autoit][/autoit][autoit]

    $a="fly_10.png"
    $d=StringRegExp($a,"(.+_)(\d+)(\.[a-z]{1,3})",3)
    _ArrayDisplay($d)

    [/autoit]

    /Edit: Scheit nicht 100% richtig zu sein, da die 0 "vergessen" wird...
    //Edit2 : Nun scheints zu klappen

  • Aus 2 Variablen 1 machen

    • XovoxKingdom
    • 12. August 2010 um 09:00

    Guck dir in vielen Beispielen (deutsch Hilfe Datei) die Syntax von AutoIt an, und dann kommst
    du auf folgende Lösung ;) :

    [autoit]

    $varWidth = @DesktopWidth
    $varHeight = @DesktopHeight

    [/autoit][autoit][/autoit][autoit]

    $varResolution = $varWidth & "x" & $varHeight

    [/autoit]
  • Variablenname hochzählen? ($variable1, $variable2,...)

    • XovoxKingdom
    • 6. August 2010 um 10:06

    Obwohls bereits 'geclosed' ist, würde ich die Hauptfrage mit einer weiteren *Optimierung
    lösen:

    [autoit]

    Dim $var[5]

    [/autoit][autoit][/autoit][autoit]

    For $i=0 To UBound($var)-1
    $var[$i] = GuiCtrlRead(Eval("Input"&Execute($i+1)))
    Next

    [/autoit][autoit][/autoit][autoit]

    For $Index=0 To Ubound($var)-1
    IniWrite("config","Daten","Variable",$var[$Index])
    Next

    [/autoit]

    *damit kann man sich Tippzeit sparen, aber das geht selbstverständlich auf Kosten der
    Geschwindigkeit

  • controlclick

    • XovoxKingdom
    • 2. August 2010 um 22:43

    Probier mal:

    [autoit]

    ControlClick("navcoder","navi deaktivieren","Button168")

    [/autoit]

    sollte eigentlich klappen - testen kann ich es eh nicht :rolleyes:

  • Wenn A, dann B

    • XovoxKingdom
    • 19. Juli 2010 um 14:29

    Ohne Sleep wird das (vermeindlich) gewünschte Ergebnis sicherlich nicht erreicht:

    Spoiler anzeigen
    [autoit]

    $play = False
    $name = "@mustermann.de"
    $Zeilenumbruch = @CRLF
    HotKeySet("{Esc}","beenden")
    HotKeySet("{F2}","starten")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    If $play Then
    Send($name)
    Send($Zeilenumbruch)
    EndIf
    Sleep(1000); pausiert um ggf. unangenehmen effekt zu vermeiden
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func beenden()
    Exit;beendet das script
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func starten()
    $play = Not $play; aktiviert bzw. deaktiviert das senden
    ;true wird false und false wird true
    EndFunc

    [/autoit]
  • GUICtrlCreateList deaktivieren wenn Checkbox aktiviert

    • XovoxKingdom
    • 29. Juni 2010 um 12:48

    Danke für den Hinweis :)
    Sonst hab ich immer nur mit einem Status gearbeitet (bisher keine Fehler), werd dann aber
    wohl auf deine Methode umsteigen! :thumbup:

    PS: Plural von Status = Statusse oder Status (Langes U) :P

  • GUICtrlCreateList deaktivieren wenn Checkbox aktiviert

    • XovoxKingdom
    • 29. Juni 2010 um 12:42

    Hier ist ein Beispielcode der das "Problem" aufklären sollte:

    [autoit]

    #include <GUIConstantsEx.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Form1 = GUICreate("List + Checkbox", 228, 217)
    $List1 = GUICtrlCreateList("", 8, 8, 209, 175)
    GUICtrlSetData($List1,"Aktiviert!")
    GUICtrlSetData($List1,"Deaktiviert!")
    $Checkbox1 = GUICtrlCreateCheckbox("List Toggle", 16, 192, 193, 17)
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = $Gui_Checked Then
    GUICtrlSetData($List1,"Aktiviert!")
    GUICtrlSetState($List1,$Gui_Enable)
    Else
    GUICtrlSetData($List1,"Deaktiviert!")
    GUICtrlSetState($List1,$Gui_Disable)
    EndIf
    EndSwitch
    WEnd

    [/autoit]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™