Kullandığım bir tanıtıcıya sahip bir konsol uygulamam varsa;C++: Konsol uygulaması için yeni bir wndProc nasıl ayarlanır?
HWND hWnd = GetConsoleWindow();
O zaman nasıl pencere için yeni bir wndProc kurarım?
Ben conProc
LRESULT CALLBACK conProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_NCHITTEST:
return HTCAPTION;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
olarak tanımlanan varlık ile
SetWindowLong(hWnd, GWL_WNDPROC, (LONG)conProc);
kullanarak çalıştı Ama bu işe ve der yok "Hata kodu: 5 - Erişim engellendi" Anlıyorum GetLastError()
üzerinde Bu gibi bir konsol uygulaması değiştirmek için oldukça zor, bir csrss.exe uygulama ve tüm, ama hala denemek istiyorum .. Teşekkürler.
o * * için ne bağlı olarak, (http [Konsolu projesi] bulabilir .net/projects/console /) yararlı. –
Bu ilginç çünkü onunla ilişkili olan 'WNDCLASSEX' 'i kapatabiliyor ve kendi pencerenizden esinlenerek çıkabiliyorsunuz, ama' WNDCLASSEX 'biraz zorlaşıyor. 'GetClassInfoEx' bir modül tanıtıcısına ihtiyaç duyar ve bu tanıtıcıyı almak can sıkıcıdır. 'CreateToolhelp32Snapshot' bile, csrss.exe ile kullanamayacağınızı açıkça belirtir. – chris