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

  • Dateien nach Alter löschen

    • BugFix
    • 26. April 2009 um 14:52
    Zitat von chip08

    gibt es auch eine Möglichkeit Tage von einem Datum abzuziehen


    _DateAdd mit negativer Zahl ;)

  • _InList() - mehrfache ODER-Verknüpfung

    • BugFix
    • 26. April 2009 um 14:09
    [autoit]

    $var1 = 'A'
    $var2 = 'a'
    ; Nicht Case Sensitive
    $var1 = $var2

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

    ; Case Sensitive
    $var1 <> $var2

    [/autoit]
  • Launcher

    • BugFix
    • 26. April 2009 um 13:42

    Die Nutzungsbedingungen stellen nur erweiterte Regelungen zur EULA dar. Die wesentlichen, auf die Nutzung der Software gerichteten Bestimmungen, sind in der EULA dokumentiert. Du findest diese i.A. im Installationsordner als "EULA.txt". Schau bitte mal dort nach. ;)

  • Hiddn Pixelsearch geht das ???

    • BugFix
    • 26. April 2009 um 13:32

    Ich möchte dich bitten, zu erklären WARUM du PixelSearch auf einem versteckten Fenster ausführen willst.
    Anderenfalls werde ich diesen Thread schließen!

  • Launcher

    • BugFix
    • 26. April 2009 um 13:25

    Wenn eine Installation verschiedener Versionen nicht möglich ist, wird dieses vermutlich auch gegen die Lizenzbestimmungen des Spieles verstoßen (Ich nehme an, dass dort in etwa steht: "...darf nur einmal auf einem PC installiert werden"). Das Beibehalten einer alten Version nach einem Update stellt dann einen Verstoß gegen die Lizenzbestimmung dar!

    Da ich WOW und dessen AGB/Lizenz nicht kenne, weiß ich das nicht sicher. Du solltest das aber prüfen, bevor du dich hier mit deinem Skript auf etwaige illegale Aktionen einläßt. Bitte poste mal den Auszug dazu aus den Lizenzbestimmungen. Davon hängt auch die 'Rechtmäßigkeit' dieses Threads ab.

  • Launcher

    • BugFix
    • 26. April 2009 um 13:16

    Ich nehme an, dass derjenige, der mehrere Versionen von WOW installiert hat auch die entsprechende Einträge in der Registry hat. Diese werden vermutlich unter einem gemeinsamen Schlüssel abgelegt sein. z.B. '....\WOW\ver_X' und '....\WOW\ver_Y'. Also lies, sofern vorhanden, alle Unterschlüssel aus und lade die Pfade in eine ComboBox. Ist es nur ein Pfad kann halt nur dieser gewählt werden, ansonsten wird zwischen den vorhandenen Installationen gewählt.

  • In einen String ein Zeichen mehrfach einfügen

    • BugFix
    • 26. April 2009 um 12:55

    Warum das Komma einfügen??

    [autoit]

    $split = StringSplit('1234', '')

    [/autoit]

    Schon hast du, was du willst. ;)

  • _InList() - mehrfache ODER-Verknüpfung

    • BugFix
    • 26. April 2009 um 12:49

    Hi,
    es kommt häufig vor, dass man per mehrfacher ODER-Verknüpfung prüfen muß, ob eine Variable einen von mehreren möglichen Werten besitzt.
    z.B.

    [autoit]

    If ($varCheck = $var1) Or ($varCheck = $var2) Or ($varCheck = $var3) Or ($varCheck = $var4) Then

    [/autoit]

    Das läßt sich mit der Funktion _InList() syntaktisch einfacher darstellen und ist m.E. auch einfacher zu lesen. Da ein Case sensitiver Vergleich möglich ist, muß als zweiter Parameter entsprechend '0' oder '1' übergeben werden.
    Die Funktion erlaubt die Übergabe von bis zu 10 Vergleichswerten. Eine größere Anzahl macht eigentlich auch keinen Sinn, denn dann ist es sicher besser die Werte in ein Array zu stecken und mit _ArraySearch() zu arbeiten.
    Die Vorbelegung der Operanden mit '-0' hat den Hintergrund, dass dies wahrscheinlich der einzigste Wert ist, den eine Variable i.A. wohl niemals annehmen wird - und somit geeignet ist zu prüfen, ob der Operand belegt ist.
    Dieselbe Abfrage wie oben:

    [autoit]

    If _InList($varCheck, 0, $var1, $var2, $var3, $var4) Then

    [/autoit]
    _InList()
    [autoit]

    ;===============================================================================
    ; Function Name: _InList($var, $CaseSens, $op1, $op2='-0', $op3='-0', $op4='-0', $op5='-0', $op6='-0', $op7='-0', $op8='-0', $op9='-0', $op10='-0')
    ; Description:: Prüft auf Übereinstimmung einer Variablen mit bis zu 10 Operanden (min 1) einer Auflistung
    ; Es kann Case Sensitiv geprüft werden
    ; Parameter(s): $var die Variable
    ; $CaseSens 1 = Case Sensitiv; 0 (oder alles <> 1) = nicht CS
    ; $op1..10 die Listenelemente
    ; Return Value(s): True bei Übereinstimmung, sonst False
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _InList($var, $CaseSens, $op1, $op2='-0', $op3='-0', $op4='-0', $op5='-0', $op6='-0', $op7='-0', $op8='-0', $op9='-0', $op10='-0')
    Local $match = 0
    For $i = 1 To 10
    If $match Then Return True
    If $CaseSens = 1 Then
    If Eval("op" & $i) == '-0' Then ExitLoop
    If $var == Eval("op" & $i) Then $match += 1
    Else
    If Eval("op" & $i) == '-0' Then ExitLoop
    If $var = Eval("op" & $i) Then $match += 1
    EndIf
    Next
    Return False
    EndFunc ;==>_InList

    [/autoit]
  • Eure besten "Free -Picture-Upload Anbieter"

    • BugFix
    • 24. April 2009 um 23:19

    Mein absoluter Favorit: imgBOX Wenn man sich dort registriert, bleiben die Uploads unbegrenzt stehen.

  • Partielle Screenshots

    • BugFix
    • 23. April 2009 um 07:02

    [OT]
    Möchte mal lobend erwähnen:
    Das hier ist wirklich eine klare und eindeutige Fragestellung.
    Wenn doch nur alle so wären. :rolleyes:
    [/OT]

  • _Tiks to time Mod

    • BugFix
    • 22. April 2009 um 19:52
    Zitat von Matthias_199

    aber ich verstehe nicht so wirklich den vorteil wenn das script von 1970 hochrechnet was mir das bringen soll gebe ich mal ehrlich zu ich sehe grad "noch" keinen sinn dahinter sorry^^


    Wenn du ein Datum in einem Wert (Timestamp) angeben möchtest, kannst du das nur, indem du einen Referenzpunkt schaffst und dazu die Differenz (hier in Sekunden) zum gewünschten Zeitpunkt ermittelst.
    Der Unix Timestamp hat als diese Referenz den 01.01.1970 00:00:00 Uhr. Das hat den Effekt, dass im 32bit-System die daraus resultierenden Timestamps vor 1970 negativ und danach postiv sind. Gültigkeit hat das im Bereich von 1902 bis 2038. Datumswerte davor oder danach sprengen durch den Differenzwert den Bereich des 32-Integer.

  • _Tiks to time Mod

    • BugFix
    • 22. April 2009 um 17:57

    Der_Doc: Ist das, was ich inzwischen auch hier gemacht habe: Datum UND Zeit in 32-bit Integer Variable speichern

  • _StringBetween in eine Func

    • BugFix
    • 22. April 2009 um 15:42
    Zitat von Kasoki

    so habe das Global mal zu Local geändert


    Das ist doch quatsch! Global war richtig - aber nicht innerhalb der Funktion deklarieren, sondern außerhalb!
    Und du mußt dem Return schon das Ergebnis aus _StringBetween mitgeben. ;)

  • _StringBetween in eine Func

    • BugFix
    • 22. April 2009 um 15:02

    1. Globale Variablen sollte man nicht innerhalb von Funktionen deklarieren
    2. Schau dir mal die Hilfe zu _StringBetween an. Insbesondere den Rückgabetyp
    3. Wenn du aus einer Funktion etwas zurückgegeben haben möchtest, brauchst du: Return ;)

  • Datum UND Zeit in 32-bit Integer Variable speichern

    • BugFix
    • 22. April 2009 um 10:03
    Zitat von Alina

    Wieso kommt die MsgBox zwei mal?

    Die erste gibt das gesetzte Datum aus, die zweite das ausgelesene Datum.

    Zitat von progandy

    Du hättest doch auch EPOCH /Unix-timestamp verwenden können ;) 1970-2038 mit positiven Werten, kleiner als 1970 mit negativen Werten.

    Zitat von progandy

    Oder: du reservierst dir mit _MemGlobalAlloc Speicher und setzt den Pointer zum Speicher in den Parameter, um später mit dllstructs darauf zuzugreifen.


    Werde ich mal beides testen und probieren was im Handling einfacher ist.


    Edit:
    Habe beides ausprobiert - funktioniert. Variante Unix-Timestamp kann verwendet werden für Datumsbereich 1902 - 2038, damit haben wir den Bereich schon mal aufgespreizt. ;)
    Die zweite Variante hat den Vorteil, dass keine Datumsgrenzen existieren. Der Nachteil ist aber eine zusätzliche Speicherverwaltung.
    Also werde ich es auf die Timestamp-Variante abändern.

  • Wie realisiert man am besten Multitasking(kein multithreading)

    • BugFix
    • 21. April 2009 um 21:21

    Kann mir die Bemerkung nicht verkneifen:
    Ich habe noch nichts entdeckt, was echtes Multitasking zwingend notwendig macht. Insofern ist solch ein Projekt eine schöne Programmierstudie zur Horizonterweiterung - aber echter Nutzen ist nicht sichtbar.

  • ListView-Text anpassen?

    • BugFix
    • 21. April 2009 um 19:31
    Zitat von nuts

    Bei Bedarf lässt sie das vielleicht auch für die UDF (wieso erstellst du dein Listview darüber?) umbauen?


    Das geht leider definitiv nicht! Das gibt unlösbare Probleme mit _GUICtrlListView_SetItemParam(), und dort lege ich die Info ab, welche (Sub)-Item formatiert sind.
    Sollte aber kein Problem sein: Einfach das ListView wie üblich mit GUICtrlCreateListView() erstellen, anschließend mit GUICtrlGetHandle() das Handle des ListView holen - schon lassen sich alle Funktionen der ListView-UDF nutzen als wäre dieses mit _GUICtrlListView_Create() erstellt.

  • PluginOpen()

    • BugFix
    • 21. April 2009 um 15:51
    Zitat von Deepred

    Mit VB auch!?! Ich dachte das geht damit nicht weil es per NET läuft.


    Da denkst du richtig - die VB-Dll sind nicht allgemein nutzbar.

  • Func als Goto ersatz

    • BugFix
    • 21. April 2009 um 15:43

    So etwa?

    [autoit]

    Global $impuls1=0, $impuls2=0
    AdlibEnable('impuls', 100)

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

    $gui = GUICreate('test')
    $progress1 = GUICtrlCreateProgress(20, 10, 200, 20)
    $progress2 = GUICtrlCreateProgress(20, 40, 200, 20)
    GUISetState()

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

    Do
    Until GUIGetMsg() = -3

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

    Func impuls()
    If $impuls1 < 100 Then
    $impuls1 += 10
    GUICtrlSetData($progress1, $impuls1)
    ElseIf $impuls1 = 100 Then
    $impuls1 = 0
    $impuls2 += 10
    GUICtrlSetData($progress2, $impuls2)
    If $impuls2 = 100 Then AdlibDisable()
    EndIf
    EndFunc

    [/autoit]
  • Datum UND Zeit in 32-bit Integer Variable speichern

    • BugFix
    • 21. April 2009 um 14:33

    Hi,
    Hintergrund hierfür war der Versuch, in einem ListView-Item mittels _GUICtrlListView_SetItemParam() Datum und Uhrzeit abzuspeichern, wobei die Uhrzeit mit Sekundenangabe gespeichert werden soll.
    Da als Speichergröße nur ein 32bit Integer zur Verfügung steht, fallen TimeToTicks und andere Varianten aus.

    Edit:
    Habe es auf progandys Tipp hin nun mit Unix-Timestamp realisiert. Somit ergibt sich ein verwendbarer Datumsbereich von 1902 - 2038.
    Das sollte i.A. ausreichen.

    Hier als Bsp. in einem ListView:

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    #include <GuiListView.au3>

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

    $gui = GUICreate('test')
    $ListView = GUICtrlCreateListView('Testspalte', 10, 10, 200,200)
    GUICtrlCreateListViewItem("1", $ListView)
    GUICtrlCreateListViewItem("2", $ListView)
    GUICtrlCreateListViewItem("3", $ListView)
    $hListView = GUICtrlGetHandle($ListView)
    GUISetState()

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

    Local $y = @YEAR, $mon = @MON, $d = @MDAY, $h = @HOUR, $m = @MIN, $s = @SEC
    _GUICtrlListView_SetItemParam($hListView, 1, _DateTimeToTimeStamp($y, $mon, $d, $h, $m, $s))
    MsgBox(0, 'Gesetztes Datum', $y & '/' & $mon & '/' & $d & ' ' & $h & ':' & $m & ':' & $s)
    Sleep(500)

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

    While 1
    $getItem = _TimeStampToDateTime(_GUICtrlListView_GetItemParam($hListView, 1))
    MsgBox(0, 'Gelesenes Datum', $getItem)
    ExitLoop
    WEnd

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

    ; Limit: 1902 - 2038
    Func _DateTimeToTimeStamp($year, $mon, $day, $h, $m, $s)
    Return _DateDiff('s', "1970/01/01 00:00:00", $year & '/' & $mon & '/' & $day & ' ' & $h & ":" & $m & ":" & $s)
    EndFunc

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

    Func _TimeStampToDateTime($Number)
    Return _DateAdd('s', $Number, "1970/01/01 00:00:00")
    EndFunc

    [/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™