Zitat von Hilfe zu RandomFlag [optional] If this is set to 1 then an integer result will be returned. Default is a floating point number.
Beiträge von BugFix
-
-
Guckst du:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("test", 221, 383, 434, 271)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$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)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
$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 -
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
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 -
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

-
Du kannst es auch mit einer Funktion lösen:
Spoiler anzeigen
[autoit]; oder mit einer Funktion:
[/autoit] [autoit][/autoit] [autoit]
MsgBox( 0, '', _TargetDateTime(-1, 2, 12, 34, 43) )Func _TargetDateTime($Source=-1, $Day=0, $Hour=0, $Min=0, $Sec=0)
[/autoit]
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))))
EndFuncAber 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.
-
Vielleicht solltest du einen Quellpfad angeben....?

-
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
- TageEdit 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];===============================================================================
[/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 ;==>_TimerDiffExtDL bisher: 26
-
Ich habe grade eine erweiterte TimerDiff-Funktion erstellt. Die findest du gleich im Board Entwickler.
Da kannst du die Methoden der Umrechnung sehen.Edit:
[autoit]
Du kannst auch mit _DateAdd() arbeiten.
Hier mal als Bsp. mit deinen Werten:#include <Date.au3>
[/autoit][autoit][/autoit][autoit]
$day = 2
$hour = 12
$min = 34
$sec = 43
$now = _NowCalc() ; das aktuelle Datum/Uhrzeit$dest = _DateAdd('d', $day, $now)
[/autoit][autoit][/autoit][autoit]
$dest = _DateAdd('h', $hour, $dest)
$dest = _DateAdd('n', $min, $dest)
$dest = _DateAdd('s', $sec, $dest)
MsgBox(0, $now, $dest); 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] -
Ich hab mal etwas angepaßt:
Spoiler anzeigen
[autoit]#Include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
Global $Zielordner = ''$Form1 = GUICreate("Form1", 634, 447, 200, 147)
[/autoit] [autoit][/autoit] [autoit]
$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)While 1
[/autoit]
$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 -
Ich hab mit SNMP selber nix zu tun - aber ich hab Quellen

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"
[/autoit]
$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 )
NextPrinter Port Properties
[autoit]$strComputer = "."
[/autoit] [autoit][/autoit] [autoit]
$objWMIService = ObjGet("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")$colPorts = $objWMIService.ExecQuery _
[/autoit] [autoit][/autoit] [autoit]
("Select * from Win32_TCPIPPrinterPort")For $objPort in $colPorts
[/autoit]
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 -
Oder etwas anders

Hier mit 3 Modi:
- Messung absolut
- Anzeigestop, weiterlaufende Messung (z.B. Rundenzeiten)
- unterbrochene Messung
Momentan für Anzeige mm:ss,zhtSpoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
Global $start, $UsedTime, $diff_Alt = 0
Global $SetTime = False, $Break = False, $Pause = False, $Run = True$GUI = GUICreate('Stoppuhr', 400, 100, -1, -1)
[/autoit] [autoit][/autoit] [autoit]
$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()While True
[/autoit] [autoit][/autoit] [autoit]
$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
WEndFunc SetTime()
[/autoit]
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 -
Zitat von Funktionsbeschreibung
Anzeige: herunterzählend (Standard) oder heraufzählend
-
PixelGetColor ?
-
Hi, ich hatte mal eine Countdown-Funktion erstellt.
Da kannst du dir Anregungen holen
-
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. -
Und was ist jetzt die Fragestellung?
-
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
[/autoit]
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] -
Das ist die 'Beschreibung' und die kannst du beim Kompilieren angeben.
<Kompilieren> Registerkarte: <Resource Update> <Description> -
Und ich dachte schon, nur ich habe das Problem 
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ü.
Ich habe schon etliche Foren durchforstet, Spezialisten (und solche, die sich dafür halten :D) befragt - aber eine einleuchtende Erklärung hatte bisher keiner. -
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.