บอกความละเอียดหน้าจอของฉันหน่อยสิ!


33

แสดงผลความละเอียดหน้าจอของอุปกรณ์ในรูปแบบเฉพาะของ[width]x[height](โดยไม่ต้องวงเล็บ) 1440x900ยกตัวอย่างเช่นการส่งออกอาจจะ

นี่คือเครื่องมือทดสอบออนไลน์ที่คุณสามารถใช้เพื่อตรวจสอบความละเอียดหน้าจอของคุณเอง


17
รูปแบบผลลัพธ์เฉพาะนั้นไม่สนุก แต่มันอาจจะสายเกินไปที่จะเปลี่ยนแปลงในขณะนี้
Luis Mendo

3
จะต้องทำอย่างไรหากมีการเชื่อมต่อจอแสดงผลหลายจอ?
Jonathan Allan

4
ฉันคิดว่าเราไม่ได้รับอนุญาตให้เปลี่ยนความละเอียดของคุณก่อนแล้วบอกค่าเหล่านั้นกับคุณใช่ไหม
Engineer Toast

3
APL \ 360 (สามารถทำงานบนสภาพแวดล้อมเครื่องพิมพ์ดีด IBM / 360 เท่านั้น), 5 ไบต์:'0x0'
2560

4
ฉันชอบที่สิ่งนี้ตัดสิทธิ์ภาษากอล์ฟส่วนใหญ่และกระตุ้นให้ผู้คนสำรวจขอบเขตของภาษาที่ใช้งานได้จริง
robbie

คำตอบ:


38

JavaScript (ES6), 32 ไบต์

(_=screen)=>_.width+"x"+_.height

returnขาออกเป็นฟังก์ชั่น เพิ่มที่จุดเริ่มต้นและเรียกเช่นf= f()ใช้พารามิเตอร์การเตรียมใช้งานเพื่อเริ่มต้นพารามิเตอร์_กับscreenวัตถุ ส่วนที่เหลืออธิบายด้วยตนเอง

f=(_=screen)=>_.width+"x"+_.height
console.log(f())

หมายเหตุ: การส่งผ่านอาร์กิวเมนต์ไปยังฟังก์ชันนี้จะทำให้ล้มเหลว


JavaScript (โซลูชันก่อนหน้า), 35 ไบต์

with(screen)alert(width+"x"+height)

ไม่เคยคิดว่าวันหนึ่งฉันจะใช้with! ฉันไม่คิดว่าสิ่งนี้จะสามารถเล่นกอล์ฟต่อไปได้


หากอนุญาตให้ใช้ REPL ได้s=screen,s.width+"x"+s.height(29 ตัวอักษร) ด้วย
Kobi

โอ้ ใช้ค่าอาร์กิวเมนต์เริ่มต้นได้ดี
Matthew Roh

วิธีแก้ปัญหา 35- ไบต์สามารถบันทึกห้าไบต์โดยไม่รบกวนalert: with(screen)(width+'x'+height)เพียงแค่ส่งกลับสตริงที่เหมาะสม
KRyan

2
คำตอบนี้มีข้อบกพร่องพื้นฐาน ฉันสามารถโกงได้โดยซูมเข้าและออกเบราว์เซอร์ของฉัน!
The Great Duck

1
พวกคุณกำลังพยายามอยู่: _=screen,_.width+"x"+_.height29 bytes
M28

33

TI-BASIC, 30 32 29 ไบต์ (ไม่ใช่แข่งขัน)

* ถอนหายใจ * TI-BASIC ใช้ไบต์พิเศษสำหรับตัวอักษรตัวเล็กทุกตัว

+2 ขอบคุณ@Timtech

-3 ขอบคุณ@Timtech

:If ΔX>.1
:Then
:Disp "96x64
:Else
:Disp "320x240

ใช้งานได้เพียงเพราะ TI-BASIC สามารถทำงานกับเครื่องคิดเลขที่มีความละเอียดหน้าจอที่แตกต่างกันสองแบบ: 96 x 64 และ 320 x 240 ฉันแค่ทดสอบเพื่อดูว่าหน้าจอใดที่ฉันมีโดยการตั้งค่า Zoom เป็นสิ่งที่แตกต่างกัน แสดงผลความละเอียดที่ถูกต้อง

ฉันกำลังทำเครื่องหมายสิ่งนี้ว่าไม่ใช่การแข่งขันเนื่องจากเป็นรหัสที่ยาก


6
นั่นเป็นการละเมิดที่ฉลาด;)
Matthew Roh

1
คุณสามารถบันทึกได้โดยไม่ใช้ZDecimalแล้วใช้การXmaxเปรียบเทียบที่แตกต่างกันอย่างน้อยหนึ่งไบต์ นอกจากนี้ฉันคิดว่าคุณต้องใช้ตัวพิมพ์เล็กxซึ่งเป็นสองไบต์ (x2) แทนการเทียบเท่าตัวพิมพ์ใหญ่หนึ่งไบต์
Timtech

@ Timtech ฉันต้องใช้การซูมแบบสองไบต์ (เช่นZDecimal) เนื่องจากการซูมเริ่มต้น ( ZStandard) เหมือนกันกับเครื่องคิดเลขทั้งสอง แม้ว่าฉันจะแก้ไขตัวพิมพ์ใหญ่
Scott Milner

1
โอ้ฉันเห็นสิ่งที่คุณหมายถึง หากคุณใช้ZStandardจะΔXแตกต่างกันระหว่างเครื่องคิดเลขหรือไม่ นอกจากนี้ZDecimalเป็นเพียงหนึ่งไบต์ดังนั้นนี่คือ 31 ไบต์
Timtech

2
ด้วยเหตุผลบางอย่างปฏิกิริยาโต้ตอบแบบทันทีของฉันคือ "ถูกต้อง แต่จะไม่ถูกต้องหากมีความละเอียดหน้าจอเดียวที่เป็นไปได้" แต่มุมมองนั้นดูเหมือนจะไม่สอดคล้องกันภายใน ดังนั้นฉันไม่แน่ใจจริงๆว่านี่เป็นการโกงหรือไม่

20

JavaScript (ES6), 32 ไบต์

_=>(s=screen).width+'x'+s.height

console.log((_=>(s=screen).width+'x'+s.height)())


2
รุ่นแลมบ์ดาเป็นที่ยอมรับ
Felipe Nardi Batista

6
_=>(s=screen).width+'x'+s.heightบันทึกไบต์
Felipe Nardi Batista

@FelipeNardiBatista ขอบคุณคิดเพียงเกิดขึ้นกับผมเช่นกัน :)
SethWhite

1
เยี่ยมมาก! +1 :)
Arjun

5
ฉันชอบที่รายการ JS ทั้งหมดสั้นกว่าจำนวนคำตอบอื่น ๆ จำนวนมากอย่างสม่ำเสมอ แทบจะไม่เคยเกิดขึ้นเลย
Draco18s

11

macOS, ทุบตี, awk, grep, tr, 51 52 ไบต์

/*/*/sy*r SPDisplaysDataType|awk '/so/{print$2$3$4}'

ทำงานsystem_profilerรับSPDisplaysDataTypeข้อมูลค้นหาครั้งแรกsoในResolutionและพิมพ์ความละเอียดหน้าจอ สำหรับหลายหน้าจอสิ่งนี้จะพิมพ์ความละเอียดทั้งหมด

Example of the command running.


ตัวแปรที่ไม่สอดคล้องกันก่อนหน้านี้:

/*/*/sy*r SPDisplaysDataType|grep so|tr -d 'R :a-w'

ฉันเพิ่งใช้งาน MacBook Pro กับจอแสดงผลตัวที่สอง ผมได้2880x1800\n1920x1080@60Hz(สองสาย) ฉันไม่ทราบว่าสิ่งนี้ตัดสิทธิ์ ... หรือ?
Floris

@Floris OP ระบุวิธีการทำงานเมื่อมีหลายหน้าจอหรือไม่?
Captain Man

ไม่ - แต่รูปแบบ@60Hzไม่ชัดเจนในสเป็ค
Floris

ฉันเดาว่าคุณสามารถแทคได้|sed 1qเลยทำให้ไบต์นับได้ถึง 58 ไบต์
zgrep

ฉันแก้ไขการไม่ปฏิบัติตามโดยการสลับไปใช้awkและมีหนึ่งไบต์พิเศษ :)
zgrep


9

กำลังดำเนินการ 3, 37 ไบต์

fullScreen();print(width+"x"+height);

fullScreen()ทำให้แอปเริ่มทำงานด้วยขนาดสูงสุด - ความละเอียดการแสดงผล หนึ่งไบต์น้อยกว่าที่ชัดเจน

print(displayWidth+"x"+displayHeight);

8

AutoHotKey ขนาด 34 ไบต์

SysGet,w,0
SysGet,h,1
Send,%w%x%h%

บันทึกสิ่งนี้ในไฟล์ที่มีนามสกุล. AHK และเรียกใช้จากพรอมต์คำสั่ง


1
ทำไมไม่ใช้Sendมากกว่าMsgBox?
Engineer Toast

@EngineerToast ขอบคุณ! ที่บันทึกสองไบต์
jmriego

7

C (Windows), 79 78 77 ไบต์

ขอบคุณ @Johan du Toit สำหรับการบันทึกไบต์!

#import<windows.h>
#define G GetSystemMetrics
f(){printf("%dx%d",G(0),G(1));}

2
ฉันยังคงยุ่งกับ 'GetDeviceCaps' จนกว่าฉันจะเห็นคำตอบของคุณ :-) คุณยังสามารถบันทึก 1 ไบต์โดยใช้สิ่งต่อไปนี้:#define G GetSystemMetrics f(){printf("%dx%d",G(0),G(1));}
Johan du Toit

7

PowerShell, 67 60 55 ไบต์

-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
TessellatingHeckler

6

Mathematica, 51 ไบต์

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สำหรับรูปแบบผลลัพธ์


6

Java 7, 123 114 ไบต์

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สำหรับเตือนฉันว่าฉันสามารถคืนสตริงแทนการพิมพ์ได้


2
ฉันเพิ่งจะโพสต์ ...
แม่ชี Leaky

@LeakyNun ทั้งคุณและฉัน 1 Poke
Kevin Cruijssen

น่าเสียดายที่การส่งออกจะมีการ จำกัด...x...เพราะvoid f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll("[^\\d,]",""));}ที่เอาท์พุท1920,1200สั้น ..
เควิน Cruijssen

1
@ KevinCruijssen ใช่ฉันก็ลองเล่นกับมันเช่นกัน ของจริง "เลวร้าย" คือการใช้ regex ใน java หนักมากในแง่ของการนับไบต์
Poke

1
@ Poke คุณพูดถูก ฉันสามารถใช้สิ่งที่ฉันแสดงด้านบนด้วย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
Kevin Cruijssen

6

C #, 101 95 89 ไบต์

_=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};

-6 ไบต์ขอบคุณ@TheLethalCoderโดยเตือนให้ฉัน OP ไม่ได้พูดถึงการพิมพ์ดังนั้นการส่งคืนสตริงก็ใช้ได้เช่นกัน และเพิ่มเติม -6 ไบต์โดยเปลี่ยนเป็นแลมบ์ดา


คุณสามารถบันทึก 11 ไบต์โดยการรวบรวมไป:Func<string> ()=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};อย่างไรก็ตามคุณมีการส่งคืนvoidแต่คุณส่งคืนstringดังนั้นคุณต้องเพิ่ม 2 ไบต์สำหรับสิ่งนั้น
TheLethalCoder

1
ความท้าทายไม่ได้ระบุว่าคุณไม่สามารถป้อนข้อมูลได้ดังนั้นคุณสามารถเพิ่มอินพุตที่ไม่ได้ใช้เพื่อบันทึกไบต์อื่นเช่น_=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};
TheLethalCoder

1
โอ้ไม่สนใจความคิดเห็นที่ส่งคืนคุณเขียนผลลัพธ์คุณสามารถบันทึก 6 ไบต์ได้โดยส่งคืน
TheLethalCoder

และถ้าคุณไม่สามารถคิดวิธีที่จะทำให้มันสั้นลงvar s=System.Windows.Forms.Screen.AllScreens[0].Bounds;ก็จะเป็นจำนวนเดียวกัน แต่คุณสามารถเล่นกอล์ฟด้วยความคิดนั้นในใจ
TheLethalCoder

6

Bash + xrandr, 44 ตัวอักษร

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 + util-linux, 30 ตัวอักษร

xrandr|grep -oP '\d+x\d+'|line

ขอบคุณที่:

  • Markasoftwareสำหรับการแสดงออกปกติ (-11 ตัวอักษร)

วิ่งตัวอย่าง:

bash-4.3$ xrandr|grep -oP '\d+x\d+'|line
1920x1080

ฉันไม่มีทุบตีด้วยจอแสดงผลจะxrandr|grep *ทำงานอย่างไร
Jonathan Allan

แน่ใจ แต่สำหรับตอนนี้ความพยายามของฉันgrepและsedการแยกวิเคราะห์xrandrผลลัพธ์ ( pastebin.com/uTVcjWCq ) นั้นนานกว่า
ผลิต

อาจจะxrandr|grep *|cut -d' ' -f1? (ใช้สายจับคู่จาก paste @ TIOของคุณ)
Jonathan Allan

อาคุณหมายถึงการเลือกความละเอียดจากรายการด้วยเครื่องหมาย“ *” หรือไม่? คิดว่าเป็นไปได้ แต่ฉันไม่แน่ใจว่าจะใช้งานได้กับจอแสดงผลหลายจอที่เชื่อมต่อหรือไม่ ดังที่ฉันจำได้นั่นจะแสดงรายการความละเอียดปัจจุบันของแต่ละจอภาพที่เชื่อมต่อ
ผลิต

ใช่แล้วมันจะไม่แน่ใจว่า OP ต้องการอะไรในสถานการณ์แบบนี้!
Jonathan Allan

5

Python 2, 73 ไบต์

from ctypes import*
u=windll.user32.GetSystemMetrics;
print u(0),'x',u(1)

print u(0),'x',u(1)มีขนาดเล็กลงและตัวอย่างของเขา ( ลิงก์ ) อนุญาตให้ทำได้
Felipe Nardi Batista

1
To clarify, If it's equivalent to the output from What is my screen resolution, It's valid.ในเว็บไซต์นั้นมีช่องว่างระหว่างแต่ละส่วน
Felipe Nardi Batista

@FelipeNardiBatista อัพเดทแล้วขอบคุณ
Neil

5

อ็อกเทฟ 41 ไบต์

ขอบคุณ@Arjunและ@StephenSสำหรับการแก้ไข

fprintf('%ix%i',get(0,'ScreenSize')(3:4))

0เป็นตัวจัดการวัตถุกราฟิกกราฟิก คุณสมบัติมัน'ScreenSize'มีพิกัดของหน้าจอเป็นพิกเซล รายการที่สามและสี่ให้ข้อมูลที่ต้องการ


5

APL (Dyalog) 23 ไบต์

' 'R'x'⍕⌽⊃⎕WG'DevCaps'

⎕WG'DevCaps'W indow G et Devน้ำแข็งCap abilitie s

 เลือกคุณสมบัติแรก (ความสูงความกว้าง)

 ถอยหลัง

 จัดรูปแบบเป็นข้อความ

' '⎕R'x'R eplace space ด้วย "x" s


"แทนที่ด้วย" x "ที่ตำแหน่ง 5 (ช่องว่าง)" ซึ่งจะทำให้เกิดปัญหาบนหน้าจอขนาดเล็กเช่น 640x480 (ซึ่ง VM ใช้)
Baldrickk


4

C (ไลบรารี SDL2) 113 88 84

(-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


3
ฉันคิดว่าคุณสามารถย่อให้สั้นลงได้โดยการทำให้เป็นmสากลและไม่สนใจint:m[3];main(){...
Appleshell

การเข้าถึงโดยm+1ควรสั้นกว่าm[1]ใช่ไหม หรือว่าเป็นไปไม่ได้ใน C แต่เฉพาะใน C ++? แน่นอน printf มี dereference บาง token
Gizmo

@gizmo น่าเสียดาย AFAIK ไม่มีระบุ printf ที่ไม่สิ่งนั้น ..
หิวโหย

4

Python 2, 61 49 ไบต์

ขอบคุณ @ Jonathan-allan, @ felipe-nardi-batista

from Tkinter import*
print'%sx%s'%Tk().maxsize()

สำหรับการตั้งค่าการแสดงผลเดียวการจับคู่ผลลัพธ์จากเว็บไซต์ ซึ่งจะให้ความละเอียดทั้งหมดสำหรับจอแสดงผลหลายจอ


print'x'....บันทึกไบต์
Felipe Nardi Batista

v=Tk().maxsize(), print'%sx%s'%vช่วยประหยัด 9 ไบต์
Jonathan Allan

อ๊ะแล้วprint'%sx%s'%Tk().maxsize()บันทึกอีก 4> _ <
Jonathan Allan

3

bash + xdpyinfo 42 31 ไบต์

xdpyinfo|grep dim|cut -d' ' -f7

จากหน้าคน:

xdpyinfo - is  a utility for displaying information about an X server.

@Floris @manatwork ขอบคุณที่ช่วยกันประหยัดสักสองสามไบต์!


ข้ามไป 4 ยังคงเป็น 4 :(
Christopher

ไม่จำเป็นต้องมีช่องว่างรอบ ๆ ท่อ; ฉันคิดว่าปลอดภัยที่จะค้นหาคำว่า "สลัว" เท่านั้น คุณสามารถเขียนแทน-d\ -d' 'จากนั้นเมื่อมันมาถึงทั้งgrepสำหรับสายและcutส่วนหนึ่งของสายที่มักจะสั้นมีเพียงหนึ่งเดียวโทร:awk xdpyinfo|awk '/dim/&&$0=$2'
จัดการ

ฉันสงสัยว่าคุณสามารถ grep สิ่งที่สั้นกว่าdimensionsแต่ผมไม่ได้มีxdpyinfoในระบบของฉัน ...
อริส

3

xrandr + awk, 25 ไบต์

xrandr|awk /\*/{print\$1}

ป้อนคำอธิบายรูปภาพที่นี่


1
มันใช้งานไม่ได้ grep *ขยายเครื่องหมายดอกจันเป็นไฟล์ทั้งหมดในไดเรกทอรี
เจนส์

@Jens แก้ไขแล้ว ขอบคุณที่ชี้ให้เห็น
Pandya

ขอบคุณ; คำแนะนำอื่น: การสะกดคำที่เหมาะสมสำหรับการมีgrep|cut awk
เจนส์

มันยังไม่ทำงาน มันออก*0มา เอาท์พุท xrandr *0 3360 x 1050 ( 889mm x 278mm ) *0ของฉันคือ
เจนส์

@ เจนแล้วคุณต้องการ-f2Btw คุณตรวจสอบได้xrandr|awk '/\*/{print $2}'ไหม
Pandya

3

ZX Spectrum Basic, 10 ไบต์

เพียงเพื่อความสมบูรณ์:

PRINT "256x192"

256x192เอาท์พุท Spectrum มีความละเอียดหน้าจอแบบเดินสายคงที่


... และใช้ไบต์เดียวสำหรับคำหลักเช่น PRINT
Jens

2

กำลังประมวลผล 51 ไบต์

void setup(){fullScreen();print(width+"x"+height);}

width heightผลนี้ในรูปแบบนี้ นอกจากนี้โปรแกรมจะสร้างหน้าต่างที่มีขนาดของหน้าจอที่คุณใช้ (เนื่องจากโปรแกรมประมวลผลทุกโปรแกรมสร้างหน้าต่างตามค่าเริ่มต้น) และโปรแกรมนี้จะแสดงความสูงและความกว้างของหน้าต่าง / ร่างนี้


WIDTHxHEIGHTโอ้รูปแบบคือ
Matthew Roh

@SIGSEGV เพิ่งสังเกตเห็น
Kritixi Lithos

2

xdpyinfo+ awk, 28 ไบต์

$ xdpyinfo|awk /dim/{print\$2}
3360x1050

ทดสอบกับ Cygwin ด้วยหัวคู่


1
xdpyinfo|awk /dim/{print\$2}ใช้เวลา 28 ไบต์ไม่ใช่ 24
Pandya

@Pandya ฉันจำเป็นต้องใส่แว่นตาใหม่ :-)
Jens


1

Lithp , 116 ไบต์

((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
Jens

ไม่มีความเห็น. ฉันแค่คว้าwindow.screenและรับwidthและheightคุณลักษณะจากมัน ผมคิดว่าถ้าคุณเปิด Firefox ขึ้นคอนโซลและพิมพ์ลงในคุณจะเห็นได้ชัดว่าไม่ถูกต้องwindow.screen 2048x1080
Andrakis

1

Lua (กรอบlöve), 116 ไบต์

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

โปรแกรมเปลี่ยนเป็นแบบเต็มหน้าจอก่อนจากนั้นจะได้รับความกว้างและความสูงและพิมพ์ตามนั้น :)


1

xrandr และ sh, 23 ไบต์

$ 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

1

Ruby + xrandr, 37 ไบต์

puts `xrandr`.split[7..9].join[0..-2]

โซลูชันสำรอง (52 ไบต์):

puts `xrandr`.match(/t (\d+) (x) (\d+),/)[1..3].join

1

สีแดง 26 ไบต์

system/view/screens/1/size

ตัวอย่างเช่น:

1920x1080

รหัสอธิบายได้ด้วยตนเอง การ1อ้างถึงหน้าจอแรก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.