С++ winapi как заразить usb?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
С++ winapi как заразить usb? - 2011-09-17 19:03:53.840000
|
|
|
Аpathy^^
Сообщений: 504
Оценки: 10
Присоединился: 2011-08-02 18:35:14.340000
|
как перехватить подключение флешки
|
|
|
RE: С++ winapi как заразить usb? - 2011-09-17 19:38:54.050000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Гуглите по WM_DEVICECHANGE и DBT_DEVICEARRIVAL
|
|
|
RE: С++ winapi как заразить usb? - 2011-10-03 19:17:10.303333
|
|
|
Аpathy^^
Сообщений: 504
Оценки: 10
Присоединился: 2011-08-02 18:35:14.340000
|
не могу въехать ни в 1 из примеров можете поподробней объяснить
|
|
|
RE: С++ winapi как заразить usb? - 2011-10-03 19:51:08.463333
|
|
|
shkolote attake
Сообщений: 268
Оценки: 0
Присоединился: 2010-10-19 05:37:44.873333
|
попробуй тут покопать: http://msdn.microsoft.com/en-us/library/aa363432(VS.85).aspx А сообщение перехватывается, как и все остальные. Вроде ты должен отловить WM_COMMAND, где wparam у тебя будет WM_DEVICECHANGE и там писать обработчик. Или напрямую WM_DEVICECHANGE, как и все остальные. зы:если си не забудь подключить #include <dbt.h>
|
|
|
RE: С++ winapi как заразить usb? - 2011-10-04 09:30:05.456666
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Есть пример на фасме, вникайте )
format PE GUI 4.0
entry start
include 'win32w.inc'
section '.data' data readable writeable
_class TCHAR 'FASMWIN32',0
_title TCHAR 'Win32 program template',0
_error TCHAR 'Startup failed.',0
_msg TCHAR 'device inserted',0
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class
msg MSG
DBT_DEVICEARRIVAL equ $8000
section '.code' code readable executable
start:
invoke GetModuleHandle,0
mov [wc.hInstance],eax
invoke LoadIcon,0,IDI_APPLICATION
mov [wc.hIcon],eax
invoke LoadCursor,0,IDC_ARROW
mov [wc.hCursor],eax
invoke RegisterClass,wc
test eax,eax
jz error
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU,128,128,256,192,NULL,NULL,[wc.hInstance],NULL
test eax,eax
jz error
msg_loop:
invoke GetMessage,msg,NULL,0,0
cmp eax,1
jb end_loop
jne msg_loop
invoke TranslateMessage,msg
invoke DispatchMessage,msg
jmp msg_loop
error:
invoke MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK
end_loop:
invoke ExitProcess,[msg.wParam]
proc WindowProc hwnd,wmsg,wparam,lparam
push ebx esi edi
cmp [wmsg],WM_DESTROY
je .wmdestroy
cmp [wmsg], WM_DEVICECHANGE
je .WMDEVICECHANGE
.defwndproc:
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
jmp .finish
.WMDEVICECHANGE: ;;; обработка сообщения
cmp [wparam], DBT_DEVICEARRIVAL
jnz .finish
mov eax, [lparam]
add eax, 4
cmp dword [eax], 2
jnz .finish
invoke MessageBox, 0,_msg,_msg,0
jmp .finish
.wmdestroy:
invoke PostQuitMessage,0
xor eax,eax
.finish:
pop edi esi ebx
ret
endp
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL'
include 'api\kernel32.inc'
include 'api\user32.inc'
|
|
|
RE: С++ winapi как заразить usb? - 2011-10-11 21:34:44.980000
|
|
|
ZETER
Сообщений: 127
Оценки: 0
Присоединился: 2010-01-18 21:11:03.490000
|
Примерный файл: class TForm1 : public TForm
{
__published: // IDE-шные компоненты
TMemo *Memo1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
private: // объявления пользователя
public: // объявления пользователя
__fastcall TForm1(TComponent* Owner);
WNDPROC OldWindowProc;
};
CPP file:
LRESULT CALLBACK NewWindowProc(HWND hWnd, UINT msg, WPARAM w,
LPARAM l)
{
//Обрабатываем сообщение
if (msg == WM_VSCROLL)
ShowMessage("The vertical scrollbar is scrolling!");
//Если возникла необходимость остановки обработки сообщения,
//то выходим и возвращаем ноль
//Вызываем предыдущую оконную процедуру,
//она обработает сообщение.
return CallWindowProc((FARPROC)Form1->OldWindowProc, hWnd, msg, w, l);
}
//----------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
OldWindowProc = (WNDPROC)SetWindowLong(Memo1->Handle,
GWL_WNDPROC, (long)NewWindowProc);
}
//----------------------------------------------------------------------
void __fastcall TForm1:: Только тупо не вставляй а то там и косяки могут быть.
|
|
|
RE: С++ winapi как заразить usb? - 2011-10-12 21:20:10.533333
|
|
|
Аpathy^^
Сообщений: 504
Оценки: 10
Присоединился: 2011-08-02 18:35:14.340000
|
quote:
ORIGINAL: ZETER Примерный файл: class TForm1 : public TForm
{
__published: // IDE-шные компоненты
TMemo *Memo1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
private: // объявления пользователя
public: // объявления пользователя
__fastcall TForm1(TComponent* Owner);
WNDPROC OldWindowProc;
};
CPP file:
LRESULT CALLBACK NewWindowProc(HWND hWnd, UINT msg, WPARAM w,
LPARAM l)
{
//Обрабатываем сообщение
if (msg == WM_VSCROLL)
ShowMessage("The vertical scrollbar is scrolling!");
//Если возникла необходимость остановки обработки сообщения,
//то выходим и возвращаем ноль
//Вызываем предыдущую оконную процедуру,
//она обработает сообщение.
return CallWindowProc((FARPROC)Form1->OldWindowProc, hWnd, msg, w, l);
}
//----------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
OldWindowProc = (WNDPROC)SetWindowLong(Memo1->Handle,
GWL_WNDPROC, (long)NewWindowProc);
}
//----------------------------------------------------------------------
void __fastcall TForm1:: Только тупо не вставляй а то там и косяки могут быть. перехвата так и не увидал в коде
|
|
|
|
|