Windows API(以前称为Win32 API)是可用于Microsoft Windows操作系统的核心应用程序编程接口集。此标记用于使用Windows API开发本机Windows应用程序的问题。
对几天前我提出的问题的回答,我被告知我需要设置清单以在我创建的用于测试的Cuebannerdemo计划中使用Cuebanners。 因此,在阅读了...
;*************** INCLUDE MASM32 RUNTIME LIBRARY & MASM32 DEBUG MACROS ************************* include \masm32\include\masm32rt.inc ; MASM32 RUNTIME LIBRARY for MASM32. Includes windows.inc ; (which includes winextra.inc), as well as Windows API ; include & library files (e.g., user32.inc, user32.lib, ; kernel32.inc, etc.), dialogs.inc, & macros.asm include \masm32\include\debug.inc ; MASM32 DEBUG MACROS for VKDEBUG. Defines 6 "helper" macros ; used to display data in various formats (e.g., HEX, DECIMAL, ; ASCII), 4 constants, and 17 macros for debugging purposes. includelib \masm32\lib\debug.lib ; MASM32 DEBUG LIBRARY for VKDEBUG. Defines 7 external ; procedures & 9 external variables referenced by ; debug.inc for VKDEBUG ;****************************** DEFINE PROCEDURE PROTOTYPES *********************************** DlgProc proto hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM .const MAXSIZE equ 260 ; Maximum size of a file name MEMSIZE equ 65535 ; Maximum size of a memory buffer ; Define Resource Control Identities (must match identity assigned in resource control) ; ---------------- DEFINE EDIT CONTROL IDENTITIES -------------- ; ---------------- DEFINE EDIT CONTROL LABEL IDENTITIES -------------- ; -------------DEFINE BUTTON IDENTITIES-------------- BTN_Enter equ 1051 ; Enter Button BTN_Exit equ 1052 ; Exit Button ; ----------DEFINE MENU IDENTITIES------------ MyMenu equ 2000 ; Define Menu Identity IDC_Edit1001 equ 1001 IDC_STATIC1002 equ 1002 IDM_Exit equ 1003 IDM_Help equ 1004 IDM_About equ 1005 ; ---------------- END OF RESOURCE CONTROL DEFINITIONS -------------------------- ;******************* DEFINE PROGRAM DATA with INITIALIZED VALUES ******************* .data ;--------------------------- DEFINE ZERO-TERMINATED STRINGS ---------------------------------------- DlgName db "MyDialog",0 MenuName db "MyMenu",0 MsgBoxTitle db "My Test Dialog Box ",0 About_String1 db "CueBanner Demo1/21/2025",0 Help_String db "Help (UNDER CONSTRUCTION).",0 Enter_String db "You Pressed Enter", 0 IDC_Edit1001CueBanner db "This is the CueBanner for IDC_Edit1001",0 ;********************* DEFINE PROGRAM DATA with UNINITIALIZED VALUES ********************* .data? ; HANDLES hInstance HINSTANCE ? hDlg HWND ? hCtrl HWND ? CommandLine LPSTR ? hIDC_Edit1001 HWND ? ;----------------------------------------------------------------------------------------------------------------------------------------------------- BIGbuffer db 0FFFFh dup(?) ; Memory variable used to temporarily store data for further processing ;------------------------------------------------------------------------------------------------------------------------------------------------------- dwPTR TYPEDEF PTR DWORD ; Use of "dwPTR" DATATYPE is KEY to defining PTR as a "POINTER" lpIDC_Edit1001CueBanner dwPTR ? ;************************************************************************************************************************************************** .code ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- start: invoke GetModuleHandle, NULL mov hInstance,eax invoke DialogBoxParam, hInstance, addr DlgName,NULL, addr DlgProc, NULL ; Create Dialog Box mov hDlg, eax ; Save the handle to the Dialog Box INVOKE ExitProcess, eax ;****************************************************************************************************************************************************** DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM ;================================================================================ ;============================= BEGIN MESSAGE LOOP ============================== ; Window Message -- Initialize Dialog Box ;-------------------------------------------------------------------------------------------------------------------------------------------- .IF uMsg==WM_INITDIALOG invoke GetDlgItem,hWnd,IDC_Edit1001 mov hIDC_Edit1001,eax LEA eax,IDC_Edit1001CueBanner mov lpIDC_Edit1001CueBanner, eax invoke SendMessage,hIDC_Edit1001,EM_SETCUEBANNER,lpIDC_Edit1001CueBanner,TRUE ;-------------------------------------------------------------------------------------------------------------------------------------------- .ELSEIF uMsg==WM_NOTIFY push esi mov esi,lParam assume esi:ptr NMHDR ;------------------------------------------ .IF [esi].code==EN_MSGFILTER assume esi:ptr MSGFILTER ;------------------------------------------ .IF [esi].msg==WM_LBUTTONDBLCLK invoke GetFocus mov hCtrl, eax invoke GetDlgCtrlID,hCtrl ;========================================= .ENDIF ;---------------------------------------------------------------------------------------------------------------- .ENDIF ; ; Window Message - Close Dialog Box (EXIT Program) .ELSEIF uMsg==WM_CLOSE invoke SendMessage,hWnd,WM_COMMAND,IDM_Exit,0 ;-------------------------------------------------------------------------------------------------------------------------------------------- ; Window COMMAND Messages .ELSEIF uMsg==WM_COMMAND mov eax,wParam ;========== Determine SOURCE of WM_COMMAND (MENU or BUTTON) ====================== .IF lParam==0 ;======================================================================= ; SOURCE is MENU -- Determine Menu Option Selected ; BEGIN PROGRAM FLOW CONTROL VIA MENU SELECTIONS ;======================================================================= MenuSelections: ;======================================================================= .IF ax==IDM_Help invoke MessageBox, NULL,ADDR Help_String, ADDR MsgBoxTitle,MB_OK ;------------------------------------------------------------------------------------------------------------------------- .ELSEIF ax==IDM_About invoke MessageBox,NULL,ADDR About_String1, ADDR MsgBoxTitle, MB_OK ;------------------------------------------------------------------------------------------------------------------------- .ELSEIF ax==IDM_Exit invoke EndDialog, hWnd,NULL .ENDIF ;======================================================================= .ELSE ; SOURCE is BUTTON -- Determine BUTTON Option Selected ;======================================================================= mov edx,wParam shr edx,16 .IF dx==BN_CLICKED .IF ax==BTN_Enter invoke MessageBox, NULL,ADDR Enter_String, ADDR MsgBoxTitle,MB_OK .ELSEIF ax==BTN_Exit invoke SendMessage,hWnd,WM_COMMAND,IDM_Exit,0 .ENDIF .ENDIF .ENDIF .ELSE mov eax,FALSE RET .ENDIF mov eax,TRUE RET DlgProc ENDP end start
我应该使用什么WDK版本? 我已经在这个方向上找到了一些问题,但是没有什么明显的方式表明了这个问题的答案。 我是开发驱动程序的新手,并被Microsoft的版本控制系统感到困惑。
(两个LTSC)构建。这意味着
“IMAGE_SECTION_HEADER”中的“PhysicalAddress”有何用途?
PhysicalAddress 是 Misc 联盟的成员,定义如下: typedef 结构_IMAGE_SECTION_HEADER { 字节名称[IMAGE_SIZEOF_SHORT_NAME]; 联盟{ DWORD 物理地址;...
直接从 DllMain() 创建 DirectX 对象失败。我尝试启动一个新线程,在那里创建对象,然后它们获取我要挂钩的函数的虚函数表/地址。 我正在使用 Micr...
我正在尝试编写一个应用程序,该应用程序读取 EXE 文件并将其放入内存中,修复其新的 IAT 表并解决重定位问题。 int main() { LOADED_IMAGE 加载图像; MapAndLoad(&quo...
我的目标是创建一个像屏幕录像机捕获窗口一样的空心窗口。 使用以下代码,我几乎可以做到: #包括 LRESULT CALLBACK WindowProc(HWND hwnd, UINT...
我正在尝试在 DirectML 中构建 MNIST 样本训练。 所以前向传播代码运算符在CPU中看起来像这样: 矩阵前向传播(矩阵输入) { // 第一层,放入输入...
我们可以使用快捷键表来处理像 Ctrl + K + C 这样的多字母快捷键吗?
我目前正在使用快捷键表来处理快捷键,例如 Ctrl + A、Alt + B 等。但我想知道,是否有可能修改该表以接受多字母组合键...
使用 FFM 和 winapi 从 java 控制 Windows 中的任务栏
我正在尝试控制任务栏,以便可以显示 JavaFX 应用程序中某些长时间运行的任务的进度。为了与 winapi 通信,我想使用新的 Java FFM API,它应该取代...
在将 IStream 与 GDI+ Bitmap::FromStream() 一起使用之前是否需要初始化 COM?
我正在使用 GDI+ 函数 Bitmap::FromStream() 来加载 PNG 资源,按照本文提供的示例进行操作。 Bitmap::FromStream() 函数需要 IStream 作为其第一个参数。
我试图在最小化窗口后使应用程序的任务栏图标可见。我的窗口可以通过 show() 或 showFullScreen() 显示,所以我隐藏窗口的代码是: w.setWindowFlags(w.
我正在学习新的 Java FFM API。 在学习过程中,我决定使用Windows SDK来控制任务栏。 接口ITtaskbarList3代表任务栏并提供控制它的函数。 我...
我想知道是否有人可以建议我用哪种语言可以编译exe文件,它与NSIS一样独立,但更强大。我可以在 Win XP+ 上运行而不需要任何框架的东西(.net/whateve...
如果这是一个基本或愚蠢的问题,我很抱歉。 char* 和 LPSTR 之间有什么区别?其中 sizeof 在我的编译器中给出了 4 个字节。有人能给我详细解释一下吗。谢谢..
我的对话框页面上有很多按钮。一旦创建,其中一个的周边就会突出显示。看了这个之后,我确定按下按钮后也会发生同样的事情。一旦是
pywin32 - Windows COM 调度作为独立脚本工作,但作为服务失败
我正在尝试启动一项服务,该服务又需要使用单独的应用程序(EBSILON Professional;https://www.ebsilon.com/en/)。该应用程序安装在服务器上,当您...