Windows Software, bei Änderung einer Text-Datei auf einem Webserver eine Meldung
Hallo,
ich suche eine Software für Windows.
Die soll in einem Intervalle von ca. 60 Sekunden eine Text-Datei auf einem Web-Server auf Änderungen prüfen.
Oder allgemein die Ausgabe einer URL.
Wenn sich der Inhalt geändert hat, soll ein Top-Most-Fenster mit dem Inhalt angezeigt werden die der Benutzer bestätigen muss. Man darf die Software auch nicht schliessen.
Kennt Jemand so eine fertig Software?
Sonst programmiere ich das selber... aber wenn es das schon gibt...
Stefan
ich suche eine Software für Windows.
Die soll in einem Intervalle von ca. 60 Sekunden eine Text-Datei auf einem Web-Server auf Änderungen prüfen.
Oder allgemein die Ausgabe einer URL.
Wenn sich der Inhalt geändert hat, soll ein Top-Most-Fenster mit dem Inhalt angezeigt werden die der Benutzer bestätigen muss. Man darf die Software auch nicht schliessen.
Kennt Jemand so eine fertig Software?
Sonst programmiere ich das selber... aber wenn es das schon gibt...
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 668873
Url: https://administrator.de/contentid/668873
Ausgedruckt am: 21.11.2024 um 20:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
changedetection kann das wahrscheinlich.
https://github.com/dgtlmoon/changedetection.io
Gruß
Xearo
changedetection kann das wahrscheinlich.
https://github.com/dgtlmoon/changedetection.io
Gruß
Xearo
Hallo,
hab keien im Kopf.
https://powershell.one/tricks/filesystem/filesystemwatcher
Das hab ich mal als Alternative zum Selberbau ausgegraben. Ist so einiges los in dem Script. Der Rest fehlt natürlich.
Was ist wenn bestätigen länger dauert und die nächsten Änderungen eingehen? Müsste da nicht noch ein Eventhandler im Hintergrund laufen? Queue zum abarbeiten?
hab keien im Kopf.
https://powershell.one/tricks/filesystem/filesystemwatcher
Das hab ich mal als Alternative zum Selberbau ausgegraben. Ist so einiges los in dem Script. Der Rest fehlt natürlich.
Was ist wenn bestätigen länger dauert und die nächsten Änderungen eingehen? Müsste da nicht noch ein Eventhandler im Hintergrund laufen? Queue zum abarbeiten?
Servus,
kleines Powershell Skript
Das war jetzt natürlich nur ein Beispiel. Du kannst das ganze natürlich auch regelmäßig über den Taskplaner laufen lassen dann brauchst du die Schleife nicht.
Alternativ zum Herunterladen der ganzen Datei kann man das ganze auch über das Vergleichen des last-modified Headers und einer reinen HEAD-Abfrage vergleichen falls das für deinen Fall ausreichen würde, dann entfällt das Laden des Inhalts der Textdatei.
Grüße Uwe
kleines Powershell Skript
# url to load text content from
$URL = "https://domain.tld/file.txt"
# request interval
$INTERVAL_SECONDS = 60
# content to display
$DISPLAY_TEXT = "Inhalt der Datei hat sich geändert! Bitte mit OK bestätigen."
# =============
Add-Type -A System.Windows.Forms
Add-Type -A System.Drawing
# webclient
$wc = New-Object System.Net.WebClient -P @{Encoding = [System.Text.Encoding]::UTF8}
# fullscreen form
$form = New-Object System.Windows.Forms.Form -Property @{
Size = '200,200'
WindowState = 'Maximized'
TopMost = $true
BackColor = [System.Drawing.Color]::Blue
ControlBox = $false
FormBorderStyle ='None'
}
$txtInfo = New-Object System.Windows.Forms.Label -Property @{
Dock = [System.Windows.Forms.DockStyle]::Fill
TextAlign = 'MiddleCenter'
Font = New-Object System.Drawing.Font("Calibri",25,[System.Drawing.FontStyle]::Regular)
Text = $DISPLAY_TEXT
ForeColor = [System.Drawing.Color]::White
Size = '200,200'
}
$btn = New-Object System.Windows.Forms.Button -Property @{
Size = '150,50'
Location = '0,0'
Text = 'OK'
Font = New-Object System.Drawing.Font("Calibri",15,[System.Drawing.FontStyle]::Bold)
ForeColor = [System.Drawing.Color]::White
BackColor = [System.Drawing.Color]::Green
}
$form.add_Load({
$btn.Left = ([System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Width / 2) - ($btn.Width/2)
$btn.Top = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Height - 200
})
$btn.add_Click({
$form.Close()
})
$form.Controls.AddRange(@($btn,$txtInfo))
# get content from web scriptblock
$get_url_content = {
try{
return $wc.DownloadString($URL)
}catch{
write-host "Error loading file: $($_.Exception.Message)." -F Red
return $null
}
}
# get initial content
$last = .$get_url_content
write-host "Waiting for changes ..." -F Green
while($true){
# get current value
$current = .$get_url_content
# if value changed display fullscreen message
if($current -ne $null -and $last -ne $current){
[void]$form.ShowDialog()
$last = $current
}
sleep -Seconds $INTERVAL_SECONDS
}
Alternativ zum Herunterladen der ganzen Datei kann man das ganze auch über das Vergleichen des last-modified Headers und einer reinen HEAD-Abfrage vergleichen falls das für deinen Fall ausreichen würde, dann entfällt das Laden des Inhalts der Textdatei.
Grüße Uwe