마우스 우클릭으로 관리자 권한의 CMD 창 열기

이미지
출처 - http://snoopybox.co.kr/1302 ※ 이 글의 내용은 Windows Vista 이상에서만 적용 됨. Windows Vista 이상에서는 Shift + 우클릭을 하면 "여기서 명령 창 열기"라는 메뉴가 나오고 이를 클릭하면 현재 위치에서 명령 프롬프트 창을 열 수 있음. 위 기능의 레지스트리 위치는 아래와 같습니다. [HKEY_CLASSES_ROOT\Directory\Background\shell\cmd] (기본값) = "@shell32.dll,-8506" Extended = "" // 이 문자열 값을 삭제하면 Shift를 누르지 않아도 메뉴에 표시 됨. NoWorkingDirectory = "" [HKEY_CLASSES_ROOT\Directory\Background\shell\cmd\command] (기본값) = "cmd.exe /s /k pushd "%V"" 이 중에 Shift 키를 눌러야 메뉴가 보이도록 해주는 레지스트리 값은 "Extended". 따라서 이 값을 제거해주면 Shift키를 누르지 않아도 바로 메뉴가 보임. 하지만 관리자 계정으로 Windows 를 사용하지 않거나 UAC를 켜고 사용하는 사람들은 CMD 창이 관리자 권한으로 실행되지 않음. UAC를 켜고, CMD 창도 관리자 권한으로 실행시키고 싶다면 아래와 같이 레지스트리에 추가. 또는 첨부 파일 다운 받아서 추가. [HKEY_CLASSES_ROOT\Directory\Background\shell\runas] // 키 새로 만들어서 추가. (기본값) = "여기서 명령 창 열기 (관리자 권한)" Extended = "" // 이 문자열 값을 추가하지 않으면 Shift를 누르지 않아도 메뉴에 표시 됨. NoWorkingDirectory = "" [HKEY_CLASSES_ROOT\Director...

[JS] OS 종류 구하는 함수

// This script sets OSName variable as follows: // "Windows" for all versions of Windows // "MacOS" for all versions of Macintosh OS // "Linux" for all versions of Linux // "UNIX" for all other UNIX flavors // "Unknown OS" indicates failure to detect the OS new function () { var OsNo = navigator.userAgent.toLowerCase(); jQuery.os = { Linux: /linux/.test(OsNo), Unix: /x11/.test(OsNo), Mac: /mac/.test(OsNo), Windows: /win/.test(OsNo) } } function GetOperatingSystem() { var tempUserAgent = navigator.userAgent.replace(/ /g, ''); var operatingSystem = ""; if ($.os.Windows) { if (tempUserAgent.indexOf("WindowsCE") != -1) { operatingSystem = "Windows CE"; } else if (tempUserAgent.indexOf("Windows95") != -1) { operatingSystem = "Windows 95"; } else if (tempUserAgent.indexOf("Windows98") != -1) { if (tempUserAgent.indexOf("Win9x4.90"...

[JS] OS 아키텍처 구하는 함수

function GetOperatingSystemArch() { var tempUserAgent = navigator.userAgent.replace(/ /g, ''); var operatingSystemArch = ""; if ($.os.Windows) { if (tempUserAgent.indexOf("WOW64") != -1) { operatingSystemArch = "WOW64"; } else if (tempUserAgent.indexOf("Win64;x64") != -1) { operatingSystemArch = "Win64 on x64"; } else if (tempUserAgent.indexOf("Win16") != -1) { operatingSystemArch = "16-bit"; } else { operatingSystemArch = "x86"; } } else if ($.os.Linux) { if (tempUserAgent.indexOf("x86_64") != -1) { operatingSystemArch = "x86_64"; } else if (tempUserAgent.indexOf("i686") != -1) { operatingSystemArch = "i686"; } else if (tempUserAgent.indexOf("i686 on x86_64") != -1) { operatingSystemArch = "i686 running on x86_64"; } else if (tempUserAgent.indexOf("armv7l") != -1) { opera...

[JS] 안드로이드 디바이스 이름 구하는 함수

// Android의 단말 이름을 반환 function GetAndroidDevName() { var uaAdata = navigator.userAgent; var regex = /Android (.*);.*;\s*(.*)\sBuild/; var match = regex.exec(uaAdata); if (match) { var ver = match[1]; var dev_name = match[2]; return "Android " + ver + " " + dev_name; } return "Android OS"; }

[JS] 브라우저 알아내는 함수

// browser detect var Browser = (function() { var s = navigator.userAgent.toLowerCase(); var match = /(webkit)[ \/](\w.]+)/.exec(s) || /(opera)(?:.*version)?[ \/](\w.]+)/.exec(s) || /(msie) ([\w.]+)/.exec(s) || !/compatible/.test(s) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(s) || []; return { name: match[1] || "", version: match[2] || "0" }; }()); 사용 예) alert(Browser.name);

[Visual Studio] Windows 7 에서 Visual Studio 6.0 디버그 시 프로세스 좀비되는 증상 해결 방법

Windows7 x64에서 디버깅을 하다가 디버깅을 종료하면 해당 프로세스가 그대로 남아있는 현상이 있다. 프로세스 끝내기를 눌러도 절대 죽지 않는다. Visual C++ 자체를 종료하면 그제서야 해당 프로세스가 종료가 된다. 디버깅 모듈에 버그가 있는 것으로 알려져 있으며, 다음과 같은 방법으로 해결이 가능하다. x86은 레지스트리 추가 만으로 가능한 것으로 알려져 있으나 테스트는 해보지 못함. Windows7 x64 환경에서 레지스트리 등록 후 IE가 x64로만 실행되는 문제가 발생. 레지스트리 삭제 후 IE 다시 x86으로 실행되고 Visual Studio 6.0 디버그 종료 시 프로세스도 정상적으로 종료됨을 확인. 글 맨 아래 dll 부분만 수정해도 되는 것 같으니 참고. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN] 위 경로에 DWORD 형태로 이름은 "TabProcGrowth" 으로 하고 값은 0으로 설정 Windows7 x64의 경우 추가로 아래 레지스트리도 등록 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN] 위 경로에 DWORD 형태로 이름은 "TabProcGrowth"으로 하고 값은 0으로 설정. 단, Windows7 x64는 파일 패치까지 필요하다. 첨부된 파일을 다운받아 아래 방법대로 하면 된다. TLLOC.dll 파일 패치 ( TLLOC.dll 다운로드 ) C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin 위 경로에 덮어 씌우면 된다. 혹시 모르니 덮어 씌우기 전에 기존에 있던 TLLOC.dll은 만일의 상황에 대비하여 백업해둔...

[NSIS] 커맨드 라인 옵션 값 받아오기 + 사일런트 모드 설치

# Command Line 명령어를 받아오기 위해 추가. !include FileFunc.nsh !insertmacro GetParameters !insertmacro GetOptions VAR /GLOBAL PARAM # 전역 변수 선언 Function .onInit ${GetParameters} $PARAM ClearErrors ${GetOptions} $PARAM /SILENT= $PARAM # 여기에서 '/'뒤에 써주는 단어가 커맨드라인 옵션임. 예를 들어 "${GetOptions} $PARAM /TestInput= $PARAM" 이라고 하고, NSIN 빌드 결과 만들어지는 설치 파일 명이 "install.exe"라고 할 때, "install.exe /TestInput=입력값" 이라고 커맨드 라인에서 입력하면 $PARAM에 "입력값"이 들어옴. ; MessageBox MB_OK $PARAM # 값 들어오는지 확인. ex) ["설치 파일 명.exe" /SILENT=test], 라고 했을 때 test가 찍혀야 함. # SetSilent can only be used in .onInit and doesn't work well along with `SetSilent silent' ${If} $PARAM == on ;MessageBox MB_OK "Silent Mode On." SetSilent silent # 설치 시 사일런트 모드로 아무것도 뜨지 않음. ${Else} ;MessageBox MB_OK "Silent Mode Off." SetSilent normal ${EndIf} FunctionEnd

Windows 10 Task Host Window 작업 중지하고 있다고 PC 종료 안될 때

Task Host Window 작업 호스트가 백그라운드 작업을 중지하고 있습니다. (\Microsoft\Windows\DeviceDirectoryClient\RegisterUserDevice) 위와 같이 나오면서 정상적으로 종료가 안되는 경우 Windows 업데이트에 문제가 생긴 경우이다. 이런 경우엔 업데이트 임시 저장소를 제거하고 업데이트를 처음부터 다시 시작하면 된다. Windows 로고 키 + R 키를 누른 후 실행창이 열리면 "services.msc"를 입력하고 확인을 누른다. 서비스 창에서 아래의 서비스 항목들을 각각 더블 클릭하여 중지 버튼을 눌러 서비스 상태를 중지 하고, 적용 및 확인을 누른다. Background Intelligent Transfer Service Cryptographic Services Windows Updates 폴더 삭제 시 사용 중이라 삭제가 안된다고 나오면 위 서비스가 중간중간 혼자서 시작이 되므로 다시 시작되지 않았는지 확인하여 다시 중지시켜 준다. C:\Windows로 이동하여 SoftwareDistribution 폴더를 삭제. C:\Windows\System32로 이동하여 Catroot2 폴더를 삭제. 서비스 창에서 중지한 서비스 세 가지를 더블 클릭 후, 각각 시작 버튼을 눌러 서비스를 시작. Windows Defender 업데이트에 문제가 있어서 안되는 경우도 있는데, 그럴땐 Windows Defender 최신 업데이트를 수동으로 해주면 된다. 구글에서 "Windows Defender Update"를 검색하면 수동 업데이트를 다운 받을 수 있는 페이지가 검색이 된다. 아래 링크와 같으며 시간이 지나 URL이 변경 되어 접속이 안 될 경우 위에 적은대로 구글 검색을 통해 찾으면 된다. https://www.microsoft.com/en-us/wdsi/def...

Windows Version Info (윈도우 버전 정보, OSVERSIONINFOEX)

 https://msdn.microsoft.com/en-us/library/windows/desktop/ms724833(v=vs.85).aspx

[Visual Studio] Windows 7 에서 Visual Studio 6.0 파일 다이얼로그 뜰 때 Visual Studio 죽어버리는 증상 해결 방법

C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\DEVSHL.DLL 파일을 첨부되어 있는 파일 로 바꿔주면 됨. DEVSHL.DLL 파일 다운로드

정규 표현식(regular expression) 구성 요소

출처 - WRITING SECURE CODE (안전한 코드 작성 기술) ^ 문자열의 시작에서 일치하는지 검사한다. $ 문자열의 종료에서 일치하는 검사한다. * {0,}과 동일하며, 앞 패턴과 0번 혹은 그 이상 일치하는지 검사한다. + {1,}과 동일하며, 앞 패턴과 1번 혹은 그 이상 일치하는지 검사한다. ? {0, 1}과 동일하며, 앞 패턴과 0번 혹은 1번 일치하는지 검사한다. {n} 앞 패턴이 정확히 n번인지를 검사한다. {n,} 앞 패턴이 n번 혹은 그 이상인지를 검사한다. {,m} 앞 패턴이 m번 이하인지를 검사한다. {n,m} 앞 패턴이 n번에서 m번인지를 검사한다. . \n 문자를 제외한 한 문자가 일치하는지 검사한다. (pattern) 패턴(pattern)과 일치하는지 검사하여 그 결과 데이터를 변수에 저장한다. 결과를 저장하는 변수는 프로그래밍 언어에 따라 다르다. 패턴 그룹, 예를 들면, (xx)+는 괄호내의 패턴이 1번 이상 있는지를 검사한다. 만약 비-저장을 원하면 (?:xx)로 적어 주면 일반식 엔진은 데이터를 저장하지 않는다. aa|bb aa 혹은 b와 일치하는지 검사한다. [abc] 사각 괄호내에 표시된 문자 중 한 문자(a, b, c)라도 일치하는지 검사한다. [^abc] 사각 괄호내에 표시된 문자 중 모든 문자(a, b, c)가 없는지 검사한다. [a-z] a부터 z까지 범주에 있ㄴ느 문자가 포함되어 있는지 검색한다. \ 이스케이프 문자. \n과 \/은 특수 문자이고, \1과 같이 \d로 표시되면 앞에서 찾은 데이터를 참조하는 데 사용된다. \b 단어와 스페이스간의 위치가 일치하는지 검사한다. 예를 들면 "er\b"는 "never"에서는 "er"이 일치한다고 찾지만, "verb"에서는 일치하지 않는다고 리턴한다. \B 해당 위치에서 단어를 끊어낸다. 예를 들면, "ea*r\B"는 "never early"에서 "ea...

[Git] 개념 설명 잘해놓은 사이트

https://nulab.com/learn/software-development/git-tutorial/ http://rogerdudler.github.io/git-guide/index.ko.html

[ASP.NET] 웹 폼 실행 시 발생하는 이벤트 순서

페이지 실행 주기 순서 이벤트 활성 여부 1 Constructor 항상 2 Construct 항상 3 TestDeviceFilter 항상 4 AddParsedSubObject 항상 5 DeterminePostBackMode 항상 6 PreInit 항상 7 LoadPersionalizationData 항상 8 InitializeThemes 항상 9 Init 항상 10 ApplyControlSkin 항상 11 ApplyPersonalization 항상 12 InitComplete 항상 13 LoadPageStateFromPersistenceMedium 다시 게시 14 LoadControlState 다시 게시 15 LoadViewState 다시 게시 16 ProcessPostData1 다시 게시 17 PreLoad 항상 18 Load 항상 19 ProcessPostData2 다시 게시 20 RaiseChangedEvents 다시 게시 21 RaisePostBackEvent 다시 게시 ...

[C++] dbgView 출력, OutputDebugString 함수 printf 함수처럼 사용

https://github.com/MoongStory/DebugView

라이브러리 파일(.lib) 함수 목록 확인하는 방법

명령 프롬프트 창에 아래와 같이 입력 dumpbin /symbols /exports LibName.lib > LibName.txt