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

Beiträge von autoBert

  • Array durchsuchen und Zählen

    • autoBert
    • 10. Februar 2011 um 21:49

    Hallo gmmg,

    teste dieses Skript:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <file.au3>
    ;#include <Excel.au3>

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

    Dim $aRecords, $avArray_01[1], $avArray_xx[1], $aC, $aCD
    Local $z

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

    #CS $FileList=_FileListToArray(@DesktopDir,"*.xml",1)
    If @Error=1 Then
    MsgBox (0,"","No Folders Found.")
    Exit
    EndIf
    If @Error=4 Then
    MsgBox (0,"","No Files Found.")
    Exit
    EndIf
    _ArrayDisplay($FileList,"$FileList")

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

    ;erstelle excel dokument
    Local $oExcel = _ExcelBookNew() ;Create new book, make it visible

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

    For $z = 1 to $FileList[0]
    ;MsgBox(0,"", $FileList[$z])
    $eintrag = ""
    _test()
    Next
    #CE
    ;erstelle excel dokument
    ;Local $oExcel = _ExcelBookNew() ;Create new book, make it visible
    _test()

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

    Func _test()

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

    If Not _FileReadToArray(@DesktopDir & "\index2.jsp2.xml", $aRecords) Then
    MsgBox(4096, "Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf
    For $x = 1 To $aRecords[0]
    $var = $aRecords[$x]
    $var = StringReplace($var, " ", "")
    $var = StringStripCR($var)
    $var = StringStripWS($var, 3)
    ;Msgbox(0,'Record:' & $x, $aRecords[$x])

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

    If StringLeft($var, 6) = "<MN20>" Then
    $var01 = $var
    $var01 = StringTrimRight($var01, 7)
    ;Msgbox(0,'Record:' & $x, $var01)
    $var01 = StringTrimLeft($var01, 6)
    ;Msgbox(0,'Record:' & $x, $var01)
    EndIf
    If StringLeft($var, 10) = "<DESTNAME>" Then
    $var02 = $var
    $var02 = StringTrimRight($var02, 11)
    $var02 = StringTrimLeft($var02, 10)
    ;Msgbox(0,'Record:' & $x, $var01 & "|" & $var02)
    _ArrayAdd($avArray_01, $var01 & "|" & $var02)
    EndIf
    Next

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

    _ArrayDelete($avArray_01, 0)
    ;_ArrayDisplay($avArray_01)

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

    Local $aC = _ArrayUnique($avArray_01)
    _ArrayDelete($aC, 0)
    _ArraySort($aC)
    ;_ArrayDisplay($aC)

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

    Dim $avArray_xx[UBound($aC)][2]
    For $i = 0 To UBound($aC) - 1
    $eintrag = StringSplit($aC[$i], "|")
    $avArray_xx[$i][0] = $eintrag[1]
    $avArray_xx[$i][1] = $eintrag[2]
    Next
    ;_ArrayDisplay($avArray_xx, "2D")

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

    $aStringed = _ArrayUnique($avArray_xx)
    _ArrayDelete($aStringed, 0)
    ;_ArrayDisplay($aStringed, "before Stringed")
    For $i = 0 To UBound($aStringed) - 1
    ConsoleWrite($i & @CRLF)
    $aFound = _ArrayFindAll($avArray_xx, $aStringed[$i])
    ;_ArrayDisplay($aFound)
    For $j = 0 To UBound($aFound) - 1
    $iCol = $aFound[$j]
    $aStringed[$i] = $aStringed[$i] & "|" & $avArray_xx[$iCol][1]
    Next
    Next
    _ArrayDisplay($aStringed, "Fertig")
    EndFunc ;==>_test

    [/autoit]

    Ergebnis ist ein 1D Array das durch "|" getrennte Einträge hat: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    mfg autoBert

  • Array durchsuchen und Zählen

    • autoBert
    • 10. Februar 2011 um 20:47

    Hallo gmmg,

    muss dich leider enttäuschen, ich habe kein Excel installiert, aber für XML gibt es ....\AutoIt3\SciTE\cSnippet\includes\_XMLDomWrapper.au3 damit könnte es vielleicht einfacher gehen. Doch damit habe ich mangels XML-Kenntnissen noch nichts gemacht,

    Edit: da dies nicht zum eigentlichen Thema gehört würde ich an deiner Stelle einen neuen Thread eröffnen

    mfg autoBert

  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 20:12

    Hallo lupos,

    da das Skrip unbeaufsichtigt läuft bekommst du (egal wie du dafür sorgst dass die MsgBox [*] verschwindet) deine Rückmeldung über die EMail. Wenn du dokumentieren möchtest wann das Programm gesendet bzw. nicht gesendet hat kannt du ja stattdessen

    [autoit]

    _FileWriteLog

    [/autoit]

    einbauen.

    [*]kann ja nur noch eine der beiden sein:

    [autoit]

    If $Response = 1 Then
    MsgBox(0, "Success!", "Mail sent")
    Else
    MsgBox(0, "Error!", "Mail failed with error code " & $err)
    EndIf

    [/autoit]

    alle anderen habe ich ja schon herausgenommen,

    mfg autoBert

  • Textdatei...Verändern? :D

    • autoBert
    • 10. Februar 2011 um 19:58

    Du hast vergessen die test.txt einzustellen, denn warum erst eine Zwischendatei (final.txt) erzeugen, wenn man es in einem Aufwasch erledigen kann.

    Wenn du willst das man dir hilft solltest du diese einstellen,

    mfg autoBert

  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 19:46
    Zitat von autoBert

    zu 3. wenn du deine eigenen MsgBoxen meinst, dann nimm den TimeOut-Parameter


    wobei ich nicht verstehe warum du überhaupt die MsgBoxen drinnen hast,

    mfg autoBert

  • Textdatei...Verändern? :D

    • autoBert
    • 10. Februar 2011 um 19:38

    Hallo Alisamix,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deinem Problem:

    • mit [autoit]_FileReadToArray[/autoit] die ganze Datei in ein Array einlesen
    • ein 2D. Array mit 1. Dimension gleich Anzahl der Element des Ursprungsarrays 2. Dimension mind. 2
    • in einer For ... Next Schleife das Ursprungsarray durchgehen, in der Schleife mit [autoit]StringSplit[/autoit] jede Ursprungszeile spliten (Trennzeichen=^). Die (gewünschten) SplitResults in das 2. Array eintragen
    • das 2D Array mit [autoit]_ArraySort[/autoit] sortieren.
    • in ein weiteres Array mit [autoit]_ArrayUnique[/autoit] die User ausgeben lassen.
    • in einer [autoit]For .. Next[/autoit] - Schleife das UserArray durchehen und darin für jeden User mit [autoit]_ArrayFindAll[/autoit] alle Elemente für den jeweiligen User suchen diese mit Stringfunktionen zusammenstringen und in die Textdatei schreiben

    mfg autoBert

  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 18:21

    Hallo lupos,

    Duplicate FunctionsName bedutet, dass eine Funktion nur einmal existieren darf. (Highländer-Prinzip = Es kann nur einen geben). Es ist auch unnötig ein und die gleiche Funktion mehrmals zu erstellen, sie sind ja gerade dafür gemacht eine Folge immer wiederkehrender Anweisungen zuammenzufassen und bei Bedarf zu verwenden. Du solltest dich also dringensd mit den Grundlagen von AutoIt bechäftigen, sprich Hilfe durcharbeiten.

    So sollte dein Skript funktionieren:

    Spoiler anzeigen
    [autoit]

    [autoit
    ] #include < INet.au3 >
    #include <string.au3>

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

    ;Ausrechnung des freien Speichers auf Laufwerk C:\ & D:\ auf dem Server //COESSS001
    $sInfoCOESSS001C = _DriveInfo("\\COESSS001\c$")
    $sInfoCOESSS001D = _DriveInfo("\\COESSS001\d$")

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

    ;Ausrechnung des freien Speichers auf Laufwerk C:\ & D:\ auf dem Server //COESSS002
    $sInfoCOESSS002C = _DriveInfo("\\COESSS002\c$")
    $sInfoCOESSS002D = _DriveInfo("\\COESSS002\d$")

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

    ;Ausrechnung des freien Speichers auf Laufwerk C:\ & D:\ auf dem Server //COESSS003
    $sInfoCOESSS003C = _DriveInfo("\\COESSS003\c$")
    $sInfoCOESSS003D = _DriveInfo("\\COESSS003\d$")

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

    ;Ausrechnung des freien Speichers auf Laufwerk C:\ & D:\ auf dem Server //COESSS004
    $sInfoCOESSS004C = _DriveInfo("\\COESSS004\c$")
    $sInfoCOESSS004D = _DriveInfo("\\COESSS004\d$")

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

    ;Ausrechnung des freien Speichers auf Laufwerk C:\ & D:\ auf dem Server //COESSS005
    $sInfoCOESSS005C = _DriveInfo("\\COESSS005\c$")
    $sInfoCOESSS005D = _DriveInfo("\\COESSS005\d$")

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

    ;Ausrechnung des freien Speichers auf Laufwerk C:\ & D:\ auf dem Server //COESSS007
    $sInfoCOESSS007C = _DriveInfo("\\COESSS007\c$")
    $sInfoCOESSS007D = _DriveInfo("\\COESSS007\d$")

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

    ;Ausrechnung des freien Speichers auf Laufwerk C:\ & D:\ auf dem Server //COESSS008
    $sInfoCOESSS008C = _DriveInfo("\\COESSS008\c$")
    $sInfoCOESSS008D = _DriveInfo("\\COESSS008\d$")

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

    ;Ausrechnung des freien Speichers auf Laufwerk C:\ & D:\ auf dem Server //COESSS009
    $sInfoCOESSS009C = _DriveInfo("\\COESSS009\c$")
    $sInfoCOESSS009D = _DriveInfo("\\COESSS009\d$")
    ; E-Mail Senden
    $s_SmtpServer = "l"
    $s_FromName = ""
    $s_FromAddress = ""
    $s_ToAddress = ""
    $s_Subject = "Free Disk Space"
    Dim $as_Body[16]
    $as_Body[0] = "Freier Speicherplatz auf COESSS001 C:\ :" & $InfoCOESSS001C & @CRLF
    $as_Body[1] = "Freier Speicherplatz auf COESSS001 D:\ :" & $InfoCOESSS001D & @CRLF
    $as_Body[2] = "Freier Speicherplatz auf COESSS002 C:\ :" & $INfoCOESSS002C & @CRLF
    $as_Body[3] = "Freier Speicherplatz auf COESSS002 D:\ :" & $InfoCOESSS002D & @CRLF
    $as_Body[4] = "Freier Speicherplatz auf COESSS003 C:\ :" & $InfoCOESSS003C & @CRLF
    $as_Body[5] = "Freier Speicherplatz auf COESSS003 D:\ :" & $InfoCOESSS003D & @CRLF
    $as_Body[6] = "Freier Speicherplatz auf COESSS004 C:\ :" & $InfoCOESSS004C & @CRLF
    $as_Body[7] = "Freier Speicherplatz auf COESSS004 D:\ :" & $InfoCOESSS004D & @CRLF
    $as_Body[8] = "Freier Speicherplatz auf COESSS005 C:\ :" & $InfoCOESSS005C & @CRLF
    $as_Body[9] = "Freier Speicherplatz auf COESSS005 D:\ :" & $InfoCOESSS005D & @CRLF
    $as_Body[10] = "Freier Speicherplatz auf COESSS007 C:\ :" & $InfoCOESSS007C & @CRLF
    $as_Body[11] = "Freier Speicherplatz auf COESSS007 D:\ :" & $InfoCOESSS007D & @CRLF
    $as_Body[12] = "Freier Speicherplatz auf COESSS008 C:\ :" & $InfoCOESSS008C & @CRLF
    $as_Body[13] = "Freier Speicherplatz auf COESSS008 D:\ :" & $InfoCOESSS008D & @CRLF
    $as_Body[14] = "Freier Speicherplatz auf COESSS009 C:\ :" & $InfoCOESSS009C & @CRLF
    $as_Body[15] = "Freier Speicherplatz auf COESSS009 D:\ :" & $InfoCOESSS009D & @CRLF
    $Response = _INetSmtpMail($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, @ComputerName, -1)
    $err = @error
    If $Response = 1 Then
    MsgBox(0, "Success!", "Mail sent")
    Else
    MsgBox(0, "Error!", "Mail failed with error code " & $err)
    EndIf

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

    Func _DriveInfo($sDriveCOESSS001)
    $nTotal = DriveSpaceTotal($sDriveCOESSS001) / 1024
    $nFree = DriveSpaceFree($sDriveCOESSS001) / 1024
    $nPer = $nFree / $nTotal * 100
    Return StringFormat("%.2f GB frei von %.2f GB = %.2f %", $nFree, $nTotal, $nPer)
    vorhergehende Zeile löschen
    EndFunc ;==>_DriveInfo

    [/autoit]

    mfg autoBert

  • Dateien nach Kriterien durchsuchen

    • autoBert
    • 10. Februar 2011 um 17:54
    Zitat von blackdeath911

    Oder gibt es da auch so ne tolle funktion wie die mit dem nur dateinamen? :)

    Zitat

    _PathSplit

    Teilt einen Pfad in Laufwerk, Verzeichnis, Dateinamen und Dateierweiterung auf. Falls ein Teil des Pfades fehlt, wird ein leerer String gesetzt.

    Quelle: dt. Hilfe

    mfg autoBert

  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 17:35

    Hallo lupos,

    nein dies ist nur ein Skript zur Demo von StringFormat. Für deine Zwecke wäre dies etwa leichter umzusetzen (hoffe ich):

    [autoit]

    #include <string.au3>

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

    $sInfoC = _DriveInfo("c:")
    MsgBox(0,"Driveinfo für C:",$sInfoC,5)
    $sInfoD = _DriveInfo("d:")
    MsgBox(0,"Driveinfo für D:",$sInfoD,5)

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

    Func _DriveInfo($sDrive)
    $nTotal = DriveSpaceTotal($sDrive) / 1024
    $nFree = DriveSpaceFree($sDrive) / 1024
    $nPer = $nFree / $nTotal * 100
    Return StringFormat("%.2f GB frei von %.2f GB = %.2f %", $nFree, $nTotal, $nPer)
    EndFunc

    [/autoit]

    die gespeicherten Infos kannst du dann in deine Email einbauen. Den Ret solltest du jetzt aber alleine hinbekommen,

    mfg autoBert

  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 17:04

    Ineluki,

    hät ich gerne

    also jetzt noch einmal ganz korrekt

    [autoit]

    #include <string.au3>

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

    $nTotal = DriveSpaceTotal("c:") / 1024
    $nFree = DriveSpaceFree("c:") / 1024
    $nPer = $nFree / $nTotal * 100
    ConsoleWrite(StringFormat("%.2f GB frei von %.2f GB = %.2f %", $nFree, $nTotal, $nPer) & @CRLF)

    [/autoit]


    ergibt

    Code
    65.20 GB frei von 144.17 GB = 45.23 %

    in der Konsolenasgabe
    mfg autoBert

  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 16:57

    Hallo lupos,

    was funktioniert an diesem kleinen Skript nicht:

    [autoit]

    #include <string.au3>

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

    $nTotal = DriveSpaceTotal("c:")
    $nFree = DriveSpaceFree("c:")
    $nPer = $nFree / $nTotal * 100
    ConsoleWrite(StringFormat("%.2f GB frei von %.2f GB = %.2f %", $nFree, $nTotal, $nPer) & @CRLF)

    [/autoit]

    hast du es überhaupt gestartet, wenn ja welche Fehlermeldung?
    Ich erhalte wie gewünscht folgende Zeile in der Konsole ausgegeben:

    Code
    66863.46 GB frei von 147628.56 GB = 45.29 %

    Oder scheiterst du beim einbauen in dein Skript?

    mfg autoBert

  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 16:43

    Hallo lupos,

    den Dreisatz wirst du wohl können, aber hier ein Beispiel

    [autoit]

    #include <string.au3>

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

    $nTotal = DriveSpaceTotal("c:")
    $nFree = DriveSpaceFree("c:")
    $nPer = $nFree / $nTotal * 100
    ConsoleWrite(StringFormat("%.2f GB frei von %.2f = %2f %", $nFree, $nTotal, $nPer) & @CRLF)

    [/autoit]
  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 16:29
    Zitat von autoBert

    zu 2. schau dir

    [autoit]

    StringFormat

    [/autoit]

    an

    lass am besten das Beispiel aus der Hilfe laufen. Und da dies ein sehr wichtiger Befehl ist solltest du auch solange Übungen dazu machen bis du es verstanden hast,

    mfg autoBert

  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 15:52

    Hallo lupos,

    zu 1. dann hänge auch ein Zeile mit einem Leerzeichen an
    zu 2. kann keine Infos eines "format Control" erkennen, lass das Beispiel in der Hilfe laufen
    zu 3. wenn du deine eigenen MsgBoxen meinst, dann nimm den TimeOut-Parameter

    mfg autoBert

  • FunSkin UDF V0.0.0.4

    • autoBert
    • 10. Februar 2011 um 15:37

    Hallo funkey,

    ich bekomme folgende Fehlermeldung:

    Code
    >"C:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Programme\AutoIt3\Downloads\FunKey\FunSkin\FunSkin Example.au3" /autoit3dir "C:\Programme\AutoIt3" /UserParams    
    +>15:36:33 Starting AutoIt3Wrapper v.2.0.1.24    Environment(Language:0407  Keyboard:00000407  OS:WIN_XP/Service Pack 3  CPU:X86 OS:X86)
    >Running AU3Check (1.54.19.0)  from:C:\Programme\AutoIt3
    C:\Programme\AutoIt3\Downloads\FunKey\FunSkin\FunSkin Example.au3(48,39) : WARNING: $hHook: possibly used before declaration.
    		$RET = _WinAPI_CallNextHookEx($hHook,
    		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Downloads\FunKey\FunSkin\FunSkin Example.au3(48,39) : ERROR: $hHook: undeclared global variable.
    		$RET = _WinAPI_CallNextHookEx($hHook,
    		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Downloads\FunKey\FunSkin\FunSkin Example.au3 - 1 error(s), 1 warning(s)
    !>15:36:35 AU3Check ended.rc:2
    >Exit code: 0    Time: 4.669
    Alles anzeigen

    Edit: wenn ich die Beispiele einzeln manuel starte sehen alle in Ordnung aus, setze ich sie aber hintereinander ist nur dass 1. in Ordnung

    mfg autoBert

    mfg autoBert

  • Offene Fragen

    • autoBert
    • 10. Februar 2011 um 15:30

    Hallo lupos,

    echte Daten haben in einem Skript nichts verloren, also entferne die Absender und Empfänger-Mail Adressen.

    zu 1. funktioniert ein weiteres

    [autoit]

    Dim $as_Body[17]

    [/autoit]

    nicht?
    zu 2. schau dir

    [autoit]

    StringFormat

    [/autoit]

    an
    zu 3. sehe kein einziges send

    mfg autoBert

  • Zugehöriges Fenster zu Prozess "On Top" schalten

    • autoBert
    • 10. Februar 2011 um 15:15

    Hallo baseementmedia,

    schau dir dazu auch Prüfen welche Prozessen welchen State haben an,

    mfg autoBert

  • FunSkin UDF V0.0.0.4

    • autoBert
    • 9. Februar 2011 um 23:11

    Hallo funkey,

    ich habe es soeben unter Win XP SP3 getetestet. Beim Skin2
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    und Skin3
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    ist der Close-Button des FileOpendialogs falsch positioniert. Sieht aber ansonsten gut aus,

    mfg autoBert

    Dateien

    23_FunSkinned FileOpenDialog.jpg 97,79 kB – 0 Downloads
  • Funktions Optimierung und 1 Fehler finden.

    • autoBert
    • 9. Februar 2011 um 20:49

    Hallo douky,

    dieses Skript kann man anhand deiner Infos nicht nachvollziehen und es erscheint mir eine Ergänzungs-Lösung zu einer Individualsoftware zu sein.

    mfg autoBert

  • GuiCtrlCreateMenueItem HILFE

    • autoBert
    • 9. Februar 2011 um 20:42

    Hallo i7Clock,

    dein Skriptbeispiel ist wertlos, es hat ja noch nicht einmal eine GUI. Hier ein Beispiel in dem die Menüeinträge dynamisch erstellt werden:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <Constants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    Opt('GUIOnEventMode', 1)
    Opt('TrayOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    Opt("TrayIconHide", 1) ;hide the Trayicon

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

    Global $aUsers[1], $aMenuItems[100]
    $aUsers[0] = 0

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

    $hGui = GUICreate('Test',575,334,100,100)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')
    Global $hMnuMain = GUICtrlCreateMenu("&Benutzer")
    _addUser()
    _CheckUsers()

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

    ;$idBtnExit = GUICtrlCreateButton("be&enden",500,275,60,20)
    ;GUICtrlSetOnEvent(-1,'_Exit')

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

    GUISetState()
    AdlibRegister("_checkUsers")
    While 1
    Sleep(125)
    WEnd

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

    Func _addUser()
    if $aUsers[0] > 19 Then Return
    AdlibUnRegister("_addUser")
    $sNewUser = chr(Random(65,90,1))
    _ArrayAdd($aUsers,$sNewUser)
    $aUsers[0]=UBound($aUsers) -1
    ;_ArrayDisplay($aUsers)
    AdlibRegister("_addUser",Random(1250,3333,1))
    EndFunc

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

    Func _delUser()
    if $aUsers[0] < 5 Then Return
    AdlibUnRegister("_delUser")
    _ArrayDelete($aUsers,Random(1,UBound($aUsers)-1))
    $aUsers[0]=UBound($aUsers) -1
    ;_ArrayDisplay($aUsers)
    AdlibRegister("_delUser",Random(3333,9999,1))
    EndFunc

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

    Func _CheckUsers()
    ;_ArrayDisplay($aMenuItems)
    for $i = 1 to UBound($aMenuItems) -1
    GUICtrlDelete($aMenuItems[$i])
    $aMenuItems[$i] = -999
    Next
    _ArraySort($aUsers)
    ;_ArrayDisplay($aUsers)
    for $i = 1 to $aUsers[0]
    $aMenuItems[$i] = GUICtrlCreateMenuItem($aUsers[$i], $hMnuMain)
    GUICtrlSetOnEvent(-1,"_ShowUser")
    Next
    EndFunc

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

    Func _ShowUser()
    AdlibUnRegister("_addUser")
    AdlibUnRegister("_delUser")
    ConsoleWrite(@GUI_CtrlId &@CRLF);& $aUsers[@GUI_CtrlId] & @CRLF)
    ConsoleWrite("Benutzer: " & $aUsers[@GUI_CtrlId-3] & @CRLF)
    ;Achtung der Wert der von @GiCtrlId abgezogen weerden muss ist abhängig von der Anzahl zuvor erstelleter Controlls
    ;_ArrayDisplay($aUsers)
    AdlibRegister("_addUser",Random(1250,3333,1))
    AdlibRegister("_delUser",Random(3333,9999,1))
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

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

    Falls du damit nicht zurecht kommst poste ein Beispielskript, das lauffähig ist und in dem sich das Array, dass die Benutzer enthält zufällig füllt/verändert,

    mfg autoBert

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™