Ответ 1. Как можно скрыть/показать панель задач?

shell db "Shell_TrayWnd",0 ; это имя класса панели задач
invoke FindWindow,addr shell,NULL ; получение хэндла панели задач
.if eax != 0
invoke ShowWindow,eax,SW_HIDE ; скрытие панели задач, используйте SW_SHOW для показа
.endif

Ответ 2. Как можно сделать недоступной/доступной/показать/скрыть кнопку “Пуск”?

.data?
buffer db 127 dup(?)
.data
shell db "Shell_TrayWnd",0
sbar db "BUTTON",0
child dd ?
slen dd ?

.code
invoke FindWindow,addr shell,NULL ; получение хэндла панели задач
mov tray, eax
invoke GetWindow,tray, GW_CHILD ; получение дочерних объектов на панели задач, если таковые имеются
mov child, eax
.if child != 0
invoke GetClassName,child,offset buffer, sizeof buffer ; получение имени класса дочернего объекта
.if eax > 0
invoke lstrlen, offset buffer ; получение размера класса дочернего объекта
mov slen,eax
invoke CharUpperBuff,offset buffer,slen ; преобразование к верхнему регистру
invoke lstrcmp,addr buffer, addr sbar ; сравнение имени класса с BUTTON
.if eax == 0
invoke ShowWindow,child,SW_HIDE ; скрыть кнопку "Пуск"
; invoke ShowWindow,child,SW_SHOW ; показать кнопку "Пуск"
; invoke EnableWindow,child,FALSE ; кнопка "Пуск" недоступна
; invoke EnableWindow,child,TRUE ; кнопка "Пуск" доступна
.endif
.endif
.endif

Ответ 3. Как сделать окно действительно Stay On Top?

invoke SetWindowPos,hWin, HWND_TOPMOST,NULL,NULL,NULL,NULL,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE

Ответ 4. Как создать горячие клавиши? Например CTRL+ALT+A.

.data
hmsg db "HotKey CTRL + ALT + A Works good!",0
hcap db "Hotkey Example",0

.code .if uMsg == WM_CREATE
invoke RegisterHotKey,hWnd,065h,MOD_CONTROL or MOD_ALT, 041h ; CTRL + ALT + A (041h is 65 - 065h is 101)

.elseif uMsg == WM_HOTKEY
invoke MessageBox,hWin,addr hmsg,addr hcap, MB_OK or MB_ICONINFORMATION

.elseif uMsg == WM_DESTROY
invoke UnregisterHotKey,hWin,065h
invoke PostQuitMessage,NULL
return 0
.endif

Ответ 5. Как узнать директорию Windows и системную директорию.

.data
buffer db 50 dup(?)
hCap db "WindowsDirectory",0

.code
invoke GetWindowsDirectory, addr buffer, sizeof buffer ; сохранение директории Windows в буфере
; invoke GetSystemDirectory, addr buffer, sizeof buffer ; сохранение системной директории в буфере
invoke MessageBox,hWnd, addr buffer, addr hCap, MB_OK or MB_ICONINFORMATION

Ответ 6. Как можно открыть меню Старт из моей программы?

invoke SendMessage,hWnd,WM_SYSCOMMAND,SC_TASKLIST,NULL

Ответ 7. Как закрыть активную программу?

.data
fwin dd ?

.code
invoke GetForegroundWindow
mov fwin,eax
invoke SendMessage, fwin, WM_CLOSE,NULL

Ответ 8. Как отобразить моё окно без заголовка?

invoke GetWindowLong,hWnd,GWL_STYLE ; получение информации об окне
and eax,not WS_CAPTION ; удаление WS_CAPTION
invoke SetWindowLong,hWnd,GWL_STYLE,eax ; установка свойств окна

Ответ 9. Как определить видимо окно или нет?

invoke IsWindowVisible,hWin
.if eax == TRUE
; окно видимо
.else
; окно не видимо
.endif

Ответ 10. Как скрыть окно?

.data
mirc db "mIRC32",0
mhand dd ?

.code
invoke FindWindow,addr mirc, NULL ; пример для mIRC32
mov mhand,eax
.if mhand != 0 ; получен ли хэндл ?
invoke ShowWindow,mhand,SW_SHOW ; показать окно
; invoke ShowWindow,mhand,SW_HIDE ; скрыть окно
.else
; mIRC32 в данный момент не запущен...
.endif

Ответ 11. Как отобразить окно поверх всех окон?

invoke SetForegroundWindow, mhand

Ответ 12. Как запретить комбинацию CTRL+ALT+DEL, ALT+TAB+CTRL+ESC?

invoke SystemParametersInfo,SPI_SCREENSAVERRUNNING,1,NULL,NULL

; работает только под Windows 98 1 - запретить; 0 - разрешить.
Ответ 13. Как определить включено ли свойство панели задач “Автоматически убирать с экрана”?

.data
AppBar APPBARDATA {} ; {} означает использовать установки по умолчанию...

.code
mov AppBar.cbSize, sizeof AppBar
invoke SHAppBarMessage, ABM_GETSTATE, addr AppBar
and eax, ABS_AUTOHIDE
.if eax == TRUE
; свойство включено
.else
; свойство не включено
.endif

Ответ 14. Как открыть браузер или почтовую программу, используемые по умолчанию?

.data
lpPage db "http://win32asm.cjb.net",0
lpMail db "ates@anet.net.tr",0
lpOperation db "open",0

.code
invoke ShellExecute,hWin,addr lpOperation, addr lpPage, NULL, NULL, SW_SHOWNORMAL
invoke ShellExecute,hWin,addr lpOperation, addr lpMail, NULL, NULL, SW_SHOWNORMAL

Ответ 15. Как вызвать диалог “Установка соединения” используя Win32 API?

include \MASM32\INCLUDE\mpr.inc
includelib \MASM32\LIB\mpr.lib
invoke WNetConnectionDialog,hWnd,RESOURCETYPE_DISK