Что нового

Скрыть\показать иконки на рабочем столе

Detre

Новичок
Сообщения
61
Репутация
0
Всем привет, прошу помощи на создание простого exe(Без интерфейса). Искал в интернетах подобие желаемого, но в основном попадались проги с интерфейсом и тонкой настройкой. Всего лишь нужна функция Скрыть\показать по нажатию по exe. Так же нашел нечто подобное на нашем форуме https://autoit-script.ru/threads/kak-skryt-ikonki-na-rabochem-stole.335/ , но у меня работает это только в одну сторону и без перезапуска проводника не воркает (И то, через тушение проводника отрабатывает через раз)...Заранее огромное спасибо за помощь)
 

xXx

╚{■_■}╗
Меценат
Сообщения
245
Репутация
94
 
Автор
Detre

Detre

Новичок
Сообщения
61
Репутация
0
Спасибо, чекну)
Сообщение автоматически объединено:

Код:
$hWnd = WinGetHandle('[CLASS:Progman;Title:Program Manager]')
$hControl = ControlGetHandle($hWnd, '', '[CLASS:SysListView32; INSTANCE:1]')
ControlHide($hWnd, '', $hControl)
MsgBox(262144, Default, '<<< П Р О В Е Р К А >>>')
ControlShow($hWnd, '', $hControl)


Да, это работает спасибо большое. Только вот msgbox мешает. Нужно при прожатии в первый раз, чтобы скрывало, при втором, показывало, не поможете?)
 

xXx

╚{■_■}╗
Меценат
Сообщения
245
Репутация
94
Скрыть\показать по нажатию по exe.
Код:
$hWnd = WinGetHandle('[CLASS:Progman;Title:Program Manager]')
$hControl = ControlGetHandle($hWnd, '', '[CLASS:SysListView32; INSTANCE:1]')
If @error Then Exit 1

If BitAND(WinGetState($hControl), 2) Then
    ControlHide($hWnd, '', $hControl)
Else
    ControlShow($hWnd, '', $hControl)
EndIf

Сообщение автоматически объединено:

А так еще круче:
Код:
$hWnd_1 = WinGetHandle('[CLASS:Progman;Title:Program Manager]')
$hControl_1 = ControlGetHandle($hWnd_1, '', '[CLASS:SysListView32; INSTANCE:1]')
If @error Then Exit 1
$hWnd_2 = WinGetHandle('[CLASS:Shell_TrayWnd]')
If @error Then Exit 2

If BitAND(WinGetState($hControl_1), 2) Then
    ControlHide($hWnd_1, '', $hControl_1)
    WinSetState($hWnd_2, '', @SW_HIDE)
Else
    ControlShow($hWnd_1, '', $hControl_1)
    WinSetState($hWnd_2, '', @SW_SHOW)
EndIf
 
Последнее редактирование:
Автор
Detre

Detre

Новичок
Сообщения
61
Репутация
0
Код:
$hWnd = WinGetHandle('[CLASS:Progman;Title:Program Manager]')
$hControl = ControlGetHandle($hWnd, '', '[CLASS:SysListView32; INSTANCE:1]')
If @error Then Exit 1

If BitAND(WinGetState($hControl), 2) Then
    ControlHide($hWnd, '', $hControl)
Else
    ControlShow($hWnd, '', $hControl)
EndIf

Сообщение автоматически объединено:

А так еще круче:
Код:
$hWnd_1 = WinGetHandle('[CLASS:Progman;Title:Program Manager]')
$hControl_1 = ControlGetHandle($hWnd_1, '', '[CLASS:SysListView32; INSTANCE:1]')
If @error Then Exit 1
$hWnd_2 = WinGetHandle('[CLASS:Shell_TrayWnd]')
If @error Then Exit 2

If BitAND(WinGetState($hControl_1), 2) Then
    ControlHide($hWnd_1, '', $hControl_1)
    WinSetState($hWnd_2, '', @SW_HIDE)
Else
    ControlShow($hWnd_1, '', $hControl_1)
    WinSetState($hWnd_2, '', @SW_SHOW)
EndIf

Господи, идеально, просто снимаю шляпу)))
 
Верх