Przesyłaj rozdzielczość ekranu urządzenia w określonym formacie [width]x[height]
(bez nawiasów). Na przykład wyjście może być 1440x900
.
Oto tester online, którego można użyć do sprawdzenia własnej rozdzielczości ekranu.
Przesyłaj rozdzielczość ekranu urządzenia w określonym formacie [width]x[height]
(bez nawiasów). Na przykład wyjście może być 1440x900
.
Oto tester online, którego można użyć do sprawdzenia własnej rozdzielczości ekranu.
'0x0'
Odpowiedzi:
JavaScript (ES6), 32 bajty
Wyjścia jako funkcja
return
. Dodajf=
na początku i wywołaj jakf()
. Używa inicjalizacji parametru do inicjalizacji parametru_
doscreen
obiektu. Reszta jest oczywista.Uwaga: przekazanie argumentu do tej funkcji spowoduje jej niepowodzenie.
JavaScript (poprzednie rozwiązanie), 35 bajtów
Nigdy nie myślałem, że pewnego dnia skorzystam
with
! Nie sądzę, że można to dalej pograć w golfa.źródło
s=screen,s.width+"x"+s.height
(29 znaków) również działa.alert
:with(screen)(width+'x'+height)
po prostu zwraca odpowiedni ciąg._=screen,_.width+"x"+_.height
29 bajtówTI-BASIC,
303229 bajtów (niekonkuruje?)* westchnienie * TI-BASIC zajmuje dodatkowy bajt na każdą małą literę.
+2 dzięki @Timtech
-3 dzięki @Timtech
Działa to tylko dlatego, że TI-BASIC można uruchomić tylko na kalkulatorach o dwóch różnych rozdzielczościach ekranu: 96 na 64 i 320 na 240. Po prostu testuję, aby zobaczyć, który ekran mam, ustawiając Zoom na coś, co jest różne w zależności od rozdzielczości ekranu, a następnie wyświetlanie prawidłowej rozdzielczości.
Na razie zaznaczam to jako niekonkurujące, ponieważ jest mocno zakodowane.
źródło
ZDecimal
a następnie używając innegoXmax
porównania, przynajmniej jednego bajtu. Myślę też, że musisz użyć małych liter,x
które są dwoma bajtami (x2) zamiast jednobajtowego odpowiednika wielkich liter.ZDecimal
), ponieważ domyślny zoom (ZStandard
) jest taki sam na obu kalkulatorach. Naprawię wielkie litery.ZStandard
, będzieΔX
inaczej niż w kalkulatorach? PonadtoZDecimal
jest tylko jeden bajt, więc jest to 31 bajtów.JavaScript (ES6), 32 bajty
źródło
_=>(s=screen).width+'x'+s.height
zapisuje bajtmacOS, bash, awk,
grep, tr, 5152 bajtówUruchamia się
system_profiler
, pobieraSPDisplaysDataType
informacje, szuka pierwszegoso
wResolution
i drukuje rozdzielczość ekranu. W przypadku wielu ekranów powoduje to wydrukowanie wszystkich rozdzielczości.Wcześniejszy wariant niezgodny:
źródło
2880x1800\n1920x1080@60Hz
(dwie linie). Nie wiem czy to to dyskwalifikuje ... czy?@60Hz
jest wyraźnie określony.|sed 1q
, zwiększając liczbę bajtów do 58 bajtów.awk
i mając jeden dodatkowy bajt. :)JavaScript, 36 bajtów
źródło
Przetwarzanie 3, 37 bajtów
fullScreen()
powoduje uruchomienie aplikacji z maksymalnymi wymiarami - rozdzielczością wyświetlacza. Jeden bajt mniej niż oczywisteźródło
AutoHotKey, 34 bajty
Zapisz to w pliku z rozszerzeniem .AHK i uruchom z wiersza polecenia
źródło
Send
zamiastMsgBox
?C (Windows),
797877 bajtówDzięki @Johan du Toit za uratowanie bajtu!
źródło
#define G GetSystemMetrics f(){printf("%dx%d",G(0),G(1));}
PowerShell,
676055 bajtów-7 dzięki Martinowi Enderowi
-5 (właściwie 12!) Od Leaky Nun , magia Regex jest poza mną.
To jest długie, ale nie dłuższe niż przerażające
System.Windows.Forms.SystemInformation.PrimaryMonitorSize
rozwiązanienajpierw my
Get-WmiObject
(gwmi
), aby pobraćWin32_VideoController
obiekt, który zawiera element o nazwieVideoModeDescription
, który jest łańcuchem w formacie1920 x 1080 x 4294967296 colors
, a następnie uruchamiam zamianę wyrażenia regularnego, aby uzyskać poprawny format.źródło
(gwmi win32_videocontroller|% v*n)-replace" |x[^x]+$"
goli kilka bajtów, modyfikując regex.Mathematica, 51 bajtów
Może to nie działać w zależności od podłączonych urządzeń (nie wiem). Powinno to zawsze działać (zakładając, że masz podłączony przynajmniej jeden ekran):
Wyjaśnienie
SystemInformation[]
zwraca wyrażenie formularzaJesteśmy zainteresowani
"Devices"
, do których można uzyskać bezpośredni dostęp jakoSystemInformation["Devices"]
lub jakoSystemInformation[][[1,5,2]]
. Rezultatem będzie lista formularzaChcemy
"ScreenInformation"
, do którego można uzyskać dostęp takSystemInformation["Devices","ScreenInformation"]
zwięźle lub bardziej zwięźleSystemInformation[][[1,5,2,1,2]]
. Wynik będzie miał formęDługość listy będzie liczbą podłączonych ekranów. Pierwszy ekran jest,
SystemInformation[][[1,5,2,1,2,1]]
a szerokość i wysokość można wyodrębnić, ponieważSystemInformation[][[1,5,2,1,2,1,2,2,;;,2]]
Następnie wstawiamy tylkoInfix
x
dla formatu wyjściowego.źródło
Java 7,
123114 bajtówTa metoda nie będzie działać w bezobsługowej instalacji Java (jak w TIO), ponieważ używa bibliotek awt. Dzwonię pod maską
getScreenSize
uses the Java Native Interface to call out (typically into a C library) for the screen width and screen height.-9 bajtów dzięki Olivierowi Grégoire'owi za przypomnienie, że mogę zwrócić ciąg zamiast go wydrukować.
źródło
...x...
, becausevoid f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll("[^\\d,]",""));}
which outputs1920,1200
is shorter..x
instead of,
by using some regex replacement, but it's five bytes more than your current answer:void f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll("[^\\d,]","").replace(",","x"));}
orvoid f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll(".*?(\\d+).*?(\\d+).*","$1x$2"));}
Ah well, what isn't heavy in Java.. ;pC#,
1019589 bytes-6 bytes thanks to @TheLethalCoder by reminding me OP didn't mention about printing, so returning a string is also fine. And an additional -6 bytes by changing it to a lambda.
źródło
Func<string>
:()=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};
. However, you have a return ofvoid
but you are returning astring
so you need to add 2 bytes for that._=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};
var s=System.Windows.Forms.Screen.AllScreens[0].Bounds;
would also be the same count but you could golf it with that idea in mind.Bash + xrandr, 44 characters
xrandr
belongs to the X server, on Ubuntu is provided by x11-xserver-utils package.Sample run:
xrandr + grep + util-linux, 30 characters
Thanks to:
Sample run:
źródło
xrandr|grep *
work?grep
andsed
attempts to parsexrandr
's output (pastebin.com/uTVcjWCq) were longer.xrandr|grep *|cut -d' ' -f1
? (using the matching line from your paste @TIO)Python 2, 73 bytes
źródło
print u(0),'x',u(1)
is smaller and his example (link) allows itTo clarify, If it's equivalent to the output from What is my screen resolution, It's valid.
in that website, there is space between each partOctave, 41 bytes
Thanks to @Arjun and @StephenS for corrections.
0
is a handle to the root graphics object. Its property'ScreenSize'
contains the coordinates of the screen in pixels. The third and fourth entries give the desired information.źródło
APL (Dyalog), 23 bytes
⎕WG'DevCaps'
Window Get Device Capabilities⊃
pick the first property (height, width)⌽
reverse⍕
format as text' '⎕R'x'
Replace spaces with "x"sźródło
Japt, 24 bytes
Test it online!
The compressed string represents
with(screen)width+"x"+height
.Ox
evaluates this as JavaScript, and the result is implicitly printed.źródło
C (SDL2 library)
1138884(-4 chars due to @AppleShell 's help)
Yes. it compiles.
Run with :
gcc snippet.c -lSDL2 && ./a.out
źródło
m
global and omittingint
:m[3];main(){...
m+1
should be shorter thanm[1]
right? or isn't that possible in C but only in C++? surely printf has some dereference tokenPython 2,
6149 bytesThanks @Jonathan-allan, @felipe-nardi-batista
For single display setups, this matches the output from the site. This gives entire resolution for multiple displays.
źródło
print'x'....
saves a bytev=Tk().maxsize()
,print'%sx%s'%v
saves 9 bytes.print'%sx%s'%Tk().maxsize()
saves another 4 >_<bash + xdpyinfo
4231 bytesFrom man page:
@Floris @manatwork Thanks for saving a few bytes!
źródło
-d\
instead of-d' '
. Then when it comes to bothgrep
for a line andcut
a part of that line, usually is shorter with a singleawk
call:xdpyinfo|awk '/dim/&&$0=$2'
.dimensions
but I don't havexdpyinfo
on my system...xrandr
+ awk, 25 bytesźródło
grep *
expands the asterisk to all files in the directory.grep|cut
isawk
.*0
. My xrandr output is*0 3360 x 1050 ( 889mm x 278mm ) *0
.-f2
Btw, Can you checkxrandr|awk '/\*/{print $2}'
?ZX Spectrum Basic, 10 bytes
just for completeness:
outputs
256x192
. The Spectrum has a fixed hardwired screen resolution.źródło
Processing, 51 bytes
This outputs in this format:
width height
. Also, the program creates a window that is the size of the screen you are using (because every Processing program creates a window by default) and this program just outputs the height and the width of this window/sketch.źródło
WIDTHxHEIGHT
.xdpyinfo
+awk
, 28 bytesTested on Cygwin with dual heads.
źródło
xdpyinfo|awk /dim/{print\$2}
takes 28 bytes not 24Tcl/Tk, 40
źródło
Lithp, 116 bytes
(Line breaks added for readability)
Try it online!
Finally, my html-toolkit module gets some use! Only works in the Try it Online link, will not work from command line.
A few bytes could be saved if
1024 x 768
could be valid output. We just use(+ .. "x" .. )
to avoidprint
's implicit spacing.źródło
2048x1080
for a true 4K screen that's actually4096x2160
. Any idea why? Firefox 52.0 on FreeBSD 11.window.screen
and getting thewidth
andheight
attributes from it. I imagine if you opened up the Firefox console and typed inwindow.screen
you'll see the apparently incorrect2048x1080
.Lua (löve framework),116 bytes
The programm changes first to fullscreen then it gets the width and height and prints it then :)
źródło
xrandr and sh, 23 bytes
Tested on a CentOS 5 box with display redirected to a Cygwin machine with two monitors. Here the full
xrandr
output isźródło
Ruby + xrandr, 37 bytes
Alternate solution (52 bytes):
źródło
Red, 26 Bytes
Outputs for example:
The code is pretty self explanatory. The
1
refers to the first screenźródło