Выведите разрешение экрана устройства в определенном формате [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"+_.height29 байт
* вздох * 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|cutIS 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