ChangeWindowMessageFilter – Vista 에서 메시지(WM_COPYDATA등) 보내기 DarkKaiser, 2009년 9월 12일2023년 9월 6일 비스타에서는 UAC가 동작하고 있을때 권한이 낮은 어플리케이션에서 높은 어플리케이션으로 메시지가 전달이 안된다. 여러 사이트 검색결과 ChangeWindowMessageFilter를 이용하면 된다는 것을 알게되었다. typedef BOOL (WINAPI *CHANGEWINDOWMESSAGEFILTER)( UINT message, DWORD dwFlag ); 를 선언부에 선언하고, HANDLE popapi; CHANGEWINDOWMESSAGEFILTER ChangeWindowMessageFilter; popapi = LoadLibrary("USER32.DLL"); ChangeWindowMessageFilter=(CHANGEWINDOWMESSAGEFILTER)GetProcAddress((HINSTANCE)popapi,"ChangeWindowMessageFilter"); ChangeWindowMessageFilter(WM_COPYDATA,1); 하면 됩니다. ChangeWindowMessageFilter에서 MSGFLT_ADD를 사용하면 해당메세지를 받아들이게 되고,REMOVE를 Continue Reading
Vista 에서 Low Level 권한으로 Process 를 생성시키는 방법 DarkKaiser, 2008년 11월 22일2023년 9월 6일 출처 : http://rodream.tistory.com/45 BOOL bRet; HANDLE hToken; HANDLE hNewToken; // Notepad is used as an example WCHAR wszProcessName[MAX_PATH] = L"C:\\Windows\\System32\\Notepad.exe"; // Low integrity SID WCHAR wszIntegritySid[20] = L"S-1-16-4096"; PSID pIntegritySid = NULL; TOKEN_MANDATORY_LABEL TIL = {0}; PROCESS_INFORMATION ProcInfo = {0}; STARTUPINFO StartupInfo = {0}; ULONG ExitCode = 0; if (OpenProcessToken(GetCurrentProcess(),MAXIMUM_ALLOWED, Continue Reading
Vista에서 알려진 경로를 구하는 방법… DarkKaiser, 2008년 10월 11일2023년 9월 6일 기존 XP에서는 SHGetFolderPath 함수를 이용하면 가능했지만 Vista에서는 SHGetKnownFolderPath 함수를 사용해야 한다. 아직 Compatibility를 위해서 기존 함수도 지원한다고 하지만 Recommand가 아니니 바꿔야 잠재된 문제를 앱앨 수 있겠죠. if (_isVista) { WCHAR *pSavePath = NULL; HMODULE shell32module = GetModuleHandle("shell32.dll"); // Defined in the platform SDK for Vista const DWORD KF_FLAG_CREATE = 0x00008000; Continue Reading