PDA

Показать полную графическую версию : Создание на раб. столе незаметной произвольной надписи


sashadeg
26-01-2010, 17:36
Вот такой вопрос:
Как сделать на рабочем столе не привлекающую внимание произвольную надпись, например IP-адресс.

Вот пример надписи сборки операционной системы, надо что-то типа такого же:
http://s56.radikal.ru/i154/1001/2b/833cd101beeft.jpg (http://s56.radikal.ru/i154/1001/2b/833cd101beef.jpg)

madmasles
26-01-2010, 18:20
sashadeg,
У меня вот такой код есть. Где-то на форумах нашел.
#Include <WindowsConstants.au3>
#Include <WinAPIEx.au3>

$hMain = GUICreate("", 800, 600, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
GUISetBkColor(0xFF0011)
$hOk = GUICtrlCreateButton("OK", 365, 560, 70, 23)
$hLabel = GUICtrlCreateLabel("Какая-то надпись.", 10, 100, 500, 100)
GUICtrlSetColor($hLabel, 0xFF0000)
GUICtrlSetFont($hLabel, 32, 800, -1, "Tahoma")

GUISetState(@SW_SHOW, $hMain)

_WinAPI_SetLayeredWindowAttributes($hMain, 0xFF0011, 0, $LWA_COLORKEY)

While 1
If GUIGetMsg() = $hOk Then Exit
WEnd

sashadeg
26-01-2010, 18:56
0_о

а как-нибудь без лишних кнопочек?

Вот практически то что на скрине.... (и твоя надпись сидит выше ярлыков и некоторых окон)

madmasles
26-01-2010, 19:30
sashadeg,
Мне кажется, что из приведенного мной примера можно было бы самому доделать то, что Вам надо:
#NoTrayIcon
#Include <WindowsConstants.au3>
#Include <WinAPIEx.au3>

$hMain = GUICreate("", 70, 40, @DesktopWidth -70, @DesktopHeight -80, $WS_POPUP, $WS_EX_LAYERED)
GUISetBkColor(0xFF0011)
$hLabel = GUICtrlCreateLabel(@OSVersion & @CRLF & @OSBuild, 1, 1, 68, 38)
GUICtrlSetFont($hLabel, 12, 400, -1, "Tahoma")

GUISetState(@SW_SHOW, $hMain)
_WinAPI_SetLayeredWindowAttributes($hMain, 0xFF0011, 0, $LWA_COLORKEY)

While 1
Sleep(50)
WEnd

И т.д и т.п.

Iska
26-01-2010, 19:33
sashadeg, если Вам просто надо вывести некую информацию на обои — то попробуйте пользовать BgInfo (http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx).

Или же Вам нужно выводить что-то именно из своего AutoIt скрипта?

madmasles
26-01-2010, 19:54
sashadeg,

На AutoIt русских форумах еще вот что нашел:
#NoTrayIcon
#Include <WindowsConstants.au3>
#Include <WinAPIEx.au3>
#include <StaticConstants.au3>

$hParent = GUICreate('', 0, 0, 0, 0, 0, $WS_EX_TOOLWINDOW)
$hMain = GUICreate("", 70, 40, @DesktopWidth -75, @DesktopHeight -80, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_DLGMODALFRAME), $hParent)
GUISetBkColor(0xFF0011)
$hLabel = GUICtrlCreateLabel(@OSVersion & @CRLF & @OSBuild, 1, 1, 68, 38, $SS_CENTER)
GUICtrlSetFont($hLabel, 12, 400, -1, "Tahoma")
$hIcon = _WinAPI_GetClassLong($hMain, $GCL_HICON)
_WinAPI_FreeIcon($hIcon)
_WinAPI_SetClassLong($hMain, $GCL_HICON, 0)
_WinAPI_SetClassLong($hMain, $GCL_HICONSM, 0)
GUISetState(@SW_SHOW, $hMain)
_WinAPI_SetLayeredWindowAttributes($hMain, 0xFF0011, 0, $LWA_COLORKEY)

While 1
Sleep(50)
WEnd

FlatX007
27-01-2010, 09:48
На AutoIt русских форумах еще вот что нашел: »

Мне одному кажется что там, что-то нехватает :biggrin:
У меня не работает ...

madmasles
27-01-2010, 10:22
FlatX007,
У меня работает.

kaster
27-01-2010, 10:41
FlatX007, Все работает. Единственное, надо бы сделать определение высота TaskBar'a, а то я было, грешным делом, подумал что ослеп. А оказ-ся просто надпись перекрылась таскбаром.
;#NoTrayIcon
#Include <WindowsConstants.au3>
#Include <WinAPIEx.au3>
#include <StaticConstants.au3>

Opt('WINTITLEMATCHMODE', 4)
$pos = ControlGetPos("classname=Shell_TrayWnd", "", "ToolbarWindow322")
;MsgBox(0, "TaskBar Height:", $pos[3])

$hParent = GUICreate('', 0, 0, 0, 0, 0, $WS_EX_TOOLWINDOW)
;MsgBox(0, '', @DesktopHeight - $pos - 4 0)
$hMain = GUICreate("", 70, 40, @DesktopWidth - 70, @DesktopHeight - $pos[3] - 40, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_DLGMODALFRAME), $hParent)
GUISetBkColor(0xFF0011)
$hLabel = GUICtrlCreateLabel(@OSVersion & @CRLF & @OSBuild, 1, 1, 68, 38, $SS_CENTER)
GUICtrlSetFont($hLabel, 9, 400, -1, "Tahoma")
$hIcon = _WinAPI_GetClassLong($hMain, $GCL_HICON)
_WinAPI_FreeIcon($hIcon)
_WinAPI_SetClassLong($hMain, $GCL_HICON, 0)
_WinAPI_SetClassLong($hMain, $GCL_HICONSM, 0)
GUISetState(@SW_SHOW, $hMain)
_WinAPI_SetLayeredWindowAttributes($hMain, 0xFF0011, 0, $LWA_COLORKEY)

While 1
Sleep(50)
WEnd

FlatX007
27-01-2010, 10:49
Да ну работает ... может начнём выкладывать рабочие примеры и указывать ссылку на WinAPIEx.au3 - у меня вот небыло этой инклиды :read:

sashadeg
27-01-2010, 16:46
Да ну работает ... может начнём выкладывать рабочие примеры и указывать ссылку на WinAPIEx.au3 - у меня вот небыло этой инклиды »
У меня тоже =) Сначало хотел написать, чтобы скинули ссылку, но решил не ждать и откапал в инете сам эту библиотеку.

kaster
27-01-2010, 17:00
sashadeg, просто надо знать места :teeth:
Офф. форум AutoIt (http://www.autoitscript.com/forum/index.php)
Офф. русский портал и форум AutoIt (http://autoit-script.ru/index.php?action=forum)
Там подобных вопросов не возникает ;)




© OSzone.net 2001-2012