Electron: λͺ¨λ‹ˆν„° 별 DPI 인식 지원 μΆ”κ°€

에 λ§Œλ“  2016λ…„ 05μ›” 07일  Β·  21μ½”λ©˜νŠΈ  Β·  좜처: electron/electron

Electron은 ν˜„μž¬ μ‹œμŠ€ν…œ DPIλ₯Ό μΈμ‹ν•©λ‹ˆλ‹€. 이둜 인해 DPI 섀정이 λ‹€λ₯Έ λͺ¨λ‹ˆν„°λ₯Ό μ‚¬μš©ν•  λ•Œ ν…μŠ€νŠΈκ°€ νλ¦Ών•˜κ²Œ ν‘œμ‹œλ©λ‹ˆλ‹€. λͺ¨λ‹ˆν„° 별 DPI 인식을 κ΅¬ν˜„ν•˜λ©΄μ΄ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

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

bug platforwindows

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš”. λ‚΄ μ›Ή μ‚¬μ΄νŠΈμ— λŒ€ν•œ μ•„μ£Ό μž‘μ€ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. 여기에 repo => https://github.com/Bohooslav/bolls-electron이 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ Microsoft Partner Center에 μ‘μš© ν”„λ‘œκ·Έλž¨μ„ λ°°ν¬ν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

κ²½κ³ 
DPIAwarenessValidation

κ²½κ³  : DPI 인식 μœ νš¨μ„± 검사 ν…ŒμŠ€νŠΈμ—μ„œ λ‹€μŒ κ²½κ³ κ°€ κ°μ§€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
app \ bollsbible.exe νŒŒμΌμ—λŠ” λ§€λ‹ˆνŽ˜μŠ€νŠΈμ— PerMonitorV2κ°€ λͺ…μ‹œλ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©° 예λ₯Ό λ“€μ–΄ user32! SetProcessDpiAwarenessContext λ˜λŠ” user32! SetThreadDpiAwarenessContext에 λŒ€ν•œ DPI Awareness APIλ₯Ό ν˜ΈμΆœν•˜μ§€λ„ μ•ŠμŠ΅λ‹ˆλ‹€.
33943CA21EBD1.BollsBible_0.1.3.0_x64__f6r55sbmr6tmj 앱은 DPIλ₯Ό μΈμ‹ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
μˆ˜μ •λ˜μ§€ μ•Šμ€ 경우 영ν–₯ : DPIλ₯Ό μΈμ‹ν•˜μ§€ μ•Šμ§€λ§Œ 높은 DPI λ””μŠ€ν”Œλ ˆμ΄ μ„€μ •μ—μ„œ 싀행쀑인 앱은 UI μš”μ†Œμ˜ 잘λͺ»λœ 크기 μ‘°μ •, 잘린 ν…μŠ€νŠΈ 및 흐린 이미지λ₯Ό λ‚˜νƒ€λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
ν•΄κ²° 방법 : μ•± λ§€λ‹ˆνŽ˜μŠ€νŠΈμ—μ„œ 앱을 DPI μΈμ‹μœΌλ‘œ μ„ μ–Έν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ μ•±μ—μ„œ DPI Awareness API ν˜ΈμΆœμ„ μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€ ( 예 : SetProcessDpiAwarenessContext λ˜λŠ” SetThreadDpiAwarenessContext API).

μ΅œμ‹  λ²„μ „μ˜ electron 8.0.3 및 electron builderλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°°ν¬ν•˜λ €λŠ” appxλ₯Ό λ§Œλ“€κ³  μžˆμŠ΅λ‹ˆλ‹€. 이게 λ‚΄ μ‹€μˆ˜μΈκ°€μš”? κ·Έλ ‡λ‹€λ©΄ μ–΄λ–»κ²Œν•΄μ•Όν•©λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ 문제λ₯Ό λ‹€μ‹œ μ—΄ 수 μžˆμŠ΅λ‹ˆκΉŒ? μ‘μš© ν”„λ‘œκ·Έλž¨μ€ λ†€λžλ„λ‘ κ°„λ‹¨ν•©λ‹ˆλ‹€. μ•„λ§ˆλ„ λ‚΄ 였λ₯˜κ°€ μ•„λ‹™λ‹ˆλ‹€.

λͺ¨λ“  21 λŒ“κΈ€

이 문제λ₯Ό Electronμ—μ„œ μ—΄μ–΄ λ‘μ–΄μ•Όν•œλ‹€κ³  μƒκ°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 잘 μ•Œλ €μ§„ Chromium 버그이며 기본적으둜 Electron μΈ‘μ—μ„œ ν•΄κ²°ν•  방법이 μ—†μŠ΅λ‹ˆλ‹€.

이것은 이제 Chromiumμ—μ„œ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λ‹€μ‹œ μ—΄λ‹€?

μ•„λ§ˆλ„ λ‹€μ‹œ μ—΄μ–΄μ•Ό ν•  κ²ƒμž…λ‹ˆλ‹€. μ΅œμ‹  Chromium은 이제 λΆ„ν•  dpi ​​λͺ¨λ‹ˆν„°μ—μ„œ ν›Œλ₯­ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

κ΅¬ν˜„ μžμ—κ²Œ Windows 10의 μ΅œμ‹  High DPI API에 λŒ€ν•œ λ„μ›€μ΄λ‚˜ 지침이 ν•„μš”ν•œ 경우 μ–Έμ œλ“ μ§€ 연락 μ£Όμ‹œλ©΄ νŒ€μ— μ—°κ²°ν•΄ λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

# 8406으둜 μˆ˜μ • λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?

그렇지 μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€. λ‘˜ 쀑 ν•˜λ‚˜λ§Œ 1.25둜 μ„€μ •λ˜μ–΄ μžˆμ§€λ§Œ getAllDisplays() μ—μ„œ λ°˜ν™˜ 된 Display λͺ¨λ‘μ— λŒ€ν•΄ scaleFactor: 1.25 λ₯Όλ°›μŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš”. λ‚΄ μ›Ή μ‚¬μ΄νŠΈμ— λŒ€ν•œ μ•„μ£Ό μž‘μ€ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. 여기에 repo => https://github.com/Bohooslav/bolls-electron이 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ Microsoft Partner Center에 μ‘μš© ν”„λ‘œκ·Έλž¨μ„ λ°°ν¬ν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

κ²½κ³ 
DPIAwarenessValidation

κ²½κ³  : DPI 인식 μœ νš¨μ„± 검사 ν…ŒμŠ€νŠΈμ—μ„œ λ‹€μŒ κ²½κ³ κ°€ κ°μ§€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
app \ bollsbible.exe νŒŒμΌμ—λŠ” λ§€λ‹ˆνŽ˜μŠ€νŠΈμ— PerMonitorV2κ°€ λͺ…μ‹œλ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©° 예λ₯Ό λ“€μ–΄ user32! SetProcessDpiAwarenessContext λ˜λŠ” user32! SetThreadDpiAwarenessContext에 λŒ€ν•œ DPI Awareness APIλ₯Ό ν˜ΈμΆœν•˜μ§€λ„ μ•ŠμŠ΅λ‹ˆλ‹€.
33943CA21EBD1.BollsBible_0.1.3.0_x64__f6r55sbmr6tmj 앱은 DPIλ₯Ό μΈμ‹ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
μˆ˜μ •λ˜μ§€ μ•Šμ€ 경우 영ν–₯ : DPIλ₯Ό μΈμ‹ν•˜μ§€ μ•Šμ§€λ§Œ 높은 DPI λ””μŠ€ν”Œλ ˆμ΄ μ„€μ •μ—μ„œ 싀행쀑인 앱은 UI μš”μ†Œμ˜ 잘λͺ»λœ 크기 μ‘°μ •, 잘린 ν…μŠ€νŠΈ 및 흐린 이미지λ₯Ό λ‚˜νƒ€λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
ν•΄κ²° 방법 : μ•± λ§€λ‹ˆνŽ˜μŠ€νŠΈμ—μ„œ 앱을 DPI μΈμ‹μœΌλ‘œ μ„ μ–Έν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ μ•±μ—μ„œ DPI Awareness API ν˜ΈμΆœμ„ μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€ ( 예 : SetProcessDpiAwarenessContext λ˜λŠ” SetThreadDpiAwarenessContext API).

μ΅œμ‹  λ²„μ „μ˜ electron 8.0.3 및 electron builderλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°°ν¬ν•˜λ €λŠ” appxλ₯Ό λ§Œλ“€κ³  μžˆμŠ΅λ‹ˆλ‹€. 이게 λ‚΄ μ‹€μˆ˜μΈκ°€μš”? κ·Έλ ‡λ‹€λ©΄ μ–΄λ–»κ²Œν•΄μ•Όν•©λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ 문제λ₯Ό λ‹€μ‹œ μ—΄ 수 μžˆμŠ΅λ‹ˆκΉŒ? μ‘μš© ν”„λ‘œκ·Έλž¨μ€ λ†€λžλ„λ‘ κ°„λ‹¨ν•©λ‹ˆλ‹€. μ•„λ§ˆλ„ λ‚΄ 였λ₯˜κ°€ μ•„λ‹™λ‹ˆλ‹€.

λ‚˜λŠ” 같은 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
μ „μž : 6.1.7
μ „μž λΉŒλ” : 22.2.0

Microsoft Store 제좜 ν›„ μžλ™μœΌλ‘œ μˆ˜ν–‰λ˜λŠ” Windows App Certification Kidμ—μ„œ λ°œν–‰ ν•œ 였λ₯˜μ΄μ§€λ§Œ μ•½ 2 μ£Ό 전에 앱을 μ œμΆœν•˜μ—¬ 였λ₯˜μ—†μ΄ κ²€ν†  ν•  μˆ˜μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ΅œκ·Όμ— λ°œμƒν•œ 였λ₯˜ 인 것 κ°™μŠ΅λ‹ˆλ‹€.
μ „μž μͺ½μ—μ„œ ν•  μˆ˜μžˆλŠ” μˆ˜μ •μ΄ μžˆμŠ΅λ‹ˆκΉŒ?

λ‹€μ‹œ μ—΄μ–΄μ•Όν•©λ‹ˆλ‹€.

μ „μž 8.0.2 및 μ „μž 생성기 22.3.2μ—μ„œ λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

νŠΈμœ— λ‹΄μ•„ κ°€κΈ°

λ‚˜λ„
PerMonitorV2λŠ” λ§€λ‹ˆνŽ˜μŠ€νŠΈμ— λͺ…μ‹œλ˜μ§€ μ•Šμ•˜κ³  DPI Awareness API (예 : user32! SetProcessDpiAwarenessContext λ˜λŠ” user32! SetThreadDpiAwarenessContext)λ₯Ό ν˜ΈμΆœν•˜μ§€λ„ μ•ŠμŠ΅λ‹ˆλ‹€.

저도 이번 μ£Ό μ΄ν›„λ‘œ 같은 였λ₯˜μž…λ‹ˆλ‹€. 우리λ₯Ό 도와 쀘!!

Microsoft에 문제λ₯Ό λ³΄λƒˆμ§€ 만 νšŒμ‹ ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

저도 Microsoft Store μœ νš¨μ„± 검사와 λ™μΌν•œ λ¬Έμ œμž…λ‹ˆλ‹€. μ „μž 8.0.1

같은 λ¬Έμ œμ— μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ 맀μž₯의 μ •ν™•ν•œ 였λ₯˜ λ©”μ‹œμ§€μž…λ‹ˆλ‹€.

DPIAwarenessValidation
κ²½κ³  : DPI 인식 μœ νš¨μ„± 검사 ν…ŒμŠ€νŠΈμ—μ„œ λ‹€μŒ κ²½κ³ κ°€ κ°μ§€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
app \ abc.exe νŒŒμΌμ—λŠ” λ§€λ‹ˆνŽ˜μŠ€νŠΈμ— PerMonitorV2κ°€ λͺ…μ‹œλ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©° 예λ₯Ό λ“€μ–΄ user32! SetProcessDpiAwarenessContext λ˜λŠ” user32! SetThreadDpiAwarenessContext에 λŒ€ν•œ DPI Awareness APIλ₯Ό ν˜ΈμΆœν•˜μ§€λ„ μ•ŠμŠ΅λ‹ˆλ‹€.
abc_1.0.3.0_x64__s0tds78ffjpq8 앱은 DPIλ₯Ό μΈμ‹ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
μˆ˜μ •λ˜μ§€ μ•Šμ€ 경우 영ν–₯ : DPIλ₯Ό μΈμ‹ν•˜μ§€ μ•Šμ§€λ§Œ 높은 DPI λ””μŠ€ν”Œλ ˆμ΄ μ„€μ •μ—μ„œ 싀행쀑인 앱은 UI μš”μ†Œμ˜ 잘λͺ»λœ 크기 μ‘°μ •, 잘린 ν…μŠ€νŠΈ 및 흐린 이미지λ₯Ό λ‚˜νƒ€λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
ν•΄κ²° 방법 : μ•± λ§€λ‹ˆνŽ˜μŠ€νŠΈμ—μ„œ 앱을 DPI μΈμ‹μœΌλ‘œ μ„ μ–Έν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ μ•±μ—μ„œ DPI Awareness API ν˜ΈμΆœμ„ μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€ ( 예 : SetProcessDpiAwarenessContext λ˜λŠ” SetThreadDpiAwarenessContext API).
높은 DPI μ•± μž‘μ„±

λ™μΌν•œ 직면, Electron 4.0.0. μœ νš¨μ„± 검사 λ³΄κ³ μ„œμ—μ„œμ΄ λ¬Έμ œλŠ” 였λ₯˜κ°€ μ•„λ‹Œ 경고둜 ν‘œμ‹œλ©λ‹ˆλ‹€. κ²½κ³ λŠ” λ‚΄κ°€ μ΄ν•΄ν•˜λŠ” 인증에 μ‹€νŒ¨ν•΄μ„œλŠ” μ•ˆλ©λ‹ˆλ‹€.

μ΅œκ·Όμ— Windows μŠ€ν† μ–΄ μœ νš¨μ„± 검사가 μ—…λ°μ΄νŠΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ—…λ°μ΄νŠΈμ— 결함이 있고 μ΄μ œλŠ” μ•ˆλ  λ•Œ 인증에 μ‹€νŒ¨ν•©λ‹ˆλ‹€. 이 경우 Microsoft에 μ•Œλ¦¬κ³  μΉœμ ˆν•˜κ²Œ μˆ˜μ •μ„ μš”μ²­ν•΄μ•Όν•©λ‹ˆλ‹€.

λ˜λŠ”μ΄ λ¬Έμ œλŠ” 이제 Windows Storeμ—μ„œ 였λ₯˜λ‘œ κ°„μ£Όλ˜μ–΄ λ³΄κ³ μ„œμ— 경고둜 잘λͺ» ν‘œμ‹œλ˜κ³  Electronμ—μ„œ μˆ˜μ • 될 λ•ŒκΉŒμ§€ λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ Microsoft에 μΌμ‹œμ μœΌλ‘œ μ œν•œμ„ ν•΄μ œν•˜λ„λ‘ μΉœμ ˆν•˜κ²Œ μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

[email protected] 으둜 이메일을

μ£„μ†‘ν•©λ‹ˆλ‹€, @electron ,이 λ¬Έμ œλŠ” μš°λ¦¬κ°€ moλ₯Ό μœ„ν•΄ μ†Œν†΅ ν•  μˆ˜μžˆλŠ” μœ μΌν•œ μž₯μ†Œ 인 것 κ°™μŠ΅λ‹ˆλ‹€.

μ§€μ›νŒ€μ—μ„œ 에말을 λ°›μ•˜μŠ΅λ‹ˆλ‹€.

λ¬Έμ œκ°€λ³΄κ³ λ˜μ—ˆμœΌλ©° 였늘 μˆ˜μ • 사항을 λ°°ν¬ν•΄μ•Όν•œλ‹€λŠ” μ•Œλ¦Όμ„ λ°›μ•˜μŠ΅λ‹ˆλ‹€. λ‹€μ‹œ μ œμΆœν•΄ μ£Όμ‹œκ³  λ™μΌν•œ 였λ₯˜λ‘œ 인해 WACK ν…ŒμŠ€νŠΈκ°€ μ—¬μ „νžˆ μ‹€νŒ¨ν•˜λ©΄ Google에 문의 ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

@funkyOne에 문의 ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€! κ·€ν•˜μ˜ μ˜κ²¬μ„ 읽고 λ‹€μ‹œ μ œμΆœμ„ μ‹œλ„ν–ˆμ§€λ§Œ 승인 μ•Œλ¦Όμ„ λ°›μ•˜μŠ΅λ‹ˆλ‹€.

@funkyOne κ°μ‚¬ν•©λ‹ˆλ‹€!
λ‹€μ‹œ ν•œ 번 μ‹ μ²­μ„ν–ˆκ³  μ•ˆμ „ν•˜κ²Œ 앱을 μΆœμ‹œ ν•  μˆ˜μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
https://www.microsoft.com/ja-jp/p/client-for-google-todo-pro/9n82s1cc02pb?activetab=pivot : overviewtab

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰