본문 바로가기
반응형

IT126

[MFC] 사용자 계정 생성 #include #pragma comment(lib, "netapi32.lib") USER_INFO_1 ui; DWORD dwLevel = 1; DWORD dwError = 0; ui.usri1_name = _T("TestUser"); ui.usri1_password = _T("!12adb9e9e!"); ui.usri1_priv = USER_PRIV_USER; ui.usri1_home_dir = NULL; ui.usri1_comment = NULL; ui.usri1_flags = UF_SCRIPT; NET_API_STATUS nStatus = NetUserAdd(NULL, dwLevel, (LPBYTE)&ui, &dwError); // 제어판에 나타나게 하기 위해 다음 코드를 추가한다 LOCALGROUP.. 2017. 2. 8.
[MFC] Shared Folder 찾아서 제거하기 #include #include #pragma comment(lib, "Netapi32.lib") PSHARE_INFO_502 BufPtr; NET_API_STATUS res; LPTSTR lpszServer = NULL; DWORD er = 0, tr = 0, resume = 0; DWORD total = 0; do { res = NetShareEnum(lpszServer, 502, (LPBYTE *)&BufPtr, MAX_PREFERRED_LENGTH, &er, &tr, &resume); if (res == ERROR_SUCCESS || res == ERROR_MORE_DATA) { total += er; PSHARE_INFO_502 p = BufPtr; DWORD i = 0; for (i = 1; .. 2017. 1. 16.
[MFC] Radio Button 투명 배경 오늘 Radio Button 의 배경을 투명하게 만들기 위해 WM_CTRLCOLOR 메시지를 이용하여 처리 하려고 했다. 그런데 바뀌지 않았다. ㅡㅡ; 왜 그런지 찾아보니 인터넷에 이런말이 있었다. From comctrl6, if theme enabled you cannot change the text color of the text color of the radio button using the WM_CTRLCOLOR. 그래서 이것을 해결하기 위해 SetWindowTheme(GetDlgItem(IDC_CTRL)->m_hWnd, _T(""), _T("")); 를 사용하면 된다 HRESULT SetWindowTheme( HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSub.. 2016. 11. 1.
[MFC] 시작프로그램에 등록하기 시작 프로그램에 등록하는 방법으로 크게 레지스트리를 사용하는 방법과 ShellLink 를 이용한 방법이다. 여기서 소개하는 방법은 2번째 방법이다. void CreateStartupShortcut(void) { HRESULT hRes = NULL; hRes = CoInitialize(NULL); TCHAR FullPath[MAX_PATH] = {0,}; ::GetModuleFileName(NULL, FullPath, _countof(FullPath)); TCHAR StartUpPath[MAX_PATH]= {0,}; BOOL bRes = SHGetSpecialFolderPath(GetSafeHwnd(), StartUpPath, CSIDL_STARTUP, 0); CString StrShortCut = Sta.. 2016. 10. 27.
[Mac] Caps Lock Key 로 한영키 전환 나는 맥유저이다.. ㅎㅎ그런데 어느날 갑자기 Caps Lock 키를 누르니 한/영 키보드가 전환되었다.아마도 OS 업그레이드 되면서 키보드에 문제가 생긴지 알았다.그래서 혹시나 키보드 Preference 를 살펴보다가 이유를 발견했다 Caps Lock 키로 한영키를 전환하는 옵션이 있었던 것이다.당장 뺐다...Caps Lock 이라는 특정한 목적으로 사용되는 키를 키보드 입력소스를 전환하는데 사용하다니.. 너무 어이가 없었다. Caps Lock 은 대문자 입력으로 Lock 하는데 쓰라고 만든 키이다. 일반적인 목적에서는 그렇다. 물론 한번 클릭으로 한영키를 변경하는 것도 큰 장점이 될 수 있다. 하지만 특수한 목적의 키를 다른 목적으로 사용하는 것 자체가 그렇게 Graceful 하지는 않다. 그리고 일반.. 2016. 10. 26.
[PHP] PDO API 자세한 정보는 http://php.net/manual/kr/book.pdo.phpThe PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions. Note that you cannot perform any database functions using the PDO extension by itself; you must use a database-spec.. 2016. 10. 22.
PHP MySqli 사용 예제 define("DBUSER", "root"); define("DBPASS", "root"); define("DBNAME", "tlc_db"); define("DBHOST", "localhost"); $conn = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME);if ($conn->connect_error){ trigger_error("Database connection failed :" . $connection->connect_error, E_USER_ERROR);}$sql = "select m_id, m_name, m_sex, m_age, m_phone, m_address from member_table;";$ret = $conn->query($sql);if (false =.. 2016. 10. 19.
[MFC] 심플한 로그 함수 #include "stdafx.h" namespace DEBUGLOG { CString LogPath; } int WriteLog(LPCTSTR pFormat, ...) { TCHAR Buff[1024] = {0,}; va_list arg; va_start(arg, pFormat); _vstprintf_s(Buff, _countof(Buff) - 1, pFormat, arg); va_end(arg); SYSTEMTIME lpSystemTime; GetLocalTime(&lpSystemTime); COleDateTime CurSysTime(lpSystemTime); CString TimedLog; TimedLog.Format(_T("[%s] ", CurSysTime.Format(_T("%Y%m%d %H:%.. 2016. 10. 18.
[MFC] CProgressCtrl Marquee 속성 설정 CProgressCtrl 은 Range 를 지정하고 현재 Progress 위치를 지정할 수 있다.그리고 Marquee 속성을 사용하여 계속 진행 중인 상태를 나타낼 수 있다. 제어판에서 윈도우즈 업데이트를 확인할 때 나오는 Progress Bar Ctrl 에서 설정된 것이 Marquee 이다. 윈도우즈 업데이트 확인이 끝나면 Progress Bar 가 100% 로 되는데,이것을 코드로 구현하려면 ModifyStyle 을 사용하면 된다. 즉 리소스에서 Marquee 속성을 TRUE 로 설정하고동적으로 Marquee 속성을 빼는 방법은 Progress Bar Control 에서 ModifyStyle(PBS_MARQUEE, 0); 명령을 사용한다 "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액.. 2016. 10. 14.
[MFC] 재부팅 기능 개발환경은 Windows 7 64bit, Visual Studio 2013 버전이다 HANDLE hCurHandle = GetCurrentProcess(); HANDLE hNewHandle = NULL; OpenProcessToken(hCurHandle, TOKEN_ADJUST_PRIVILEGES, &hNewHandle); TOKEN_PRIVILEGES tp; LUID luid; LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &luid); tp.PrivilegeCount = 1; tp.Privileges[0].Luid = luid; tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hNew.. 2016. 10. 13.
반응형