[ RUST ] 앱 정보 추가 및 관리자 실행 권한 부여
포스트
취소

[ RUST ] 앱 정보 추가 및 관리자 실행 권한 부여

HitCount


Contents


앱 정보 추가하기

winres 크레잇을 이용하여 앱의 속성에 표시되는 정보들을 입력하는 방법에 대해 알아 보려고 합니다.
복잡하지 않으니 아래의 순서대로만 따라하시면 쉽게 앱의 속성을 추가하실 수 있습니다.

Cargo.toml 셋팅

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[package]
name = "winres_sample"
version = "1.0.0"
edition = "2021"
build = "build.rs"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[package.metadata.winres]
FileDescription = "descript"
#FileVersion = "1.0.0.0"
ProductName = "ToolBox"
ProductVersion = "1.0.0.1"
LegalCopyright = "© 2024 Monoslab. All rights reserved."
OriginalFilename = "ToolBox.exe"
CompanyName = "Monoslab"
Comments = "Monoslab ToolBox"
InternalName = "MonoslabToolBox.exe"

[dependencies]
...

[build-dependencies]
winres = "0.1"

위와 같이 [build-dependencies]에 winres = “0.1”을 추가하고 [package.metadata.winres] … 를 추가합니다. FileVersion은 주석 처리를 하였는데, 이는 [package]의 version이 우선시 되기 때문에 FileVersion에 어떠한 값을 추가하여도 [package]의 version값으로 표시가 되기 때문입니다. 입력 후 빌드를 해 보시고 생성된 실행 파일의 “속성 > 자세히”를 선택하시면 아래와 같이 내용들이 추가 되어 있는 것을 확인 하실 수 있습니다. file_info

앱 아이콘 설정 및 관리자 권한으로 실행

앱의 실행 파일 아이콘 및 관리자 권한으로 앱을 실행하도록 설정하기 위해서는 Cargo.toml 파일이 있는 폴더에 build.rs 파일과 assets 폴더 및 toolbox.ico 파일을 생성하고 아래의 예제와 같이 작업을 해줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
extern crate winres;

const DEF_MANIFEST: &str = r#"
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
        </requestedPrivileges>
    </security>
</trustInfo>
</assembly>
"#;

fn main() {
    if cfg!(target_os = "windows") {
        let mut res = winres::WindowsResource::new();
        res.set_icon("assets/toolbox.ico");
        res.set_manifest(DEF_MANIFEST);
        res.compile().unwrap();
    }
}

build.rs를 저장하고 cargo build --release를 입력하여 빌드합니다. 정상적으로 빌드가 되었다면 실행파일의 아이콘이 assets 폴더에 추가했던 아이콘으로 변경이 되고 아이콘 우측하단에 방패 모양(관리자 권한 실행 적용)이 생긴 것을 볼 수 있을 것입니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.