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. BugFix

Beiträge von BugFix

  • Mit Auto IT Batch Prozesse von verschiedenen Programmen steuern?

    • BugFix
    • 22. Dezember 2013 um 15:08

    Verwende doch die Acrobat API für den Direktzugriff.
    Wenn du Programme automatisieren möchtest empfiehlt es sich immer zuerst nach einer API zu suchen. Das vereinfacht die Kommunikation mit Programmen ungemein.

    PS: Es gibt auch eine Matlab-API

  • Control-oder Advanced-Class auslesen lassen?

    • BugFix
    • 22. Dezember 2013 um 14:52
    [autoit]

    _WinAPI_GetClassName($WindowHandle)

    [/autoit]
  • Mit Auto IT Batch Prozesse von verschiedenen Programmen steuern?

    • BugFix
    • 22. Dezember 2013 um 11:26
    Zitat von Nidgo

    MatLab und Adobe besitzen bereits Batch Prozesse aber diese würde ich gerne mit Auto IT aufeinander abtimmen


    Im Allgemeinen ist es recht unproblematisch, Batch nach AutoIt zu portieren. Denn du hast damit ja schon eine existierende Ablauflogik, die Basis eines jeden Skriptes. Nun muss also nur die Batch-Syntax auf AutoIt-Syntax umgerubelt werden, beileibe kein Hexenwerk.

  • .cfg Datei auslesen und ändern

    • BugFix
    • 20. Dezember 2013 um 17:33

    Der Aufbau deiner Datei ist eindeutig INI - also nutze die Ini-Funktionen von AutoIt dafür. Musst aber wohl die Datei dann auch umbenennen zur *.ini damit die Funktionen nutzbar sind.

  • Zeit-Diff farblich in einem Listview

    • BugFix
    • 20. Dezember 2013 um 16:44

    Hier hast du ein prinzipielles Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>

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

    GUICreate('Test')
    $cLV = GuiCtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200)
    $hLV = GUICtrlGetHandle($cLV)
    $btCheck = GUICtrlCreateButton('Check', 10, 240, 80, 20)

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

    Global $aLVItem[10]
    For $i = 1 To 10
    $aLVItem[$i-1] = GUICtrlCreateListViewItem($i & '|' & $i+10, $cLV)
    Next

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

    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $btCheck
    If Number(_GUICtrlListView_GetItemText($hLV, 7, 1)) - Number(_GUICtrlListView_GetItemText($hLV, 1, 1)) > 5 Then GUICtrlSetBkColor($aLVItem[7], 0xFF0000)
    EndSwitch
    WEnd

    [/autoit]
  • Menü Item Check

    • BugFix
    • 19. Dezember 2013 um 16:32
    Zitat von DasIch

    Sowas gibt es doch bei vielen Programmen.


    Mag ja sein - aber nochmal: Mit den Standard-AutoIt-Funktionen ist das nicht realisierbar.

  • Menü Item Check

    • BugFix
    • 19. Dezember 2013 um 16:23
    Zitat von DasIch

    P.S.: Ich glaube, ihr missversteht mein Problem ein bisschen


    Da hilft besseres Beschreiben? :P

    Also MenuItem können m.W. mit Standardfunktionen keine Checkbox erhalten, nur RadioItem sind möglich.

  • Menü Item Check

    • BugFix
    • 19. Dezember 2013 um 15:57
    Zitat von NightmarePhoenix

    Checkbox = 4 (deaktiviert) dann soll sie auf 1 (aktiviert)


    NEIN, nein und nochmals nein!! Das haben wir schon so oft thematisiert.
    NIEMALS sollte man Checkboxen so abfragen. Eine Checkbox kann auch andere Werte ausgeben, wenn sie de/aktiviert ist.
    Einfach der Hilfeempfehlung folgen und den Status mit

    [autoit]

    If BitAnd(GuiCtrlRead($Checkbox), $GUI_CHECKED) Then

    [/autoit]

    prüfen.
    Nur so ist gewährleistet, dass der korrekte Status abgefragt wird.

  • 2 Diminsonale Array Einträge verschieben

    • BugFix
    • 16. Dezember 2013 um 13:47

    Die Fehlermeldung besagt, dass du auf ein Arrayelement verweisen willst, das gar nicht existiert. Indexfehler.
    Lass dir einfach beim Abarbeiten des Arrays in jedem Durchlauf den Index und zugehörige Werte ausgeben. Du wirst sehen das läuft durch und dann bricht es mit besagter Fehlermeldung ab, weil du plötzlich ausserhalb des Arrays adressierst.
    Verwende einfach mal Ubound($Array) -1 als letzten Index ;), dann kannst du nicht ausserhalb landen.

  • Programm im UNC Pfad öffnen

    • BugFix
    • 16. Dezember 2013 um 12:22

    Du möchtest ein Programm remote ausführen. Schau mal, ob das passt: [ gelöst ] User Eingabe auf Remote-Maschine

  • Übergabe von Listview funktioniert nicht

    • BugFix
    • 15. Dezember 2013 um 22:07

    Bei der Listview-UDF ist es empfehlenswert, das Handle statt der ID zu verwenden.

    [autoit]

    $hListview = GuiCtrlGetHandle($ID_Listview)

    [/autoit]
  • autohotkey in autoit

    • BugFix
    • 15. Dezember 2013 um 20:19

    Wozu kann man sowas brauchen? - Genau! Und nun wirf einen Blick auf unsere Forenregeln!

    Wird nicht freigegeben.

  • Nutzt ihr die Deutsche Hilfe von AutoIt?

    • BugFix
    • 15. Dezember 2013 um 13:23

    Als wir vor Jahren angefangen haben ins Deutsche zu übersetzen, hatte ich zig Dateien übersetzt und auch häufig Korrektur gelesen. Somit hat sich auch der engl. Teil dermassen gefestigt, dass ich die deutsche Hilfe gar nicht benötige.
    Sollte doch mal ein Passus unklar sein, schau ich kurz ins Wörterbuch.
    Das Übersetzen hatte aber einen angenehmen Nebeneffekt: Man lernte Funktionen kennen, von denen man vorher nicht wusste, dass sie existieren. :D

  • GUI innerhalb eines Tabs?

    • BugFix
    • 15. Dezember 2013 um 09:41

    Bevor ich mir Gedanken mache ob ein GUI in ein TAB integriert werden kann, stellt sich mir die Frage: "Warum soll da ein GUI rein?"
    Du kannst doch auf dem TAB Controls platzieren, weshalb also eine GUI?

    Edit:
    Hier mal eine Lösungsvariante

    Spoiler anzeigen
    [autoit]

    #include <GuiTab.au3>
    #include <WindowsConstants.au3>

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

    Global $xTab = 10, $yTab = 10

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

    $hMain = GUICreate('Test', 420, 400)
    $cTab = GUICtrlCreateTab($xTab, $yTab, 400, 300)
    $hTab = GUICtrlGetHandle($cTab)
    $cTabItem1 = GUICtrlCreateTabItem('Item_1')
    $cTabItem2 = GUICtrlCreateTabItem('Item_2')

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

    $aTabDisp = _GUICtrlTab_GetDisplayRect($hTab)
    $hChild = GUICreate('Child', $aTabDisp[2]-$aTabDisp[0], $aTabDisp[3]-$aTabDisp[1], $aTabDisp[0]+$xTab, $aTabDisp[1]+$yTab, $WS_POPUP, $WS_EX_MDICHILD, $hMain)
    GUICtrlCreateLabel('Das ist ein Child-GUI', 100, 50)
    GUICtrlCreateLabel('Aber genausogut lassen sich Controls direkt auf dem TAB platzieren. :P', 25, 100)

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

    GUISetState(@SW_SHOW, $hMain)

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $cTab
    If GUICtrlRead($cTab) = 1 Then
    GUISetState(@SW_SHOWNA, $hChild)
    Else
    GUISetState(@SW_HIDE, $hChild)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Inputbox stottert

    • BugFix
    • 14. Dezember 2013 um 11:27

    Nun, bei mir passiert da nichts ungewöhnliches.
    Was bleibt:
    - Mausproblem?
    - anderes Hardwareproblem?

  • Inputbox stottert

    • BugFix
    • 14. Dezember 2013 um 10:56

    Dann zeig mal Code, wo das auftritt. Habe identisches System und kann dieses Verhalten nicht bestätigen.

  • RegExp loop um XSD Schemata auszulesen

    • BugFix
    • 13. Dezember 2013 um 16:23

    Hi Spider,

    du kannst auch die ReplaceCallback-Funktion von Taz77 dazu mißbrauchen:

    Spoiler anzeigen
    [autoit]

    $string = '<xs:complexType name="cmplx1">' & @CRLF & _
    '<xs:sequence>' & @CRLF & _
    '<xs:element name="name1" type="type1"/>' & @CRLF & _
    '<xs:element name="nameN" type="typeN"/>' & @CRLF & _
    '</xs:sequence>' & @CRLF & _
    '</xs:complexType>' & @CRLF & _
    '<xs:complexType name="cmplxN">' & @CRLF & _
    '<xs:sequence>' & @CRLF & _
    '<xs:element name="name2" type="type2"/>' & @CRLF & _
    '<xs:element name="nameX" type="typeX"/>' & @CRLF & _
    '</xs:sequence>' & @CRLF & _
    '</xs:complexType>'

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

    $patt = '(?:complexType name="(.*?)">)|(?:<xs:element name="(.*?)")|(?: type="(.*?)")'

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

    Global $aMatch[1] = [0]
    _StringRegExpReplace_Callback($string, $patt, '_AddMatch("$1","$2","$3")')

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

    For $i = 1 To $aMatch[0]
    ConsoleWrite($aMatch[$i] & @LF)
    Next

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

    Func _AddMatch($1,$2,$3)
    $aMatch[0] += 1
    ReDim $aMatch[$aMatch[0]+1]
    If $1 <> '' Then
    $aMatch[$aMatch[0]] = $1
    ElseIf $2 <> '' Then
    $aMatch[$aMatch[0]] = $2
    ElseIf $3 <> '' Then
    $aMatch[$aMatch[0]] = $3
    EndIf
    EndFunc

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _StringRegExpReplace_Callback
    ; Description ...: Replaces ByRef all matches in a string by manipulation of the matches in a callback function
    ; Parameters ....: $sString String to manipulate
    ; ...............: $sPattern RegExp pattern for the match
    ; ...............: $sCallback Callback function as string, i.e. "MyCallback('$1')" -- '$1' represents the match
    ; .....optional..: $sBefore String to insert before the manipulated match
    ; .....optional..: $sAfter String to insert after the manipulated match
    ; Return values .: Success 1
    ; ...............: Failure 0 set error = 1
    ; Author ........: Taz77
    ; ===============================================================================================================================
    Func _StringRegExpReplace_Callback(ByRef $sString, $sPattern, $sCallback, $sBefore = '', $sAfter = '')
    $sString = Execute("'" & StringRegExpReplace(StringReplace($sString, "'", Chr(26), 0, 2), $sPattern, $sBefore & "'&" & $sCallback & "&'" & $sAfter) & "'")
    If @error Then
    ConsoleWrite('_StringRegExpReplace_Callback error! Pattern: "' & $sPattern & '", Callback: "' & $sCallback & '"' & @LF)
    Return SetError(1,0,0)
    EndIf
    $sString = StringReplace($sString, Chr(26), "'", 0, 2)
    Return 1
    EndFunc ;==>_StringRegExpReplace_Callback

    [/autoit]
  • Hackit

    • BugFix
    • 12. Dezember 2013 um 10:38

    Mars:

    Spoiler anzeigen
    Code
    '0100210120111001'
    >++++++++++[>+++>++++++>+++++++++>++++++++++>+++++++++++>++++++++++++<<<<<<-]>>>---.+++>---.+++>>-----.+++++<<<<<++.-->>>>>-----.+++++<+.---.++--.++<<<<++.-->>>>>---.+++<.>-----.+++++<<<<<++.-->>>.---.+++>>-----.+++++<<<<<++.-->>>>>-----.+++++<<---.++++++.---+.->.<<<+++.
  • _FileListToArray -- Modifizierte Version mit optionalem Timestamp (Erstellung, Änderung, Zugriff)

    • BugFix
    • 12. Dezember 2013 um 10:05

    Hi,
    da recht häufig eine Dateiauflistung nach Datumskriterien weiterbearbeitet wird, halte ich es für sinnvoll, dass man doch die Listfunktion bereits dafür mit einer Option versieht. Wird diese Option nicht genutzt, führt dies auch zu keinerlei Verlangsamung der originalen Funktion, da der Timestamp erst im Anschluß des Standardablaufs ermittelt wird.

    _FileListToArray
    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _FileListToArray
    ; Description ...: Lists files and\or folders in a specified path (Similar to using Dir with the /B Switch)
    ; Syntax.........: _FileListToArray($sPath[, $sFilter = "*"[, $iFlag = 0]])
    ; Parameters ....: $sPath - Path to generate filelist for.
    ; $sFilter - Optional the filter to use, default is *. Search the Autoit3 helpfile for the word "WildCards" For details.
    ; $iFlag - Optional: specifies whether to return files folders or both
    ; |$iFlag= 0 (Default) Return both files and folders
    ; |$iFlag= 1 Return files only
    ; |$iFlag= 2 Return Folders only
    ; ******** $iDate - Optional: specifies to get additional time stamp ('YYYYMMDDHHMMSS')
    ; ******** |$iDate=-1 (Default) No time stamp
    ; ******** |$iDate= 0 Gets modification time stamp
    ; ******** |$iDate= 1 Gets creation time stamp
    ; ******** |$iDate= 2 Gets last access time stamp
    ; Return values .: @Error - 1 = Path not found or invalid
    ; |2 = Invalid $sFilter
    ; |3 = Invalid $iFlag
    ; |4 = No File(s) Found
    ; Author ........: SolidSnake <MetalGX91 at GMail dot com>
    ; Modified.......: BugFix (additional time stamp)
    ; Remarks .......: The array returned is one-dimensional and is made up as follows:
    ; $array[0] = Number of Files\Folders returned
    ; $array[1] = 1st File\Folder
    ; $array[2] = 2nd File\Folder
    ; $array[3] = 3rd File\Folder
    ; $array[n] = nth File\Folder
    ; ******** By using additional time stamp the array returned is two-dimensional:
    ; ******** $array[0][0] = Number of Files\Folders returned
    ; ******** $array[1][0] = 1st File\Folder, $array[1][1] = 1st time stamp
    ; ******** $array[2][0] = 2nd File\Folder, $array[2][1] = 2nd time stamp
    ; ******** $array[3][0] = 3rd File\Folder, $array[3][1] = 3rd time stamp
    ; ******** $array[n][0] = nth File\Folder, $array[n][1] = nth time stamp
    ; Related .......:
    ; Link ..........:
    ; Example .......: Yes
    ; Note ..........: Special Thanks to Helge and Layer for help with the $iFlag update speed optimization by code65536, pdaughe
    ; ===============================================================================================================================
    Func _FileListToArray($sPath, $sFilter = "*", $iFlag = 0, $iDate = -1)
    Local $hSearch, $sFile, $sFileList, $sDelim = "|"
    $sPath = StringRegExpReplace($sPath, "[\\/]+\z", "") & "" ; ensure single trailing backslash
    If Not FileExists($sPath) Then Return SetError(1, 1, "")
    If StringRegExp($sFilter, "[\\/:><\|]|(?s)\A\s*\z") Then Return SetError(2, 2, "")
    If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2) Then Return SetError(3, 3, "")
    $hSearch = FileFindFirstFile($sPath & $sFilter)
    If @error Then Return SetError(4, 4, "")
    While 1
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If ($iFlag + @extended = 2) Then ContinueLoop
    $sFileList &= $sDelim & $sFile
    WEnd
    FileClose($hSearch)
    If Not $sFileList Then Return SetError(4, 4, "")
    If $iDate = -1 Then
    Return StringSplit(StringTrimLeft($sFileList, 1), "|")
    Else
    Local $aContent = StringSplit(StringTrimLeft($sFileList, 1), "|")
    Local $aOut[$aContent[0]+1][2] = [[$aContent[0]]]
    For $i = 1 To $aContent[0]
    $aOut[$i][0] = $aContent[$i]
    $aOut[$i][1] = FileGetTime($sPath & $aContent[$i], $iDate, 1)
    Next
    Return $aOut
    EndIf
    EndFunc ;==>_FileListToArray

    [/autoit]
  • Webcam Bild Automatisch speichern

    • BugFix
    • 12. Dezember 2013 um 09:12
    Zitat von emilio20

    Wie kann ich das Bild in einem in einem Ringspeicher abspeichern ? So das immer das 10 Bild gelöscht wird ?


    Schreib dir eine Speicherfunktion:
    - Dateien im Ordner mit _FileListToArray einlesen
    - Zielordner hat weniger als 10 Bilddateien? ==> nur speichern
    - sonst ==> durch Array iterieren und älteste Datei ermitteln - diese löschen, neue Datei speichern

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™