Ассемблер для Windows



         

В Возможны ли какиелибо способы взаимодействия и обмен информацией между запущенными приложениями? - часть 2


; прототипы внешних процедур IFDEF MASM EXTERN ReadFile@20:NEAR EXTERN CloseHandle@4:NEAR EXTERN CreatePipe@16:NEAR EXTERN SetMenu@8:NEAR EXTERN LoadMenuA@8:NEAR EXTERN CreateProcessA@40:NEAR EXTERN ExitProcess@4:NEAR EXTERN GetModuleHandleA@4:NEAR EXTERN DialogBoxParamA@20:NEAR EXTERN EndDialog@8:NEAR EXTERN SendDlgItemMessageA@20:NEAR ELSE EXTERN ReadFile:NEAR EXTERN CloseHandle:NEAR EXTERN CreatePipe:NEAR EXTERN TerminateProcess:NEAR EXTERN WaitForSingieObject:NEAR EXTERN SetMenu:NEAR EXTERN LoadMenuA:NEAR EXTERN CreateProcessA:NEAR EXTERN ExitProcess:NEAR EXTERN GetModuleHandleA:NEAR EXTERN DialogBoxParamA:NEAR EXTERN EndDialog:NEAR EXTERN SendDlgItemMessageA:NEAR

ReadFile@20 = ReadFile CloseHandle@4 = CloseHandle CreatePipe@16 = CreatePipe TerminateProcess@8 = TerminateProcess WaitForSingleObject@8 = WaitForSingleObject SetMenu@8 = SetMenu LoadMenuA@8 = LoadMenuA CreateProcessA@40 = CreateProcessA ExitProcess@4 = ExitProcess GetModuleHandleA@4 = GetModuleHandleA DialogBoxParamA@20 = DialogBoxParamA EndDialog@8 = EndDialog SendDlgItemMessageA@20 = SendDlgItemMessageA ENDIF

; структуры ; структура сообщения MSGSTRUCT STRUC MSHWND DD ? MSMESSAGE DD ? MSWPARAM DD ? MSLPARAM DD ? MSTIME DD ? MSPT DD ? MSGSTRUCT ENDS

; структура для CreateProcess STARTUP STRUC cb DD 0 lpReserved DD 0 lpDesktop DD 0 lpTitle DD 0 dwX DD 0 dwY DD 0 dwXSize DD 0 dwYSize DD 0 dwXCountChars DD 0 dwYCountChars DD 0 dwFillAttribute DD 0 dwFlags DD 0 wShowWindow DW 0 cbReserved2 DW 0 lpReserved2 DD 0 hStdInput DD 0 hStdOutput DD 0 hStdError DD 0 STARTUP ENDS

; структура - информация о процессе PROCINF STRUC hProcess DD ? hThread DD ? Idproc DD ? idThr DD ? PROCINF ENDS

; файл pipe.asm .386P ; плоская модель .MODEL FLAT, stdcall include pipe.inc ; директивы компоновщику для подключения библиотек IFDEF MASM includelib c:\masm32\lib\user32.lib includelib c:\masm32\lib\kernel32.lib ELSE includelib c:\tasm32\lib\import32.lib ENDIF ;---------------------------------------- ; сегмент данных _DATA SEGMENT DWORD PUBLIC USE32 'DATA' STRUP STARTUP <?> INF PROCINF <?> MSG MSGSTRUCT <?> HINST DD 0 ; дескриптор приложения PA DB "DIAL1",0 CMD DB "c:\tasm32\bin\tlink32.exe",0 PMENU DB "MENUP",0 HW DD ? HR DD ? BUFER DB 3000 DUP (0) BYT DD ? _DATA ENDS




Содержание  Назад  Вперед