MATIOLI 0 Denunciar post Postado Julho 17, 2009 Olá gente, Gostaria de saber se alguém já conseguiu criar um applet no painel de controle com o Dev-C++ (ou outro que use gcc ou mingw). Se puderem me dar um exemplo bem simples, seria ótimo. Tentei isso, mas não rolou (dá erro no explorer, usando Windows Vista): #include <windows.h> #include <cpl.h> #define DLL_EXPORT extern "C" _declspec(dllexport) HMODULE g_hModule = NULL; // Handle to the DLL. DLL_EXPORT BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: { g_hModule = (HMODULE) hModule; } case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } DLL_EXPORT LONG CPlApplet( HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2 ){ switch(uMsg){ case CPL_INIT: return 1; case CPL_GETCOUNT: return 1; case CPL_NEWINQUIRE: // Acho que o erro tá nessa parte (como fazer?) return 0; case CPL_DBLCLK: { // The user has double-clicked the icon for the // dialog box in lParam1 (zero-based). PROCESS_INFORMATION pi = {0}; if (CreateProcess(("C:\\Windows\\Notepad.exe"), NULL, NULL, NULL, FALSE, 0, NULL, NULL, NULL, π)){ CloseHandle(pi.hThread); CloseHandle(pi.hProcess); return 0; } return 1; // CPlApplet failed. } case CPL_STOP: case CPL_EXIT: default: return 0; } } Muito obrigado pela atenção, Matheus de Oliveira Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 17, 2009 ql erro? o unico motivo pelo ql nao compilaria desse jeito é por faltar a main(); []s Compartilhar este post Link para o post Compartilhar em outros sites
MATIOLI 0 Denunciar post Postado Julho 17, 2009 Desculpe, esqueci de informar o problema... Então, compilou sem erro nenhum, seguindo dicas eu compilei como DLL e depois movi o arquivo para o System32, alterando a extensão para ".cpl". Até aí tudo bem, o problema é que quando eu abro o painel de controle (lembrando que só testei no Vista) ele dá um erro no explorer e fecha. Se eu colocar um MessageBox no "case CPL_INIT:", ele dá esse MsgBox antes do pau no explorer, por isso eu imagino que o erro esteja no "case CPL_NEWINQUIRE", tentei fazê-lo de várias formas, todas baseadas em tutoriais para o MS VS C++, nenhuma rolou... Obrigado pela atenção, Matheus de Oliveira Compartilhar este post Link para o post Compartilhar em outros sites