Fehlermeldung

06/22/2009 19:15 anders5#1
Hi,
hab ma versucht was mit der Funktion _Timer_SetTimer zu machen.
Dabei bekomme ich allerdings immer diese Fehlermeldung:
Line 282 (File ":\Programme\AutoIt v3\AutoIt3\Include\Timers.au3"):
$hCallBack = DllCallbackRegister ($sTimerFunc, "none", "hwnd;int;int;dword")
Error: Badly formatted "Func" statement

so, hat jemand ne ahnung was das soll und was ich dagengen mache kann, weil das is ja ne datei aus den includes, da kann ich ja schlecht was veränderen
06/22/2009 19:55 felixli93#2
da ich die funktion nicht in der hilfe finde, ist es wohl eine UDF, die irgendwo einen fehler enthält.
das einzige, was du machen kannst, ist den fehler finden
06/22/2009 20:04 anders5#3
ok ich hab ma die betreffende Datei aus der Hilfe rausgesucht, das hier ist der entsprechende Teil. Also ich kann damit wenig anfangen und eigenltlich kann es doch auch nicht sein dass in einer include datei ein fehler ist oder?

PHP Code:
Func _Timer_SetTimer($hWnd$iElapse 250$sTimerFunc ""$iTimerID = -1)
    
Local $iResult[1], $pTimerFunc 0$hCallBack 0$iIndex $_Timers_aTimerIDs[0][0] + 1
    
If $iTimerID = -1 Then create a new timer
        ReDim $_Timers_aTimerIDs
[$iIndex 1][3]
        
$_Timers_aTimerIDs[0][0] = $iIndex
        $iTimerID 
$iIndex 1000
        
For $x 1 To $iIndex
            
If $_Timers_aTimerIDs[$x][0] = $iTimerID Then
                $iTimerID 
$iTimerID 1
                $x 
0
            
EndIf
        
Next
        
If $sTimerFunc <> "" Then using callbacks, if $sTimerFunc "" then using WM_TIMER events
            $hCallBack 
DllCallbackRegister($sTimerFunc"none""hwnd;int;int;dword")
            If 
$hCallBack 0 Then Return SetError(-1, -10)
            
$pTimerFunc DllCallbackGetPtr($hCallBack)
            If 
$pTimerFunc 0 Then Return SetError(-1, -10)
        EndIf
        
$iResult DllCall("user32.dll""int""SetTimer""hwnd"$hWnd"int"$iTimerID"int"$iElapse"ptr"$pTimerFunc)
        If @
error Then Return SetError(-1, -10)
        If 
$iResult[0] = 0 Then Return SetError(-1, -10)
        
$_Timers_aTimerIDs[$iIndex][0] = $iResult[0] ; integer identifier
        $_Timers_aTimerIDs
[$iIndex][1] = $iTimerID timer id
        $_Timers_aTimerIDs
[$iIndex][2] = $hCallBack callback identifierneed this for the Kill Timer
    
Else ; reuse timer
        
For $x 1 To $iIndex 1
            
If $_Timers_aTimerIDs[$x][0] = $iTimerID Then
                
If IsHWnd($hWndThen $iTimerID $_Timers_aTimerIDs[$x][1]
                
$hCallBack $_Timers_aTimerIDs[$x][2]
                If 
$hCallBack <> 0 Then call back was used to create the timer
                    $pTimerFunc 
DllCallbackGetPtr($hCallBack)
                    If 
$pTimerFunc 0 Then Return SetError(-1, -10)
                EndIf
                
$iResult DllCall("user32.dll""int""SetTimer""hwnd"$hWnd"int"$iTimerID"int"$iElapse"ptr"$pTimerFunc)
                If @
error Then Return SetError(-1, -10)
                If 
$iResult[0] = 0 Then Return SetError(-1, -10)
                
ExitLoop
            
EndIf
        
Next
    
EndIf
    Return 
$iResult[0]
EndFunc   ;==>_Timer_SetTimer 
06/24/2009 19:19 Syc0n#4
[Only registered and activated users can see links. Click Here To Register...]

und dann schau mal nach #forceref
06/24/2009 20:21 anders5#5
ehrlich gesagt sagt mir das nich so wirklich viel, außerdem weiß ich net richtig wie ich damit das problem beheben kann, meinst du ich soll einfach im include code was ändern? wäre net wenn du das nochmal genuer erklären könntest aber thx schonma
06/24/2009 20:29 Syc0n#6
mal ein Beispiel...
PHP Code:

_Timer_SetTimer
("",2000,"SUX")

While 
1
    Sleep
(100)
Wend

Func SUX
($hWnd$Msg$iIDTimer$dwTime)
    
#forceref $hWnd, $Msg, $iIDTimer, $dwTime
    
Msgbox("","","BLABLABLABLA")
EndFunc 
06/24/2009 20:47 anders5#7
ah jetz hab ichs kappiert, klappt jetz super thx