Что нового

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

Zaramot

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

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
В английской версии, это называется "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
Репутация
657
Спасибо Yashied, иногда мне кажется что это вы придумали Autoit :smile:
 

Ganibal95

GreenBytes
Сообщения
876
Репутация
239
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 319
Репутация
567
Код:
#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
Сообщения
876
Репутация
239
joiner
Это не то, нужно что-бы окно располагалось только на рабочем столе.
И при этом что-бы не пропадало если прибить Explorer.exe.

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

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
657
А если так сделать:
Код:
#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
Сообщения
876
Репутация
239
Zaramot
Пере запускаться не оч. хорошо... Нужно искать более лучший способ...
 

joiner

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

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