แสดงผลความละเอียดหน้าจอของอุปกรณ์ในรูปแบบเฉพาะของ[width]x[height]
(โดยไม่ต้องวงเล็บ) 1440x900
ยกตัวอย่างเช่นการส่งออกอาจจะ
นี่คือเครื่องมือทดสอบออนไลน์ที่คุณสามารถใช้เพื่อตรวจสอบความละเอียดหน้าจอของคุณเอง
'0x0'
แสดงผลความละเอียดหน้าจอของอุปกรณ์ในรูปแบบเฉพาะของ[width]x[height]
(โดยไม่ต้องวงเล็บ) 1440x900
ยกตัวอย่างเช่นการส่งออกอาจจะ
นี่คือเครื่องมือทดสอบออนไลน์ที่คุณสามารถใช้เพื่อตรวจสอบความละเอียดหน้าจอของคุณเอง
'0x0'
คำตอบ:
(_=screen)=>_.width+"x"+_.height
return
ขาออกเป็นฟังก์ชั่น เพิ่มที่จุดเริ่มต้นและเรียกเช่นf=
f()
ใช้พารามิเตอร์การเตรียมใช้งานเพื่อเริ่มต้นพารามิเตอร์_
กับscreen
วัตถุ ส่วนที่เหลืออธิบายด้วยตนเอง
f=(_=screen)=>_.width+"x"+_.height
console.log(f())
หมายเหตุ: การส่งผ่านอาร์กิวเมนต์ไปยังฟังก์ชันนี้จะทำให้ล้มเหลว
with(screen)alert(width+"x"+height)
ไม่เคยคิดว่าวันหนึ่งฉันจะใช้with
! ฉันไม่คิดว่าสิ่งนี้จะสามารถเล่นกอล์ฟต่อไปได้
s=screen,s.width+"x"+s.height
(29 ตัวอักษร) ด้วย
alert
: with(screen)(width+'x'+height)
เพียงแค่ส่งกลับสตริงที่เหมาะสม
_=screen,_.width+"x"+_.height
29 bytes
* ถอนหายใจ * TI-BASIC ใช้ไบต์พิเศษสำหรับตัวอักษรตัวเล็กทุกตัว
+2 ขอบคุณ@Timtech
-3 ขอบคุณ@Timtech
:If ΔX>.1
:Then
:Disp "96x64
:Else
:Disp "320x240
ใช้งานได้เพียงเพราะ TI-BASIC สามารถทำงานกับเครื่องคิดเลขที่มีความละเอียดหน้าจอที่แตกต่างกันสองแบบ: 96 x 64 และ 320 x 240 ฉันแค่ทดสอบเพื่อดูว่าหน้าจอใดที่ฉันมีโดยการตั้งค่า Zoom เป็นสิ่งที่แตกต่างกัน แสดงผลความละเอียดที่ถูกต้อง
ฉันกำลังทำเครื่องหมายสิ่งนี้ว่าไม่ใช่การแข่งขันเนื่องจากเป็นรหัสที่ยาก
ZDecimal
แล้วใช้การXmax
เปรียบเทียบที่แตกต่างกันอย่างน้อยหนึ่งไบต์ นอกจากนี้ฉันคิดว่าคุณต้องใช้ตัวพิมพ์เล็กx
ซึ่งเป็นสองไบต์ (x2) แทนการเทียบเท่าตัวพิมพ์ใหญ่หนึ่งไบต์
ZDecimal
) เนื่องจากการซูมเริ่มต้น ( ZStandard
) เหมือนกันกับเครื่องคิดเลขทั้งสอง แม้ว่าฉันจะแก้ไขตัวพิมพ์ใหญ่
ZStandard
จะΔX
แตกต่างกันระหว่างเครื่องคิดเลขหรือไม่ นอกจากนี้ZDecimal
เป็นเพียงหนึ่งไบต์ดังนั้นนี่คือ 31 ไบต์
_=>(s=screen).width+'x'+s.height
console.log((_=>(s=screen).width+'x'+s.height)())
_=>(s=screen).width+'x'+s.height
บันทึกไบต์
/*/*/sy*r SPDisplaysDataType|awk '/so/{print$2$3$4}'
ทำงานsystem_profiler
รับSPDisplaysDataType
ข้อมูลค้นหาครั้งแรกso
ในResolution
และพิมพ์ความละเอียดหน้าจอ สำหรับหลายหน้าจอสิ่งนี้จะพิมพ์ความละเอียดทั้งหมด
ตัวแปรที่ไม่สอดคล้องกันก่อนหน้านี้:
/*/*/sy*r SPDisplaysDataType|grep so|tr -d 'R :a-w'
2880x1800\n1920x1080@60Hz
(สองสาย) ฉันไม่ทราบว่าสิ่งนี้ตัดสิทธิ์ ... หรือ?
@60Hz
ไม่ชัดเจนในสเป็ค
|sed 1q
เลยทำให้ไบต์นับได้ถึง 58 ไบต์
awk
และมีหนึ่งไบต์พิเศษ :)
s=screen;alert(s.width+"x"+s.height)
fullScreen();print(width+"x"+height);
fullScreen()
ทำให้แอปเริ่มทำงานด้วยขนาดสูงสุด - ความละเอียดการแสดงผล หนึ่งไบต์น้อยกว่าที่ชัดเจน
print(displayWidth+"x"+displayHeight);
SysGet,w,0
SysGet,h,1
Send,%w%x%h%
บันทึกสิ่งนี้ในไฟล์ที่มีนามสกุล. AHK และเรียกใช้จากพรอมต์คำสั่ง
Send
มากกว่าMsgBox
?
ขอบคุณ @Johan du Toit สำหรับการบันทึกไบต์!
#import<windows.h>
#define G GetSystemMetrics
f(){printf("%dx%d",G(0),G(1));}
#define G GetSystemMetrics f(){printf("%dx%d",G(0),G(1));}
-7 ขอบคุณMartin Ender
-5 (จริง ๆ 12!) จากLeaky Nunพ่อมดเวทมนตร์ Regex อยู่เหนือฉัน
นี่เป็นเวลานาน แต่ไม่นานกว่าSystem.Windows.Forms.SystemInformation.PrimaryMonitorSize
โซลูชันที่น่ากลัว
(gwmi win32_videocontroller|% v*n)-replace" |x \d+\D+$"
ก่อนอื่นเราGet-WmiObject
( gwmi
) เพื่อดึงWin32_VideoController
วัตถุซึ่งมีสมาชิกชื่อVideoModeDescription
ซึ่งเป็นสตริงในรูปแบบของ1920 x 1080 x 4294967296 colors
แล้วฉันเรียกใช้ regex แทนที่เพื่อให้ได้รูปแบบที่ถูกต้อง
PS H:\> (gwmi win32_videocontroller|% v*n)-replace" |x \d+\D+$"
1920x1080
(gwmi win32_videocontroller|% v*n)-replace" |x[^x]+$"
โกนสองสามไบต์โดยปรับแต่ง regex
SystemInformation[][[1,5,2,1,2,1,2,2,;;,2]]~Infix~x
สิ่งนี้อาจไม่ทำงานสำหรับคุณขึ้นอยู่กับอุปกรณ์ที่คุณเชื่อมต่อ (ฉันไม่รู้) สิ่งนี้ควรใช้งานได้เสมอ (สมมติว่าคุณมีหน้าจออย่างน้อยหนึ่งหน้าจอติดยา):
Infix[Last/@("FullScreenArea"/.SystemInformation["Devices","ScreenInformation"][[1]]),x]
SystemInformation[]
ส่งคืนการแสดงออกของแบบฟอร์ม
SystemInformationData[{
"Kernel" -> {__},
"FrontEnd" -> {__},
"Links" -> {__},
"Parallel" -> {__},
"Devices" -> {__},
"Network" -> {__},
}]
เรามีความสนใจใน"Devices"
ซึ่งสามารถเข้าถึงได้โดยตรงหรือเป็นSystemInformation["Devices"]
SystemInformation[][[1,5,2]]
ผลลัพธ์จะเป็นรายการของแบบฟอร์ม
{
"ScreenInformation" -> {__},
"GraphicsDevices" -> {__},
"ControllerDevices" -> {__}
}
เราต้องการ"ScreenInformation"
ซึ่งสามารถเข้าถึงได้ไม่ว่าจะเป็นคนหรือมากกว่าเป็นชัดถ้อยชัดคำSystemInformation["Devices","ScreenInformation"]
SystemInformation[][[1,5,2,1,2]]
ผลลัพธ์จะเป็นของแบบฟอร์ม
{
{
"ScreenArea" -> {__},
"FullScreenArea" -> {{0,w_},{0,h_}},
"BitDepth" -> _,
"Resolution" -> _
},
___
}
ความยาวของรายการจะเป็นจำนวนหน้าจอที่คุณเชื่อมต่อ หน้าจอแรกคือSystemInformation[][[1,5,2,1,2,1]]
และสามารถดึงความกว้างและความสูงตามที่SystemInformation[][[1,5,2,1,2,1,2,2,;;,2]]
เราเพิ่งแทรกInfix
x
สำหรับรูปแบบผลลัพธ์
String f(){java.awt.Dimension s=java.awt.Toolkit.getDefaultToolkit().getScreenSize();return s.width+"x"+s.height;}
วิธีนี้จะไม่ทำงานในการติดตั้งหัวขาดของ Java (เช่นบน TIO) เพราะใช้ไลบรารี awt ภายใต้ประทุนการเรียกgetScreenSize
ใช้ Java Native Interface เพื่อโทรออก (โดยทั่วไปคือไลบรารี C) สำหรับความกว้างหน้าจอและความสูงของหน้าจอ
-9 bytes ขอบคุณOlivier Grégoireสำหรับเตือนฉันว่าฉันสามารถคืนสตริงแทนการพิมพ์ได้
...x...
เพราะvoid f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll("[^\\d,]",""));}
ที่เอาท์พุท1920,1200
สั้น ..
x
แทนที่จะ,
ใช้การแทนที่ regex บางส่วน แต่มันเป็นห้าไบต์มากกว่าคำตอบปัจจุบันของคุณ: void f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll("[^\\d,]","").replace(",","x"));}
หรือvoid f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll(".*?(\\d+).*?(\\d+).*","$1x$2"));}
Ah ดีสิ่งที่ไม่หนักใน Java .. ; p
_=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};
-6 ไบต์ขอบคุณ@TheLethalCoderโดยเตือนให้ฉัน OP ไม่ได้พูดถึงการพิมพ์ดังนั้นการส่งคืนสตริงก็ใช้ได้เช่นกัน และเพิ่มเติม -6 ไบต์โดยเปลี่ยนเป็นแลมบ์ดา
Func<string>
()=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};
อย่างไรก็ตามคุณมีการส่งคืนvoid
แต่คุณส่งคืนstring
ดังนั้นคุณต้องเพิ่ม 2 ไบต์สำหรับสิ่งนั้น
_=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};
var s=System.Windows.Forms.Screen.AllScreens[0].Bounds;
ก็จะเป็นจำนวนเดียวกัน แต่คุณสามารถเล่นกอล์ฟด้วยความคิดนั้นในใจ
read -aa<<<`xrandr`
echo ${a[7]}x${a[9]::-1}
xrandr
เป็นเซิร์ฟเวอร์ X, บน Ubuntu ให้บริการโดยx11-xserver-utilsแพคเกจ
วิ่งตัวอย่าง:
bash-4.3$ read -aa<<<`xrandr`;echo ${a[7]}x${a[9]::-1}
1920x1080
xrandr|grep -oP '\d+x\d+'|line
ขอบคุณที่:
วิ่งตัวอย่าง:
bash-4.3$ xrandr|grep -oP '\d+x\d+'|line
1920x1080
xrandr|grep *
ทำงานอย่างไร
grep
และsed
การแยกวิเคราะห์xrandr
ผลลัพธ์ ( pastebin.com/uTVcjWCq ) นั้นนานกว่า
xrandr|grep *|cut -d' ' -f1
? (ใช้สายจับคู่จาก paste @ TIOของคุณ)
from ctypes import*
u=windll.user32.GetSystemMetrics;
print u(0),'x',u(1)
print u(0),'x',u(1)
มีขนาดเล็กลงและตัวอย่างของเขา ( ลิงก์ ) อนุญาตให้ทำได้
To clarify, If it's equivalent to the output from What is my screen resolution, It's valid.
ในเว็บไซต์นั้นมีช่องว่างระหว่างแต่ละส่วน
' '⎕R'x'⍕⌽⊃⎕WG'DevCaps'
⎕WG'DevCaps'
W indow G et Devน้ำแข็งCap abilitie s
⊃
เลือกคุณสมบัติแรก (ความสูงความกว้าง)
⌽
ถอยหลัง
⍕
จัดรูปแบบเป็นข้อความ
' '⎕R'x'
R eplace space ด้วย "x" s
Ox`ØP(s×Çn)±d+"x"+ight
with(screen)width+"x"+height
สตริงบีบอัดหมายถึง Ox
ประเมินค่านี้เป็น JavaScript และผลลัพธ์จะถูกพิมพ์โดยปริยาย
(-4 ตัวอักษรเนื่องจากความช่วยเหลือของ @AppleShell)
ใช่. มันรวบรวม
m[3];main(){SDL_Init(32);SDL_GetDesktopDisplayMode(0,m);printf("%dx%d",m[1],m[2]);}
ทำงานด้วย: gcc snippet.c -lSDL2 && ./a.out
m
สากลและไม่สนใจint
:m[3];main(){...
m+1
ควรสั้นกว่าm[1]
ใช่ไหม หรือว่าเป็นไปไม่ได้ใน C แต่เฉพาะใน C ++? แน่นอน printf มี dereference บาง token
ขอบคุณ @ Jonathan-allan, @ felipe-nardi-batista
from Tkinter import*
print'%sx%s'%Tk().maxsize()
สำหรับการตั้งค่าการแสดงผลเดียวการจับคู่ผลลัพธ์จากเว็บไซต์ ซึ่งจะให้ความละเอียดทั้งหมดสำหรับจอแสดงผลหลายจอ
print'x'....
บันทึกไบต์
v=Tk().maxsize()
, print'%sx%s'%v
ช่วยประหยัด 9 ไบต์
print'%sx%s'%Tk().maxsize()
บันทึกอีก 4> _ <
xdpyinfo|grep dim|cut -d' ' -f7
จากหน้าคน:
xdpyinfo - is a utility for displaying information about an X server.
@Floris @manatwork ขอบคุณที่ช่วยกันประหยัดสักสองสามไบต์!
-d\
-d' '
จากนั้นเมื่อมันมาถึงทั้งgrep
สำหรับสายและcut
ส่วนหนึ่งของสายที่มักจะสั้นมีเพียงหนึ่งเดียวโทร:awk
xdpyinfo|awk '/dim/&&$0=$2'
dimensions
แต่ผมไม่ได้มีxdpyinfo
ในระบบของฉัน ...
grep *
ขยายเครื่องหมายดอกจันเป็นไฟล์ทั้งหมดในไดเรกทอรี
grep|cut
awk
*0
มา เอาท์พุท xrandr *0 3360 x 1050 ( 889mm x 278mm ) *0
ของฉันคือ
-f2
Btw คุณตรวจสอบได้xrandr|awk '/\*/{print $2}'
ไหม
เพียงเพื่อความสมบูรณ์:
PRINT "256x192"
256x192
เอาท์พุท Spectrum มีความละเอียดหน้าจอแบบเดินสายคงที่
void setup(){fullScreen();print(width+"x"+height);}
width height
ผลนี้ในรูปแบบนี้ นอกจากนี้โปรแกรมจะสร้างหน้าต่างที่มีขนาดของหน้าจอที่คุณใช้ (เนื่องจากโปรแกรมประมวลผลทุกโปรแกรมสร้างหน้าต่างตามค่าเริ่มต้น) และโปรแกรมนี้จะแสดงความสูงและความกว้างของหน้าต่าง / ร่างนี้
WIDTHxHEIGHT
โอ้รูปแบบคือ
puts [winfo screenw .]x[winfo screenh .]
((import html-toolkit)
(htmlOnLoad #::((var S(index(getWindow)screen))
(print(+(index S width)"x"(index S height))))))
(เพิ่มตัวแบ่งบรรทัดเพื่อให้สามารถอ่านได้)
ในที่สุดโมดูล html-toolkit ของฉันก็สามารถใช้งานได้! ใช้งานได้เฉพาะในลิงค์ทดลองใช้ออนไลน์จะไม่สามารถใช้งานได้จากบรรทัดคำสั่ง
สามารถบันทึกสองสามไบต์หาก1024 x 768
เป็นผลลัพธ์ที่ถูกต้อง เราใช้(+ .. "x" .. )
เพื่อหลีกเลี่ยงการprint
เว้นวรรคโดยนัย
2048x1080
สำหรับหน้าจอ 4K 4096x2160
จริงที่เป็นจริง มีความคิดอะไรไหม Firefox 52.0 บน FreeBSD 11
window.screen
และรับwidth
และheight
คุณลักษณะจากมัน ผมคิดว่าถ้าคุณเปิด Firefox ขึ้นคอนโซลและพิมพ์ลงในคุณจะเห็นได้ชัดว่าไม่ถูกต้องwindow.screen
2048x1080
f,g=love.window.setFullscreen,love.graphics function love.draw()f(1)w,h=g.getDimensions()f(0>1)g.print(w.."x"..h)end
โปรแกรมเปลี่ยนเป็นแบบเต็มหน้าจอก่อนจากนั้นจะได้รับความกว้างและความสูงและพิมพ์ตามนั้น :)
$ set `xrandr`;echo $6x$8
3360x1050
ทดสอบในกล่อง CentOS 5 พร้อมจอแสดงผลเปลี่ยนเส้นทางไปยังเครื่อง Cygwin พร้อมจอภาพสองจอ นี่คือxrandr
ผลลัพธ์เต็มรูปแบบ
$ xrandr
SZ: Pixels Physical Refresh
*0 3360 x 1050 ( 889mm x 278mm ) *0
Current rotation - normal
Current reflection - none
Rotations possible - normal
Reflections possible - none
puts `xrandr`.split[7..9].join[0..-2]
โซลูชันสำรอง (52 ไบต์):
puts `xrandr`.match(/t (\d+) (x) (\d+),/)[1..3].join
system/view/screens/1/size
ตัวอย่างเช่น:
1920x1080
รหัสอธิบายได้ด้วยตนเอง การ1
อ้างถึงหน้าจอแรก