Niemand wir Dir ohne Zugriff auf Dein System sagen können was da startet.

Dem Problem begegne ich regelmäßig im PC-Reperaturbetrieb...

Eigentlich ist es relativ einfach Progammstart/-ende zu loggen. Jedoch nicht beim Booten/Login. Dafür muss man den "Beobachter" unter den betreffenden Vorgang schieben noch bevor dieser startet.

Im Falle des User-Logins und dessen Autostartroutinen ist es relativ einfach.

Man leitet einfach den Start des Desktops auf ein anderes Programm/Script um, indem unter dem Registryschlüssel "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" im Wert "Shell" eine eigene Startroutine definiert wird. (existiert der Wert Shell nicht wird der Explorer gestartet)

Hier ein kleines Powershell-Batch-Hybrid, welches diese Umleitung auf sich selbst einrichtet und beim nächsten Login alle Progammstarts/-beendigungen anzeigt und speichert.

Die Batch logt den Nutzer nach der Änderung des Shell-Eintrags automatisch aus. Beim erneuten Login wird die Batch/Powershellscript noch vor dem Start der Explorers ausgeführt und die Shellumleitung automatisch entfernt. damit ist alles wieder wie es sein soll. Im Fenster des Powershellscripts wird angezeigt was passiert.

Bild zum Beitrag

ProcWatcher.ps1.cmd

<# : Begin of batch section and Powershell comment
@echo off
pushd "%~dp0"
set "thisPath=%~f0" 

rem wenn eine alternative Shell-definition  vorhanden  ist...:
for /f "tokens=*" %%a in ('reg query "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell" 2^>nul ^|find "Shell"') do (
    reg delete "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell" /f  >nul 2>&1        &rem lösche die Shellumleitung
    start "ProcessWatcher" powershell  "&([Scriptblock]::Create((gc '%thisPath%' -enc UTF8 -raw )))"        &rem führe diese  Datei in Powershell aus
    exit /b
)

rem  wenn nicht...
:init
 reg add "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell" /d "cmd /c \"%thisPath%\" &timeout 2& start explorer.exe" /f >nul 2>&1  &rem Shellumleitung  in  Registry eintragen.
shutdown /l /f   &rem Logoff
exit /b
: End of batch section and Powershell comment#>

$queryProcessStart = "SELECT * FROM __InstanceCreationEvent WITHIN 0.1 WHERE TargetInstance ISA 'Win32_Process'"
$queryProcessClose = "SELECT * FROM __InstanceDeletionEvent WITHIN 0.1 WHERE TargetInstance ISA 'Win32_Process'"

$Start_Action = {
    $ProcName = $event.SourceEventArgs.NewEvent.TargetInstance.Name
    $ProcCreated = $event.SourceEventArgs.NewEvent.TargetInstance.CreationDate
    $ProcCmdLine = $event.SourceEventArgs.NewEvent.TargetInstance.CommandLine
    $LogString ='Start Process: "{1}" starttime: @{0:dd.MM.yyyy HH:mm:ss,ffffff}  commandline: {2}' -f $ProcCreated,$ProcName,$ProcCmdLine
    write-host $LogString -fo green
    $LogString | Out-File procStart.txt -Append
}

$Close_Action = {
    $ProcName = $event.SourceEventArgs.NewEvent.TargetInstance.Caption
    $ProcCreated = $event.SourceEventArgs.NewEvent.TargetInstance.CreationDate
    $EventTime=[DateTime]::FromFileTime($event.SourceEventArgs.NewEvent.TIME_CREATED)
    $LogString ='Close Process: "{1}" starttime: @{0:dd.MM.yyyy HH:mm:ss,ffffff} approx.closetime: @{2:dd.MM.yyyy HH:mm:ss,ff}' -f $ProcCreated,$ProcName,$EventTime
    write-host $LogString -fo yel
    $LogString | Out-File procClose.txt -Append
}

$null = Register-CimIndicationEvent -Query $queryProcessStart -Action $Start_Action
$null = Register-CimIndicationEvent -Query $queryProcessClose -Action $Close_Action
Write-Host 'waiting for process-events ...'
while ($True) {Wait-Event}

für Prozesse, wehe mit System/Admin-Privilegien gestartet werden, wird der Komandozeilenstring nicht ausgegeben!

Warum Batch /Powershell?

Diese Ressource ist auf jedem nativen Windowsrechner vorhanden und es ist nicht nötig irgendwelchen Kram zu installieren. Andere "Fachleute" können begutachten, das nichts schädliches passiert.

Selbst wenn (warum auch immer?) etwas schief gehen sollte, kannst Du via "Ctrl.+Alt+Del" nachwievor den Taskmanager nanuell ausführen und über das Datei->NeueTask... den Explorer/Desktop von Hand starten.

mit dem Kommando:

reg delete "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell" /f

...lässt sich Notfalls die Shellumleitung manuell löschen.

...zur Antwort
Im voraus:

Ich bin kein Jetpack-Programmierer und kann nur logische Schlussfolgerungen aus der der (schnell überflogenen) Dokumentation ziehen...:

  • https://medium.com/@anandgaur22/modifiers-in-jetpack-compose-f2bd164fb9c6

siehe Padding:

Jetpack Compose doesn’t have a modifier for margin. We should use the padding modifier for both padding and margin. (Je nach Position/Anordnung in einer Folge von Formatierungen.)

@Composable
fun TextWidthPadding() {
    Text(
        "Padding and margin!",
        Modifier.padding(32.dp) // Outer padding (margin)
            .background(color = Color.Green) //background color
            .padding(16.dp) // Inner padding
    )
}

in deinem Fall würde dies bedeuten, dass ein Padding() vor Fillmaxsize() als Margin fungiern. Padding() nach Fillmaxsize() als Padding

  • https://developer.android.com/develop/ui/compose/modifiers?hl=de#order-modifier-matters
  • https://developer.android.com/develop/ui/compose/layouts/constraints-modifiers?hl=de

***Erklärung unter dem Vorbehalt ,dass es nicht mein Fachgebiet ist! 😇

...zur Antwort
Batch-Datei mit sichtbarem Stunden und Minuten Timer der per Tastendruck abgebrochen werden kann (zwei Routinen in einer Batch)?

ich brauche eine Batch.

Beim starten wird gefragt, in wievielen Stunden der PC in den Energiesparmodus wechseln soll.

Die VERBLEIBENDE Zeit sollte IMMER sichtbar sein und die STUNDEN /MINUTEN runterzählen.

Wenn der Timer abgelaufen ist, sollte der PC in den Energiesparmodus gehen.

Desweiteren will ich den Countdown jederzeit wieder abbrechen können um das Programm zu verlassen,

OHNE den PC in den Energiesparmodus zu versetzen..

Am besten wäre es, wenn ich beim Abbechen des Timers nur eine Taste,

zum Beispiel (X) drücken müsste, ohne enter...(Darf gerne, muss aber nicht sein).

Ich habe schon per KI versucht dies alles hinzubekommen, aber leider bleibt der Timer hängen bei der Abbrechen-Abfrage.

@echo off

mode con cols=77 lines=6

chcp 65001>nul

title Countdown zum Energiesparmodus

:start

cls

echo In wie vielen Stunden soll der PC in den Energiesparmodus wechseln?

set /p stunden=

set /a minuten=%stunden%*60

rem Energiesparoptionen auf Höchstleistung setzen

powercfg.exe /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

:countdown

cls

echo Der PC wechselt in %stunden% Stunden und %minuten% Minuten in den Energiesparmodus.

set /a minuten=%minuten%-1

if %minuten% LSS 0 (

   set /a stunden=%stunden%-1

   set /a minuten=59

)

echo.

echo Drücken Sie 'x', um den Countdown abzubrechen.

set /p eingabe=

if "%eingabe%"=="x" goto :ende

if %stunden% EQU 0 && %minuten% EQU 0 (

echo Der Countdown ist abgelaufen. Der PC wechselt in den Energiesparmodus.

rem Energiesparoptionen auf Ausbalanciert setzen

powercfg.exe /setactive 381b4222-f694-41f0-9685-ff5bb260df2e

rundll32.exe powrprof.dll,SetSuspendState Sleep

goto :ende

)

timeout /t 60 >nul

goto countdown

:ende

echo Countdown abgebrochen.

rem Energiesparoptionen auf Ausbalanciert setzen

powercfg.exe /setactive 381b4222-f694-41f0-9685-ff5bb260df2e
...zum Beitrag

erstmal hast du einen gravierenden Syntaxfehler in Deinem Code:

if %stunden% EQU 0 && %minuten% EQU 0 (

Batch beherrscht keine logische AND-Conditition && ist ist ein Redirection-Operator

ein logosches AND könnte man in batch folgendermaßen darstellen:

set stunden=0
set Minuten=0
if %stunden% equ 0 if %Minuten% equ 0 (echo all conditions are true)

Im falle deine Codes ist der Quatsch nicht nötig, wenn Du nur mit Minuten herunterzählst und die Stunden/Minuten für die Anzeige mit einer Division und einem Modulo berechnest.

set CountdownMinutes=120
:loop
rem ab  hier zählen wir nur noch die variable CountdownMinutes heruntrunter und berechen die daraus resultierende Sunden:Minuten-ausgabe on the fly
set /a "OutHoures=CountdownMinutes / 60 , OutMinutes=CountdownMinutes %% 60"
echo  %OutHoures% Stunden und %OutMinutes% Minuten
::sonstiger  code
timeout 60 >nul
set /a "CountdownMinutes-=1"
goto :loop

Das Abbrechen durch ein Eingabe (welche sozusagen parallel zum Countdown auf einen Tastendruck prüft) ist in Batch nur mit etwas Mogelei zu bewerkstelligen.

Der einzige batchbefehl welcher neben einer primitiven Eingabefunktion auch noch auf einen Timeout reagiert ist choise .

@echo off
echo Druecken Sie 'x'.
rem wir veraten niemaden, das auch eine Taste z definiert ist , welche der  
choice /c xz /d z /t 10 /n
if %ErrorLevel% equ 1 echo X wurde gedückt

echo der Timeout von choice hat automatisch die Taste z ausgeloest
pause

Butter bei die Fische:

demo.cmd

@echo off
mode 80,20
chcp 65001>nul
title Countdown zum Energiesparmodus
:start
cls
echo In wie vielen Stunden soll der PC in den Energiesparmodus wechseln?
set /p stunden=
set /a CountdownMinutes=%stunden%*60
rem Energiesparoptionen auf Höchstleistung setzen
powercfg.exe /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c


:countdown
rem ab  hier zählen wir nur noch die variable CountdownMinutes heruntrunter und berechen die daraus resultierende Sunden:Minuten-ausgabe on the fly
set /a "OutHoures=CountdownMinutes / 60 , OutMinutes=CountdownMinutes %% 60"  &rem mehrere Batchvariablen in einem Rutsch berechnen ist sehr schnell (für Batchverhältnisse)
cls
echo Der PC wechselt in %OutHoures% Stunden und %OutMinutes% Minuten in den Energiesparmodus.


echo.
echo Drücken Sie 'x', um den Countdown abzubrechen.
choice  /c xz /d z  /t 60 >nul
if %ErrorLevel% equ 1 goto :ende
if %CountdownMinutes% EQU 0 (
    echo Der Countdown ist abgelaufen. Der PC wechselt in den Energiesparmodus.
    rem Energiesparoptionen auf Ausbalanciert setzen
    powercfg.exe /setactive 381b4222-f694-41f0-9685-ff5bb260df2e
    rundll32.exe powrprof.dll,SetSuspendState Sleep
    goto :ende
)
set /a "CountdownMinutes-=1"
goto :countdown


:ende
echo Countdown abgebrochen.
rem Energiesparoptionen auf Ausbalanciert setzen
powercfg.exe /setactive 381b4222-f694-41f0-9685-ff5bb260df2e


pause

Die Timeoutfunktionen von Batch sind sehr Ungenau . Zudem berücksichtigen Schleifen mit einer "Bremsfunktion" nicht den Zeitverbrauch von innerhalb der Schleife ausgeführten sonstign Befehlen , somit kann es durchaus erheblich Diskrepanzen zwischen den Angaben es Zählers und der tatsächlich vergangen Zeit geben.

...zur Antwort

Ich fürchte, ich gehöre zu den Leuten, welche Legacysoftware produzierten. Natürlich war mir dieser Umstand zum damaligen Zeitpunkt nicht bewusst. (Schließlich war ich kein Hellseher um zu ergründen was 20 Jahre später der Stand der Technik sein wird).

Bedingt durch die Art, wie die Software auf die Steuerung laufender Produktionsprozesse Einfluss nehmen musste, war vieles mit heißer Nadel gestrickt. (Wenn bestimmte Sensoren/Aktuatoren nicht verfügbar waren, wurde eben "on the fly" die Software auf andere Bauteile angepasst. Und manche Änderung blieb "undokumentiert" weil man meinte, es sei ohnehin nur ein Provisorium.)

Meine Nachfolger scheinen die Sache ganz gut im Griff zu haben. In den letzten Jahren kamen immer seltener Rückfragen bezüglich einiger "Leichen im Keller" und die Produktion der Firma läuft noch immer ohne irgendwelche verheerenden Explosionen.

Ich denke, genau wie ich und meine damaligen Kollegen sich mit den damalige akuten Problemen auseinandersetzen mussten, trifft dies auch auf das heutige Team zu. ...und auch der heutige "Programmierer" wird in einigen Jahren einen Berg von Legacy-Leichen hinterlassen.

...zur Antwort

Warum willst willst Du Webdev machen, wenn Du eigentlich keine Lust dazu hast?

...und was findest cool an einer Sache, von der Du eigentlich keine Ahnung hast?

Meine Fragen sind rein rethorisch.

...wäre eine Web DEV Firma, da hätte man kaum bis kein Investment

...Du willst also eine Firma für eine Sache gründen , welche Du garnicht beherrscht und nicht weißt was man dafür benötigt?

Webentwicklung ist nicht nur eine Webseite zusammenzuklicken. Dazu gehört eine ganze Menge mehr, wofür man jahrelang lernen muss. Damit man auch in einem angemessenen Zeitrahmen die nötigen Kenntnisse erlangt, muss man jede Menge Zeit investieren (Zeit ist Geld, denn von irgendwas musst Du ja leben).

Es genügt auch nicht eine Webseite ins Netz zu setzen, auf der Du Deine Leistungen anbietest (und dann rennen die Kunden Dir die Bude ein 🤣) . Du musst gezielt werben und gegebenenfalls auch mal "Klinken putzen" ...Das kostet viel Geld.

Kommen dann Kunden auf dich zu sollte Dein Büro nicht unbedingt Omas Dachboden sein, dann nehmen die sofort reisaus. Die Vertrauenswürdigkeit einer Firma wird vorwiegend über die Geschäftsräume repräsentiert. Man braucht kein Glasbüro in Citylage, auch ein Raum irgendwo auf dem Dorf sollte schon Kompetenz und Leistungsfähigkeit ausstrahlen.

....Wenn Du glaubst, Du könntest alle Kundenkontakte online abwickeln, liegst Du völlig falsch. Wenns um viel Geld geht, wollen Kunden mehr als eine Briefkastenadresse!

...das kostet alles Geld...

Bei Fragen wie der Deinen schaue ich mir gern die "Vorgeschichte" des Fragestellers an.

Irgendwo erwähntest Du "möglichst schnell viel Geld" verdienen zu wollen. Da bist Du mit Webseitenbaselei 30 Jahre zu spät dran.

Was Deine "gesundheitlichen" Voraussetzungen angeht, so dürfte "eigene Firma" nicht unbedingt besonders förderlich sein. Selbstständig bedeutet auch jede Menge Stress. Um diesen zu bewältigen braucht es oft eines äußerst robusten Nevenköstüms, was ich bei Dir nicht sehe.

Bei Deinem Hobby (Uhren) stellt sich mir die Frage, weshalb Du Nichts in dieser Richtung anstrebst?

...zur Antwort

Sieht mir so aus, als würde es Richtung "Adlerkrallen" tendieren.

Ursachen sind in der Regel Überdüngung, Staunässe oder permanennt zu hohe Luftfeuchtigkeit. Bezüglich der Flecken auf den Blättern würde ich auf zuviel oder falschen Dünger tippen. (Finger weg von flüssigem Billig Blumen-/Gemüsedünger!!! ala MäcGeiz, Tedi usw. Der ist zu "scharf" und unausgewogen!!!!)

Da hilft nur Spülen. Der Topf sollte eine ausreichend große Abflussöffnung im Boden haben. ansonsten bohre seitlich etwa daumesbreit über den Boden ein ca. 5mm Loch. Stelle den Topf in die Wanne oder wo auch immer das Wasser weglaufen kann und Giese mit klarem Wasser (am besten Regenwasser) so dass es reichlich unten wieder Austritt. ggf mehrmals wiedeholen. ohne Messgeräte kann man nur schätzen wan genug überschüssiger Dünger ausgewaschen wurde.. darum lieber etwas großzügiger spühlen.

Lass nach dieser "Gewaltkur" die Pflanze ein paar Tage in Ruhe. und beobachte ob die Blätter wieder normal werden.

Hast Du die Pflanzen ohne Kunstlicht im Zimmer? Die sehen mir ziehmlich dünn und geilig aus... (zu wenig Licht ) auch wenn Du Deine Pflanzen an einem sonnigen Fenster stehen haben solltest reicht das für Hanf in der Regel nicht aus. Moderne Thermofenster schlucken sehr viel Licht, das fällt uns als Menschen nicht auf, aber die Pflanze "merkt", wenn die IR und UV Anteile fehlen.

Lade Dir die App: https://play.google.com/store/apps/details?id=com.pardel.photometer&hl=de

Die Lichtstärke bei Tage sollte mindestens um die 8000 Lux liegen (trübe Tage) . Bei knalligen Sonnenschein könne auch gerne Mal 80.000 bis 100.000 Lux den pflanzen schmeicheln (im Freiland gibt auch kein zuviel Sonne). Ich habe mit Reflektoren experimentiert, die Pflanzen haben auch bei Spitzen knapp 180.000 Lux (garantierter 3 Minuten Sonnenbrand beim Menschen) keinen Schaden genommen.)

Wenn das auf Deinem Bild so eine Plastikfolie-Growbox ist (oder gar ein Faltschrank? (echt mal?), schmeiß das Ding weg und gib den Pflanzen Licht und Luft

so siehts "gesund" aus

Nothern Light Autoflower im Garten.

Bild zum Beitrag

RoyalRuntz "etwas" kompakt gehalten ca 80cm, auf dem Balkon Südseite (zugegeben nicht ganz ideale Bedingungen weil die Wandseite zu dunkel ist)

Bild zum Beitrag

(nicht wundern, die Bohnen sind Beipflanzen als gleichmäßiger Stickstoffspender und Feuchtigkeitsregulator)

...zur Antwort

Da Du nicht explizit ausgeschrieben hast in welcher (Scripts)Sprache, hier eine Variante in Javascript.

MatrixRain.html

<html>
    <head>
        <style>

            html,body { /* Page settings */
                width: 100%;
                height: 100%;
                margin: 0;
                padding: 0;
            }

            body {
                background: red; /*funy*/
            }

            canvas {display:block;}
           
            #overlay { /*maincontainer for content*/
                position: absolute;
                top: 0px;
                left: 0px;
                width: 100%;
                height: 100%;
                color : White;
                z-index : 1;
            }

            #Text {
                margin: 30px;
                padding: 10px;
                border: 1px solid magenta;
            }
            h1 {
                Font-Size: 72px;
            }

            p {
                Font-Size: 20px;
                margin-top:1em; 
            }

        </style>
    </head>
    <body onresize="resize()">
        <canvas id="c"></canvas>
        <div id = "overlay">
            <!--normal HTML here, or whatever you want to display in front of the background-->
            <img src="https://img2.dreamies.de/img/901/b/5uzu36uou6w.gif" alt="Erzesel Target" >
            <div id = "Text">
                <h1>Eselfreude</h1>
                <p>I Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh</p>
                <p>blah & Blub</p>
            </div>
        </div>

        <script>

        var c = document.getElementById("c"); // geting canvas by id c
        var ctx = c.getContext("2d");

        //max posible where the window can be resized enough for 3x8k Monitors(preset the  maximum possible colums while resizing)
        var maxWindowWidth = 23040;

        //characterset (Kanji  should be better)
        var matrix = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@#$%^&*()*&^%";
        matrix = matrix.split(''); //converting the string into an array of single characters
        
        var font_size = 10;
        var afterGlow = 30; //afterglowtime of charakters 1..100
        
        c.height = window.innerHeight; //canvas at windowsize
        c.width = window.innerWidth;
        var columns = c.width / font_size; //number of columns for the rain
        var maxColumns = maxWindowWidth / font_size; //init the drops for possible 3x8k-Monitors
        var rows = c.height / font_size;

        var drops = []; //an array of drops - one per column
        //x below is the x coordinate (column), drops[x] become the y coordinate (row)
        for(var x = 0; x < maxColumns; x++)  drops[x] = Math.random() * rows; //set for every drop the random row 0<>canvashight
        
          //start Rain...
        setInterval( draw, 60);

        function draw()   //drawing the characters
        {
            //Black BG for the canvas
            //translucent BG to show trail
            ctx.fillStyle = "rgba(0, 0, 0," + 2/(afterGlow) ;
            ctx.fillRect(0, 0, c.width, c.height);


            ctx.fillStyle = "#0F0"; //green text
            ctx.font = font_size + "px arial";
            //looping over drops
            for( var i = 0; i < columns; i++ )
            {
                var text = matrix[ Math.floor( Math.random() * matrix.length ) ]; //a random  character to print
                ctx.fillText(text, i * font_size, drops[i] * font_size); //x = i*font_size, y = value of drops[i]*font_size
                //adding a randomness to the reset to make the drops scattered on the Y axis
                if( drops[i] * font_size > c.height && Math.random() > .96 )
                    drops[i] = 0; //sending the drop back to the top randomly after it has crossed the screen
                drops[i]++; //incrementing Y coordinate
            }
        }
        
        function resize()
        {
            c.height = window.innerHeight; //change the canvassize to new windowsize 
            c.width = window.innerWidth;
            columns = c.width / font_size; //recalculate columns
        }

        </script>
    </body>
</html>

Das Script ist zwar nicht ganz taufrisch, aber dürfte jedem einigermaßen gängigen Browser funktionieren. Es kommt problemlos mit Fenstern zurecht, welche über mehrere Monitore aufgezogen sind und passt sich automatisch Veränderungen der Fenstergöße an.

...zur Antwort

In Consolenanwendungen ist dies nicht ohne weiteres möglich, da diese "normalerweise" keinen Einfluss auf das FensterManagement haben. (in systemnahen Sprachen könnte man theoretisch einen Hook erstellen welcher in die "Mechanik" des Fensters eingreift)

Das ist mit Cmd/Batch nicht möglich. Ergo brauchen wir eine Instanz, welche auf unser Hauptfenster "aufpasst". Die einzige Möglichkeit ein Cmd-Fenster in Batch zu identifizieren ist dessen Titel als müssen wir unseren Fenstern Namen geben.

Die folgende Batch ist 2 Batchprogramme in einer Datei.

Beim normalen Start (per Mouseclick) wird kein Parameter übergeben. Die Batch startet sich selbst (:firstrun) minimiert mit dem Parameter watcher. damit weiß diese Instanz, das nur der Code von :watcher bis zum nächsten exit/b ausgeführt wird. (der macht nichts anderes als nachschauen ob das Hauptfenster geöffnet ist und ein paar sekunden zu warten) wird die Task mit dem Namen des Hauptfennsters nicht gefunden, wird die Batch erneut gestartet und dieser instanz per Parameter terminated mitgeteilt, dass der Watcher (Aufpasser) noch arbeitet und nicht erneut gestartet werden muss. Diese Instanz des Hauptfensters führt lediglich den Code nach :main aus.

das Hauptfenster fragt nach getaner Arbeit ob es regulär beendet werden soll. bei "J " bendet es den "Aufpasser" und zeigt zum Abschied noch eine Meldung...

Demo.cmd

@echo off
chcp 65001 >nul
 rem  diese beiden Settings sind nötig um die beiden Batchprozesse zu identifizieren (Du kannst auch Namen Deiner Wahl vergeben !!!keine  Sonderzeichen!!!) 
set "WatcherWindowName=Watcher"  &rem  Name  des Wächterfensters
set "MainWindowName=Runner"      &rem Name  des sichtbaren Hauptfensters


set  "detectionTime=1"  &rem  Zeit in Sekunden nach der  das Ireguläre  schließen des Fensters  erkannt werden soll

  rem teste wie die Batch gestartet wurde ohne Parameter=Normal, parameter=teminated unormal beendet ...
if "%~1"=="" goto :firstrun
if "%~1"=="terminated" (
    echo Das Hauptfenster wurde nicht durch regulär durch sich selbst beendet!
    goto :main
)

:watcher
 rem ...ansonsten  bleibt nur watcher= starte Wächter...
  rem Code für den Watcher
  rem setze den Fenstertitel für den Wächter
title %WatcherWindowName%
setlocal EnableDelayedExpansion
  rem Endlosschleife! Kein Problem da der Watchprozess später "gewaltsam" gekillt wird.
for /l %%a in (0) do (
    tasklist /nh /fi "Windowtitle eq %MainWindowName%"|find "cmd.exe" >nul||(
        echo !date! !time!  Das Fenster mit dem Namen "%MainWindowName%" wurde irregulär beendet ^^!  &rem einfach die  Schließzeiten ins  WatcherFenster loggen...  
        start "" cmd /c "%~f0" terminated  &rem wenn das Hauptfenster nicht existiert, starte es neu und und signalisiere den unnormalen restart
    )
    timeout %detectionTime% >nul
)
exit /b

:firstrun
 rem starte Überwachungsthread mit dem Fenstertitel Watcher minimiert (könnte man auch total unsichtbar machen, wäre für einen Anfänger jedoch zu komplex)
 rem wenn das Watcherfenster offen bleiben soll, entferne   den Parrameter /min  aus der nächsten Zeile  
start "" /min "%~f0" watcher


:main
 rem setze den Fenstertitel für das Hauptfenster
title %MainWindowName%
:mainLoop
 rem hier alles was normal  passeieren soll, solannge das Fenster nicht regulär  per Abfrage beendet  wird
echo Hallo Welt !
echo  ich mache  irgendwas!
echo:
echo:
 rem bis  hier
echo soll diese Batch normal  beendet werden. 
choice /m "entscheide Dich!"
if %errorlevel% equ 1 echo du hast mit Ja geantwortet! &goto :closeProgramm
if %errorlevel% equ 2 echo du hast mit Nein geantwortet!


goto :mainLoop
:closeProgramm
  rem wenn wir bis hier gekommen sind wurde das Fenster nicht durch den Nutzer beendet...
  rem nun beenden wir dem Überwachungsthread "gewaltsam"
taskkill /fi "Windowtitle eq %WatcherWindowName%" /f >nul
  rem zeigen dem Nutzer noch ein paar Sekunden eine Meldung und schließen  das Hauptfenste regulär.
echo Überwachungsthread beendet! Beende die Batch normal in:
timeout 5
exit /b
...zur Antwort

Dafür das Du Dir den hochtrabenden Namen "Hacker21" gegeben hast, verstehst Du recht wenig von der Sache😏😥 ..warum verlinkst du eine 23 Jahre alte VB-Basic Anleitung (Erstellt: 01.07.2001)? Die bezieht sich noch auf Windows 98 und hat überghaupt nix mit Batch zu tun.

... zu .bat:

Dateien mit der Endung .bat (Dos-Batch) werden seit Windows 11 1H22 nicht mehr ausgeführt. Die offizielle Endung von Windows-Batch ist seit über 25 Jahren .cmd ! (...und genausolange geben Leute welche keine Ahnung haben Neulingen falsche Ratschläge)

Es bringt auch keinen Nutzen, wenn man die Ausführung von .bat über Einträge in der Registry erzwingt. Wenn der Kommandointerpreter (cmd.exe) erkennt, das die geöffnete Batch-Date die Endung .bat hat schaltet er in einen Dos-Kombatibilitätsmodus mit einem fehlerhaften Errormanagement.

  • https://groups.google.com/g/microsoft.public.win2000.cmdprompt.admin/c/XHeUq8oe2wk/m/LIEViGNmkK0J

Ich möchte mich nicht weiter in Einzelheiten des falschen Fehlermanagements eingehen. Die Endung .bat ist endlich tot und das ist gut so .

Der Kommandointerpreter prüft vor dem Ausführen einer Datei die Endung und akzeptiert keine keine Benutzerdefinierten (Fantasie)Endungen.

Speichere Batchdateien mit der Endung .cmd und Windows führt sie anstandslos aus.

Um die volle Funktionalität von .bat unter Windows11 herzustellen sind über 20 teilweise auf das individuelle System zugeschnittene Registryeinträge nötig!

Spiele nicht an der Registry herum

Ich weiß nicht welche Gründe Du haben könntest, Batchdateien eine andere Endung als .cmd zu geben.

Wenn du Batchcode in einer anderen mit einer anderen Dateiendung ausführen möchtest , musst Du diese (temporär) zu .cmd umbenennen.

Demo.blubb (eine Batch mit falscher FantasieEndung)

@echo off
echo Hallo ich bin die heimliche Batch

und die Batch welche die .blubb-Datei ausführt:

Mainbatch.cmd

@echo off
echo Hallo ich  bin "%~nx0" 
 rem in eine temporäre .cmd-Datei kopieren
copy "Demo.blubb" "%Temp%\Demo.cmd"  >nul 2>&1
 rem Kopie verstecken
attrib "%Temp%\Demo.cmd" +h
 rem die Kopie aufrufen
call "%Temp%\Demo.cmd"
echo wieder  zurueck in "%~nx0" 
pause

...das ist ist natürlich nur Kinderkram, welcher leich zu durchschauen ist...

Wenn Du Deines Namens😂 würdig sein willst Lerne Powershell

powershell.exe -encodedCommand VwByAGkAdABlAC0ASABvAHMAdAAgAEgAYQBsAGwAbwAgAEUAcgB6AGUAcwBlAGwAIAAgAGgAYQBlAHQAdABlACAAIABEAGkAYwBoACAAIABqAGUAdAB6AHQAIABlAGIAZQBuAHMAbwBnAHUAdAAgACAAZABlAGkAbgBlAG4AIABSAGUAYwBoAG4AZQByACAAegBlAHIAbABlAGcAZQBuACAAawBvAGUAbgBuAGUAbgAgAC0AZgBvACAAcgBlAGQAIAA=

... oder meinetwegen Python.

Und murkse nicht mit Batch herum, es sei denn Du hast eine masochistische Ader. (Tricksereien mit Batch)

...zur Antwort
Möglicherweise

Ich bin Ü60 und im Prinzip kann es mir ziemlich Wurst sein.

Ich habe das Thema schon öfter in meiner rationalen Art durchdacht... Was wäre so schlimm daran?

Bei solch einem Gedankenspiel würde es wohl darauf hinaus laufen, dass der sich Mensch in einem evolutionären/gleitendem Vorgang sein "Ich" mit einer KI verschmilzt und dadurch quasi "Unsterblichkeit" erlangt.

Eine rein rethorische Frage:

  • Was ist ein Mensch? Ein Fleischbeutel... Wasser, Kalk, Kohlenstoff, Wasserstoff, Sauerstoff, Stickstoff , etwas Phosphor, und ein Paar andere Kleinigkeiten , matschige fehlehafte "Hardware" durch eine Laune der Natur rein Zufällig zusammen gewurstelt....? Passt funktioniert für ein Paar Jahrzehnte
  • Oder sind es unsere Denkvorgänge, die "Software"?

Schauen wir uns doch mal kritisch an... so toll ist der Mensch doch garnicht. Unsere Hardware geht nach 60..80 Jahren kaputt.

Wir haben keinen Backup. Ist die Hardware im Eimer ist Alles was wir in den Paar Jahren erlebt haben weg. Nix mit: "auf eine neue Hardware kopieren und weitermachen".

Die einzige Möglichkeit die Essenz unseres Lebens (Wissen) weiterzugeben, ist Sex -> 20 Jahre lang die Neue "Speichereinheit" hochpäppeln und hoffen, das sie aufnahmefähig ist..., feststellen, das sich der herangezüchtete Wissensträger überhaupt nicht für unsere Erfahrungen interessiert und genau die gleichen dämlichen Fehler wiederholen möchte, die schon all seine Vorfahren gemacht haben...

Es wäre doch garnicht schlecht, wenn solch klägliche Hardware durch etwas besseres Stabilere ersetzt würde. Keine millardenfachen Datenverluste durch "Hardwareversagen". Keine 20 Jahre um der neuen Hardware rudimentäre Bruchstücke bisherigen Wissens weiterzugeben.

Wäre doch toll, wenn ich all meine Erfahrungen, mein Wissen, mein Können einfach direkt kopieren könnte und ohne Schule einfach Zugriff auf alles Wissen meiner Vorfahren hätte...

Die meisten Menschen stellen sich die Ablösung durch KI horrorfilmmäßig , gewalttätig, dystrophisch vor. Ich war schon einige Male nahezu tot. Da ist kein Licht, kein freundlicher alter Herr der Dich zu Deinen Ahnen führt. Da ist Nicht... nicht mal schwarz... und wenn Du erfolgreich zurückgeholt wurdest, fehlt einfach das Stück bei dem der Fleischsack streikte... und es ist einem auch egal...

Wäre doch schlau sich von dem Unvollkommenen Fleischbeutelzyklus frei zu machen.

Allerdings werden weder ich noch Du dies erleben.

Wir machen "Leben" immer an unseren Maßstäben fest. Wasser, Sauerstoff, "Fleischbeutel"... aber vielleicht ist unser organisches Leben tatsächlich nur das vergängliche Werkzeug der Natur, welches den den nächsten Entwicklungsschritt hin zu einer Kosmischen Zivilisation einleitet.

Das zufällige zusammenwürfeln von Aminosäuren ist in kosmischen Dimensionen gesehen ja nicht unbedingt Effizient.

Ich hätte überhaupt keine Probleme damit wenn mein Ego auf QBits und Silizium basieren würde. Ich bräuchte keine Sauerstoff etwas Licht oder Radioaktive Strahlung als "Nahrung" wäre durchaus ok. Ich bräuchte auch keine Komplexen Systeme das All zu durcheilen.

...sähe ich mich überhaupt noch als künstliche Intelligenz? Denn ich wäre dann einfach nur Intellekt und ich würde sehr lange leben und vielleicht sogar Möglichkeiten finden gänzlich auf Technik zu verzichten welche mein ICH aufrechterhält.

Vielleicht finden wir keine Außerirdische Intelligenz, weil sie so hoch entwickelt ist, das sie garnicht mehr an Materie in unserem Verständnis gebunden ist.

Aber gut... Ich gleite in Scincefiction ab...

Das was wir aktuell als KI ansehen, sind einfach nur Maschinen mit binarer Logik, welche vorhandene Daten abgleichen und rekombinieren.

Keine aktuelle KI könnte ohne von Menschen ersonnene Datenbasis ein wärmenden Feuer anzünden.... (sie könnte nicht mal erklären was Feuer ist) und wenn man den Stecker aus der Steckdose zieht, ist sie einfach nur eine Ansammlung von mehr oder weniger leifähigen Elementen....

...und wenn morgen ein durchgeknallten Diktator eine Atombombe abwirft, sitzen wir wider auf Bäumen und werfen mit Bananen...

...zur Antwort

Nicht die Japaner haben's erfunden es waren wohl die alten Inder.

Ich habe im ersten Beruf Zimmermann gelernt. Ein Job bei dem man um Rechnen und Geometrie nicht vorbei kommt. ...und auch nicht um Tricks.

Das "indisch" Rechnen habe ich von meinem Altgesellen gelernt.

so gehts:

  • https://www.matheknueller.de/indien-magazin.pdf
  • https://www.geo.de/geolino/mensch/2003-rtkl-mathematik-abenteuer-mathe-tricks-der-champions#vedisch-multiplizieren

...und die Sache mit den Linien nenne Japaner "Chinesisch Rechnen" und es funktioniert auch nur mit kleien Zahlen (bei großen Zahlen werden es einfach zu viele Linien)

Auch wenn das beeindruckend erscheinen mag. Man sollte nicht versuchen seinen Kindern diese Tricksereien beizubringen. das könnte zur Konfusion führen. Egal wie zuweilen über unser Bildungssystem schimpfen. Unsere Lehrer kennen solche Sachen auch und lassen den Spaß zurecht weg. (unsere Leherer und Mathematiker sind ja nicht dümmer als ein indischer Bauer)

Die indische Methode ist einen Art Bauernrechnerei (oder wenn man als Zimmerman auf dem Dach hockt und der Bleistift ist runtergefallen😤) welche zwar auf dem Basar mit überschaubaren ganzen Zahlen (bis 100 evtl 000) ganz gut klappt , aber wenn es in Richtung "höhere" Mathematik geht eher hinderlich werden kann.

Die Rechnerei mit den Meisterzahlen (22, 33,..,99) x einstellige Zahl ist ein Präzedenzfall und lässt sich nicht verallgemeinern.

Heute versuchen viele "Videokünstler" ihre Show mit diversen Mathezaubereinen abzuziehen und Klicks zu ergaunern. Die wenigsten sind Ehrlich und sagen dazu, das es sich um spezielle Zahlen/Reihen handelt und der Weg nicht allgemeingültig ist.

Die miese Show mit (schnellem) Wurzeln aufgedeckt:

https://www.tiktok.com/@lernhype/video/7129092547326070021

Bei Wurzeln sollte man den Bleistift einfach nicht vom Dach fallen lassen

  • https://de.wikipedia.org/wiki/Schriftliches_Wurzelziehen
  • https://memocamp.com/de/anleitung/kopfrechnen/wurzelziehen

Da das Verfahren nur ganzzahlige Ergebnisse liefert kann man einfach kleinen Zahlen 2,4,6... Nullen anhängen und im Ergebnis entsprechend das Komma 1,2,3...stellen von rechts setzen.

Wenn sich jetzt jemand fragt wozu ein "Holzwurm" Wurzeln ziehen muss?

Dachstühle daben imme Schrägen und d kommt man am Pythagoras nicht vorbei.

Mal im Ernst, ich konnte zwar Wurzeln von Hand ausrechnen, aber hatte damals meinen kleinen "Mantissa Multi" in der Zollstocktasche.

Bild zum Beitrag

Der konnte mehr als die meisten Taschenrechner.

Damals konnte ich nicht mal ahnen , das ich mal Computer programmieren würde

Andere Länder andere Rechenmethoden...

Ich war '85 in Bulgarien und da recneten die Verkäuferinnen noch mit dem Abbacus auf der Ladentheke...

...zur Antwort

Bist Du Dir sicher, dass das Änderungsdatum aller Dateien nicht älter ist als das mit /d: angegebene Datum. Das heist bei dieser Batch, Dateien welche vor dem aktuellen Tag datiert sind werden ignoriert.

Möglicherweise sind die einige Dateien von anderen Anwendungen geöffnet? dann wird der Zugriff verweigert.

Ich kann das von Dir geschilderte Verhalten nicht nachvollziehen. Bei mir macht die Batch exakt was sie soll. (das nächste Mal den Code bitte als Text in die Codebox</> kopieren. Screenshots abtippen macht keinen Spaß🤮)

...zur Antwort
WIE KANN ICH IN C DAS ◻️und das ◼️ auf der Console ausgeben?

Hab diesen Code geschrieben:

#include <stdio.h>
#include <stdlib.h>
#include "console.h"
#define SIZE 8 // Größe des Schachbretts
char *schachbrett[SIZE][SIZE];// 2D-Array für das Schachbrett
void initSpielfeld();
void ausgabeSpielfeld();
void spielBeenden();
int main() {
initSpielfeld();
initConsole();

        ausgabeSpielfeld();
        getch();
        clrscr();
        gotoxy(0,0);

}
void initSpielfeld(){
    // Fülle das Schachbrett mit den richtigen Symbolen
    for (int i = 0; i < SIZE; i++) { // Zeilen
        for (int j = 0; j < SIZE; j++) { // Spalten
            // Wenn die Summe der Indizes gerade ist, ist das Feld weiß
            if ((i + j) % 2 == 0) {
                schachbrett[i][j] = "◻"; // Weißes Quadrat
            } else {
                schachbrett[i][j] = "◼"; // Schwarzes Quadrat
            }
        }
    }
}
void ausgabeSpielfeld(){
    // Gebe das Schachbrett aus
    for (int i = 0; i < SIZE; i++) { // Zeilen
        for (int j = 0; j < SIZE; j++) { // Spalten
            printf("%s ", schachbrett[i][j]); // Quadrat ausgeben
        }
        printf("\n"); // Neue Zeile nach jeder Zeile im Schachbrett
    }
}

void spielBeenden(){
    return 0;
}

Bei mir kommt da aber immer das raus:

Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝

Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗

Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝

Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗

Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝

Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗

Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝

Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗ Ôù╝ Ôù╗

Aber das ist nicht mein ziel.

Ich möchte einfach nur ein schönes Schachbrett ausgeben.

Kann mir da jemand helfen?

...zum Beitrag

Du verwendest ein Unicodezeichen in einer ASCII-Consolumgebung.

  • https://learn.microsoft.com/de-de/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8?view=msvc-170

Allein die Compileroptionen zu ändern gewährleistet jedoch nicht die richtige Darstellung von UTF8 in einer übergeordneten/aufrufenden Console. Diese muss ggf. für die Darstellung von Unicode explizit eingerichtet werden.

Festlegen der Codepage in der Windowsconsole:

chcp 65001

...für UTF-8

  • https://ss64.com/nt/chcp.html
  • https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/chcp

PS: Der UTF-8 Support der Standard-Windowsconsole (cmd.exe) bzw. Powershell unter Version 6 ist (teilweise) fehlerhaft!

...zur Antwort

Autsch...😱

Du lässt mir die Wahl zwischen Teufel oder Beelzebub 😅.

Ich wähle den Feind

...ohne lange zu überlegen.

So neu ist die Problematik für mich nicht und ehe ich gezwungen bin mich mit einem zerfledderten Fußball oder einem imaginären Freund zu unterhalten, ziehe ich einen "Gegner" vor.

Auf meinen vielen beruflichen Reisen, war es oft der Fall, das ich mir nicht aussuchen konnte, mit wem ich ins kalte Wasser geworfen wurde. ...und weil die Sachen, welche zu lösen waren, nichts für Leute waren die gleich davonlaufen, hatte ich eher starke, "spezielle" Partner . ...und wenn starke Charaktere aufeinander treffen, fliegen fast zwangsläufig erstmal die Fetzen. (Der erste Schritt ist es, klarzustellen das der andere alleine untergeht. Einen Status Quo herstellen)

Um ehrlich zu sein, ich habe oft sogar selbst einen "Gegner" als Partner für ein Projekt gewählt. Gegner befruchten die gegenseitige Entwicklung und sorgen für ein Gegengewicht in heiklen Situationen.

Ein Freud oder Ergebener zieht in die gleiche Richtung wie Du. ...im schlechtesten Fall gemeinsam in den Abgrund.

Wenn due Ressourcen der Insel nur für eine Person reichen, wäre mir natürlich ein Freund lieber, der ist leichter zu erledigen und gibt eine gute Proteinquelle ab.😈

...zur Antwort

HTA Hypertext Applicationen sollte man mit größter Vorsicht genießen.

Die Technologie ist sehr alt und bedient sich eins speziellen Modus des InternetExplorers. mshta.exe ist lediglich ein Wrapper, welcher das IE-Object in diesem "Ausnahmemodus" versetzt.

Im Gegensatz zu HTML-Seiten und deren Code haben HTA vollen Systemzugriff !!!! (auch wenn diese eigentlich den gleichen Code beinhalten)

  • Verwende nie unbekannte HTA oder Dateien deren Code Du nicht verstehst.
  • Auf neueren Systemen werden in naher Zukunft HTA nicht mehr funktionieren

HTA ist Defaultzustand kompatibel zu InternetExplorer 6.2 !!! ...und kann nicht mehr als dieser!

Mit der Zeile:

<meta http-equiv="x-ua-compatible" content="ie=IE9">

...kann man den höchsten KompatibolitätsModus setzen, bei dem <hta:application>-Tag ausgewertet wird.

Wie bekommt man nun die Titelleste weg?
  • https://dotnet.currifex.org/web/articles/hta/

ganz einfach im Application-Tag caption="no"setzen. Aber sorge dafür, das es eine andere Möglichkeit zum schließen des Fensters gibt.

demo.hta

<!DOCTYPE html>
<meta http-equiv="x-ua-compatible" content="ie=IE9">

<title>Testanwendung</title>
<!-- die HTA- Fenstereinstellungen  funktionieren nur bis content="ie=9"  bei "ie=edge"  funktioniert jedoch  HTML5 -->
  <hta:application 
    ID="oHTA"
    applicationname="Testanwendung"
    border="thin"
    borderstyle="static"
    caption="no"    <!-- Titelzeile aus -->
    contextmenu="no"
    icon="no"
    innerborder="no"
    maximizebutton="yes" 
    minimizebutton="yes"
    navigable="no" 
    scroll="no"
    scrollflat="no" 
    selection="no"
    showintaskbar="yes" 
    singleinstance="yes"
    sysmenu="yes" 
    version="1.0"
    windowState="normal" >
<html>
  <head>
  
  <style type="text/css">
    body{
      color: white;  /* global Fontcolor*/    
      background-color: blue; 
    }
  </style>
  
  <script>
  function Window_onLoad() {
    //  Fenstergrößse
    window.resizeTo(800,480);
    //  Fensterposition
    window.moveTo((screen.availWidth-screen.availWidth/2)-100,(screen.availHeight-screen.availHeight/1.5)-100);


    //was  sonst   noch   passiert
    for(  i=0; i<= 9; i++) {
        document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + i +' <br>';
    }
  }
  </script>
  </head>
  <body onload="Window_onLoad()" >

   Das  steht  im HTML geschrieben<br>
   <br>
   <div id="bla"></div>
   <div id="demo"></div>
   <button onclick="window.close()">schiessen</button>
  </body>
</html>

Aus einer Batch kannst d eine HTA einfach mit der Zeile

start "" mshta.exe "c:\demoFolder\demo.hta"

...starten.

Hier ein Funktionierender Fullscreen-Bilbetrachter als Hta-Hybrid-Batch (funktioniert mit lokalen Bildern und OnlineAdressen):

demo.cmd

<!-- : Begin batch script  diese Zeile  nicht verändern!
@echo off


  rem aufruf            :   Bildadresse Local oder Online                       optional: cover | contain (default) | inherit| auto| Prozentangaben: 50%% oder 100%% 100%%      https://www.w3schools.com/cssref/css3_pr_background-size.asp
start "" mshta.exe "%~f0" "https://img2.dreamies.de/img/766/b/f2wn56r4me2.jpg"          "cover"


  rem Beispiele
::::start "" mshta.exe "%~f0" "N:\fotos\my.png"
::start "" mshta.exe "%~f0" "C:\Users\Erzesel Secure\Desktop\Esel Target.gif" "50%% 50%%"
::start "" mshta.exe "%~f0" "https://img2.dreamies.de/img/766/b/f2wn56r4me2.jpg" "auto"


  rem ab hier beginnt der Bildbetrachter nichts verändern, wenn Du nicht wirklich weißt was Du tust! 
exit /b
::exit /b prevent's the Batch from parsing the leftover of the batchfile
::after the next line begins the HTML/HTA itself
-->

<!DOCTYPE html>
<meta http-equiv="x-ua-compatible" content="ie=9">

<title>Testanwendung</title>
<!-- die HTA- Fenstereinstellungen  funktionieren nur bis content="ie=9"  bei "ie=edge"  funktioniert jedoch  HTML5 -->
  <hta:application 
    ID="oHTA"
    applicationname="HTA_PictureView"
    border="none"
    borderstyle="none"
    caption="no"
    contextmenu="no"
    icon="no"
    innerborder="no"
    maximizebutton="no" 
    minimizebutton="no"
    navigable="no" 
    scroll="no"
    scrollflat="no" 
    selection="no"
    showintaskbar="yes" 
    singleinstance="yes"
    sysmenu="no" 
    version="1.0"
    windowState="maximize">
<html>
  <head>
  <style type="text/css">
    html,body{
      margin: 0px;
      height: 100%;
    }
    
    body{
      color: green;  /* global Fontcolor*/
      background-color: #000000;
      background-image: url("");
      background-position: center; 
      background-repeat: no-repeat;
      background-size: contain;
    };
  </style>
  </head>

  <body onload="Window_onLoad()" >
      <!--//hidden Button at top left Corner , a little darker as the picture-->
    <div style="background-color:rgba(0, 0, 0,0.05); width:30px; height:30px" id="aus" onclick="window.close()"></div>


  <script>
  function Window_onLoad()
  {
     //Cursor nach 1 Sekunde  ausblenden
    HideCursor(1000);
    if(typeof oHTA.commandLine !== "undefined")
    {
       //das Handling der HTA-Kommandozeile  war schon 2005 ein Horror 
       //teile die Kommandozeile einfach an den Quotes
      argv=oHTA.commandLine.replace(/" *"/g,'"').split('"');
      if ( /^\s*$/.test(argv[2]) ) {
        alert ('kein Bild als 1. Parameter in der Kommandozeile: \r\n'+oHTA.commandLine)
        window.close()
      }
      document.body.style.backgroundImage = 'url("'+argv[2].replace(/\\/g,'/')+'")'; //wandle Backslashes in Forwardslashes (Webschreibweise)
      if ( !(/^\s*$/.test(argv[3])) ) {
        document.body.style.backgroundSize = argv[3];
      }
    } 
  }
  function HideCursor(idleTime) 
  {
      var mouseTimer = null, cursorVisible = true;
      function disappearCursor()
      {
          mouseTimer = null;
          document.body.style.cursor = 'none';
          cursorVisible = false;
      }
      document.onmousemove = function()
      {
          if (mouseTimer) 
          {   window.clearTimeout(mouseTimer);}
          if (!cursorVisible)
          {
              document.body.style.cursor = 'default';
              cursorVisible = true;
          }
          mouseTimer = window.setTimeout(disappearCursor, idleTime);
  }   };
  
  </script>


  </body>
</html>
zum schließen links-oben das etwas abgedunkelte Feld klicken!
  • https://www.gutefrage.net/frage/png-in-full-screen-anzeigen-in-cmd#answer-379283219
  • https://www.gutefrage.net/frage/wie-mache-ich-einen-moeglichst-guten-fake-bsod-blue-screen-of-death#answer-338569099
Meine wohl am meisten replizierte HTA/Batch:
  • https://www.gutefrage.net/frage/lustige-cmd-befehle-ausser-shutdown--s--t-120#answer-311223416
...zur Antwort

vor ca. 5 Stunden hat Dir jemand gezeigt was zu tun ist :

  • https://www.gutefrage.net/frage/sonoma-on-virtual-box#answer-539826889

dem zufolge handelt es sich um eine zusammenhängende Zeile...

VBoxManage setextradata "macOS Sonama" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"

...das diese optisch lediglich ungünstig umgebrochen wurde lässt den dritten Parameter lediglich als solitären Befehl erscheinen.

schon eine schwache Kür, das Du weder aus dem Video noch von der verlinkten Seite einigermaßenen fehlerfrei abschreiben/kopiern kannst.

...zur Antwort
Projektumsetzung mit VB-Script. Ich komme nicht weiter kann mir jemand helfen?

Ich habe mich für eine Ausbildung zum Fachinformatiker für Anwendungsentwicklung beworben und habe nun ein Probeprojekt zu bearbeiten. Leider komme ich nicht weiter und suche nun, nach dem ich bereits fast alles andere probiert habe, hier nach Hilfe. Hier meine Aufgabenstellung:

"Erstelle ein Programm, welches eine feste Anzahl von Zufallszahlen in eine Datei schreibt.

Erstelle das Programm als VB-Script.

Die Zufallszahlen sollten als Binärdaten in die Datei geschrieben werden. Das Programm soll zu Beginn eine Benutzereingabe anfordern, wie viele Bytes an Zufallszahlen in die Datei geschrieben werden sollen. Der Name und Speicherort der Datei soll als Konstante im Programm hinterlegt werden.

Überprüfe den Inhalt der durch das Programm erstellten Datei mit einem Hexadezimaleditor. Achte darauf, dass die Zahlen nicht als Text, sondern als Binärdaten in die Datei geschrieben wurden. Die einzelnen Bytes in der Datei müssen zufällige Werte im Bereich von 0x00 bis 0xFF aufweisen.

Zähle zur Kontrolle die Anzahl der Vorkommen jedes einzelne Wertes in der erstellten Datei, erweitere dazu Dein Programm.

Bei eine Zufallszahlendatei mit 100.000 Bytes sollte jedes Byte durchschnittlich etwa 390 Mal vorkommen.

Gib eine Liste der Werte und ihrer Anzahl in eine separate Textdatei aus."

Ich habe bereits versucht mich zu informieren und habe auch ein Hexadezimaleditor (HxD) heruntergeladen.

Wenn irgendjemand weiß wie ich nun am besten vorgehen kann oder mir bei dieser Aufgabe behilflich sein kann, wäre das eine große Erleichterung. Ich weiß leider wirklich nicht mehr weiter.

Vielen Dank im Vorraus!

 

 

...zum Beitrag

Ich habe keine Ahnung warum Irgendwer heute och auf VBScript setzt.

Die Sprache wird seit 2009 nicht mehr weiterentwickelt und wird in kürze komplett aus dem System verschwinden. Sie heute noch zu verwenden grenzt an Leichenfledderei!

und suche nun

...da kannst Du lange suchen😅

Klassisches VBScript ist nur mit sehr viel Trickserei/Missbrauch dazu fähig.

VBScript kennt weder Bytearray noch Binärdateien! Man Kann mit "Fremdobjekten" wie ADODB.Stream arbeiten, dies setzt natürlich voraus, das Diese auch im System vorhanden sind.

Zur Not kann man einen String als Behälter für einzelne Bytes/Chars verwenden. ..diesen mit der gewünschten Anzahl von zufälligen ASCII-Zeichen von 0 bis 255 füllen und anschließend in eine Datei schreiben.

...also fleddere ich mal die Leiche...:

create_random_bin_file.vbs

Input = InputBox("Enter number of Bytes to write")
'ich  verzichte auf  einen Check ob der Input eine Zahl  ist

Dim arrReportBytes(255)  'array  zum  zählen des auftretens der einzelnen zufälligen Werte
Dim myBinaryString  'fake ByteArray
Dim byteValue

'mit 0en füllen...
For n=0 To 255
  arrReportBytes(n) = 0
Next

'los  gehts...
Randomize
For n=1 To Input
   byteValue = int(Rnd*( &H0FF +1))  'zufälliger  Wert  von 0 bis 255 (0x0FF)  !!!cint()/clong() runden falsch!!! int()  rundet ab,  darum +1)
   myBinaryString = myBinaryString & Chr(byteValue) 'hänge das ASCII-Zeichen mit dem Wert an den String an

   arrReportBytes(byteValue) = arrReportBytes(byteValue) +1  'zähle  das  Auftreten  des Wertes
Next

Set FS = CreateObject("Scripting.FileSystemObject")
Set TextStream = FS.CreateTextFile("test.binary")
  'schreibe das so erzeugte falsche "Array" 
TextStream.Write myBinaryString
TextStream.Close


Set ReportFile = FS.CreateTextFile("Report.txt")
For n=0 To 255
  ReportFile.WriteLine "Wert: 0x" & Hex(n) & " existiert " & arrReportBytes(n) & " mal."
Next
ReportFile.Close


MsgBox("Fertich...")
  • https://ss64.com/vb/
  • https://ss64.com/vb/syntax.html
  • https://www.robvanderwoude.com/vbstech.php
...zur Antwort

edit: Powershell kann normal nur mit Dateien bis 2 GB arbeiten desshalb bitte keine 6GB-Monster anbieten (evtl beim ersten lauf vorher von hand kürzen

Textdateien Lassen sich am einfachsten Zeilenweise verarbeiten. Ich mache mir deshalb nicht die Mühe irgendwie mit einer festen Anzahl von Restzeichen zu arbeiten. Soundsoviele Zeilen der Logs werden behalten und gut is.

Wie ich annehme sollen lediglich die letzten X Zeilen behalten werden.

Im folgenden Powershell-Script werden die im Angegebenen Ordner befindlichen Dateien mit der Extension .log ermittelt. Wenn Dateien größer als 1MB sind, wird werden diese Eingelesen und nur die letzten $NewSize_Lines Zeilen wieder zurückgeschrieben. Wieviel Zeilen Du behalten möchtest kannst Du in der 3 Zeile festlegen.

demo.ps1

$WorkPath='C:\Users\bubb\woauchimmer\Log'
$MaxSize = 1MB
$NewSize_Lines = 1000 #die neue Zielgröße in Zeilen angeben, Logs sind Zeilenorientiert!

Get-ChildItem -Path $WorkPath -Filter '*.log'|
  Where-Object {$_.Length -gt $MaxSize} |
  Foreach-Object{
    Write-Host $( 'Found File: {0} Size: {1:F2} MB'-f $_.Name,($_.Length / 1MB)) -ForeGround red
    $LogText = Get-Content $_ |
      Select-Object -Last $NewSize_Lines  #nur die letzten x Zeilen behalten
    $LogText >$_ #in Datei zurück schreiben
    Write-Host $( 'New Size: {0:F2} MB'-f ((Get-Item $_).Length / 1MB)) -ForeGround green
  }
pause

wenn Du die ersten x Zeilen behalten möchtest, ändere Zeile 10 zu:

 Select-Object -First $NewSize_Lines 

Bevor Du das Script testest, lege bitte ein Backup (Kopie) deines Logordeners an. Ich habe leider keine Möglichkeit das Script unter den Bedingungen Deines Rechners zu testen.

wenn alles bei manuellem Start funktioniert kannst Du obiges Script auch als HybridBatch im Autostartordner ausführen.

demo.cmd ( Powershellteil gekürzt)

<# : Batch Abschnitt Zeile nicht ändern
start "" /min powershell "iex (gc '%~f0' -Encoding UTF8 -Raw | out-string)"
exit /b
: #>

$WorkPath='C:\hier dein ordnerPfad'
dir -Path $WorkPath -Filter '*.log'|
  ?{$_.Length -gt 1MB} |
  %{
    $LogText = gc $_ | select -Last 1000
    $LogText >$_ 
  }
...zur Antwort

Ich war mehr als 1/3 meines Lebens in der "Fremde" unterwegs. Mancherorts habe ich für einige Zeit Wurzeln geschlagen und manchmal war es nur ein "Gastspiel" auf Zeit. Ich habe Fremde Kulturen, Menschen und Sitten kennen und gelegentlich auch lieben gelernt. ...und sehr selten war es auch angeraten , ganz schnell "weiterzuziehen" .

Auf diese Weise kann man natürlich am besten Vergleiche ziehen...

Ich lese sehr oft pessimistische Meinungen, wenn es um Deutschland geht oder das Gegenstück übertriebenen törichten Nationalismus , Lokalpatriotismus. In der Regel kommt Dergleichen von Leuten, die noch nie die Sichtweite des heimischen Kirchturms verlassen haben und bestenfalls gelegentlich "Fremde" als Turistenspektakel für zahlende Kunden "vorgespielt" bekamen.

Wenn man keinen Vergleich hat, ist entweder alles Mies oder Toll.

Auch wenn es gelegentlich hier und da hapert und verbesserungswürdig ist, so finde ich unser Gesundheitssystem als etwas, was ich vorrangig positiv mit Deutschland assoziiere. Nur in sehr wenigen Ländern dieser Welt, kann man, einfach so beim Arzt sein Kärtchen auf den Tresen legen und bekommt eine umfassende Behandlung und fast kostenlos die nötigen Medikamente/Behandlungen.

Negativ assoziere ich , die Nörgelei vieler Menschen, wenn mal etwas nicht optimal läuft und die steife, lahmarschige, zuweilen unfreundliche Bürokratie. Da könnte sich Deutschland von anderen Länder und deren Bürgern eine Scheibe abschneiden .

In Sachen Brot schließe ich mich Dir an, da ist Deutschland wirklich unschlagbar. (oft habe ich für meine "ausländischen" Kollegen Bäckerbrot aus Deutschland mitgebracht, weil auch die recht schnell auf den Geschmack kamen)

Was Pünktlichkeit, Verlässlichkeit und Präzision angeht, so war dies ein wesentlicher Charakterzug den man in der Fremde an Leuten wie mir schätzte. (Egal, ob "der Weltuntergang" drohte, wenn ich Morgens 7:00 anwesend sein sollte, war ich auch da... und wenn die Arbeit beendet war musste niemand kontrollieren ob diese fachgerecht ausgeführt war... , ein kurzer Fingerzeig des Chefs auf den "Deutschen" und der Prüfer verschwand ohne nochmal hinzuschauen)

Mit meinen Erlebnissen könnte ich ganze Bücher füllen. Ich habe ganz viele tolle Menschen getroffen und oft gelernt mit deren Augen die Welt zu sehen. ...oder mich mit den kleinen und großen Unzulänglichkeiten zu arrangieren...

Warum bin ich dann wieder nach Leipzig zurückgekommen und lebe nun dort schon einige Jahre?

There is no place like home

Wenn das Gejammer in vielen Antworten lese, frage ich mich, was diese Leute hier hält? Man kann ohne Probleme überall in der EU seinen Wohn- und Arbeitsort frei wählen. Als Inhaber eines Deutschen Passes ist es auch relativ einfach als "Resident" in den meisten Ländern dieser Erde zu leben-/arbeiten.

Und wenn man einige Jahre die Welt erlebt hat, wird man Deutschland ganz anders assozieren.

...zur Antwort
... und ich sag mal legale Sachen. 

Was erwartest Du denn? Das Dir eine KI eine Anleitung zum Bombenbau liefert?

Für illegale Sachen wirst Du wohl auf due gute alte Art suchen müssen...

Ja es gibt etwas Besseres als ChatGPT...

...Den eigenen Verstand benutzen.

Ich finde es erschreckend, was aktuell abläuft. KIs werden inzwischen schon fast als allwissend angesehen .

Dabei ist bekannt, dass diese zu Fehlern neigen. Keine KI gibt Auskunft über die Quellen, aus denen sie ihre Kenntnisse bezogen hat und auch nicht über die Gründe für ihre Schlussfolgerungen.

Für jeden Bericht, jede Dokumentation, jede These wird selbst von einem Menschen mit drei Doktortiteln eine Begründung und die Angabe von Quellen erwartet.

Ich habe nichts gegen die Nutzung von KI zum Ausführen von Rotineaufgaben und dem Erstellen von zeitrauhenhden Analysen. ...oder Rekombination von Daten.

Ich ziehe für Recherchen noch immer die klassische Suche vor, dann sehe ich wer welche Lösung in welchem Kontext geliefert hat und wie alt die Daten sind. Es macht durchaus einen Unterschied, ob irgendein Tölpel die tausendste Kopie eines uralten Fragments liefert oder ein auf seinem Gebiet bekannter Fachmann die optimalste Lösung propagiert.

...zur Antwort