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

  • outlook

    • BugFix
    • 14. Januar 2007 um 20:40

    Hier die Funktion für SMTP-Mail von Jos:

    Spoiler anzeigen
    [autoit]

    Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", _
    $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "",$IPPort=25, $ssl=0)
    $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
    Local $i_Error = 0
    Local $i_Error_desciption = ""
    If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
    If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
    $objEmail.HTMLBody = $as_Body
    Else
    $objEmail.Textbody = $as_Body & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
    Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
    For $x = 1 To $S_Files2Attach[0]
    $S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
    If FileExists($S_Files2Attach[$x]) Then
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    Else
    $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
    SetError(1)
    return 0
    EndIf
    Next
    EndIf
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    ;Authenticated SMTP
    If $s_Username <> "" Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    If $Ssl Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Sent the Message
    $objEmail.Send
    if @error then
    SetError(2)
    return $oMyRet[1]
    EndIf
    EndFunc ;==>_INetSmtpMailCom

    [/autoit]


    Arbeitet mit den meisten SMTP-Mail Accounts. Also unabhängig von Outlook.

  • Problem mit Random

    • BugFix
    • 14. Januar 2007 um 20:17

    Hier meine Lösung für dich:

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    Dim $oIE=_IECreate("http://",0,1)
    Dim $counter=0, $LastRandom = 1

    While 1
    _IELoadWait($oIE) ; warten bis Seite geladen
    $counter=$counter+1

    If $counter<3 Then
    $seite=Random(1,4,1)

    If $seite=1 And $seite <> $LastRandom Then
    $oDocLinks = _IELinkGetCollection ($oIE); gibt links als Collection aus
    For $olink IN $oDocLinks
    if StringInStr ( $olink.outerText , "items") Then ; der anzuklickende Link
    $zeit=Random(40312,47623,1)
    sleep($zeit) ; gibt zufallswert aus und Sleep übernimmt den Wert
    $olink.click() ; der Klick auf den Link
    ExitLoop
    EndIf
    Next
    $LastRandom = $seite

    ElseIf $seite=2 And $seite <> $LastRandom Then
    $oDocLinks = _IELinkGetCollection ($oIE); gibt links als Collection aus
    For $olink IN $oDocLinks
    if StringInStr ( $olink.outerText , "modifikationen") Then ; der anzuklickende Link
    $zeit=Random(35001,55131,1)
    sleep($zeit) ; gibt zufallswert aus und Sleep übernimmt den Wert
    $olink.click() ; der Klick auf den Link
    ExitLoop
    EndIf
    Next
    $LastRandom = $seite

    ElseIf $seite=3 And $seite <> $LastRandom Then
    $oDocLinks = _IELinkGetCollection ($oIE); gibt links als Collection aus
    For $olink IN $oDocLinks
    if StringInStr ( $olink.outerText , "die story") Then ; der anzuklickende Link
    $zeit=Random(40878,49851,1)
    sleep($zeit) ; gibt zufallswert aus und Sleep übernimmt den Wert
    $olink.click() ; der Klick auf den Link
    ExitLoop
    EndIf
    Next
    $LastRandom = $seite

    ElseIf $seite=4 And $seite <> $LastRandom Then
    $oDocLinks = _IELinkGetCollection ($oIE); gibt links als Collection aus
    For $olink IN $oDocLinks
    if StringInStr ( $olink.outerText , "underground") Then ; der anzuklickende Link
    $zeit=Random(38543,51923,1)
    sleep($zeit) ; gibt zufallswert aus und Sleep übernimmt den Wert
    $olink.click() ; der Klick auf den Link
    ExitLoop
    EndIf
    Next
    $LastRandom = $seite
    Else ; ElseIf-Zweig konnte nicht gewählt werden, da $seite = $LastRandom
    $counter -= 1 ; Counter zurücksetzen, da in diesem Durchlauf nix passierte
    EndIf
    EndIf
    WEnd

    [/autoit]

    Ich glaube der Counter ist wichtig, darum setze ich ihn bei Leerlauf zurück.

  • Problem mit Random

    • BugFix
    • 14. Januar 2007 um 19:35

    Führe eine zusätzliche Variable, z.B. $LastRandom .
    Wenn Zufallszahl = $LastRandom -> Zufallszahl erneut ermitteln.

  • 10 € Schein Analysetool

    • BugFix
    • 14. Januar 2007 um 13:08

    Hi,
    ich hab mich auch mal dran gemacht. ;)
    Beim Betrachten der Aufgabe denkt man schon, das ist doch Pillepalle. Na gut, der Algorithmus ist nicht schwierig.
    Wie üblich liegen 90 % der Arbeit darin alle möglichen (und unmöglichen) Eigaben und Fehler abzufangen. ;)
    Um das Endprodukt DAU-sicher zu machen, ist es doch viel umfangreicher geworden als ich dachte. :rofl:
    Man könnte natürlich noch die verschiedenen Gewinnkategorien in unterschiedlichen Farben darstellen - aber das war mir dann doch zuviel.

    EDIT: Hab noch eine Fehlermöglichkeit abgefangen (Eintrag löschen bei aktiver Ergebnisliste). Und noch 'ne Fehlerquelle abgefangen (Löschen bei leerer Liste).

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    Opt("GUIOnEventMode", 1)

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

    Dim $arAlleSN, $arTreffer[1], $Fehler = 0, $SN
    Dim $alleRichtig = 0, $dreiRichtig = 0, $zweiRichtig = 0, $einRichtig = 0, $lastEntry, $new = 0
    Dim $rot = 0xFF0000
    $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    $arTreffer[0] = 0
    If @error = 1 Then $Fehler = 1

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

    $Form1 = GUICreate("100.000 für 10", 636, 344, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Ende")
    $ListView1 = GUICtrlCreateListView("Seriennummern", 17, 19, 353, 305)
    _GUICtrlListViewSetColumnWidth(-1, 0, 349)
    $Group0 = GUICtrlCreateGroup(" Modus ", 384, 17, 240, 40)
    $Radio1 = GUICtrlCreateRadio("Erfassen", 400, 30, 80)
    GUICtrlSetOnEvent(-1, "RadioErfassen")
    $Radio2 = GUICtrlCreateRadio("Vergleichen", 520, 30, 80)
    GUICtrlSetOnEvent(-1, "RadioVergleichen")
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group1 = GUICtrlCreateGroup(" Seriennummer ", 384, 59, 240, 57)
    $Input1 = GUICtrlCreateInput("", 395, 81, 220, 21, $ES_UPPERCASE)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Vergleichen", 384, 128, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "Vergleichen")
    $Group2 = GUICtrlCreateGroup(" Ergebnis ", 384, 158, 240, 167)
    $Label0 = GUICtrlCreateLabel("Hauptgewinn", 465, 180, 90, 17)
    GUICtrlSetColor($Label0, $rot)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label1 = GUICtrlCreateLabel("letzte 3 Ziffern richtig", 396, 214, 102, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label2 = GUICtrlCreateLabel("letzte 2 Ziffern richtig", 396, 252, 102, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Label3 = GUICtrlCreateLabel("letzte Ziffer richtig", 396, 290, 87, 17)
    GUICtrlSetStyle(-1, $WS_DISABLED)
    $Input2 = GUICtrlCreateInput("", 550, 211, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    $Input3 = GUICtrlCreateInput("", 550, 249, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    $Input4 = GUICtrlCreateInput("", 550, 287, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button2 = GUICtrlCreateButton("Ende", 554, 128, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "Ende")
    $Button3 = GUICtrlCreateButton("Löschen", 469, 128, 70, 21, 0)
    GUICtrlSetOnEvent(-1, "DeleteSN")

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

    If $Fehler = 1 Then
    $lastEntry = 0
    Else
    $lastEntry = StringTrimLeft($arAlleSN[$arAlleSN[0][0]][1], 2)
    _ListAllSN()
    EndIf
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    Else
    GUICtrlSetState($Button3, $GUI_ENABLE)
    EndIf

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

    GUISetState(@SW_SHOW)
    ControlFocus("", "", $Input1)

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

    While 1
    Sleep(100)
    WEnd

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

    Func _ListAllSN()
    If IsArray($arAlleSN) Then
    For $i = 1 To $arAlleSN[0][0]
    _GUICtrlListViewInsertItem($ListView1, -1, $arAlleSN[$i][1])
    Next
    EndIf
    EndFunc

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

    Func RadioErfassen()
    GUICtrlSetData($Button1, "Erfassen")
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    Else
    GUICtrlSetState($Button3, $GUI_ENABLE)
    EndIf
    GUICtrlSetStyle($Label0, $WS_DISABLED)
    GUICtrlSetStyle($Label1, $WS_DISABLED)
    GUICtrlSetStyle($Label2, $WS_DISABLED)
    GUICtrlSetStyle($Label3, $WS_DISABLED)
    _GUICtrlListViewDeleteAllItems($ListView1)
    If $Fehler = 0 Then _ListAllSN()
    ControlFocus("", "", $Input1)
    GUICtrlSetData($Input2, "")
    GUICtrlSetData($Input3, "")
    GUICtrlSetData($Input4, "")
    EndFunc

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

    Func RadioVergleichen()
    GUICtrlSetData($Button1, "Vergleichen")
    ControlFocus("", "", $Input1)
    EndFunc

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

    Func Vergleichen()
    If GUICtrlRead($Radio2) = 1 Then ; vergleichen
    If $Fehler = 1 Then
    MsgBox(48, 'ACHTUNG', "Es sind noch keine Seriennummern zum Vergleich hinterlegt!")
    Return
    EndIf
    _vergleich()
    _GUICtrlListViewDeleteAllItems($ListView1)
    _treffer()
    Else ; erfassen
    $SN = GUICtrlRead($Input1)
    If $SN <> "" Then
    _GUICtrlListViewInsertItem($ListView1, -1, $SN)
    IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $SN)
    $lastEntry += 1
    $Fehler = 0
    $new = 1
    GUICtrlSetState($Button3, $GUI_ENABLE)
    Else
    MsgBox(0, 'ACHTUNG!', "Bitte eine Seriennummer für Vergleich eingeben!")
    EndIf
    EndIf
    ControlFocus("", "", $Input1)
    EndFunc

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

    Func DeleteSN()
    Dim $tmp
    If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    $tmp = _GUICtrlListViewGetItemText($ListView1)
    If $tmp <> "" And MsgBox(292,"Löschen","Soll die Seriennummer:" & @LF & $tmp & @LF & "wirklich gelöscht werden?") = 6 Then
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] = $tmp Then
    $arAlleSN[$i][1] = ""
    ExitLoop
    EndIf
    Next
    FileDelete(@ScriptDir & "\SN10Euro.INI")
    $lastEntry = 0
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] <> "" Then
    IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $arAlleSN[$i][1])
    $lastEntry += 1
    $Fehler = 0
    EndIf
    Next
    _GUICtrlListViewDeleteAllItems($ListView1)
    $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    _ListAllSN()
    If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then GUICtrlSetState($Button3, $GUI_DISABLE)
    EndIf
    EndFunc

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

    Func _vergleich()
    $SN = GUICtrlRead($Input1)
    If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
    For $i = 1 To $arAlleSN[0][0]
    If $arAlleSN[$i][1] = $SN Then
    $alleRichtig += 1
    _ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / Volltreffer = 100.000 €")
    $arTreffer[0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 3) = StringRight($SN, 3) Then
    $dreiRichtig += 1
    _ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / 3 R = 10.000 €")
    $arTreffer[0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 2) = StringRight($SN, 2) Then
    $zweiRichtig += 1
    _ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / 2 R = 1.000 €")
    $arTreffer[0] += 1
    ElseIf StringRight($arAlleSN[$i][1], 1) = StringRight($SN, 1) Then
    $einRichtig += 1
    _ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / 1 R = 100 €")
    $arTreffer[0] += 1
    EndIf
    Next
    EndFunc

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

    Func _treffer()
    For $i = 1 To $arTreffer[0]
    _GUICtrlListViewInsertItem($ListView1, -1, $arTreffer[$i])
    Next
    If $alleRichtig = 1 Then GUICtrlSetStyle($Label0, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetState($Button3, $GUI_DISABLE)
    GUICtrlSetStyle($Label1, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetStyle($Label2, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetStyle($Label3, $GUI_SS_DEFAULT_LABEL)
    GUICtrlSetData($Input2, $dreiRichtig)
    GUICtrlSetData($Input3, $zweiRichtig)
    GUICtrlSetData($Input4, $einRichtig)
    ReDim $arTreffer[1]
    $arTreffer[0] = 0
    $dreiRichtig = 0
    $zweiRichtig = 0
    $einRichtig = 0
    EndFunc

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

    Func Ende()
    Exit
    EndFunc

    [/autoit]

    Dateien

    100000_f 6,68 kB – 403 Downloads
  • Protokolldatei umsortieren

    • BugFix
    • 14. Januar 2007 um 12:09

    Erfasse die Logs mit Delimiter (z.B. "|") in der Form:
    DATUM|ABSENDER|EMPFÄNGER|OBJEKT
    (wenn die vorhandenen Leerzeichen garantiert nur als Trenner auftauchen, kannst du auch diese verwenden)
    Dann kannst du mit StringSplit( ) die Zeile in ein Array auslesen und dann umsortieren.

  • Brauche Hilfe

    • BugFix
    • 14. Januar 2007 um 10:01

    Fragen zu ListBox?

    Guckst du hier: http://autoit.aufwaerts.de/thread.php?postid=5214#post5214

  • internetformular

    • BugFix
    • 14. Januar 2007 um 09:56

    Hi Dustin,
    du bist immer etwas geizig mit deinen Angaben. :rolleyes: Etwas fiktiv zu erklären ist nicht so toll. Bring doch mal eine Beispielseite (bzw. deren Quellcode), die du ansprechen möchtest (evtl. accountbezogene Angaben einfache x-en).
    Mit Beispiel arbeitet sich's viel besser. ;)

  • Link anklicken

    • BugFix
    • 13. Januar 2007 um 22:48

    Gib doch mal die Adresse der Web-Site an. Dann kann man sich selbst ein Bild machen.

  • Ist das moeglich???

    • BugFix
    • 13. Januar 2007 um 20:36

    Oder so, schließt auch nach OK-Button.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Dim $key = "HKEY_LOCAL_MACHINE\SOFTWARE\Vitalwerks\DUC", $val = "xxxx.no-ip.org"

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

    $gui = GUICreate("test")
    $input = GUICtrlCreateInput($val, 20, 20)
    $OK = GUICtrlCreateButton("OK", 20, 60, 60, 21)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $OK
    $key = GUICtrlRead($input)
    RegWrite($key, "Checked", "REG_SZ", $val &"|")
    ExitLoop
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd
    Exit

    [/autoit]
  • FAQ

    • BugFix
    • 13. Januar 2007 um 16:54

    Eigene Abkürzungen in SciTE

    SciTE verfügt über eine Liste von Abkürzungen (zu finden in der Datei "abbrev.properties"), die das Codieren sehr vereinfachen.
    Durch Eingabe der Abkürzung + Leertaste wird der hinterlegte Code eingefügt.
    In einem vorigen Beitrag hatte ich bereits zur Änderung bestehender Abkürzungen geschrieben. Zu den bestehenden Abkürzungen lassen sich auch ganz einfach eigene hinzufügen.

    Code
    Die Syntax ist folgende:
    
    
    Abkürzung=Code
    Zeilenumbruch:		\n
    Tabulatorschritt:	\t
    Cursorposition:		|
    
    
    Alle Anweisungen müssen innerhalb einer Zeile geschrieben werden.
    
    
    Um z.B. einen Scriptheader zu erstellen der so aussieht:
    
    
    #cs ----------------------------------------------------------------------------
    
    
     AutoIt Version:	        3.2.1.14 (beta)
     Author:			Dein Name
     Script Function:		hier soll der Cursor stehen
    
    
    #ce ----------------------------------------------------------------------------
    
    
    mußt du diese Zeile erstellen:
    scriptheader=#cs ----------------------------------------------------------------------------\n\n AutoIt Version:		3.2.1.14 (beta)\n Author:				Dein Name\n Script Function:		|\n\n#ce ----------------------------------------------------------------------------\n
    Alles anzeigen

    Die Datei "abbrev.properties" kannst du direkt über SciTE -> Optionen -> Abkürzungsdatei öffnen.
    Füge einfach die neue Zeile in die Dateie ein (Position ist eigentlich egal - Hauptsache vor der Markierung [#-#-#-#..]) - aber für eine bessere Übersicht macht es vielleicht Sinn, eine eigene Sektion (#; -- Eigene Abkürzungen --) einzufügen.
    Damit das Kürzel auch aktiv wird, mußt du es in der "au3.keywords.properties" (SciTE -> Optionen -> Öffnen au3.keywords.properties) eintragen.
    Füge das Kürzel an das Ende der Sektion: ".keywords.abbrev=..." an. Hier aufpassen, dass als letztes immer ein Zeilenumbruch in der Datei bleibt - gibt sonst 'nen Fehler.
    Ab sofort steht die neue Abkürzung zur Verfügung.

  • Internetverknüpfung auf Desktop löschen

    • BugFix
    • 12. Januar 2007 um 23:53

    Habs grad mal bei mir getestet, "FileDelete(@DesktopDir & "\blabla.lnk")" funktioniert 100 %.
    Mit

    [autoit]

    MsgBox(0, '', FileDelete(@DesktopDir & "\blabla.lnk"))

    [/autoit]

    kannst du dir gleich den Rückgabewert ausgeben lassen. 1-Erfolg, 0-Pech gehabt. ;)

    Wenn es also bei dir nicht funzt, liegt es nicht an Autoit.

  • Dateikopieren

    • BugFix
    • 8. Januar 2007 um 22:26
    [autoit]

    $arNoMoveCustom = IniReadSection(@Scriptdir & "\modmove.ini", "NoMoveCustom")
    $arNoMove = IniReadSection($INIPfad, "NoMove")

    [/autoit]

    Wenn ich das richtig verstehe, beziehst du dich auf dieselbe INI. Dann verwende besser auch gleichen Code:

    [autoit]

    $arNoMoveCustom = IniReadSection($INIPfad, "NoMoveCustom")
    $arNoMove = IniReadSection($INIPfad, "NoMove")

    [/autoit]


    Und wenn

    [autoit]

    $AllCustomModFiles = _FileListToArray($QuellPfad, "*.iwd")
    ; ==
    $AllModFiles = _FileListToArray($QuellPfad, "*.iwd")

    [/autoit]


    dann verwende besser nur "$AllModFiles", das ist eindeutig und erspart dir eine Variable.


    EDIT:
    So, habs mal geändert und vereinfacht:

    Spoiler anzeigen
    [autoit]


    $arNoMoveCustom = IniReadSection(@Scriptdir & "\modmove.ini", "NoMoveCustom")
    ;~ $arNoMoveCustom = IniReadSection($INIPfad, "NoMoveCustom") falls dieselbe INI, dieses hier
    $arNoMove = IniReadSection($INIPfad, "NoMove")
    ;~ $AllCustomModFiles = _FileListToArray($QuellPfad, "*.iwd") weglassen, spart 'ne Menge Code
    $AllModFiles = _FileListToArray($QuellPfad, "*.iwd")
    For $i = 1 To $AllModFiles[0]
    For $k = 1 To $arNoMoveCustom[0][0]
    ;Custom Dateien markieren, die nicht verschoben werden sollen
    If $AllModFiles[$i] = $arNoMoveCustom[$k][1] Then $AllModFiles[$i] &= "|"
    Next
    For $k = 1 To $arNoMove[0][0]
    ; Dateien markieren, die nicht verschoben werden sollen
    If $AllModFiles[$i] = $arNoMove[$k][1] Then $AllModFiles[$i] &= "|"
    Next
    Next
    For $i = 1 To $AllModFiles[0]
    ; nicht markierte Dateien verschieben
    If StringRight($AllModFiles[$i], 1) <> "|" Then FileMove($QuellPfad & $AllModFiles[$i], $ZielPfad)
    Next
    ;counter
    Select
    Case $devmapsaveposmod = "yes"
    FileMove($filepath & "modmove\zzz_Save_position_mod_V1.0.iwd", $filepath)
    FileMove($filepath & "modmove\zzz_999_nades.iwd", $filepath)
    $iextra = $counterextra + 1
    IniWrite(@ScriptDir & "\modmove.ini", "Programminfo", "counterextra", $iextra)
    Case Else
    ;counting the amount of movements
    $icounter = $counter + 1
    IniWrite(@ScriptDir & "\modmove.ini", "Programminfo", "counter", $icounter)
    EndSelect

    [/autoit]


    Nun noch zu deiner "Func _nomovelist()".
    Ist

    [autoit]

    $werteanzahl = IniReadSection($INIPfad, "NoMoveCustom")

    [/autoit]

    nicht dieselbe Sektion derselben INI, wie hier:

    [autoit]

    $arNoMoveCustom = IniReadSection(@Scriptdir & "\modmove.ini", "NoMoveCustom")

    [/autoit]

    ?
    Und das Sortieren brauchst du nur einmal ausführen, nicht in einer Schleife. Somit wird die ganze Funktion hinfällig. Du solltest aber angeben, welche Dimension du sortieren möchtest.

    So, ich denke das wars erst mal.

  • Dateikopieren

    • BugFix
    • 8. Januar 2007 um 22:13

    Ja, stimmt,. Mit _ArraySort( ) war ich auf dem falschen Dampfer - sorry. Werde wohl doch langsam senil :rofl:

    Das andere schau ich mir nochmal an. Für schnelle Zwischenfragen, wärs nicht schlecht, falls du per Messsenger erreichbar wärst. Falls ja kannst du mich ja anklingeln. Steht alles in meinem Profil

  • Dateikopieren

    • BugFix
    • 8. Januar 2007 um 21:33
    [autoit]

    $AllCustomModFiles = _FileListToArray($QuellPfad, "*.iwd")
    ; identisch mit:
    $AllModFiles = _FileListToArray($QuellPfad, "*.iwd")

    [/autoit]


    Ist das Absicht?

    [autoit]

    For $icustom = 1 To $AllCustomModFiles[0]
    For $kcustom = 1 To $arNoMoveCustom[0][0]

    [/autoit]


    Macht den Code etwas unübersichtlich, verwende lieber $i , $k usw. für einfache Zählvariablen.

    EDIT:
    nochwas entdeckt:

    [autoit]

    For $i = 1 To $AllModFiles[0]
    ; nicht markierte Dateien verschieben
    If StringRight($AllModFiles[$i], 1) <> "|" OR StringRight($AllCustomModFiles[$icustom], 1) <> "|" Then FileMove($QuellPfad & $AllModFiles[$i], $ZielPfad) AND FileMove($QuellPfad & $AllCustomModFiles[$icustom], $ZielPfad)
    Next

    [/autoit]

    geht nicht

    ich denke, du meinst sowas:

    [autoit]

    For $i = 1 To $AllModFiles[0]
    ; nicht markierte Dateien verschieben
    If StringRight($AllModFiles[$i], 1) <> "|" Then
    FileMove($QuellPfad & $AllModFiles[$i], $ZielPfad)
    ElseIf StringRight($AllCustomModFiles[$icustom], 1) <> "|" Then
    FileMove($QuellPfad & $AllCustomModFiles[$icustom], $ZielPfad)
    EndIf
    Next

    [/autoit]
  • Dateikopieren

    • BugFix
    • 7. Januar 2007 um 20:40

    IniReadSection gibt ein Array das im Index $array[0][0] die Anzahl der Elemente führt.

  • Wie kann ich Symbolleisten an- oder abhaken

    • BugFix
    • 7. Januar 2007 um 20:32

    Einiges kannst du mit ControlClick( ) oder ControlCommand( ) ausführen. Wie du die Controls ansprichst, erfährst du mit dem Tool: AutoIt Window Info.
    Es gibt auch die Möglichkeit mit WinApi zu arbeiten, aber da hab ich wenig Erfahrung mit.
    Eine gute Infoquelle ist auf jeden Fall das englische Forum. Die haben schon fast alles mal gemacht. :)

  • Dateikopieren

    • BugFix
    • 7. Januar 2007 um 20:24

    Guckst du hier:

    Spoiler anzeigen
    Zitat

    Function Reference
    GUIGetMsg
    --------------------------------------------------------------------------------

    Polls the GUI to see if any events have occurred.


    GUIGetMsg ( [advanced] )


    Parameters

    advanced [optional] return extended information in an array.
    0 = (default) Returns a single event.
    1 = returns an array containing the event and extended information.


    Return Value

    Returns an event, or an array depending on the "advanced" parameter.
    The "event" returned is the control ID of the control sending the message, or it is a special event (like the window is closing, minimizing). Or if there is no message, the event is 0.


    Event ID the ID of the control sending the message
    0 No event
    $GUI_EVENT_CLOSE dialog box being closed (either by defined button or system menu).
    $GUI_EVENT_MINIMIZE dialog box minimized with Windows title bar button.
    $GUI_EVENT_RESTORE dialog box restored by click on task bar icon.
    $GUI_EVENT_MAXIMIZE dialog box maximized with Windows title bar button.
    $GUI_EVENT_MOUSEMOVE the mouse cursor has moved.
    $GUI_EVENT_PRIMARYDOWN the primary mouse button was pressed.
    $GUI_EVENT_PRIMARYUP the primary mouse button was released.
    $GUI_EVENT_SECONDARYDOWN the secondary mouse button was pressed.
    $GUI_EVENT_SECONDARYUP the secondary mouse button was released.
    $GUI_EVENT_RESIZED dialog box has been resized.
    $GUI_EVENT_DROPPED End of a Drag&Drop action @GUI_DRAGID, @GUI_DRAGFILE and @GUI_DROPID will be used to retrieve the ID's/file corresponding to the involve control.


    When using the "advanced" parameter the information is returned in an array with extended information:
    $array[0] = 0 or Event ID or Control ID
    $array[1] = The window handle the event is from
    $array[2] = The control handle the event is from (if applicable)
    $array[3] = The current X position of the mouse cursor (relative to the GUI window)
    $array[4] = The current Y position of the mouse cursor (relative to the GUI window)


    If the GUIOnEventMode option is set to 1 then the return from GUIGetMsg is always 0 and the @error is set to 1.
    If the option GUIEventOptions is set to 1 the minimize, restore and maximize button will not do any action on the window just a simple notification.


    Remarks

    This function automatically idles the CPU when required so that it can be safely used in tight loops without hogging all the CPU.

    Information about the mouse position and the hovering control can be retrieved with GUIGetCursorInfo. No event is fired when the mouse is over a control so GUIGetCursorInfo must be called to retrieve the ControlID.

    Alles anzeigen
  • statische IP-Adresse herausfinden

    • BugFix
    • 7. Januar 2007 um 19:47

    Zitat aus der Hilfe:

    [autoit]

    #include <Inet.au3>
    $PublicIP = _GetIP()
    MsgBox(0, "IP Address", "Your IP Address is: " & $PublicIP)

    [/autoit]


    Bringt dir deine öffentliche IP

  • Beep Komponist

    • BugFix
    • 7. Januar 2007 um 18:23

    Erstelle das kleine Fenster mit Style: $WS_EX_TOPMOST
    Aufruf großes Fenster, dann Aufruf kleines Fenster ( GUISetState(@SW_SHOW, $Fensterhandle) ) - nun bleibt das kleine Fenster immer im Vordergrund.

  • Position TrayBar ermitteln

    • BugFix
    • 7. Januar 2007 um 17:52

    Habe gerade die Ermittlung der Position der TrayBar benötigt und das ganze gleich in eine Funktion gepackt.

    [autoit]

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Funktion _GetTrayBarPos()
    ;
    ; Beschreibung gibt die Position der TrayBar zurück
    ; 1 = rechts
    ; 2 = unten
    ; 3 = links
    ; 4 = oben
    ;
    ; Autor BugFix ( [email='bugfix@autoit.de'][/email] )
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func _GetTrayBarPos()
    $TrayBarPos = WinGetPos("", "Notification Area" )
    Select
    Case $TrayBarPos[0] = -4
    If $TrayBarPos[1] = -4 And $TrayBarPos[2] = (@DesktopWidth +8) Then
    ; Position = "unten"
    Return 2
    ElseIf $TrayBarPos[1] = -4 And $TrayBarPos[3] = (@DesktopHeight +8) Then
    ; Position = "rechts"
    Return 1
    Else
    ; Position = "oben"
    Return 4
    EndIf
    Case Else
    ; Position = "links"
    Return 3
    EndSelect
    EndFunc ; ==> _GetTrayBarPos()

    [/autoit]

    Dateien

    _GetTrayBarPos.au3 856 Byte – 356 Downloads

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™