Programming/WINAPI
-
WebView2 설치하기Programming/WINAPI 2021. 7. 30. 14:38
WebView2 설치하기 WebView2는 MS에서 개발한 Chromium기반의 웹브라우저 컨트롤로 윈도우 네이티브앱에 내장하여 사용할 수 있도록 개발되었습니다. WebView2페이지 : https://docs.microsoft.com/en-us/microsoft-edge/webview2/ 아마도 기존에 많이 사용하던 IE기반의 IWebBrowser2 컨트롤을 대체하기 위한 용도로 가장 많이 사용이 될 것 같습니다. 지원 OS Windows 11 Windows 10 Windows 8.1 Windows 7 Windows Server 2019 Windows Server 2016 Windows Server 2012 Windows Server 2012 R2 Windows Server 2008 R2 설치방법 IW..
-
[WinAPI/C++] PID로 프로세스명 조회하는 방법 ( QueryFullProcessImageName )Programming/WINAPI 2020. 6. 24. 07:58
프로세스ID로 프로세스명(경로 포함) 확인하는 방법입니다. #include #include #include std::string GetProcessName(const DWORD pid) { std::string name = "unknown"; DWORD error=0; if(HANDLE hProc = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid)) { char buf[512]={0,}; DWORD bufLen = sizeof(buf); QueryFullProcessImageName(hProc, 0, buf, &bufLen); CloseHandle(hProc); name = buf; } return name; } int main() { DWORD ..
-
MFC 화면개발을 html로 하기위한 html ui engine 비교 (CEF, Sciter, Ultralight ...)Programming/WINAPI 2020. 2. 16. 00:58
현재 MFC를 사용하는 프로젝트에 참여하고 있습니다. 규모가 좀 있고, 운영기간도 오래됐습니다. 그리고 분위기도 보수적인 편입니다. 전쟁터처럼 많은 기술들이 하루가 멀다 하고 쏟아지고 있지만, 제가 있는 곳은 외딴섬처럼 최신 기술들은 다른 세상 이야기입니다. 프로그램이 ui단을 제외하고도 대부분이 MFC클래스 기반으로 만들어져 있습니다. 크로스 플랫폼은 당연히 상상도 할 수 없고, 고객이 요구하는 아주 단순한 기능도 수정이 만만치 않습니다. 이건 MFC와는 별개로 스파게티 코드가 더 큰 원인이기는 하지만요... 사실 과거에도 MFC로 개발하기가 불편했지만, 현재는 더 많이 불편합니다. 특히나 UI는 더더욱 그렇습니다. 개인적으로나마 electronjs기반으로 변경이 가능할지 검토해보기도 했지만 혼자서는 ..
-
작업표시줄(Taskbar)에서 아이콘 제거하기Programming/WINAPI 2018. 2. 9. 08:06
#include #include const GUID CLSID_TaskbarList = {0x56FDF344, 0xFD6D, 0x11D0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}}; const GUID IID_ITaskbarList = {0x56FDF342, 0xFD6D, 0x11D0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}}; const GUID IID_ITaskbarList2 = {0x602D4995, 0xB13A, 0x429b, {0xA6, 0x6E, 0x19, 0x35, 0xE4, 0x4F, 0x43, 0x17}}; const GUID IID_ITaskList3 = {0xEA1AFB91, 0x9E28,..
-
GetGUIThreadInfoProgramming/WINAPI 2017. 3. 1. 17:50
GetGUIThreadInfo지정한 GUI스레드 또는 활성윈도우의 정보를 반환한다.Syntax BOOL WINAPI GetGUIThreadInfo( _In_ DWORD idThread, _Inout_ LPGUITHREADINFO lpgui); ParametersidThread [in]Type: DWORD정보를 확인할 스레드의 ID값으로 GetWindowThreadProcessId 함수로 확인이 가능합니다.값을 NULL로 지정하는 경우 foreground윈도우에 대한 정보를 반환합니다.lpgui [in, out]Type: LPGUITHREADINFOGUI스레드 정보값(리턴값)이 저장될 GUITHREDINFO의 포인터값입니다. 해당 함수 호출전에 반드시 구조체 멤버인 cbSize에 해당 구조체의 크기( si..
-
윈도우 사용시간 확인 : GetTickCount, GetTickCount64Programming/WINAPI 2010. 12. 9. 17:45
윈도우가 시작(구동)되고 나서부터의 경과시간을 확인하는 방법입니다. GetTickCount 또는 GetTickCount64함수를 이용하여 구동시간을 확인할 수 있습니다. GetTickCount함수의 경우 구동시간이 49.7일이 지난 경우 값이 0으로 초기화됩니다. 물론 개인 컴퓨터를 이렇게 오랬동안 켜둘 일은 없겠지만요.. 아무튼 세상에 무슨일이 일어날지 모르기 때문에 가능한한 GetTickCount64함수를 사용하도록 설정을 하였습니다. GetTickCount64 함수의 경우 Vista부터 지원되는 함수라 그 이전 버전의 윈도우인 경우 GetTickCount함수를 사용하도록 설정된 소스입니다. #include #include #include typedef ULONGLONG (*fnGetTickCount..
-
RegCreateKeyEx 사용방법Programming/WINAPI 2010. 1. 6. 01:36
RegCreateKeyEx 레지스트리키를 새로 만들어주는 함수입니다. 만약 생성하려는 키가 존재하는 경우 해당 키를 오픈합니다. LONG RegCreateKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD Reserved, LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition ); Parameters hKey 생성할 키의 루트키. 또는 RegCreateKeyEx 나 RegOpenKeyEx 로 반환된 키. 보통 아래의 루트키중 하나를 넣어줍니다. HKEY_CLASSES_ROOT HKEY_CURR..
-
[펌] InternetSetOption - timeout 설정 버그 해결방법Programming/WINAPI 2009. 1. 5. 19:12
InternetSetOption 함수를 이용하여 timeout 시간을 설정해도 적용이 되지 않는 버그가 있습니다. 돌아다니는 이야기로는 Internet Explorer 6.0 버전 이상이면 문제가 없다는데 제가 테스트한 환경 ( Windows 2003서버, IE6 ) 에서는 문제가 발생하는 것으로 보아 문제가 완전히 해결된것이 아닌가 봅니다. 아래는 해당 버그 대안으로 쓰레드를 이용하여 timeout을 설정하는 방법을 설명한 내용입니다. ------------------------------------------------------------------------------------------------------------------ 출처 : http://support.microsoft.com/kb..