Что нового

Как расположить GUI на рабочий стол

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
В RocketDock есть такая функция "Расположить на рабочий стол".
dwdwd.jpg
Можно ли как-то GUI так расположить ?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
В английской версии, это называется "Always on bottom".

Код:
#Include <WinAPI.au3>
#Include <WindowsConstants.au3>

$hForm = GUICreate('MyGUI', 400, 400, 100, 100, $WS_SYSMENU)
_WinAPI_SetParent($hForm, WinGetHandle('[CLASS:Progman;TITLE:Program Manager]'))
GUISetState(@SW_SHOWNOACTIVATE)

Do
Until GUIGetMsg() = -3
 
Автор
Zaramot

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Спасибо Yashied, иногда мне кажется что это вы придумали Autoit :smile:
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Yashied
Если прибить Explorer, и включить заново, то окно пропадает.
Не помогает даже так:
Код:
Global $hDesktop = WinGetHandle('[CLASS:Progman;TITLE:Program Manager]')
Global $tDesktop = -1

$Panel = GUICreate('', @DesktopWidth+1, 20, 0, 0, $WS_POPUP)
GUISetState(@SW_SHOWNA)

While 1
	$hDesktop = WinGetHandle('[CLASS:Progman;TITLE:Program Manager]')
	if $hDesktop > 0 And $hDesktop <> $tDesktop Then
		_WinAPI_SetParent($Panel, $hDesktop)
		$tDesktop = $hDesktop
	EndIf
	Sleep(1)
WEnd


Как быть?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
#Include <WinAPI.au3>
#Include <WindowsConstants.au3>

$hForm = GUICreate('MyGUI', 400, 400, 100, 100, $WS_SYSMENU)
_WinAPI_SetParent($hForm, WinGetHandle('[CLASS:Progman;TITLE:Program Manager;CLASS:SysListView32; INSTANCE:1]'))
GUISetState(@SW_SHOWNOACTIVATE)

Do
Until GUIGetMsg() = -3

интересный момент. добавил значения, окно стало обычным, но не пропадает при выгрузке explorer.exe. осталось его в таком виде закрепить :scratch:
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
joiner
Это не то, нужно что-бы окно располагалось только на рабочем столе.
И при этом что-бы не пропадало если прибить Explorer.exe.

Если кто знает помогите... Буду очень рад!
 
Автор
Zaramot

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
А если так сделать:
Код:
#Include <WinAPI.au3>
#Include <WindowsConstants.au3>

$hForm = GUICreate('MyGUI', 400, 400, 100, 100, $WS_SYSMENU)
_WinAPI_SetParent($hForm, WinGetHandle('[CLASS:Progman;TITLE:Program Manager]'))
GUISetState(@SW_SHOWNOACTIVATE)

Do
   If Not ProcessExists('Explorer.EXE') Then Exit ShellExecute(@ScriptFullPath)
Until GUIGetMsg() = -3


Проверять существование процесса (Explorer.EXE) и если его нет то сделать перезапуск.
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Zaramot
Пере запускаться не оч. хорошо... Нужно искать более лучший способ...
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
_WinAPI_SetParent( WinGetHandle('[CLASS:Progman;TITLE:Program Manager]'),$hForm)

вот так точно не сворачивается :rofl:
 
Верх