Sracok. Egyszeruen nem talalok olyan freeware CLIs (vagy legroszabb esetben akar GUIs) progit, amely ki tudja irni a Windows "Display Settings/Identity" alatt levo szamozast. Azaz ha van tobb monitorom, a szamokat monitorokhoz rendeli, a legjobb az lenne, ha a \.\DISPLAYx megfelelesekhez.
A szokasos toolok (multimonitortool, nircmd, stb.) sajna nem csinaljak ezt, a szamozas ugyanis random lehet (fugg a bekaopcsolas sorrendtol, stb.), foleg akkor, ha USBs vagy virtualis kijelzok vannak a rendszerben.
Allitolag C# ban lehet forditani egy cuccost, ami a megfelelo fuggvenyt kezeli, de ebben nem vagyok jo.
- 994 megtekintés
Hozzászólások
ez is tipikusan olyan feladat, amiben az AI segitsegedre lehetne
- A hozzászóláshoz be kell jelentkezni
gondolod, hogy nem kerdeztem meg...? amit olvasol, azt irta (bar ez az "ez is" ma mar mindenre ramondhato, igy nem mondtal semmit)
tool elvileg nem letezik, ami freeware, foleg nem CLIs...(alitolag a kommerszial Displayfusion csinal valamit, de az nekem nem opcio, meg eleve nem CLI)
- A hozzászóláshoz be kell jelentkezni
Szerintem azért nem találsz ilyet mert ezt leprogramozni pár sor.
#include <iostream>
#include <windows.h>
#include <WinUser.h>
#include <Windowsx.h>
int main()
{
MONITORINFOEX target;
ZeroMemory(&target, sizeof(MONITORINFOEX));
target.cbSize = sizeof(MONITORINFOEX);
HMONITOR hMon = MonitorFromWindow(GetDesktopWindow(), MONITOR_DEFAULTTONEAREST);
GetMonitorInfo(hMon, &target);
std::wcout << target.szDevice << "\n";
}
- A hozzászóláshoz be kell jelentkezni
Ha elolvasod a commentemet, inkabb a compile resszel van gondom, nem vagyok felkeszulve C forditasra W alatt, emiatt lustasagbol gondoltam, van mar ra tool :D
Illetve a \.\DISPLAYx cuccos hozzarendeles lenne itt a fo kerdes, nemcsak a kiiratas...
- A hozzászóláshoz be kell jelentkezni
hello,
kosz, azt megkoszonnem
probaltam par online forditot, a moduloknal hibakat dob...gondoltam hogy feldobok egy C forditot, de meg nem vettem ra magam
- A hozzászóláshoz be kell jelentkezni
ranezek este, kosz
(elozetes kerdes, ez most melyiket dobja ki, az "identity" cuccost, amit a WIndows is kiir a kepernyore?)
- A hozzászóláshoz be kell jelentkezni
azt írja ki hogy az adott terminál ablak melyik monitoron látható. pl.: \\.\DISPLAY1
- A hozzászóláshoz be kell jelentkezni
Ez teszteltem, sajna ezzel sokat nem erek. Nekem az a szam kell, amit a Windows ir ki az Identity alatt a monitorra, sajna ez nem az.
C:\Users\pista\Downloads>monitor.exe
\\.\DISPLAY2
C:\Users\laci\Downloads>
Ebben az esetben (monitoron) a 3-as szam van.
- A hozzászóláshoz be kell jelentkezni
Gondolom a windows 1-től számolja, szóval azt tippelem, hogy ha hozzáadsz egyet, megkapod a kívánt értéket.
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com
- A hozzászóláshoz be kell jelentkezni
ez nem ilyen egyszeru baratom, meg "menet kozben" is valtozhat...sokmindentol fugg, mint irtam
- A hozzászóláshoz be kell jelentkezni
Nekem ppxty ezekt ajanlotta:
powershell:
> get-wmiobject -class win32_desktopmonitor
> Get-CimInstance -classname win32_pnpentity | where-object { $_.service -eq "monitor"} | select-object deviceid, name, pnpdeviceid
ez nem müködött:
>Get-CimInstance -Namespace rootwmi -ClassName WmiMonitorID | ForEach-Object { $name = [System.Text.Encoding]::ASCII.GetString($_.UserFriendlyName).Trim([char]0) $serial = [System.Text.Encoding]::ASCII.GetString($_.SerialNumberID).Trim([char]0) Write-Host "Name: $name, Serial: $serial" }
- A hozzászóláshoz be kell jelentkezni
A masodik ad valami ertekesebb dolgot:
deviceid name pnpdeviceid
-------- ---- -----------
DISPLAY\SAM0C4E\4&19637DBD&5&UID200195 Generic PnP Monitor DISPLAY\SAM0C4E\4&19637DBD&5&UID200195
DISPLAY\SDC3853\4&19637DBD&5&UID265988 Surface Display DISPLAY\SDC3853\4&19637DBD&5&UID265988
DISPLAY\BNQ8018\4&19637DBD&5&UID208387 Generic PnP Monitor DISPLAY\BNQ8018\4&19637DBD&5&UID208387
De ebbol sem latom a Windows szamozasat.
- A hozzászóláshoz be kell jelentkezni
Meg tudod ezt oldani AutoHotKey-vel, ami tud magától .exe-re is fordítani:
#Requires AutoHotkey v2
Primary := MonitorGetPrimary()
StdOut := FileOpen("*", "w", "UTF-8")
StdOut.Write("%Primary%")
StdOut.Close()
Egy trükkre még szükség lehet, ez nem írja ki a kimenetet Parancssorban, hanem bele kell pipe-olni egy másik parancsba, pl. echo, leforditott.exe | echo
Meg annyi, hogy ez Powershellből indítva nem biztos, hogy működik.
Linuxon sokkal elegánsabb: xrandr --listmonitors
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
kosz, bar ezzel a tool-lal nem szivesen jatszadozom, volt vele rossz tapasztalatom
- A hozzászóláshoz be kell jelentkezni
What? AHK az egyik leghasznosabb eszkoz szomomra ever....
- A hozzászóláshoz be kell jelentkezni
Akkor AutoIt, kb. ugyanazt tudja, csak mas a szintaxis. Bar szerintem mindegy.
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni
Error: (6) The handle is invalid.
▶ 004: StdOut := FileOpen("*", "w", "UTF-8")
- A hozzászóláshoz be kell jelentkezni
meg valaki? Eddig netto nulla az eredmeny.
- A hozzászóláshoz be kell jelentkezni
Mármint hogy nulla? Nem fordulnak le a megadott kódok, vagy lefordulnak, de nem a jó számokat jelzik?
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
egy kodot kaptam, az nem jo...nem azt irja ki amit kertem...az autohotkeyt meg nem teszteltem, de fogom nemsokara...
- A hozzászóláshoz be kell jelentkezni
Klafa:
"There is no public API to get the monitor numbers shown in the Windows display settings UI."
- A hozzászóláshoz be kell jelentkezni