Выведите разрешение экрана устройства в определенном формате [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 байт
* вздох * TI-BASIC берет дополнительный байт за каждую строчную букву.
+2 благодаря @Timtech
-3 благодаря @Timtech
:If ΔX>.1
:Then
:Disp "96x64
:Else
:Disp "320x240
Это работает только потому, что TI-BASIC можно запускать только на калькуляторах с двумя разными разрешениями экрана: 96 на 64 и 320 на 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)
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 спасибо Мартину Эндеру
-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
, затем я запускаю регулярное выражение замены, чтобы получить правильный формат.
PS H:\> (gwmi win32_videocontroller|% v*n)-replace" |x \d+\D+$"
1920x1080
(gwmi win32_videocontroller|% v*n)-replace" |x[^x]+$"
сбрасывает пару байтов, настраивая регулярное выражение.
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 для вызова (обычно в библиотеку C) ширины и высоты экрана.
-9 байт, спасибо Оливье Грегуару за напоминание, что я могу вернуть строку вместо ее печати.
...x...
, потому что void f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll("[^\\d,]",""));}
какие выходы 1920,1200
короче ..
x
вместо ,
замены, используя некоторую замену регулярных выражений, но это на пять байтов больше, чем ваш текущий ответ: 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"));}
А, ну, что не тяжело в 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
? (используя совпадающую строку из вашей пасты @ 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 и др Девы лед крышка abilitie с
⊃
выбрать первое свойство (высота, ширина)
⌽
обратный
⍕
форматировать как текст
' '⎕R'x'
R eplace пространства с «х» 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 есть некоторый токен разыменования
Спасибо @ Джонатан-Аллан, @ Фелипе-Нарди-Батиста
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
С man-страницы:
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
IS awk
.
*0
. Мой вывод xrandr есть *0 3360 x 1050 ( 889mm x 278mm ) *0
.
-f2
кстати, ты можешь проверить xrandr|awk '/\*/{print $2}'
?
просто для полноты:
PRINT "256x192"
выходы 256x192
. Spectrum имеет фиксированное разрешение экрана.
void setup(){fullScreen();print(width+"x"+height);}
Это выводит в следующем формате: width height
. Кроме того, программа создает окно, которое соответствует размеру используемого вами экрана (поскольку каждая программа обработки создает окно по умолчанию), и эта программа просто выводит высоту и ширину этого окна / эскиза.
WIDTHxHEIGHT
.
((import html-toolkit)
(htmlOnLoad #::((var S(index(getWindow)screen))
(print(+(index S width)"x"(index S height))))))
(Разрывы строк добавлены для удобства чтения)
Наконец, мой модуль html-toolkit получает некоторое применение! Работает только по ссылке Try it Online, не будет работать из командной строки.
Несколько байтов могут быть сохранены, если 1024 x 768
могут быть допустимыми вывода. Мы просто используем, (+ .. "x" .. )
чтобы избежать print
неявного пробела.
2048x1080
о настоящем 4K экране, который на самом деле 4096x2160
. Есть идеи почему? Firefox 52.0 на FreeBSD 11.
window.screen
и получение width
и height
атрибуты из него. Я полагаю, что если вы window.screen
откроете консоль Firefox и введете ее, вы увидите, что она выглядит некорректно 2048x1080
.
$ 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