Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Создание на раб. столе незаметной произвольной надписи (http://forum.oszone.net/showthread.php?t=164755)

sashadeg 26-01-2010 17:36 1330509

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

Вот пример надписи сборки операционной системы, надо что-то типа такого же:

madmasles 26-01-2010 18:20 1330546

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 1330580

0_о

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

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

madmasles 26-01-2010 19:30 1330605

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 1330609

sashadeg, если Вам просто надо вывести некую информацию на обои — то попробуйте пользовать BgInfo.

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

madmasles 26-01-2010 19:54 1330621

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 1331114

Цитата:

Цитата madmasles
На AutoIt русских форумах еще вот что нашел: »

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

madmasles 27-01-2010 10:22 1331141

FlatX007,
У меня работает.

kaster 27-01-2010 10:41 1331154

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 1331161

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

sashadeg 27-01-2010 16:46 1331498

Цитата:

Цитата FlatX007
Да ну работает ... может начнём выкладывать рабочие примеры и указывать ссылку на WinAPIEx.au3 - у меня вот небыло этой инклиды »

У меня тоже =) Сначало хотел написать, чтобы скинули ссылку, но решил не ждать и откапал в инете сам эту библиотеку.

kaster 27-01-2010 17:00 1331513

sashadeg, просто надо знать места :teeth:
Офф. форум AutoIt
Офф. русский портал и форум AutoIt
Там подобных вопросов не возникает ;)


Время: 16:19.

Время: 16:19.
© OSzone.net 2001-