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

  • Wortspiel

    • BugFix
    • 28. April 2008 um 19:13
    Zitat von Hilfe zu Random

    Flag [optional] If this is set to 1 then an integer result will be returned. Default is a floating point number.

  • festgelegte zeit = tastendruck

    • BugFix
    • 28. April 2008 um 17:55

    Guckst du:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("test", 221, 383, 434, 271)
    $Label1 = GUICtrlCreateLabel("lalala", 16, 8, 106, 17)
    $Input1 = GUICtrlCreateInput("", 96, 48, 41, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Checkbox1 = GUICtrlCreateCheckbox("", 64, 48, 17, 17)
    $Button1 = GUICtrlCreateButton("Start", 24, 336, 75, 25, 0)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input1, $GUI_DISABLE)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Verschiedene Punkte aus Array auslesen

    • BugFix
    • 28. April 2008 um 17:27
    Zitat

    Vielleicht könnte ja auch jemand anders ma helfen als progandy


    Progandy hat mehrfach daraufhin gewiesen, dass ohne konkrete Angaben keine Hilfe erfolgen kann.
    Deine Angaben sind sehr schwammig. Es könnte dies oder jenes oder ganz was andres in Row[0] stehen :S
    Suche selber erst mal etwas festes in deinem Konstrukt, also einen Wert der definitiv bei einer bestimmten Situation immer auftaucht. Wenn du nur variable Zustände hast, kannst du kein allgemeingültiges Programm erstellen. Punkt

  • Radio & Checkboxen

    • BugFix
    • 25. April 2008 um 23:11

    OK, dann erst mal was zur Erklärung.
    Radiobutton und Checkboxen werden auf $GUI_CHECKED bzw $GUI_UNCHECKED (also markiert/nicht markiert) geprüft.
    In einer GUIGetMsg-Konstruktion erhältst du von diesen Controls keine Msg - du mußt über einen Button die Abfrage auslösen.
    - Bei Radiobutton kann immer nur einer (in einer Gruppe) markiert sein. Wenn nur eine Gruppe Radiobutton auf der GUI ist, ist das Anlegen einer Group nicht erforderlich - aber empfehlenswert schon wegen der Optik.
    - Checkboxen können unabhängig voneinander markiert werden.

    Die Abfrage erfolgt für beide Controls identisch. Es gibt mehrere Formen der Abfrage, jedoch rate ich zu folgender:

    [autoit]

    If BitAnd(GUICtrlRead($Control), $GUI_CHECKED) Then

    [/autoit]

    Na dann probier mal weiter :)

  • In 1 Tag und 5 Stunden ist es ... Uhr

    • BugFix
    • 25. April 2008 um 22:51

    Du kannst es auch mit einer Funktion lösen:

    Spoiler anzeigen
    [autoit]

    ; oder mit einer Funktion:
    MsgBox( 0, '', _TargetDateTime(-1, 2, 12, 34, 43) )

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

    Func _TargetDateTime($Source=-1, $Day=0, $Hour=0, $Min=0, $Sec=0)
    If $Source = -1 Then
    $Source = _NowCalc()
    Else
    If Not StringRegExp($Source, '(\d{4}\/\d{2}\/\d{2} \d{2}\:\d{2}\:\d{2})') Then Return SetError(1,0,-1)
    EndIf
    Return _DateAdd('s', $Sec, _DateAdd('n', $Min, _DateAdd('h', $Hour, _DateAdd('d', $Day, $Source))))
    EndFunc

    [/autoit]

    Aber was willst du denn genau tun? Hier hast du doch nun schon die Lösungswege zum Datumsrechnen bekommen. Du kannst dir die Funktionsweise auch nochmal in der Hilfe nachlesen.

  • Anfänger braucht hilfe =)

    • BugFix
    • 25. April 2008 um 21:26

    Vielleicht solltest du einen Quellpfad angeben....? :rolleyes:

  • extended TimerDiff()

    • BugFix
    • 25. April 2008 um 21:15

    Hi,
    ich habe die Funktion TimerDiff() erweitert und die Funktion _TimerDiffExt() erstellt.
    Die Funktion gibt ein Array mit folgenden Inhalten zurück:
    - Originalrückgabe der Funktion TimerDiff()
    - Nachkommateil des Sekundenwertes
    - Sekundenanteil
    - Minutenanteil
    - Stundenanteil
    - Tage

    Edit 04.01.09
    Erweiterung auf folgende zusätzliche Ausgabemöglichkeiten (formatierter String)
    - 1d 01:58:02
    - 1d 01:58:02,562
    - 15:02:02
    - 15:02:02,563
    - 57:02
    - 57:02,563

    _TimerDiffExt
    [autoit]

    ;===============================================================================
    ; Function Name: _TimerDiffExt($INIT=-1, $Ret='a', $PostDec=0, $DelimDec=',')
    ; Description:: Erweiterte TimerDiff-Funktion, splittet Differenz auf
    ; Rückgabe als Array oder formatierter String
    ; Parameter(s): $INIT Variable der Initialisierung mit TimerInit()
    ; $Ret Return-Type (a=Array[Standard]; d=d hh:mm:ss[,ms]; h=hh:mm:ss[,ms]; m=mm:ss[,ms];)
    ; $PostDec Nachkommastellen für Sekunden 0=Nein(Standard); 1=Ja
    ; $DelimDec Trenner für Nachkommastellen, Standard=','
    ; Return Value(s): Erfolg Array[0] - Return von TimerDiff()
    ; Array[1] - Nachkommateil von Sekunden, 3-stellig
    ; Array[2] - Sekundenanteil
    ; Array[3] - Minutenanteil
    ; Array[4] - Stundenanteil
    ; Array[5] - Tageanteil
    ; oder String [1d 01:58:02/ 1d 01:58:02,562] [15:02:02/ 15:02:02,563] [57:02/ 57:02,563]
    ; Fehler -1 @error 1 (keine TimerInit-Referenz übergeben)
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _TimerDiffExt($INIT=-1, $Ret='a', $PostDec=0, $DelimDec=',')
    If $INIT = -1 Then Return SetError(1,0,-1)
    Local $aReturn[6] = [0,0,0,0,0,0]
    $aReturn[0] = TimerDiff($INIT)
    Local $sec = Floor($aReturn[0]/1000)
    Local $msec = StringRegExp($aReturn[0], '\A\d+', 1)
    $aReturn[1] = StringRight('00' & $msec[0], 3)
    Select
    Case $sec > 86399 ; s/min/h/d
    $aReturn[2] = Mod(Mod(Mod($sec,86400),3600),60)
    $aReturn[3] = Floor(Mod(Mod($sec,86400),3600)/60)
    $aReturn[4] = Floor(Mod($sec,86400)/3600)
    $aReturn[5] = Floor($sec/86400)
    Case $sec > 3599 ; s/min/h
    $aReturn[2] = Mod(Mod($sec,3600),60)
    $aReturn[3] = Floor(Mod($sec,3600)/60)
    $aReturn[4] = Floor($sec/3600)
    Case $sec > 59 ; s/min
    $aReturn[2] = Mod($sec, 60)
    $aReturn[3] = Floor($sec/60)
    Case Else ; s
    $aReturn[2] = $sec
    EndSelect
    If $PostDec <> 0 Then $PostDec = 1
    Local $sReturn
    Switch StringLower($Ret)
    Case 'd'
    $sReturn = StringFormat('%ud %.2u:%.2u:%.2u', $aReturn[5], $aReturn[4], $aReturn[3], $aReturn[2])
    If $PostDec Then $sReturn &= $DelimDec & $aReturn[1]
    Case 'h'
    $sReturn = StringFormat('%.2u:%.2u:%.2u', $aReturn[4], $aReturn[3], $aReturn[2])
    If $PostDec Then $sReturn &= $DelimDec & $aReturn[1]
    Case 'm'
    $sReturn = StringFormat('%.2u:%.2u', $aReturn[3], $aReturn[2])
    If $PostDec Then $sReturn &= $DelimDec & $aReturn[1]
    Case Else
    Return $aReturn
    EndSwitch
    Return $sReturn
    EndFunc ;==>_TimerDiffExt

    [/autoit]

    DL bisher: 26

  • In 1 Tag und 5 Stunden ist es ... Uhr

    • BugFix
    • 25. April 2008 um 21:08

    Ich habe grade eine erweiterte TimerDiff-Funktion erstellt. Die findest du gleich im Board Entwickler.
    Da kannst du die Methoden der Umrechnung sehen.

    Edit:
    Du kannst auch mit _DateAdd() arbeiten.
    Hier mal als Bsp. mit deinen Werten:

    [autoit]

    #include <Date.au3>
    $day = 2
    $hour = 12
    $min = 34
    $sec = 43
    $now = _NowCalc() ; das aktuelle Datum/Uhrzeit

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

    $dest = _DateAdd('d', $day, $now)
    $dest = _DateAdd('h', $hour, $dest)
    $dest = _DateAdd('n', $min, $dest)
    $dest = _DateAdd('s', $sec, $dest)
    MsgBox(0, $now, $dest)

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

    ; oder in einer Zeile:

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

    MsgBox(0, $now, _DateAdd('s', $sec, _DateAdd('n', $min, _DateAdd('h', $hour, _DateAdd('d', $day, $now)))))

    [/autoit]
  • Anfänger braucht hilfe =)

    • BugFix
    • 25. April 2008 um 20:11

    Ich hab mal etwas angepaßt:

    Spoiler anzeigen
    [autoit]

    #Include <File.au3>
    #include <GUIConstants.au3>
    Global $Zielordner = ''

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

    $Form1 = GUICreate("Form1", 634, 447, 200, 147)
    $Button1 = GUICtrlCreateButton("Umbenennen", 16, 384, 169, 49, 0)
    $Button2 = GUICtrlCreateButton("Auf PSP Kopieren", 448, 384, 169, 49, 0)
    $Button3 = GUICtrlCreateButton("Wähle ordner", 233, 384, 169, 49, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    ; wozu umbenennen? - beim kopieren einfach den neuen Namen vergeben in Variable $Datei
    Case $Button2
    If $Zielordner = '' Then
    MsgBox(0, '', 'Kein Zielordner gewählt!')
    Else
    FileCopy("Quellpfad", $Zielordner & '\' $Datei)
    EndIf
    Case $Button3
    $Zielordner = FileSelectFolder('Bitte PSP-Ordner wählen', @MyDocumentsDir)
    EndSwitch
    WEnd

    [/autoit]
  • SNMP UDF Wer macht mit ?

    • BugFix
    • 23. April 2008 um 21:43

    Ich hab mit SNMP selber nix zu tun - aber ich hab Quellen :D
    Vielleicht ist diese WMI-Variante etwas, was du verwenden kannst? Hab da noch ein paar Skriptbeispiele (System Group Information, TCP und UDP Verbindungen und Listening Ports)

    Bsp.

    SNMP MIB-II Interface Table Information
    [autoit]

    $strTargetSnmpDevice = "192.168.0.1"

    $objWmiLocator = ObjCreate("WbemScripting.SWbemLocator")
    $objWmiServices = $objWmiLocator.ConnectServer("", "root\snmp\localhost")

    $objWmiNamedValueSet = ObjCreate("WbemScripting.SWbemNamedValueSet")
    $objWmiNamedValueSet.Add ("AgentAddress", $strTargetSnmpDevice)
    $objWmiNamedValueSet.Add ("AgentReadCommunityName", "public")

    $colIfTable = $objWmiServices.InstancesOf("SNMP_RFC1213_MIB_ifTable", , $objWmiNamedValueSet)

    For $$objInterface In $colIfTable
    MsgBox(0, '', _
    "ifIndex [Key]: " & $objInterface.ifIndex & @CRLF & _
    " ifAdminStatus: " & $objInterface.ifAdminStatus & @CRLF & _
    " ifDescr: " & $objInterface.ifDescr & @CRLF & _
    " ifInDiscards: " & $objInterface.ifInDiscards & @CRLF & _
    " ifInErrors: " & $objInterface.ifInErrors & @CRLF & _
    " ifInNUcastPkts: " & $objInterface.ifInNUcastPkts & @CRLF & _
    " ifInOctets: " & $objInterface.ifInOctets & @CRLF & _
    " ifInUcastPkts: " & $objInterface.ifInUcastPkts & @CRLF & _
    " ifInUnknownProtos: " & $objInterface.ifInUnknownProtos & @CRLF & _
    " ifLastChange: " & $objInterface.ifLastChange & @CRLF & _
    " ifMtu: " & $objInterface.ifMtu & @CRLF & _
    " ifOperStatus: " & $objInterface.ifOperStatus & @CRLF & _
    " ifOutDiscards: " & $objInterface.ifOutDiscards & @CRLF & _
    " ifOutErrors: " & $objInterface.ifOutErrors & @CRLF & _
    " ifOutNUcastPkts: " & $objInterface.ifOutNUcastPkts & @CRLF & _
    " ifOutOctets: " & $objInterface.ifOutOctets & @CRLF & _
    " ifOutQLen: " & $objInterface.ifOutQLen & @CRLF & _
    " ifOutUcastPkts: " & $objInterface.ifOutUcastPkts & @CRLF & _
    " ifPhysAddress: " & $objInterface.ifPhysAddress & @CRLF & _
    " ifSpecific: " & $objInterface.ifSpecific & @CRLF & _
    " ifSpeed: " & $objInterface.ifSpeed & @CRLF & _
    " ifType: " & $objInterface.ifType )
    Next

    [/autoit]
    Printer Port Properties
    [autoit]

    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")

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

    $colPorts = $objWMIService.ExecQuery _
    ("Select * from Win32_TCPIPPrinterPort")

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

    For $objPort in $colPorts
    MsgBox(0, '', "Description: " & $objPort.Description & @LF & _
    "Host Address: " & $objPort.HostAddress & @LF & _
    "Name: " & $objPort.Name & @LF & _
    "Port Number: " & $objPort.PortNumber & @LF & _
    "Protocol: " & $objPort.Protocol & @LF & _
    "SNMP Community: " & $objPort.SNMPCommunity & @LF & _
    "SNMP Dev Index: " & $objPort.SnMPDevIndex & @LF & _
    "SNMP Enabled: " & $objPort.SNMPEnabled )
    Next

    [/autoit]
  • StopUhr Wie würdet ihrs machen?

    • BugFix
    • 23. April 2008 um 11:43

    Oder etwas anders ;)
    Hier mit 3 Modi:
    - Messung absolut
    - Anzeigestop, weiterlaufende Messung (z.B. Rundenzeiten)
    - unterbrochene Messung
    Momentan für Anzeige mm:ss,zht

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Global $start, $UsedTime, $diff_Alt = 0
    Global $SetTime = False, $Break = False, $Pause = False, $Run = True

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

    $GUI = GUICreate('Stoppuhr', 400, 100, -1, -1)
    $Time = GUICtrlCreateInput('00:00,000', 100, 20, 200, 20, BitOR($ES_CENTER,$ES_READONLY))
    $bStart = GUICtrlCreateButton('Start', 40, 60, 80, 20)
    $bBreak = GUICtrlCreateButton('Unterbrechen', 160, 60, 80, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $bPause = GUICtrlCreateButton('Pause', 280, 60, 80, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState()

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

    While True
    $msg = GUIGetMsg()
    If $SetTime Then $UsedTime = SetTime()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $bStart ; Start/Stop Messung absolut
    $Run = Not $Run
    If $Run Then
    $SetTime = False
    SetTime()
    GUICtrlSetData($bStart, 'Start')
    GUICtrlSetState($bBreak, $GUI_DISABLE)
    GUICtrlSetState($bPause, $GUI_DISABLE)
    Else
    $SetTime = True
    $start = TimerInit()
    GUICtrlSetData($bStart, 'Stop')
    GUICtrlSetState($bBreak, $GUI_ENABLE)
    GUICtrlSetState($bPause, $GUI_ENABLE)
    EndIf
    Case $bBreak ; nur Anzeige wird angehalten (z.B. Rundenmessung)
    $Break = Not $Break
    If $Break Then
    $SetTime = False
    GUICtrlSetData($bBreak, 'Fortsetzen')
    GUICtrlSetState($bPause, $GUI_DISABLE)
    Else
    $SetTime = True
    GUICtrlSetData($bBreak, 'Unterbrechen')
    GUICtrlSetState($bPause, $GUI_ENABLE)
    EndIf
    Case $bPause ; Messung wird angehalten (Additionsmessung)
    $Pause = Not $Pause
    If $Pause Then
    $diff_Alt = $UsedTime ; abgelaufene Zeit aufaddieren
    $SetTime = False
    GUICtrlSetData($bPause, 'Weiter')
    GUICtrlSetState($bBreak, $GUI_DISABLE)
    Else
    $SetTime = True
    $start = TimerInit() ; Zeitmessung neu initialisieren
    GUICtrlSetData($bPause, 'Pause')
    GUICtrlSetState($bBreak, $GUI_ENABLE)
    EndIf
    EndSwitch
    WEnd

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

    Func SetTime()
    Local $diff = TimerDiff($start)/1000 + $diff_Alt
    Local $min = 0
    Local $sec = Floor($diff)
    Local $rest = ($diff-$sec)*1000
    If $sec > 59 Then
    $min = Floor($sec/60)
    $secShow = Mod($sec, 60)
    Else
    $secShow = $sec
    EndIf
    GUICtrlSetData($Time, StringFormat('%02u', $min) & ':' & StringFormat('%02u', $secShow) & ',' & StringFormat('%03u', $rest))
    Return $diff ; gibt abgelaufene Zeit als absolute Differenz zurück
    EndFunc

    [/autoit]
  • StopUhr Wie würdet ihrs machen?

    • BugFix
    • 22. April 2008 um 20:13
    Zitat von Funktionsbeschreibung

    Anzeige: herunterzählend (Standard) oder heraufzählend

  • pixel überwachen

    • BugFix
    • 22. April 2008 um 19:08

    PixelGetColor ?

  • StopUhr Wie würdet ihrs machen?

    • BugFix
    • 22. April 2008 um 19:03

    Hi, ich hatte mal eine Countdown-Funktion erstellt.
    Da kannst du dir Anregungen holen ;)

  • Finale Form

    • BugFix
    • 22. April 2008 um 17:54

    1. Wieso hast du den Inhalt der Funktionen in dein Skript kopiert?
    Du brauchst nur die Funktionsnamen um diese aufzurufen (entsprechende Includes vorausgesetzt)

    2. Ich sehe nicht, was du eigentlich machen willst *grübel*
    Schreib mal ohne Code (also mit deinen Worten), was das Ziel ist.

  • Finale Form

    • BugFix
    • 22. April 2008 um 17:49

    Und was ist jetzt die Fragestellung?

  • Ich kann Array nicht erweitern ...

    • BugFix
    • 22. April 2008 um 17:35

    Wenn du ein Array dynamisch erweitern willst, hast du aber bei einem 2D-Array sicher die 2.te Dimension mit fester Anzahl, also z.B. $Array[n][2]

    Dynamisch zuweisen geht dann so:

    [autoit]

    ; Deklaration
    Global $Array[1][2] ; ein Element muß auf jeden Fall deklariert werden - [0] geht nicht
    ; Zuweisung
    $Array[Ubound($Array)-1][0] = 'Wert 1_0'
    $Array[Ubound($Array)-1][1] = 'Wert 1_1'
    ; Array vergrößern
    ReDim $Array[Ubound($Array)+1][2]

    [/autoit]
  • Frage beim Complieren zu exe!

    • BugFix
    • 21. April 2008 um 21:30

    Das ist die 'Beschreibung' und die kannst du beim Kompilieren angeben.
    <Kompilieren> Registerkarte: <Resource Update> <Description>

  • Festplatte nach Standby verschwunden.

    • BugFix
    • 21. April 2008 um 20:29

    :D Und ich dachte schon, nur ich habe das Problem :rofl:
    Es scheint ein Problem zu geben bei Einsatz eines Bootmanagers und damit verbundener Aktivierung/Deaktivierung der jeweiligen Primärpartition.
    Bei mir ist folgende Konfiguration:
    - hda: WIN XP #1 auf erster Primärpartition; weitere logische Lw für Daten etc.
    - hdb: WIN XP #2 auf erster Primärpartition; Linuxpartition für GRUB-Dateien
    (2 x XP, da einmal privat, einmal beruflich)

    Ich habe noch kein System erkannt, aber in ca. 60% aller Fälle bekomme ich beim Starten die Meldung , dass kein bootbares Medium vorhanden sei. :wacko: Ein Warmstart und schon begrüßt mich mein Bootmenü. 8o
    Ich habe schon etliche Foren durchforstet, Spezialisten (und solche, die sich dafür halten :D) befragt - aber eine einleuchtende Erklärung hatte bisher keiner.

  • Sound deaktivieren und Lautsprechersymbol ausblenden

    • BugFix
    • 21. April 2008 um 12:53

    Ich weiß ja nicht, warum der Sound deaktiviert werden soll.
    So läßt es sich aber von jedem halbwegs Computerfähigen User wieder reaktivieren.
    Wenn die Nutzung der Soundkarte nicht gewünscht wird, deaktiviere sie doch im BIOS oder per 'dxdiag' in der DirectX-Umgebung. Da wird sicher kaum wer nach suchen. :D

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™