Kann man mit einem Vbscript Websites detecten?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Moderne Browser wie sind erstmal in sich abgeschlossenen Systeme, welche nicht ohne weiteres ihren inneren Status anderen Anwendungen bekanntgeben oder sich steuern lassen.

Ein Zugriff auf innere Funktionen war mit dem alten Internetexplorer durchaus möglich:

Inwieweit es möglich wäre eine unabhängig geöffnete Instanz zu "überwachen" habe ich noch nie probiert.

VBscript solltest Du definitivbegraben, da es einfach nicht mehr zeitgemäß ist und nur aus Kompatibilität im System ist. Wenn es um das Ansprechen Systemnaher Funktionen geht, bieten Powershell und C# mehr als es VBS je konnte.

Um von "Außen" zu detectieren ob (durch einen beliebigen Browser) eine Verbindung zu einer Internetadresse aufgebaut wird müss man mit systemnahen Funktionen unterhalb des Browsers arbeiten.

soweit muss man jedoch garnich gehen. Die einfachste Form auf eine etablierte Internetverbindung zu prüfen, wäre periodisch mit netstat den Verbindugsstatus abzufragen und mit find auf die entsprechende IP zu filtern

Diese kleine Batch prüft ganz trivial ob irgendein Programm mit "Gutefrage.net" kommuniziert:

check_GFnet_Connect.cmd

@echo off
  rem Endlosschleife...
for /l %%a in (0) do (
      rem prüfe alle 5 sekunden ob Verbindung zu Gutefrage.net besteht.
    netstat  -n |find /i "hergestellt"|find "2001:780:12e::" &&(
        echo Verbindung zu gutefrage.net besteht.
    )
    timeout 5 >nul
)

in Powershell ist Get-NetTCPConnection das Äquivalent zu netstat

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
ACommandblock 
Fragesteller
 04.09.2021, 22:50

Ok, vielen Dank für die Auskunft, ich schaue mal was mir weiterhilft^^

0
ACommandblock 
Fragesteller
 10.09.2021, 04:55

Hallo Erzesel, ich habe nochmal eine Frage zu Vbscripts.

Gibt es eine möglichkeit, um zu detecten, wenn ich ein Programm/Prozess (evt. sichtbar im vordergrund) geöffnet habe? Also z.b. Firefox oder Minecraft?

Etwas schwer beschrieben, aber das soll es dann ungefähr tun:

Wenn [Minecraft] aktiv

Dann [Rest des Codes]

Sonst Stoppe Script (also wenn Minecraft nicht geöffnet)

Ps: Vbscripte finde ich halt interessant, daher wird das mit dem begraben vorerst nix😅.

0

Mit .AppActivate kann man versuchen ein Fenster in den Vordergrund zu holen. (Klappt mit dem neuen Fenstermanagement ab Win 10 nicht immer!)

In VBScript gibt es keine Möglichkeit festzustellen, welches Fenster gerade den Focus hat.

Mit Powershell oder C# etc. ist die Abfrage über PInvoke trivial:

Get_Focused_Window.ps1

'Bitte setze zum Testen den Focus auf ein anderes Fenster'
'warte 5 Sekunden'
sleep -s 5
  #hier gehts los C#assembly für PInvoke erstellen
Add-Type @'
  using System;
  using System.Runtime.InteropServices;
  public class U32 {
    [DllImport("user32.dll")] public static extern int GetForegroundWindow();
    [DllImport("user32.dll")] public static extern IntPtr GetWindowText(IntPtr hWnd, System.Text.StringBuilder text, int count);
}
'@
$stringbuilder = New-Object System.Text.StringBuilder 256 #Objekt, welches den Fensternamen übermittelt bekommt
$hWnd=[U32]::GetForegroundWindow() #Fensterhandle
if ([int][U32]::GetWindowText($hWnd, $stringbuilder, 256) -gt 0){ #lies Fenstertitel in den stringbuilder
    'Das Fenster mit dem Title:"{0}" hat den Focus' -f $stringbuilder.ToString()
}
else {'Kein Fenster hat den Focus'}
pause
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
ACommandblock 
Fragesteller
 10.09.2021, 16:43

Danke, ich denke damit komme ich weiter :D

Ps: Kannst du mir eine gute (Kostenfreie) möglichkeit empfehlen, wie ich am besten Powershell oder C# von Grund auf lernen kann?

0
Erzesel  10.09.2021, 19:00
@ACommandblock

ich greife einfach mal so etwas aus den Googleergebnissen raus:

Ein wichtiges Nachschlagewerk zu einzelnen Powershell Kommandos ist:

für den schnell Einstieg in C# empfehle ich gern :

das Tutorial verfügt über einen Onlinecompiler zum Experimentieren.

Für kleine C#-Programme brachst Du auch kein VisualStudio oder anderen aufdwändigen Kram. In jedem System mit .Net Framework (4.8 ist Standard in win10) befindet sich ein C#-Compiler (csc.exe).

Hier eine kleine Batch, welche als Droptarget für dateien mit C#-Code dient.

compile_c#.cmd

@echo off
chcp 65001 >nul
if "%~1"=="" (
    echo C# Compiler-Batch.
    echo:
    echo Ziehe eine Datei mit C#-Source auf "%~nx0" ...
    timeout 7
    exit /b
)
for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d  /o:-n "%SystemRoot%\Microsoft.NET\*csc.exe"') do (
set "csc=%%v"
)
if "%csc%"==""  (
echo Kein C#-Compiler gefunden
echo Bitte installiere Microsoft-.NetFramework!
pause
exit /b
)
echo "%csc%" gefunden.
"%csc%" -nologo -platform:anycpu -out:"%~dpn1.exe" "%~f1" >compile.log && (
    echo Hat geklappt...
    echo .... %~dpn1.exe...
    echo Ausgabe Deines Programms:
    echo:
    "%~dpn1.exe"
    echo:
    pause
) || (
    echo Compilererror...
    echo:
    type compile.log
    echo:
    pause
)


0
ACommandblock 
Fragesteller
 11.09.2021, 21:41
@Erzesel

Danke dir, da werde ich wohl in nächster Zeit was zu tun haben ^-^

0