瑞鲁手机APP下载网_专注推荐好用的手机APP和游戏APP

17你的生活点滴怎么玩?17app使用教程介绍 消息框

Win32ASM经验点滴

查看人次:0摘自:瑞鲁游戏APP

Q1. 如何隐藏/显示任务栏? Q2. 如何禁止/允许/显示/隐藏开始按钮? Q3. 如何创建一个真正的"总在最上面"窗口? Q4. 如何创建热键?比如CTRL + ALT + A Q5. 如何获得Windows目录和系统目录? Q6. 如何从我的程序打开开始菜单? Q7. 如何关闭被正激活的程序? Q8. 如何去掉窗口标题? Q9. 如何知道窗口是否在任务栏中(或可见) ? Q10. 如何隐藏一个窗口? Q11. 如何将窗口置于前台? Q12. 如何屏蔽CTRL+ALT+DEL,ALT+TAB+CTRL+ESC这些键? Q13. 如何确定Windows任务栏的自动隐藏特性是否被激活? Q14. 如何使用默认的浏览器或邮件程序? Q15. 如何用Win32 API显示网络连接对话框?

- 如何隐藏/显示任务栏?

shell db "Shell_TrayWnd",0 ; 任务栏的类名invoke FindWindow,addr shell,NULL ; 先获得句柄,之后隐藏. .if eax != 0invoke ShowWindow,eax,SW_HIDE ; 用SW_SHOW显示.endif

- 如何禁止/允许/显示/隐藏开始按钮? .data?buffer db 127 dup(?).datashell db "Shell_TrayWnd",0sbar db "BUTTON",0child dd ?slen dd ?.codeinvoke FindWindow,addr shell,NULL ; 获得状态栏句柄mov tray, eaxinvoke GetWindow,tray, GW_CHILD ; 获得状态栏的子窗口(如果有的话)mov child, eax.if child != 0invoke GetClassName,child,offset buffer, sizeof buffer ;获得子窗口类名.if eax > 0invoke lstrlen, offset buffer ;获得类名长度mov slen,eaxinvoke CharUpperBuff,offset buffer,slen ;转为大写invoke lstrcmp,addr buffer, addr sbar ;将类名与'BUTTON'比较 .if eax == 0invoke ShowWindow,child,SW_HIDE ; 隐藏开始按钮; invoke ShowWindow,child,SW_SHOW ; 显示开始按钮; invoke EnableWindow,child,FALSE ; 禁止开始按钮; invoke EnableWindow,child,TRUE ; 允许开始按钮.endif .endif.endif

- 如何创建一个真正的"总在最上面"窗口?

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

- 如何创建热键?比如CTRL + ALT + A

.datahmsg db "HotKey CTRL + ALT + A Works good!",0hcap db "Hotkey Example",0.code.if uMsg == WM_CREATEinvoke RegisterHotKey,hWnd,065h,MOD_CONTROL or MOD_ALT, 041h ; CTRL + ALT + A (041h is 65 - 065h is 101).elseif uMsg == WM_HOTKEYinvoke MessageBox,hWin,addr hmsg,addr hcap, MB_OK or MB_ICONINFORMATION.elseif uMsg == WM_DESTROYinvoke UnregisterHotKey,hWin,065hinvoke PostQuitMessage,NULLreturn 0 .endif

-如何获得Windows目录和系统目录

.databuffer db 50 dup(?)hCap db "WindowsDirectory",0.codeinvoke GetWindowsDirectory, addr buffer, sizeof buffer ; 置Windows目录于缓冲区中; invoke GetSystemDirectory, addr buffer, sizeof buffer ;置系统目录于缓冲区中invoke MessageBox,hWnd, addr buffer, addr hCap, MB_OK or MB_ICONINFORMATION

- 如何从我的程序打开开始菜单?

invoke SendMessage,hWnd,WM_SYSCOMMAND,SC_TASKLIST,NULL

- 如何关闭正被激活的程序 ?

.datafwin dd ?.codeinvoke GetForegroundWindowmov fwin,eaxinvoke SendMessage, fwin, WM_CLOSE,NULL

- 如何去掉窗口标题 ?

invoke GetWindowLong,hWnd,GWL_STYLE ; 获得当前窗口类and eax,not WS_CAPTION ; 去掉WS_CAPTIONinvoke SetWindowLong,hWnd,GWL_STYLE,eax ; 设置窗口类

- 如何知道窗口是否在任务栏中(或可见)?

invoke IsWindowVisible,hWin.if eax == TRUE; 窗口可见.else; 窗口不可见.endif

- 如何隐藏一个窗口?

.datamirc db "mIRC32",0mhand dd ?.codeinvoke FindWindow,addr mirc, NULL ; 寻找mIRC32mov mhand,eax .if mhand != 0 ; 找到?invoke ShowWindow,mhand,SW_SHOW ; 显示窗口; invoke ShowWindow,mhand,SW_HIDE ; 隐藏窗口.else; mIRC32未运行....endif

- 如何将窗口置于前台?

invoke SetForegroundWindow, mhand

- 如何屏蔽CTRL+ALT+DEL,ALT+TAB+CTRL+ESC这些键?

invoke SystemParametersInfo,SPI_SCREENSAVERRUNNING,1,NULL,NULL ; Windows98 only 1 关闭 0 允许

- 如何确定Windows任务栏的自动隐藏特性是否被激活?

.dataAppBar APPBARDATA {} ; {} 指使用默认值... Thanks to TTom.codemov AppBar.cbSize, sizeof AppBarinvoke SHAppBarMessage, ABM_GETSTATE, addr AppBar ; ShellApi命令and eax, ABS_AUTOHIDE.if eax == TRUE; 任务栏被隐藏.else; 任务栏未被隐藏.endif

- 如何使用默认的浏览器或邮件程序?

.datalpPage db "http://win32asm.cjb.net",0lpMail db "[email protected]",0lpOperation db "open",0.codeinvoke ShellExecute,hWin,addr lpOperation, addr lpPage, NULL, NULL, SW_SHOWNORMALinvoke ShellExecute,hWin,addr lpOperation, addr lpMail, NULL, NULL, SW_SHOWNORMAL

- 如何用Win32 API显示网络连接对话框?

include \MASM32\INCLUDE\mpr.incincludelib \MASM32\LIB\mpr.libinvoke WNetConnectionDialog,hWnd,RESOURCETYPE_DISK

相关文摘:破解文章 windows
标题名称:《17你的生活点滴怎么玩?17app使用教程介绍 消息框》
本文网址:https://www.sdruilu.cn/news/tpart-22006.html