Войти

Показать полную графическую версию : [решено] Эффекты в cmd.exe, Glass V1.0


semiono
11-07-2010, 07:20
Нашёл такой скрипт....

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=Glass.ico
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Change2CUI=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
If $CmdLine[0] <> 1 Then
ConsoleWrite("Syntax:Glass on|off" & @LF)
Exit
EndIf

$CON = _Console_GetConsoleWindow()
Switch $CmdLine[1]
Case "on"
EnableBlurBehind($CON)
Case "off"
DisableBlurBehind($CON)
Case Else
ConsoleWrite("Syntax:Glass on|off" & @LF)
EndSwitch



Func _Console_GetConsoleWindow()
Local $aResult = DllCall("kernel32.dll", "hwnd", "GetConsoleWindow")
If @error Or (Not IsArray($aResult)) Then Return SetError(@error, @extended, 0)
Return $aResult[0]
EndFunc ;==>_Console_GetConsoleWindow

Func EnableBlurBehind($hWnd)
Const $DWM_BB_ENABLE = 0x00000001
$Struct = DllStructCreate("dword;int;ptr;int")
DllStructSetData($Struct, 1, $DWM_BB_ENABLE)
DllStructSetData($Struct, 2, "1")
DllStructSetData($Struct, 4, "1")
DllCall("dwmapi.dll", "int", "DwmEnableBlurBehindWindow", "hwnd", $hWnd, "ptr", DllStructGetPtr($Struct))
EndFunc ;==>EnableBlurBehind

Func DisableBlurBehind($hWnd)
Const $DWM_BB_ENABLE = 0x00000001
$Struct = DllStructCreate("dword;int;ptr;int")
DllStructSetData($Struct, 1, $DWM_BB_ENABLE)
DllStructSetData($Struct, 2, "")
DllStructSetData($Struct, 4, "")
DllCall("dwmapi.dll", "int", "DwmEnableBlurBehindWindow", "hwnd", $hWnd, "ptr", DllStructGetPtr($Struct))
EndFunc ;==>EnableBlurBehind

Как он работает я так и не понял. У меня в консоли установлен Lucida Console Font, я думал из-за этого.
Но установка Raster Font ничего не изменила. Интересно, что этот код делает вообще?

Creat0R
11-07-2010, 17:59
Предупреждение за нарушение правил форума, пункт 2.7 (http://forum.oszone.net/rules.html#2.7):

В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема).

Переименуйте пожалуйста тему.




© OSzone.net 2001-2012