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

Beiträge von Oscar

  • Status bar ändern

    • Oscar
    • 16. April 2009 um 16:29

    Du musst die Änderungen auch in das Label schreiben:

    [autoit]

    GUICtrlSetData($status_label, $status_label_text)

    [/autoit]
  • Boot Zeit

    • Oscar
    • 16. April 2009 um 16:23

    Bei mir funktioniert das Script.

    Was für ein OS ist auf dem Rechner installiert, wo es nicht läuft?

    Achso, bei WMI brauchte man doch das .NET-Framework, soweit ich weiß. Ist das vielleicht nicht installiert?

  • Boot Zeit

    • Oscar
    • 16. April 2009 um 13:18

    Hast Du an dem Script von mir noch was geändert?
    Wenn ja, poste doch mal Dein Script, wie es jetzt ist.

  • Funktion zur Osterberechnung jetzt als UDF und modalem Meldungsfenster

    • Oscar
    • 15. April 2009 um 20:23
    Zitat von AutoBert

    da das Date-Steuerelement meiens Wissens nach nur ganze Datums angaben "TT.MM.JJJJ" anzeigt.

    Hehe, das stimmt nicht. Probier mein Beispielscript mal aus. :)

  • InputBox - Ausgabewert

    • Oscar
    • 15. April 2009 um 20:11

    Achso!
    Wenn der Anwender auf [Abbrechen] klickt, dann wird das @error-Makro auf 1 gesetzt und die Variable $sFile erhält einen Leerstring.
    Ansonsten ist @error = 0 und die Variable $sFile bekommt den kompletten Pfad plus Dateiname der ausgewählten Datei zugewiesen.

    Beachten solltest Du außerdem diesen Hinweis:

    Zitat

    @WorkingDir wird bei erfolgreichem Rückgabewert geändert.

    Das bedeutet, wenn Du danach eine Datei ohne kompletten Pfad verwendest (relative Pfadangabe, z.B.: "settings.ini"), dann wird die Datei in dem ausgewählten Pfad gesucht und vermutlich nicht gefunden.
    Deswegen ist es ratsam, immer den kompletten Pfad anzugeben (absolute Pfadangaben, z.B.: @ScriptDir & "\settings.ini"), um solche möglichen Fehlerquellen schon im Vorfeld zu vermeiden.

  • InputBox - Ausgabewert

    • Oscar
    • 15. April 2009 um 18:52

    Die Frage habe ich nicht verstanden. :huh:
    Was willst Du denn machen?

  • Auf If funktion reagieren

    • Oscar
    • 15. April 2009 um 18:32

    Nun, vermutlich machen die Hersteller das, um es den Cheatern etwas schwerer zu machen. :D

  • Variablen declared Problem

    • Oscar
    • 15. April 2009 um 18:29

    Für fehlende Includes solltest Du Dir "OrganizeIncludes" von Xeno installieren.

    Das fehlerhafte Script stammt aber offensichtlich noch aus "alten Tagen", weil einige der UDF-Befehle mittlerweile umbenannt wurden.
    Speziell die _GUICtrlListView-Befehle besitzen nun einen zusätzlichen Unterstrich.
    Beispiel:
    _GUICtrlListViewSetColumnWidth (vorher) --> _GUICtrlListView_SetColumnWidth (jetzt)

  • InputBox - Ausgabewert

    • Oscar
    • 15. April 2009 um 18:21

    Warum über eine InputBox?
    FileOpenDialog ist für den Anwender doch wesentlich komfortabler:

    [autoit]


    $sFile = @ScriptDir & '\test.exe'
    If Not FileExists($sFile) Then
    $sFile = FileOpenDialog('Bitte Datei auswählen...', @ScriptDir, '(*.exe)')
    If @error Then Exit
    MsgBox(0, 'Ausgewählte Datei', $sFile)
    EndIf

    [/autoit]
  • Funktion zur Osterberechnung jetzt als UDF und modalem Meldungsfenster

    • Oscar
    • 15. April 2009 um 17:53

    Für die Jahres-Eingabe würde ich GUICtrlCreateDate benutzen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <DateTimeConstants.au3>

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

    GUICreate("My GUI get date", 200, 200, 800, 200)
    $date = GUICtrlCreateDate(@YEAR, 10, 10, 70, 25, $DTS_UPDOWN)
    GUICtrlSetFont(-1, 12)

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

    $DTM_SETFORMAT_ = 0x1032
    $style = "yyyy"
    GUICtrlSendMsg($date, $DTM_SETFORMAT_, 0, $style)

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

    GUISetState()
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    MsgBox(0, "Time", GUICtrlRead($date))

    [/autoit]

    Sieht besser aus, man hat ein Up-/Down-Control und man kann kein "falsches" Jahr eingeben.

  • GUI Statistik

    • Oscar
    • 15. April 2009 um 13:54

    Möglichkeiten gibt es viele: TreeView, ListView, ListBox, Editfeld...
    Was sind das für Daten und wie sieht die Struktur aus? More Input, please. ;)

  • AutoIt Router Restart

    • Oscar
    • 15. April 2009 um 13:49
    Zitat von Scripter192

    aber random ist nur für zahlen oda ?!

    Ja, aber es gibt ja Chr():

    [autoit]

    MsgBox(0,0,Chr(Random(65, 90, 1)))

    [/autoit]
  • menu mit gui on event ansprechen

    • Oscar
    • 15. April 2009 um 13:46

    Die Menü-Titel kannst Du nicht per Event ansprechen. Das funktioniert nur bei den Items.

  • follow-Funktion aus less

    • Oscar
    • 15. April 2009 um 13:36

    Zu 1.: Ich weiß nicht genau wie AutoIt die Garbage-Collection handhabt, aber ich denke, wenn Du der Variablen einen Leerstring zuweist, sollte der Speicher wieder freigegeben werden.

    Zu 2.: Mit GUICtrlRead das Editfeld auslesen und dann mit StringInStr nach der Zeichenfolge suchen. Highlighten müsste mit _GUICtrlEdit_SetSel machbar sein.

  • Fehler bei Obfuscator

    • Oscar
    • 15. April 2009 um 04:24

    Und wenn man Dein Script debugt, dann geht es plötzlich: :P

    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Run_Obfuscator=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Opt('TrayMenuMode', 1)
    Opt('TrayOnEventMode', 1)
    TrayCreateItem ("Beenden")
    TrayItemSetOnEvent(-1, "_Beenden" )
    While 1
    Sleep (100)
    WEnd
    Func _Beenden()
    Exit
    EndFunc

    [/autoit]
  • Text zählen

    • Oscar
    • 14. April 2009 um 21:42

    Na, das sieht doch schon ganz gut aus.

    Wie schneidet denn diese Variante ab?

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $oDictionary = ObjCreate('Scripting.Dictionary')
    $aFile = StringSplit(FileRead(@ScriptDir & '/ip_zaehler.txt'), @CRLF, 1)
    For $i = 1 To $aFile[0]
    If $oDictionary.Exists($aFile[$i]) Then
    $iVal = $oDictionary.Item($aFile[$i])
    $oDictionary.Item($aFile[$i]) = $iVal + 1
    Else
    $oDictionary.Add($aFile[$i], 1)
    EndIf
    Next
    Global $aIPAdress[$oDictionary.Count][2], $iCount = 0
    For $strKey In $oDictionary.Keys
    $aIPAdress[$iCount][0] = $strKey
    $aIPAdress[$iCount][1] = $oDictionary.Item($strKey)
    $iCount += 1
    Next
    _ArraySort($aIPAdress, 1, 0, 0, 1)
    _ArrayDisplay($aIPAdress)

    [/autoit]
  • Text zählen

    • Oscar
    • 14. April 2009 um 17:01

    Stilgar: Teste doch mal diese Version:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Global $aFile = StringSplit(FileRead(@scriptdir & '/ip_zaehler.txt'), @CRLF, 1)
    Global $iCount = 0
    If $aFile[0] > 1 Then
    Global $aIPAdress[$aFile[0]][2]
    For $j = 1 To $aFile[0]
    For $i = 0 To UBound($aIPAdress) - 1
    If $aFile[$j] = $aIPAdress[$i][0] Then
    $aIPAdress[$i][1] += 1
    ContinueLoop 2
    EndIf
    Next
    $aIPAdress[$iCount][0] = $aFile[$j]
    $aIPAdress[$iCount][1] = 1
    $iCount += 1
    Next
    ReDim $aIPAdress[$iCount][2]
    _ArraySort($aIPAdress, 1, 0, 0, 1)
    _ArrayDisplay($aIPAdress)
    EndIf

    [/autoit]
  • Event was mitgeben, oder Alternativlösung?

    • Oscar
    • 14. April 2009 um 16:47

    Script fehlt! Muss man wieder raten...

    Erstellst Du die Grafiken mit GUICtrlCreatePic?
    Wenn ja, dann die ID in einem Array speichern und den Bildern mit GUICtrlSetOnEvent eine Klick-Funktion zuweisen.
    Innerhalb der Funktion bekommst Du dann mit @GUI_CtrlId die ID des angeklickten Bildes.

  • Zeit anzeigen lassen

    • Oscar
    • 14. April 2009 um 16:41

    AdlibEnable mit 10 ms ist aber übertrieben.
    1000 ms oder, wenn man den Sekundenwechsel eher mitkriegen will, 500 ms reichen doch aus.

  • Boot Zeit

    • Oscar
    • 14. April 2009 um 16:37

    Ich hatte das mal gepostet. Speziell die _WMIDateStringToDate hatte ich nämlich so geändert. ;)
    Macht aber nichts. Dafür ist das Forum ja da.
    Hier mal Dein Script mit ein paar Änderungen:

    Spoiler anzeigen
    [autoit]


    ; Includes
    #include <Date.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <Constants.au3>
    ; Declares
    Global $hour, $mins, $secs, $hour1, $mins1, $secs1, $hourb, $minsb, $secsb
    Global $objWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2')
    ;#################Programm#################
    ; GUI
    $Form1 = GUICreate("Uhrzeit", 580, 20, -1, 0, $WS_POPUP, $WS_EX_TOPMOST, $WS_EX_TOOLWINDOW)

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

    ; Uhrzeit
    GUICtrlCreateLabel("Uhrzeit:", 5, 3, 40, 17)
    $Label1 = GUICtrlCreateLabel("", 45, 3, 59, 17)
    GUICtrlSetColor(-1, 0xFF0000)

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

    ; Datum
    GUICtrlCreateLabel("Datum:", 120, 3, 38, 17)
    $Label2 = GUICtrlCreateLabel("", 158, 3, 57, 17)
    GUICtrlSetColor(-1, 0xFF0000)

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

    ;System upTime
    GUICtrlCreateLabel("System upTime:", 250, 3, 150, 17)
    $Label3 = GUICtrlCreateLabel("", 330, 3, 58, 17)
    GUICtrlSetColor(-1, 0xFF0000)

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

    ;Boot Time
    GUICtrlCreateLabel("Boot Time:", 410, 3, 150, 17)
    $Label4 = GUICtrlCreateLabel(_BootTime(), 465, 3, 110, 17)
    GUICtrlSetColor(-1, 0xFF0000)

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

    GUISetState(@SW_SHOW)

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

    _Update()
    AdlibEnable("_Update", 1000)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _Update()
    GUICtrlSetData($Label1, StringFormat("%02i:%02i:%02i", @HOUR, @MIN, @SEC))
    GUICtrlSetData($Label2, StringFormat("%02i.%02i.%02i", @MDAY, @MON, @YEAR))
    _TicksToTime(TimerDiff(0), $hour, $mins, $secs)
    GUICtrlSetData($Label3, StringFormat("%02i:%02i:%02i", $hour, $mins, $secs))
    EndFunc ;==>_Update

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

    Func _BootTime()
    Local $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_OperatingSystem', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Output = _WMIDateStringToDate($objItem.LastBootUpTime)
    Next
    Else
    $Output = ''
    EndIf
    Return $Output
    EndFunc ;==>_BootTime

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

    Func _WMIDateStringToDate($dtmDate)
    Return StringRegExpReplace($dtmDate, '(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2}).*', '$3.$2.$1 / $4:$5:$6')
    EndFunc ;==>_WMIDateStringToDate

    [/autoit]

    P.S.: Bitte benutze bei längeren Scripten zusätzlich die Spoiler-Tags. Hab's bei Dir mal hineineditiert.

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™