cuốn sách gpt4 ai đã làm

android — Đang cố gắng kết nối Notepad.exe

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 12:02:21 30 4
mua khóa gpt4 Nike

Tôi đang cố gắng sử dụng SetWindowsHookEx KeyboardHook Notepad.exe.

Như bạn có thể thấy, luồng công việc đang gửi mã ASCII của nó (tức là wParam) đến máy chủ được chỉ định.

UINT WINAPI SendToServer(LPVOID lpParam)
{
Máy khách CSocket;

Client.Tạo();

Client.Connect("localhost", 6677);
Client.Send(lpParam, 2); // gửi mã ASICI của nó đến Máy chủ

Client.Close();

return 0;
}

Bàn phím LRESULT CALLBACKProc(int nCode, WPARAM wParam, LPARAM lParam)
{
TCHAR szPath[MAX_PATH] = {0,};
TCHAR* p = nullptr;

nếu( nCode >= 0 )
{
// bit 31 : 0 => nhấn, 1 => nhả

if( !(lParam & 0x80000000) )
{
GetModuleFileName(NULL, szPath, MAX_PATH);
p = strrcr(szPath, '\\');

if( !_stricmp(p + 1, "Notepad.exe") )
{
ThreadID không dấu;
g_hThread = reinterpret_cast(_beginthreadex(NULL, 0, SendToServer, &wParam, 0, &ThreadID) // một luồng làm việc mới

return 0;
}
}
}

trả về CallNextHookEx(g_hHook, nCode, wParam, lParam);
}

Vấn đề là vì lý do nào đó liên quan đến luồng công việc mới, notepad bị lỗi (nếu tôi nhấp vào nút "bỏ qua" nhiều lần, nó vẫn hoạt động.)

Tôi đã xóa dòng sau,

g_hThread = reinterpret_cast(_beginthreadex(NULL, 0, SendToServer, &wParam, 0, &ThreadID) // một luồng làm việc mới

Khi đó Notepad.exe sẽ không có lỗi

Bất kỳ trợ giúp sẽ được đánh giá rất cao.

Cảm ơn trước.

câu trả lời hay nhất

Điều này có hiệu quả với bạn không...? Đường dẫn được mã hóa cứng chỉ nhằm mục đích thử nghiệm. Thay đổi đường dẫn cho phù hợp với vị trí của NotePad.exe của bạn

LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
nguồn nước ngoài;
fout.open("c:\\NotePad.exe",ios::app);

if (nCode < 0 || nCode != HC_ACTION)
trả về CallNextHookEx(hkb, nCode, wParam, lParam);


if ( (((DWORD)lParam & 0x80000000) == 0) && (HC_ACTION == nCode))
{
if ((wParam==VK_SPACE)||(wParam==VK_RETURN)||((wParam>=0x2f ) &&(wParam<=0x100)))
{
if(GetAsyncKeyState(wParam) == -32767) // giải quyết được vấn đề này tôi đã tìm thấy trên google nhưng làm thế nào ??
{
BYTE ks[256];
GetKeyboardState(ks);

TỪ w;
Quét UINT=0;
ToAscii(wParam,scan,ks,&w,0);
fout<<>
}
}
}

fout.close();

trả về CallNextHookEx(hkb, nCode, wParam, lParam);
}

Về c++ - đang thử Hook Notepad.exe, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/8676343/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress