728x90
반응형
728x90
반응형
728x90
반응형



  • 도움이 되셨으면 하단의 ❤️ 공감 버튼 부탁 드립니다. 감사합니다! 😄

728x90
반응형
728x90
반응형

윈도우즈 10 이상인지 점검/확인하는 함수(API)

  • IsWindows10OrGreater() 함수는 Windows 운영 체제 버전을 확인하는 Version Helper API 중 하나입니다.
  • 이 함수는 Windows 10 이상인지 확인하는데 사용됩니다.

사용 예제 (C++)

  • cpp

    #include <windows.h>
    #include <versionhelpers.h>
    #include <iostream>
    
    int main() {
        if (IsWindows10OrGreater()) {
            std::cout << "Windows 10 이상입니다." << std::endl;
        } else {
            std::cout << "Windows 10 미만입니다." << std::endl;
        }
        return 0;
    }
    

관련 MSDN 문서


  • 이 함수는 내부적으로 VerifyVersionInfo를 사용하여 Windows 버전을 비교합니다.
  • 다만, Windows 10 이후의 세부 빌드 번호를 확인하려면 RtlGetVersion이나 GetProductInfo 같은 함수를 활용하는 것이 필요할 수도 있습니다.
728x90
반응형
728x90
반응형

MSIX 패키지 제작 가이드: Windows 애플리케이션 배포를 위한 방법


1. 개발 환경 준비

  • 운영체제: Windows 10 이상
  • 필요 도구:

2. 프로젝트 설정

MSIX 패키지는 Visual StudioMSIX Packaging Tool을 이용해 생성할 수 있습니다.


방법 1: Visual Studio 사용

  1. 프로젝트 생성

    • 기존 프로젝트 열기 또는 새 프로젝트 생성 (WPF, WinForms 등)
  2. MSIX 패키지 추가

    • 프로젝트추가새 프로젝트MSIX 패키지 프로젝트 선택 후 기존 앱과 연결
  3. 패키지 설정

    • Package.appxmanifest 파일에서 패키지 이름, 버전, 권한 등을 설정
  4. 패키징

    • 빌드패키지 만들기.msix로 패키징 완료

방법 2: MSIX Packaging Tool 사용

  1. 도구 실행

    • MSIX Packaging Tool 실행
  2. 패키징 마법사 진행

    • 새 애플리케이션 패키지 만들기를 선택하고 설치 프로그램을 지정
  3. 설정 및 생성

    • 애플리케이션 설치 경로, 설정, 인증서 서명 등을 완료하고 .msix 파일을 생성

3. 인증서 서명

MSIX 패키지는 신뢰성을 위해 반드시 디지털 서명이 필요합니다.

  • 테스트 인증서: Visual Studio에서 자동으로 생성 가능
  • 정식 인증서: 인증 기관에서 획득 후 서명
signtool sign /fd SHA256 /a /f 인증서.pfx /p 비밀번호 파일.msix

4. 설치 및 테스트

생성된 .msix 파일을 테스트하거나 직접 설치할 수 있습니다.

  • 로컬 설치: 더블 클릭 후 설치
  • PowerShell 설치:
    Add-AppxPackage -Path "C:\path\to\app.msix"
    

5. (선택적) 배포

  • Microsoft Store 배포
  • 내부 네트워크 배포: 그룹 정책 설정을 통해 msix 배포 가능
728x90
반응형
728x90
반응형

Windows 11에서 기본 우클릭 메뉴(팝업 메뉴, Popup Menu)를 구형 메뉴(클래식 메뉴)로 변경하는 방법

Windows 11은 새로운 우클릭 메뉴를 기본으로 표시하지만, 일부 사용자들은 이전의 클래식 메뉴(Classic Menu)를 선호하기도 합니다.

클래식 메뉴를 기본으로 표시하도록 설정하려면 레지스트리 편집을 통해 간단히 변경할 수 있습니다.

아래 방법을 따라 설정하세요.


1. 레지스트리 편집기 실행

  1. Win + R 키를 눌러 실행창을 엽니다.
  2. regedit를 입력하고 Enter 키를 눌러 레지스트리 편집기를 실행합니다. 실행하시면 이 앱이 디바이스를 변경할 수 있도록 허용하시겠어요?라고 물어 봅니다. 를 눌러 진행하시면 됩니다.

2. 레지스트리 경로 이동

  • 레지스트리 편집기에서 아래 경로로 이동합니다:
    HKEY_CURRENT_USER
                     \Software
                               \Classes
                                        \CLSID
    

3. 새 키 생성

  1. CLSID 키를 마우스 오른쪽 클릭 → 새로 만들기(New)키(Key) 를 선택합니다.
  2. 새 키의 이름을 아래와 같이 설정합니다:
    {86ca1aa0-34aa-4e8b-a509-50c905bae2a2}
    

4. 하위 키 생성

  1. 방금 만든 키를 선택한 상태에서, 다시 마우스 오른쪽 클릭 → 새로 만들기(New)키(Key) 를 선택합니다.
  2. 새 키 이름을 아래와 같이 설정합니다:
    InprocServer32
    

5. 기본 값 설정

  1. InprocServer32를 선택한 후, 오른쪽 창에 표시된 기본(Default) 항목을 더블 클릭합니다.
  2. 값을 비워둔 상태로 확인(OK) 을 클릭합니다.

6. PC 재부팅

  • 모든 작업을 완료한 후, PC를 재부팅합니다.
  • 이제 Windows 11의 우클릭 메뉴가 클래식 메뉴로 기본 표시됩니다.

변경 사항 되돌리기

  • 클래식 메뉴 설정을 취소하려면 아래 단계를 따라 복원하세요:
    1. 레지스트리 편집기에서 HKEY_CURRENT_USER\Software\Classes\CLSID\ 경로로 이동합니다.
    2. {86ca1aa0-34aa-4e8b-a509-50c905bae2a2} 키를 삭제합니다.
    3. PC를 재부팅하면 기본 우클릭 메뉴로 복원됩니다.

이 방법을 통해 Windows 11에서 클래식 메뉴를 기본으로 표시할 수 있습니다. 레지스트리 수정은 신중히 진행하시고, 변경 전 중요한 데이터를 백업하는 것을 권장합니다.

728x90
반응형
728x90
반응형

Winget으로 모든 패키지를 한 번에 업그레이드하는 방법

winget을 사용하여 모든 업그레이드 가능한 패키지를 한꺼번에 업데이트하려면 다음 명령어를 사용하시면 됩니다:

winget upgrade --all

설명:

  • upgrade: 업그레이드 가능한 패키지 목록을 확인하거나 업그레이드를 실행합니다.
  • --all: 업그레이드 가능한 모든 패키지를 대상으로 작업을 수행합니다.

이 명령어를 실행하면 현재 시스템에 설치된 모든 업그레이드 가능한 프로그램을 최신 버전으로 자동으로 업데이트합니다.

728x90
반응형
728x90
반응형

Windows 작업 표시줄 아이콘 안 보임 (Windows 10, Windows 11)

Windows 10 이상

Windows 작업 표시줄에 추가한 앱의 아이콘이 보이지 않을 때, 아이콘을 다시 표시할 수 있는 몇 가지 방법이 있습니다. 다음 방법들을 시도해 보세요:

1. 작업 표시줄에서 아이콘 고정 해제 후 다시 고정하기

  • 작업 표시줄에서 아이콘이 없는 앱을 오른쪽 클릭합니다.
  • 작업 표시줄에서 고정 해제를 선택합니다.
  • 그런 다음 해당 앱을 다시 실행한 후, 실행된 앱 아이콘을 오른쪽 클릭하여 작업 표시줄에 고정을 선택합니다.

2. 시스템 트레이에서 아이콘 표시 설정 확인하기

  • 작업 표시줄을 오른쪽 클릭한 후 작업 표시줄 설정을 선택합니다.
  • 알림 영역 섹션에서 시스템 아이콘 켜기 또는 끄기를 선택합니다.
  • 필요한 앱의 아이콘이 꺼져 있다면 다시 켜주세요.

3. Windows 아이콘 캐시 재설정

  • Windows에서는 아이콘을 캐시하여 빠르게 표시하는데, 이 캐시가 손상될 경우 아이콘이 제대로 표시되지 않을 수 있습니다. 이를 재설정하는 방법입니다.
  1. 작업 관리자를 실행합니다 (Ctrl + Shift + Esc).
  2. Windows 탐색기 항목을 찾아 선택한 후, 다시 시작 버튼을 누릅니다.
  3. 만약 이 방법으로 해결되지 않으면, 아이콘 캐시 파일을 직접 삭제할 수 있습니다. 이 과정은 다소 복잡하므로 신중히 진행해야 합니다:
    • 파일 탐색기에서 C:\Users\사용자명\AppData\Local 경로로 이동합니다.
    • IconCache.db 파일을 삭제합니다.
    • 컴퓨터를 재부팅하면 Windows가 자동으로 새 캐시 파일을 생성합니다.

4. 그래픽 드라이버 업데이트

아이콘이 보이지 않는 문제가 그래픽 드라이버와 관련이 있을 수 있으니, 그래픽 드라이버를 최신 버전으로 업데이트하는 것도 도움이 될 수 있습니다.

이 방법들 중 하나로 아이콘 문제가 해결되지 않으면, 특정 앱의 문제일 수 있으므로 해당 앱의 재설치나 Windows 업데이트를 고려해 볼 수 있습니다.

728x90
반응형
728x90
반응형

MANIFESTUAC (매니페스트에 UAC 정보 포함)

구문

/MANIFESTUAC
/MANIFESTUAC:NO
/MANIFESTUAC:level
/MANIFESTUAC:uiAccess
/MANIFESTUAC:fragment

매개 변수

NO 링커는 프로그램 매니페스트에 UAC 정보를 포함하지 않습니다.

level level=그 뒤에, 'highestAvailable'또는 'requireAdministrator'. 중 'asInvoker'하나가 잇습니다. 기본값은 'asInvoker'입니다. 자세한 내용은 설명 섹션을 참조하세요.

uiAccess uiAccess='true'애플리케이션이 사용자 인터페이스 보호 수준을 우회하고 입력을 데스크톱에서 더 높은 사용 권한 창으로 유도하려면 다음을 실행합니다. 그렇지 않으면 . uiAccess='false' 기본값은 uiAccess='false'입니다. 사용자 인터페이스 접근성 애플리케이션에 대해서만 이 인수 uiAccess='true' 를 설정합니다.

fragment 값과 uiAccess 값을 포함하는 문자열입니다. level. 필요에 따라 큰따옴표로 묶을 수 있습니다. 자세한 내용은 설명 섹션을 참조하세요.

설명

명령줄에서 여러 /MANIFESTUAC 옵션을 지정하는 경우 마지막으로 입력한 옵션이 우선합니다.

선택 /MANIFESTUAC:level 항목은 다음과 같습니다.

  • level='asInvoker' : 애플리케이션이 시작된 프로세스와 동일한 권한 수준에서 실행됩니다. administrator로 실행을 선택하여 애플리케이션을 더 높은 권한 수준으로 승격할 수 있습니다.

  • level='highestAvailable' : 애플리케이션은 사용할 수 있는 가장 높은 권한 수준에서 실행됩니다. 애플리케이션을 시작하는 사용자가 administrators 그룹의 구성원인 경우 이 옵션은 다음과 같습니다level='requireAdministrator'. 사용 가능한 가장 높은 사용 권한 수준이 여는 프로세스 수준보다 높은 경우 시스템에서 자격 증명을 묻는 메시지를 표시합니다.

  • level='requireAdministrator' : 애플리케이션은 관리자 권한을 사용하여 실행됩니다. 애플리케이션을 시작하는 사용자는 administrators 그룹의 구성원이어야 합니다. 여는 프로세스가 관리 권한으로 실행되고 있지 않으면 시스템에서 자격 증명을 묻는 메시지를 표시합니다.

옵션을 사용하여fragment/MANIFESTUAC:한 단계에서 값과 uiAccess 값을 모두 level 지정할 수 있습니다. 조각은 다음 형식이어야 합니다.

/MANIFESTUAC: [ " ] level= { 'asInvoker' | 'highestAvailable' | 'requireAdministrator' } uiAccess= { 'true' | 'false' } [ " ]
  • 예시:
/MANIFESTUAC:"level='highestAvailable' uiAccess='true'"

Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. 구성 속성>링커>매니페스트 파일 속성 페이지를 선택합니다.

  3. UAC(사용자 계정 컨트롤 사용), UAC 실행 수준 및 UAC 바이패스 UI 보호 속성을 수정합니다.

728x90
반응형
728x90
반응형
description ms.assetid title ms.topic ms.date
Tables that list functionality and feature support comparisons for the four main Windows file systems, NTFS, exFAT, UDF, and FAT32.
28cf2805-f1ce-46b4-bf08-a329f67f4d99
File System Functionality Comparison
article
05/31/2018

File System Functionality Comparison

The following tables list functionality and feature support comparisons for the four main Windows file systems, NTFS, exFAT, UDF, and FAT32:

Functionality

Feature NTFS exFAT UDF FAT32
Creation time stamps
Yes
Yes
Yes
Yes
Last access time stamps
No (see note below)
Yes
Yes
Yes (date only)
Last change time stamps
Yes
Yes
Yes
Yes
Last archive time stamps
No
No
No
No
Case-sensitive
Yes (option)
No
Yes
No
Case-preserving
Yes
Yes
Yes
Yes
Hard links
Yes
No
Yes
No
Soft links
Yes
No
No
No
Sparse files
Yes
No
Yes
No
Named streams
Yes
No
Yes
No
Oplocks
Yes
Yes
Yes
Yes
Extended attributes
Yes
No
Yes (on-disk only)
No
Alternate data streams
Yes
No
Yes
No
Mount points
Yes
No
No
No

Windows Server 2003 and Windows XP: The NTFS last access time stamp field is updated.

Limits

Feature NTFS exFAT UDF FAT32
Maximum file name length
255 Unicode characters
255 Unicode characters
127 Unicode or 254 ASCII characters
255 Unicode characters
Maximum path name length
32,760 Unicode characters with each path component no more than 255 characters
32,760 Unicode characters with each path component no more than 255 characters
32,760 Unicode characters with each path component no more than 255 characters
32,760 Unicode characters with each path component no more than 255 characters
Maximum file size
2^64 1 bytes
2^64 1 bytes
2^64 1 bytes
4 GiB
Maximum volume size
16 TB (4 KB Cluster Size) or 256TB (64 KB Cluster Size)
2^32 1 clusters (Maximum cluster size = 2^25 1)
2^32 blocks
2^32 blocks

Journaling and Change Log

Feature NTFS exFAT UDF FAT32
Metadata-only journaling
Yes
No
No
No
File change log
Yes
No
No
No

Block Allocation Features

Feature NTFS exFAT UDF FAT32
Tail packing
Yes (small files are made resident in the MFT stream descriptor)
No
No
No
Extents
Yes
No
Yes
No
Variable block size
No (set by the volume)
No
No
No

Security

Feature NTFS exFAT UDF FAT32
Track file owner
Yes
No
No
No
POSIX file permissions
No (available in POSIX subsystem feature)
No
Yes
No
Access control lists
Yes
No
No
No
File system level encryption
Yes
No
No
No
Checksum/ECC
No
Metadata
Metadata
No

Compression

Feature NTFS exFAT UDF FAT32
Built-in compression
Yes
No
No
No

Quotas

Feature NTFS exFAT UDF FAT32
User-level disk space
Yes
No
No
No
Directory-level disk space
No (see note below)
No
No
No

Note The directory-level disk space quotas feature on NTFS is available through the File Server Resource Manager.

Single-Instance Store

Feature NTFS exFAT UDF FAT32
File level
No (see note below)
No
No
No

Note Single-instance store for NTFS is available as part of the Single Instance Storage feature in Windows Server.

Related topics

About File Management

Single-Instance Store and SIS Backup

728x90
반응형
728x90
반응형

[scoop] 윈도우즈에서 유닉스/리눅스 툴을 쉽게 설치하기

  • 윈도우즈에서 유닉스 툴을 쉽게 설치하는 방법을 찾고 계십니까? 물론 다양한 방법이 있지만 그 중 scoop 을 권장합니다.
  • https://scoop.sh/

Scoop

필수사항

  • Microsoft Windows 7 SP1 이상
  • Powershell 3 (또는 이후 버전)
  • .NET Framework 4.5 (또는 이후 버전)

설치방법

  • 파워쉘에서 다음과 같은 명령어를 입력하면 끝.
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
  • Note: if you get an error you might need to change the execution policy (i.e. enable Powershell) with Set-ExecutionPolicy RemoteSigned -scope CurrentUser
728x90
반응형
728x90
반응형

MultiByteToWideChar 함수로 멀티바이트 문자열을 유니코드로 변환하기

MultiByteToWideChar 함수는 멀티바이트 문자열을 유니코드 문자열로 변환하는 Windows API 함수입니다.

이 함수는 특정 코드 페이지를 사용하여 멀티바이트 문자열을 유니코드로 변환합니다.

함수 원형은 다음과 같습니다:

int MultiByteToWideChar(
  UINT   CodePage,
  DWORD  dwFlags,
  LPCSTR lpMultiByteStr,
  int    cbMultiByte,
  LPWSTR lpWideCharStr,
  int    cchWideChar
);

각 매개변수의 의미는 다음과 같습니다:

  • CodePage: 변환에 사용할 코드 페이지를 지정합니다. 예를 들어, 한국어의 경우 949(ANSI/OEM - Korean (Unified Hangul Code))를 사용합니다. 코드 페이지 상수로 CP_ACP 등을 사용할 수 있습니다.

  • dwFlags: 변환 동작을 제어하는 플래그로, 일반적으로 0을 사용합니다.

  • lpMultiByteStr: 변환할 멀티바이트 문자열의 포인터입니다.

  • cbMultiByte: 변환할 멀티바이트 문자열의 길이입니다. 이 값이 -1이면 함수는 문자열이 null로 종료된 것으로 간주합니다.

  • lpWideCharStr: 변환된 유니코드 문자열을 저장할 버퍼의 포인터입니다.

  • cchWideChar: 유니코드 문자열 버퍼의 크기입니다.

함수의 반환값이 0이면 변환에 실패한 것이며, 이 경우 GetLastError()를 호출하여 오류 정보를 확인할 수 있습니다. 주로 출력 버퍼의 크기가 충분하지 않거나 입력 문자열이 너무 길 때 오류가 발생합니다.

이 함수는 멀티바이트 문자열을 유니코드로 변환할 때 유용하게 사용됩니다.

728x90
반응형
728x90
반응형

Windows Vista에서 UAC 권한 상승을 통한 SetLocalTime 함수 호출 테스트

Windows Vista 환경에서 SetLocalTime 함수를 호출하려면 관리자 권한이 필요합니다.

테스트 결과, 애플리케이션의 매니페스트에서 UAC(User Account Control) 설정을 조정하면 권한 상승이 가능하며, 이에 따라 SetLocalTime 함수 호출이 성공적으로 이루어집니다.

테스트는 관리자 그룹에 속한 사용자 계정으로 수행되었으며, 매니페스트의 UAC 설정에 따른 결과는 다음과 같습니다:

  1. asInvoker: 호출 실패
  2. highestAvailable: 호출 성공
  3. requireAdministrator: 호출 성공

이러한 결과는 highestAvailable 설정에서도 권한 상승이 이루어져 함수 호출이 성공함을 보여줍니다.

추후 일반 사용자 계정으로도 동일한 테스트를 진행하여 결과를 확인할 예정입니다.

728x90
반응형
728x90
반응형

DLU Dialog Units

  • Microsoft는 폼의 컨트롤 사이에 좌측 여백으로 7 다이얼로그 유닛(DLU)을 사용할 것을 권장합니다.
  • DLU는 수직 방향에서는 다이얼로그 글꼴 높이의 1/8, 수평 방향에서는 글꼴 너비의 1/4로 정의됩니다.
  • 이러한 정의는 시스템 글꼴, 해상도 등 다양한 환경에서 폼을 어떻게 디자인할 것인지에 대한 문제를 제기합니다.
  • 따라서 픽셀 대신 DLU를 사용하여 크기를 지정하는 것이 좋습니다.

http://codebetter.com/blogs/ranjan.sakalley/archive/2006/04/11/Dialog-Units.aspx

728x90
반응형

+ Recent posts