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

Beiträge von TheLuBu

  • Programm zum automatischen einfügen einer fortlaufenden ID

    • TheLuBu
    • 10. Februar 2012 um 15:43

    Damit sollte es jetzt aber funktionieren

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    $List = _FileListToArray("E:\Datas ohne ID", "*", 1)

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

    For $i = 1 To $List[0]
    $hFile = FileOpen("E:\Datas ohne ID\" & $List[$i], 0)
    $Read = FileRead($hFile)
    FileClose($hFile)
    $hFile = FileOpen("E:\Datas mit ID\" & $List[$i], 2)
    $tmpsplit = StringSplit($Read, @CRLF)
    $Counter = 1
    For $k = 1 To $tmpsplit[0]
    If $tmpsplit[$k] = "" Then ContinueLoop
    If StringRight($tmpsplit[$k], 2) = ";*" Then
    $tmpsplit[$k] = StringTrimRight($tmpsplit[$k], 1)&"ID;*"
    EndIf
    If $tmpsplit[$k] = "*" Then
    $tmpsplit[$k] = StringFormat("%06d", $Counter) & @CRLF & "*"
    $Counter += 1
    EndIf
    FileWrite($hFile, $tmpsplit[$k]&@CRLF)
    Next
    FileClose($hFile)
    Next

    [/autoit]
  • SID Nachfrage? Vorausetzungen fehlen.

    • TheLuBu
    • 10. Februar 2012 um 12:24

    siehste mal, deinen Beitrag hab ich glatt überlesen ;)

  • GUICtrlSetImage Problem(e)

    • TheLuBu
    • 10. Februar 2012 um 12:22

    Hallo und Willkommen ;)

    Zu deinem Problem.... welches Problem? ^^
    Was für einen Fehler kriegst du?

    Was mir jetzt aber direkt aufgefallen ist, ist die Zeile 25

    [autoit]

    Dim $feldid[$id]=[GUICtrlCreatePic(@scriptdir&"\sys\grau.jpg",$x,$y,20,20)]

    [/autoit]

    Wird nicht funktionieren, probiers mal hiermit

    [autoit]


    $feldid[$id]=GUICtrlCreatePic(@scriptdir&"\sys\grau.jpg",$x,$y,20,20)

    [/autoit]
  • SID Nachfrage? Vorausetzungen fehlen.

    • TheLuBu
    • 10. Februar 2012 um 12:19

    Auch wenn du es schon gelöst hast, aber peethebee hat mal eine UDF für solche Zwecke geschrieben,
    die direkt bei der Eingabe überprüft, ob die Eingabe gültig ist
    RestrictControlRegExp-UDF - Fehleingaben direkt verhindern, Eingabentypen festlegen

  • ProcessClose wenn programm minimiert

    • TheLuBu
    • 10. Februar 2012 um 09:33

    Du könntest dir auch mit

    [autoit]

    WinList

    [/autoit]

    eine Liste aller Fenster zurück geben lassen und dieses Array dann durchsuchen, ob das Fenster da ist, wenn nicht dann nicht

    -EDIT-

    [autoit]

    #include <Array.au3>
    $notepad=Run("Notepad")

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

    Run("Easy.exe")
    Run("Bil.exe")
    Do
    Sleep(100)
    Until not ProcessExists("Notepad.exe")

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

    MsgBox(0,"","geht")
    While 1
    $List = WinList()
    $search = _ArraySearch($List, "Titel des Fensters",0,0,0,0,0,0)
    If $search = -1 Then ExitLoop
    Sleep (100)
    WEnd

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

    ProcessClose("easy.exe")
    ProcessClose("bil.exe")

    [/autoit]
  • Fenster in den Vordergrund holen und dominieren lassen

    • TheLuBu
    • 10. Februar 2012 um 09:15

    Schau dir mal

    [autoit]

    _WinAPI_SetWindowPos

    [/autoit]

    an :)

  • Windows-Ballon-Meldung in Taskleiste erkennen ?

    • TheLuBu
    • 9. Februar 2012 um 13:39
    [autoit]

    _SysTrayIconTitles()
    _SysTrayIconProcesses()
    _SysTrayIconPids()
    _SysTrayIconIndex($name, $mode=0)

    [/autoit]

    Mit den vier Befehlen musst du den Prozess suchen, der die Fehlermeldung erstellt (weiß ich nicht ^^)
    Sobald du den prozess raus hast, kannst du mit

    [autoit]

    $Tooltip = _SysTrayIconTooltip(_SysTrayIconIndex($Prozessname))

    [/autoit]


    dann den Tooltip abfragen

  • Programm zum automatischen einfügen einer fortlaufenden ID

    • TheLuBu
    • 7. Februar 2012 um 14:28

    Sollte so funktionieren

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    $List = _FileListToArray("E:\Datas ohne ID", "*", 1)

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

    For $i = 1 To $List[0]
    $hFile = FileOpen("E:\Datas ohne ID\" & $List[$i], 0)
    $Read = FileRead($hFile)
    FileClose($hFile)
    $hFile = FileOpen("E:\Datas mit ID\" & $List[$i], 2)
    $tmpsplit = StringSplit($Read, @CRLF)
    $Counter = 1
    For $k = 1 To $tmpsplit[0]
    If $tmpsplit[$k] = "" Then ContinueLoop
    If StringRight($tmpsplit[$k], 1) = "*" Then
    $tmpsplit[$k] = StringTrimRight($tmpsplit[$k], 1)&"ID;*"
    EndIf
    If $tmpsplit[$k] = "*" Then
    $tmpsplit[$k] = StringFormat("%06d", $Counter) & @CRLF & "*"
    $Counter += 1
    EndIf
    FileWrite($hFile, $tmpsplit[$k]&@CRLF)
    Next
    FileClose($hFile)
    Next

    [/autoit]
  • Windows-Ballon-Meldung in Taskleiste erkennen ?

    • TheLuBu
    • 7. Februar 2012 um 13:46

    Mit der SysTray_UDF das TrayIcon auslesen und auf einen veränderten Tooltip warten :)

  • DriveGetDrive findet keine Netzlaufwerke

    • TheLuBu
    • 6. Februar 2012 um 15:35

    Die laufwerke sind verfügbar, IPs bleiben immer gleich.
    Zugegriffen wird von anderen Programmen von mir, wohl direkt über die IP, nicht über den buchstaben.
    Habe es grade mit Buchstaben probiert, kriege da eine Fehlermeldung bei FileExists

    -EDIT-
    habe den PC neugestartet (keine Veränderung)
    Netzlaufwerke getrennt und neu Verbunden (keine Änderung)
    Netzlaufwerke getrennt, neu gestartet und dann verbunden (keine Änderung)

  • DriveGetDrive findet keine Netzlaufwerke

    • TheLuBu
    • 6. Februar 2012 um 10:48

    So sieht es bei mir aus wenn ich DriveGetDrive("All") abfrage

    Spoiler anzeigen

    [Blockierte Grafik: http://s1.directupload.net/images/120206/mn6j783r.jpg]

  • DriveGetDrive findet keine Netzlaufwerke

    • TheLuBu
    • 6. Februar 2012 um 10:27

    Halli ihr lieben, vielleicht hatte ja schon jemand von euch das Problem und hat eine Lösung ;)

    Ich möchte über

    [autoit]

    DriveGetDrive("ALL")

    [/autoit]

    die Laufwerke eines Rechners auslesen.
    Es werden bei mir C: / D: und E: angezeigt (Festplatten und CD Laufwerk) aber kein Netzlaufwerk (3 Stück)
    Auch wenn ich einen anderen Filter ("NETWORK", "UNKNOWN o.Ä) kriege ich die Netzlaufwerke nicht angezeigt.

    Ich benutze Win 7 Prof (32 Bit) falls das wichtig ist :)

  • 2 dauernde Schleifen für SingleSignOn

    • TheLuBu
    • 6. Februar 2012 um 09:49
    Spoiler anzeigen
    [autoit]

    $timer = TimerInit()
    While 1
    $ret2 = WinActive("[CLASS:TFrmPopErrorDlg]", "")
    If Not $ret2 = 0 Then
    MsgBox(0, "Fehler aufgetreten", "Fehler aufgetreten")
    Send("{ESC}")
    Send("{ESC}")
    Exit
    Else
    EndIf
    $ret1 = WinActive("[CLASS:TMessageForm]", "")
    If Not $ret1 = 0 Then
    MsgBox(0, "Fehler aufgetreten", "Fehler aufgetreten")
    Send("{ESC}")
    Send("{ESC}")
    Exit
    Else
    EndIf
    If TimerDiff($timer) >= 5000 Then ExitLoop ; nach 5 sekunden verlasse die schleife
    WEnd

    [/autoit]
  • [UDF] Logging.au3

    • TheLuBu
    • 2. Februar 2012 um 14:25

    Wäre es möglich, dazu auch ein kleines Beispiel zu posten, da ich noch nicht weiß, wie man deine Funktion einsetzen soll?

  • 100000 Excel Zellen Püfen

    • TheLuBu
    • 31. Januar 2012 um 15:23

    Speichere die Datei als csv und lies sie in ein Array, such mal nach _CSV2Array da ist schon eine Fertige Funktion.
    Ansonsten könntest du die Datei in eine Datenbank importieren (phpmyadmin kann es, MSSQL hat da auch ne Funktion für) und dann mit SQL Befehelen arbeiten

    Hier mal ein Beispiel mit SQLite

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    Local $aResult, $iRows, $iColumns
    $Allarray = _CSV2Array("Datei Nr 1.csv", ";")
    $Sucharray = _CSV2Array("Suchdatei.csv", ";")
    _SQLite_Startup()
    _SQLite_Open()
    $columns = ""
    For $i = 0 To UBound($Allarray, 2) - 1
    $columns &= $i & " VARCHAR(255),"
    Next
    _SQLite_Exec(-1, "CREATE TABLE Search (" & StringTrimRight($columns, 1) & ");")
    $aSql = 'Begin Transaction ;' & @CRLF
    For $i = 1 To UBound($Allarray) - 1
    $values = ""
    For $k = 0 To UBound($Allarray, 2) - 1
    $values &= _SQLite_Escape($Allarray[$i][$k]) & ","
    Next
    $aSql &= "INSERT INTO Search VALUES (" & StringTrimRight($values, 1) & ");" & @CRLF
    Next
    _SQLite_Exec(-1, $aSql)
    For $i = 1 To UBound($Sucharray) - 1
    _SQLite_GetTable2d(-1, "SELECT * FROM Search WHERE 1 = " & _SQLite_Escape($Sucharray[$i][0]) & ";", $aResult, $iRows, $iColumns)
    _ArrayDisplay($aResult)
    Next

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

    Func _CSV2Array($hFile, $cSeperator = "auto", $bFilterString = True, $iColumnMode = 0)
    Local $s = FileRead($hFile)
    If @error Then Return SetError(1)
    If $cSeperator = Default Then $cSeperator = "auto"
    If Not $cSeperator Then $cSeperator = Opt("GUIDataSeparatorChar")
    ; searching the line-seperator and splitting the lines into an array
    Local $aLines
    If StringInStr($s, @CRLF) Then
    $aLines = StringSplit($s, @CRLF, 1)
    ElseIf StringInStr($s, @CR) Then
    $aLines = StringSplit($s, @CR)
    Else
    $aLines = StringSplit($s, @LF)
    EndIf
    ; searching the delimiter in the first line
    Local $aTMP
    If $cSeperator = "auto" Then
    Local $iMax = 0
    Local $iC[5] = [0, 0, 0, 0, 0]
    Local $sC[4] = [";", ",", @TAB, "|"]
    $aTMP = StringRegExp($aLines[1], ";", 3)
    If Not @error Then $iC[0] = UBound($aTMP)
    $aTMP = StringRegExp($aLines[1], ",", 3)
    If Not @error Then $iC[1] = UBound($aTMP)
    $aTMP = StringRegExp($aLines[1], "\t", 3)
    If Not @error Then $iC[2] = UBound($aTMP)
    $aTMP = StringRegExp($aLines[1], "\|", 3)
    If Not @error Then $iC[3] = UBound($aTMP)
    ;~ $aTMP = StringRegExp($aLines[1], "[ ]", 3)
    ;~ If Not @error Then $iC[4] = UBound($aTMP)
    For $i = 0 To UBound($sC) - 1
    If $iC[$i] > $iMax Then
    $iMax = $iC[$i]
    $cSeperator = $sC[$i]
    EndIf
    Next
    EndIf
    ; creating 2-dim array based on the number of data in the first line
    $aTMP = StringSplit($aLines[1], $cSeperator)
    Local $iCol = $aTMP[0]
    Local $aRet[$aLines[0]][$iCol]
    ; splitting and filling the lines
    For $i = 1 To $aLines[0]
    $aTMP = StringSplit($aLines[$i], $cSeperator)
    If @error Then ContinueLoop
    If $aTMP[0] > $iCol Then
    Switch $iColumnMode
    Case 0
    Return SetError(2, $i)
    Case 1
    ReDim $aRet[$aLines[0] - 1][$aTMP[0]]
    Case 2
    $aTMP[0] = $iCol
    Case Else
    Return SetError(3)
    EndSwitch
    EndIf
    For $j = 1 To $aTMP[0]
    $aTMP[$j] = StringStripWS($aTMP[$j], 7)
    If $bFilterString Then ; removing leading and trailing " or '
    $aTMP[$j] = StringRegExpReplace($aTMP[$j], '^("|'')(.*?)\1$', '$2')
    EndIf
    $aRet[$i - 1][$j - 1] = $aTMP[$j]
    Next ; /cols
    Next ; /lines
    Return $aRet
    EndFunc ;==>_CSV2Array

    [/autoit]
  • AD Domänenpasswort von Standalone PC ändern ?

    • TheLuBu
    • 31. Januar 2012 um 14:44

    hat zwar jetzt nichts mit Autoit zu tun, aber du kannst ja denke ich mal über RemoteDesktop auf einen anderen PC in der Domäne zugreifen, dich dort anmelden und das Passwort ändern. Reichen würde dabei ja auch eine Virtualisierung

  • Prüfen ob eine Programm eine Datei geöffnet hat

    • TheLuBu
    • 31. Januar 2012 um 13:54

    Du könntest mit

    [autoit]

    FileGetTime ( "filename" [, option [, format]] )

    [/autoit]

    prüfen, wann die Datei das letzte mal geöffnet wurde, das ganze in ner Schleife mit Timer. Wenn sich das Datum dann innerhalb von X Sekunden geändert hat, wird sie grade bearbeitet.

  • AD Domänenpasswort von Standalone PC ändern ?

    • TheLuBu
    • 31. Januar 2012 um 13:49

    Dann wäre jetzt die Frage, wofür du ein AD Konto hast, wenn dein PC nicht in der Domäne ist 8|

  • CamelCase Navigation

    • TheLuBu
    • 27. Januar 2012 um 14:49

    Ich hab es jetzt mal mit dem Clipboard gemacht, ist nur ein Beispiel, funktioniert auch aber ist eigentlich nur ein Workarround, da es relativ langsam ist.
    Ich denke mal, das die die Scripting Leute wie Bugfix da andere Methoden kennen ;)

    Der Hotkey

    [autoit]

    HotKeySet("^{LEFT}", "Searchleft")

    [/autoit]


    funktioniert übrigens nicht, die STRG Taste bleibt dadurch hängen

    Spoiler anzeigen
    [autoit]

    HotKeySet("r", "Searchright")
    HotKeySet("e", "Searchleft")

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

    While 1
    Sleep(10)
    WEnd

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

    Func Searchright()
    Local $preopt, $originalclipboard, $Clipget
    $preopt = Opt("KeyDownDelay")
    Opt("KeyDownDelay", 0)
    $originalclipboard = ClipGet()
    Send("{SHIFTDOWN}")
    Send("{Right}")
    Send("{SHIFTUP}")
    Send("^c")
    Send("^c")
    $Clipget = Asc(ClipGet())
    If $Clipget > 96 And $Clipget < 123 Then
    While 1
    Send("{Left}{Right}")
    Send("{SHIFTDOWN}")
    Send("{Right}")
    Send("{SHIFTUP}")
    Send("^c")
    Send("^c")
    $Clipget = Asc(ClipGet())
    Switch $Clipget
    Case 65 To 90
    Send("{LEFT}")
    ExitLoop
    Case 13
    Send("{LEFT}")
    ExitLoop
    Case 0
    ExitLoop
    EndSwitch
    ClipPut("")
    WEnd
    ElseIf $Clipget > 64 And $Clipget < 91 Then
    While 1
    Send("{Left}{Right}")
    Send("{SHIFTDOWN}")
    Send("{Right}")
    Send("{SHIFTUP}")
    Send("^c")
    Send("^c")
    $Clipget = Asc(ClipGet())
    Switch $Clipget
    Case 97 To 122
    Send("{LEFT}")
    ExitLoop
    Case 13
    Send("{LEFT}")
    ExitLoop
    Case 0
    ExitLoop
    EndSwitch
    WEnd
    EndIf
    ClipPut($originalclipboard)
    Opt("KeyDownDelay", $preopt)
    EndFunc ;==>Searchright

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

    Func Searchleft()
    Local $originalclipboard, $Clipget, $preopt
    $originalclipboard = ClipGet()
    $preopt = Opt("KeyDownDelay")
    Opt("KeyDownDelay", 0)
    Send("{SHIFTDOWN}")
    Send("{LEFT}")
    Send("{SHIFTUP}")
    Send("^c")
    Send("^c")
    $Clipget = Asc(ClipGet())
    If $Clipget > 96 And $Clipget < 123 Then
    While 1
    Send("{RIGHT}{LEFT}")
    Send("{SHIFTDOWN}")
    Send("{LEFT}")
    Send("{SHIFTUP}")
    Send("^c")
    Send("^c")
    $Clipget = Asc(ClipGet())
    Switch $Clipget
    Case 65 To 90
    Send("{RIGHT}")
    ExitLoop
    Case 13, 32
    Send("{RIGHT}")
    ExitLoop
    Case 0
    ExitLoop
    EndSwitch
    ClipPut("")
    WEnd
    ElseIf $Clipget > 64 And $Clipget < 91 Then
    While 1
    Send("{RIGHT}{LEFT}")
    Send("{SHIFTDOWN}")
    Send("{LEFT}")
    Send("{SHIFTUP}")
    Send("^c")
    Send("^c")
    $Clipget = Asc(ClipGet())
    Switch $Clipget
    Case 97 To 122
    Send("{RIGHT}")
    ExitLoop
    Case 13, 32
    Send("{RIGHT}")
    ExitLoop
    Case 0
    ExitLoop
    EndSwitch
    WEnd
    EndIf
    ClipPut($originalclipboard)
    Opt("KeyDownDelay", $preopt)
    EndFunc ;==>Searchleft

    [/autoit]
  • Backup mittels robocopy und autoit ?

    • TheLuBu
    • 27. Januar 2012 um 14:38

    Wenn du ein Leerzeichen, wie ich es im vorherigen Post erwähnt habe, setzt, dann klappt auch dein Script ;)

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™