Beiträge von Racer

    Hallo Alina!


    Kein Problem, ist eh ein recht kurzes Script:


    Hallo!


    Ich habe ein kleines Hilfstool geschrieben um mir ein Textfile aus dem Internet zu laden - nichts aufregendes!

    Dazu verwende ich $ret = InetGet ($URL, $temp, 3, 0) - so weit -so gut - funkt ja alles, aber genau das verstehe ich nicht!


    In der Arbeit habe ich nur die Möglichkeit via UA-Proxy ins Internet zu gehen. Ich habe aber nie eine Proxyangabe in meinen Script gemacht ?(


    Gibt es dazu eine Erklärung? Nicht das ich mich Aufregen will das mal was funktioniert, aber ich hätte es gerne verstanden....


    lg

    Racer

    Hallo!


    Habe das Script so wie Du es beschrieben hast laufen lassen: sehe aber keine großen Unterschiede ob die zwei Zeilen jetzt remarkt sind oder nicht!


    Ergebnisse:

    Benchmark Result
    _01 4828ns +30.5% ->| int32 bitand & bitshift
    _02 4195ns +13.4% ->| int32 bitand & bitshift (array als int)
    _2A 4073ns +10.1% ->| int32 bitand & bitshift (ternärer operator umgestellt, array als int)
    _2B 3701ns +0.0% ->| int32 bitshift & bitand (array als int)
    _2C 3778ns +2.1% ->| int32 bitshift & bitand (array als int)
    _2D 3940ns +6.5% ->| int32 bitshift & bitand (array als int)
    _03 6155ns +66.3% ->| int32 stringoperationen (array als int)
    _04 4549ns +22.9% ->| int32 stringoperation für Alpha, rest bitoperationen (array als int)
    _05 4585ns +23.9% ->| int32 struct (byte[4] access index, array als int)
    _5A 5245ns +41.7% ->| int32 struct (byte;byte;byte;byte access element, array als int)
    _5B 4762ns +28.7% ->| int32 struct (byte[4] access index via name, array als int)


    Benchmark Result
    _01 4826ns +30.7% ->| int32 bitand & bitshift
    _02 4187ns +13.4% ->| int32 bitand & bitshift (array als int)
    _2A 4062ns +10.0% ->| int32 bitand & bitshift (ternärer operator umgestellt, array als int)
    _2B 3692ns +0.0% ->| int32 bitshift & bitand (array als int)
    _2C 3765ns +2.0% ->| int32 bitshift & bitand (array als int)
    _2D 3947ns +6.9% ->| int32 bitshift & bitand (array als int)
    _03 6161ns +66.9% ->| int32 stringoperationen (array als int)
    _04 4557ns +23.4% ->| int32 stringoperation für Alpha, rest bitoperationen (array als int)
    _05 4577ns +24.0% ->| int32 struct (byte[4] access index, array als int)
    _5A 5240ns +41.9% ->| int32 struct (byte;byte;byte;byte access element, array als int)
    _5B 4753ns +28.7% ->| int32 struct (byte[4] access index via name, array als int)


    lg

    Racer

    Hallo!


    Nachdem ich mich schon sehr viel mit WinPE beschäftigt haben (deployment von OS) kann ich Dir zwei Dinge dazu sagen:

    1.) Es gibt keinen Bildbetrachter unter WinPE (wozu auch)...Du solltest die die Grafik an ein Programm übergeben. Ein einfaches (älters) Portable-APP dafür verwenden. Damit hast die immer noch die besten Chancen das es funktioniert!

    2.) GDI oder auch GDI+ wird mit hoher wahrscheinlichkeit nicht funktionieren. Unter WinPE fehlen zu viele Schnittstellen und das halbe Windows das aber viele Programme vorraussetzen.


    Ich weiß zwar nicht ganz was Du in einem PreEvenementen für Bilder anzeigen lassen willst, aber vielleicht kommst Du in Deinem Projekt weiter wenn Du das PE mit Winbuilder etwas "aufbohrst". Dann hättetst Du auch unter 64Bit eine 32Bit-Umgebung...


    lg

    Racer

    Man(n) kann ein AutoIT-Programm als echtes Services laufen lassen? Dachte immer das es vom Kompiler her abhängt so das das Programm ein net start... versteht!

    Ich kenne nur srvany (uraltes MS-Tool) mit dem selbsterstellte ausführbare Programm die keine Userinteraktion haben als Service laufen lassen kann!


    Um bei der ursprüngliche Frage auch was beizutragen: Als "Autostart" würde ich es nicht eintragen - hier gibt es massive Sicherheitslücken. Selbst als Task im Userkontext kann man mit Boardmittel das Kennwort des Users herausfinden.


    lg

    Racer

    Wenn Du schon ein externes Programm verwendest warum wertest Du nicht den Errorlevel aus?


    Für das CMD:

    reg import mein.reg

    echo %errorlevel%


    oder wenn Du es in einem Zug haben möchtest:

    reg import mein.reg && echo %errorlevel% >meins.log


    lg

    Racer

    Hallo!


    Die Variablen sind hirachisch und werden dann vererbt:


    System -> User -> Prozess


    Beispiel: Ist im System der path definiert und im Userumfeld nicht wird er vererbt. Hier kann ich dann aber als Benutzer etwas verändern das aber nicht zurückgegeben wird ans System.


    Du bist eh am richtigen weg:


    * cmd aufmachen und set a=1 setzten (Der Prozess hat jetzt eine zusätzliche Variable a bekommen mit dem Wert 1)

    * aus der cmd mit start cmd ein weiters Dos-Fenster (ja, ich sag immer noch Dos-Fenster auch wenn es keines mehr ist) aufmachen und Du wirst die Variable A mit dem Wert 1 dort finden (vererbt). Wenn Du diese jetzt veränderst set a=2 denn ist sie nur für diesern Prozess gültig.

    * aus dem ersten cmd wieder ein start cmd machen und die Variable a prüfen. Du wirst feststellen das diese dort den Wert 1 hat


    Warum? Der "Subprozess" liefert das nicht zurück. Meistens ist das gut so, manchmal ärgerlich. Aber stell Dir vor Du könntest als Benutzer den path ändern und das schreibt sich bis zum System zurück. Windows würde w.o. geben....


    lg

    Racer

    Ich weiß nicht, ob man den negativen Desktopbereich capturen kann (also Browser aus dem sichtbaren Bereich verschoben). Falls ja, wäre das eine Lösung.

    Ansonsten - hast du evtl. einen alten Monitor, den du zusätzlich anschliessen kannst? - Browser darauf verschieben und er stört nicht mehr. Da könntest du sogar einen alten Monitor mit defekter Darstellung nehmen, es wird ja das Signal, das zum Monitor geht abgegriffen unabhängig von dem, was er anzeigt.


    Du musst nicht mal einen Monitor angeschlossen haben. Man kann die Auflösung auch "ohne Hardware" fixieren...aber die Lösung ist schon sehr kreativ :/


    Was aber gehen kann und auch nicht stört: Du steigst auf Deinen Client ein zweites Mal ein (andere Benutzer), quasi wie auf einen Terminalserver. Dort startest Du alles (Google Chrome der alle Minuten was wegspeichert,....was auch immer) per Hand oder auch automatisch und dann trennst Du die Stitzung (nicht beenden)!

    Damit hast Du zwei Sessions, die eine auf der Du arbeitest (Console) und die andere auf wo Deine Bilder erzeugt werden )RDP).


    lg

    Racer

    Ja, genau das verwende ich! Einfach das Signtool von der Microsoft!


    Ok, zugegeben, so einfach war das auch nicht, aber ich habe da zu eine Lösung: Im SDK von der MS (Visual Studio) ist das Signtool.exe (+ alle DLL und andere Programmteile) enthalten.

    Da ich nicht alles installieren wollte, habe ich mir die Dateien extrahiert und einen Programmordner gepackt (wir haben Applocker im Einsatz und damit ist es nicht so einfach irgendwelche Programme auszuführen). Damit habe ich quasi das Signtool als portable App umgebaut.


    Schritt zwei war eine Ausnahme (Virenscanner) für einen Ordner in dem meine Programme gespeichert sind - dieser liegt ganz bewusst nicht unter meinem User (c:\users\...\dokumente) da hier wieder der Applocker das verhindern würde. In meinen Fall ist es eine andere Disk - kann aber auch ein andere Ordner sein.


    Schritt drei: man braucht eine Code Signer Zertifikat! Ich habe eines von meiner Firma dass aber nicht öffentlich ist (wir haben eine eigene CA) - das ist aber nicht so schlimm, den durch die Signierung entsteht ein andere Hashwert und die Virenscanner stellen fest "der hat ja ein Zertifikat, kenne ich zwar nicht aber hmmm....lassen wir die EXE mal leben":)


    Signieren tue ich das über die Commanline per Batchjob: sign.lnk (verweist auf den Batch im Programmordner) meinAutoItProgramm.exe. Warum das über einen Link und nicht direkt? Ganz einfach: Applocker läßt unter anderem Programm nur zu wenn sie unter c:\program files bzw c:\program files(x86) liegen. So kann ich das Programm von dort aufrufen und die mit AutoIt erstellte EXE "übergeben" ....das alles muss bei mir immer mit Benutzerrechte funktionieren (Firmenvorschrift)!


    Am Ende sieht das dann so aus: siehe sign.jpg

    (ich habe das von zu Hause aus geschrieben und damit ist das Zertifikat nicht gültig)


    Lade ich die Datei auf Virustotal wird die Datei "nur" mehr von 2 Virenscanner als "Virus" eingestuft...die meisten bekannten Virenscanner geben sich aber damit zufrieden: siehe virustotal.jpg


    Wenn interesse besteht kann ich gerne die notewendigen Programmteile vom Signtool zusammen packen und hochladen - ist nicht so viel! Ein Zertifikat kann man entweder von seiner Firma bekommen oder sich selbst ausstellen: z.B.: mit der XCA (https://hohnstaedt.de/xca/)


    lg

    Racer