demerzel

Breite und Höhe des Body abfragen

Hallo Zusammen,

ich hoffe ihr könnt mir weiterhelfen.
Ich bin dabei, mir einen Maussimulator zu programmieren.
Dafür benötige ich den Mittelpunkt des Browserfensters.

Jetzt habe ich festgestellt, dass sich die Maße des Bodys (vor allem die Höhe) verändert, je nachdem ob der Browser im Fullscreen oder Minimiert ist.

Gibt es die Möglichkeit, diese Informationen auszulesen und in eine Variable zu speichern?

bild_2024-01-20_142205526

Grüße Peter
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 31500259874

Url: https://administrator.de/forum/breite-und-hoehe-des-body-abfragen-31500259874.html

Ausgedruckt am: 27.04.2025 um 15:04 Uhr

10138557388
10138557388 20.01.2024 aktualisiert um 14:38:07 Uhr
Goto Top
JS
let width = window.innerWidth;
let height = window.innerHeight;
console.log(width + " x " + height);  
pj
demerzel
demerzel 20.01.2024 um 14:37:53 Uhr
Goto Top
Hallo pjumper,

danke für deinen Vorschlag.
Gibt es vielleicht auch eine .net-Lösung?
Ich weiß leider nicht, wie ich js einbinden kann ;p

Grüße Peter
10138557388
10138557388 20.01.2024 aktualisiert um 14:44:00 Uhr
Goto Top
Das ist dann vom verwendeten Browser abhängig,
ich weiß leider nicht, wie ich js einbinden kann ;p
Ich bin dabei, mir einen Maussimulator zu programmieren.
Selenium is your friend.
demerzel
demerzel 20.01.2024 um 14:50:25 Uhr
Goto Top
ich wollte es erst einmal nur für den MS-Edge nutzen.
Selenium muss immer noch zusätzlich installiert werden, oder?
10138557388
Lösung 10138557388 20.01.2024 aktualisiert um 16:18:40 Uhr
Goto Top
Zitat von @demerzel:
Selenium muss immer noch zusätzlich installiert werden, oder?
Instalieren muss man es nicht läuft auch portable, guck mal hier rein, habe ich hier gefunden:
PowerShell: Einführung in die Webbrowser Automation mit Selenium WebDriver

Wenns nur Edge ist dann kannst du mal das hier nehmen, bei sowas gilt aber immer, wenn MS etwas grundlegend an der UI ändert dann muss man auch den Code wieder anpassen, mit Selenium ist das vorhersehbarer.
[void][System.Reflection.Assembly]::LoadWithPartialName("UIAutomationClient")  
[void][System.Reflection.Assembly]::LoadWithPartialName("UIAutomationTypes")  
[void][System.Reflection.Assembly]::LoadWithPartialName("UIAutomationProvider")  
[void][System.Reflection.Assembly]::LoadWithPartialName("UIAutomationClientsideProviders")  
$cprovider = [System.Reflection.Assembly]::LoadWithPartialName("UIAutomationClientsideProviders")  
try{
    [Windows.Automation.ClientSettings]::RegisterClientSideProviderAssembly($cprovider.GetName())
}catch{
    [Windows.Automation.ClientSettings]::RegisterClientSideProviderAssembly($cprovider.GetName())
}

$root = [System.Windows.Automation.AutomationElement]::RootElement
$msedgehandle = (Get-Process -name msedge -EA 0 | ? MainWindowHandle -ne 0 | select -First 1).Id
if (!$msedgehandle){
    write-error "Kein MS-Edge Fenster gefunden"  
    return
}
$cond = New-Object System.Windows.Automation.PropertyCondition ([System.Windows.Automation.AutomationElement]::ProcessIdProperty,$msedgehandle)
$window = $root.FindFirst([System.Windows.Automation.TreeScope]::Children,$cond)
if($window){
    $cond = New-Object System.Windows.Automation.PropertyCondition ([System.Windows.Automation.AutomationElement]::ControlTypeProperty,[System.Windows.Automation.ControlType]::Document)
    $body = $window.FindFirst([System.Windows.Automation.TreeScope]::Subtree,$cond)
    if($body){
        $bodywidth = $body.current.BoundingRectangle.Width
        $bodyheight = $body.current.BoundingRectangle.Height
        "$bodywidth x $bodyheight"  
    }
}
demerzel
demerzel 20.01.2024 um 16:21:47 Uhr
Goto Top
Hallo pjumper,

vielen Dank. Genau das, was ich gesucht habe ;D

Grüße Peter