Local $hWnd = _GetForegroundWindow()
If @error Then
; 前台窗口获取失败。
Else
WinFlash($hWnd) ; 闪烁窗口。
EndIf
; 获取当前前台窗口的句柄。
Func _GetForegroundWindow()
Local $iResult = DllCall("User32.dll", "hwnd", "GetForegroundWindow")
Return SetError($iResult[0] = 0, 0, $iResult[0])
EndFunc ;==>_GetForegroundWindow
这是P大教材里的一算代码,有几点以后望各位帮忙解答 谢谢
1 SetError($iResult[0] = 0, 0, $iResult[0]) 和SetError( 0, 0, $iResult[0]) 有何不同 教程里有很多的地方都是类似前者的方式 为什么这样呢?有何意义?
2 如一中的$iResult[0] = 0 ,也就是说这里已经将 $iResult[0])赋值为0了 后面让seterror返回$iResult[0] 那按理说返回值应该是0啊,但实际测试发现还是原来的值 这又是为何?
3 自定义函数的返回值通过seterror设置了@error的值=0了 那这样的话 回到前面的 if @error 应该执行的是then 后面的语句啊 但是为什么执行的却是else后的语句呢? |