graphics() rewrite for windows
This commit is contained in:
parent
e1dba93c56
commit
df6fc61694
@ -544,9 +544,9 @@ function graphics(callback) {
|
||||
const workload = [];
|
||||
workload.push(util.wmic('path win32_VideoController get /value'));
|
||||
workload.push(util.wmic('path win32_desktopmonitor get /value'));
|
||||
workload.push(util.powerShell('Get-CimInstance -Namespace root\\wmi -ClassName WmiMonitorBasicDisplayParams'));
|
||||
workload.push(util.powerShell('Get-CimInstance -Namespace root\\wmi -ClassName WmiMonitorBasicDisplayParams | fl'));
|
||||
workload.push(util.powerShell('Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Screen]::AllScreens'));
|
||||
workload.push(util.powerShell('Get-CimInstance -Namespace root\\wmi -ClassName WmiMonitorConnectionParams'));
|
||||
workload.push(util.powerShell('Get-CimInstance -Namespace root\\wmi -ClassName WmiMonitorConnectionParams | fl'));
|
||||
|
||||
Promise.all(
|
||||
workload
|
||||
@ -558,6 +558,8 @@ function graphics(callback) {
|
||||
// displays
|
||||
let dsections = data[1].split(/\n\s*\n/);
|
||||
// result.displays = parseLinesWindowsDisplays(dsections);
|
||||
dsections.shift();
|
||||
dsections.pop();
|
||||
|
||||
// monitor (powershell)
|
||||
let msections = data[2].split('Active ');
|
||||
@ -566,12 +568,12 @@ function graphics(callback) {
|
||||
// forms.screens (powershell)
|
||||
let ssections = data[3].split('BitsPerPixel ');
|
||||
ssections.shift();
|
||||
result.displays = parseLinesWindowsDisplaysPowershell(ssections, msections, dsections);
|
||||
|
||||
// connection params (powershell) - video type
|
||||
let tsections = data[4].split(/\n\s*\n/);
|
||||
// tsections.shift();
|
||||
console.log(tsections);
|
||||
tsections.shift();
|
||||
|
||||
result.displays = parseLinesWindowsDisplaysPowershell(ssections, msections, dsections, tsections);
|
||||
|
||||
if (result.controllers.length === 1 && result.displays.length === 1) {
|
||||
if (_resolutionx) {
|
||||
@ -661,16 +663,16 @@ function graphics(callback) {
|
||||
// return displays;
|
||||
// }
|
||||
|
||||
function parseLinesWindowsDisplaysPowershell(ssections, msections, dsections) {
|
||||
function parseLinesWindowsDisplaysPowershell(ssections, msections, dsections, tsections) {
|
||||
let displays = [];
|
||||
let vendor = '';
|
||||
let model = '';
|
||||
let deviceID = '';
|
||||
if (dsections && dsections.length) {
|
||||
let linesDsplay = dsections[0].split(os.EOL);
|
||||
vendor = util.getValue(linesDsplay, 'MonitorManufacturer', '=');
|
||||
model = util.getValue(linesDsplay, 'Name', '=');
|
||||
deviceID = util.getValue(linesDsplay, 'PNPDeviceID', '=');
|
||||
let linesDisplay = dsections[0].split(os.EOL);
|
||||
vendor = util.getValue(linesDisplay, 'MonitorManufacturer', '=');
|
||||
model = util.getValue(linesDisplay, 'Name', '=');
|
||||
deviceID = util.getValue(linesDisplay, 'PNPDeviceID', '=').replace(/&/g, '&').toLowerCase();
|
||||
}
|
||||
|
||||
for (let i = 0; i < ssections.length; i++) {
|
||||
@ -680,18 +682,20 @@ function graphics(callback) {
|
||||
|
||||
let linesScreen = ssections[i].split(os.EOL);
|
||||
let linesMonitor = msections[i].split(os.EOL);
|
||||
let linesConnection = tsections[i].split(os.EOL);
|
||||
const bitsPerPixel = util.getValue(linesScreen, 'BitsPerPixel');
|
||||
const bounds = util.getValue(linesScreen, 'Bounds').replace('{', '').replace('}', '').split(',');
|
||||
const primary = util.getValue(linesScreen, 'Primary');
|
||||
const sizex = util.getValue(linesMonitor, 'MaxHorizontalImageSize');
|
||||
const sizey = util.getValue(linesMonitor, 'MaxVerticalImageSize');
|
||||
const instanceName = util.getValue(linesMonitor, 'InstanceName');
|
||||
const instanceName = util.getValue(linesMonitor, 'InstanceName').toLowerCase();
|
||||
const videoOutputTechnology = util.getValue(linesConnection, 'VideoOutputTechnology');
|
||||
displays.push({
|
||||
vendor: instanceName === deviceID ? vendor : '',
|
||||
model: instanceName === deviceID ? model : '',
|
||||
vendor: instanceName.startsWith(deviceID) ? vendor : '',
|
||||
model: instanceName.startsWith(deviceID) ? model : '',
|
||||
main: primary.toLowerCase() === 'true',
|
||||
builtin: false,
|
||||
connection: '',
|
||||
connection: videoOutputTechnology && videoTypes[videoOutputTechnology] ? videoTypes[videoOutputTechnology] : '',
|
||||
resolutionx: util.toInt(util.getValue(bounds, 'Width', '=')),
|
||||
resolutiony: util.toInt(util.getValue(bounds, 'Height', '=')),
|
||||
sizex: sizex ? parseInt(sizex, 10) : -1,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user