特定の形式でデバイスの画面解像度を出力します[width]x[height]
(括弧なし)。たとえば、出力は次のようになります1440x900
。
'0x0'
特定の形式でデバイスの画面解像度を出力します[width]x[height]
(括弧なし)。たとえば、出力は次のようになります1440x900
。
'0x0'
回答:
(_=screen)=>_.width+"x"+_.height
functionとして出力します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
:を気にせずに5バイトを節約でき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 x 64と320 x 240の2つの異なる画面解像度の計算機でのみ実行できるため、これは機能します。正しい解像度を出力します。
これはハードコーディングされているので、今のところ非競合としてマークしています。
ZDecimal
異なるXmax
比較を使用せずに使用することで保存できます。また、1 x
バイトの大文字の代わりに2バイト(x2)の小文字を使用する必要があると思います。
ZDecimal
デフォルトのズーム(ZStandard
)は両方の計算機で同じであるため、2バイトのズーム(など)を使用する必要があります。ただし、大文字を修正します。
ZStandard
しかし使用する場合ΔX
、電卓間で異なるでしょうか?また、ZDecimal
1バイトだけなので、これは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
(2行)。これで失格になるかどうかはわかりません...または?
@60Hz
は明らかに仕様にありません。
|sed 1q
、バイトカウントを最大58バイトにできると思います。
awk
余分な1バイトに切り替えて追加することで、違反を修正しました。:)
バイトを保存してくれた@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から、正規表現の魔法は私を超えています。
これは長いですが、恐ろしい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
これは、接続したデバイスによっては機能しない場合があります(わかりません)。これは常に機能するはずです(少なくとも1つの画面が接続されていると仮定します)。
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;}
このメソッドはawtライブラリを使用するため、Javaのヘッドレスインストール(TIOなど)では機能しません。内部では、呼び出しgetScreenSize
はJava Native Interfaceを使用して、画面の幅と画面の高さを(通常はCライブラリに)呼び出します。
文字列を印刷する代わりに返すことができることを思い出させてくれたOlivierGrégoireに感謝します。
...x...
ので、void f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll("[^\\d,]",""));}
その出力は1920,1200
短い..です
x
の代わりに、,
いくつかの正規表現の置換を使用することによって、それはあなたの現在の答えよりも、5バイト以上だ: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;};
@TheLethalCoderのおかげで、OPが印刷について言及していなかったことを思い出させて-6バイトのおかげで、文字列を返すことも問題ありません。そして、ラムダに変更することにより、追加の-6バイト。
Func<string>
:にコンパイルすることで11バイト節約できます()=>{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 *
動作しますか?
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.
そのウェブサイトでは、各部分の間にスペースがあります
訂正してくれた@Arjunと@StephenSに感謝します。
fprintf('%ix%i',get(0,'ScreenSize')(3:4))
0
ルートグラフィックスオブジェクトへのハンドルです。プロパティ'ScreenSize'
には、画面の座標がピクセル単位で含まれています。3番目と4番目のエントリは、必要な情報を提供します。
' '⎕R'x'⍕⌽⊃⎕WG'DevCaps'
⎕WG'DevCaps'
W indow GらのDevアイスキャップ abilitie 秒
⊃
最初のプロパティ(高さ、幅)を選択します
⌽
逆
⍕
テキストとしてフォーマット
' '⎕R'x'
Rの "X" sのeplaceスペース
Ox`ØP(s×Çn)±d+"x"+ight
圧縮された文字列はを表しwith(screen)width+"x"+height
ます。Ox
これをJavaScriptとして評価し、結果が暗黙的に出力されます。
(@AppleShellのヘルプによる4文字)
はい。コンパイルします。
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には逆参照トークンがあります
ありがとう@ 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
manページから:
xdpyinfo - is a utility for displaying information about an X server.
@Floris @manatwork数バイト節約してくれてありがとう!
-d\
代わりに書くことができます-d' '
。次にgrep
、回線とcut
その回線の一部の両方について、通常は1回のawk
呼び出しで短くなりますxdpyinfo|awk '/dim/&&$0=$2'
。
dimensions
xdpyinfo
完全を期すために:
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モジュールが使用されます![オンラインで試す]リンクでのみ機能し、コマンドラインからは機能しません。
1024 x 768
有効な出力である場合は、数バイトを節約できます。の暗黙的な間隔(+ .. "x" .. )
を避けるために使用しprint
ます。
2048x1080
実際には4Kの真の画面が表示されます4096x2160
。理由は何ですか?FreeBSD 11上のFirefox 52.0
window.screen
と取得width
し、height
そこから属性を。Firefoxコンソールを開いて入力するwindow.screen
と、明らかに間違って2048x1080
いることがわかります。
$ set `xrandr`;echo $6x$8
3360x1050
2台のモニターを備えたCygwinマシンにリダイレクトされたディスプレイを備えたCentOS 5ボックスでテストされました。ここで、完全な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