1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. misterspeed

Beiträge von misterspeed

  • Hoher Datenspeicherverbrauch

    • misterspeed
    • 4. Mai 2021 um 20:04

    autoBert

    https://answers.microsoft.com/de-de/msoffice…77-a8cc09f5e6d9

    https://answers.microsoft.com/de-de/msoffice…08-71435482b8d2


    Lizenzschlüssel und / oder Microsoft Konto mit dem ursprünglich mal aktiviert wurde sollte ja vorhanden sein.

  • Automatisches Windows herunterfahren bei Uhrzeit

    • misterspeed
    • 28. April 2021 um 06:42

    Normalerweise bietet solche Software selbst eine Option um nach Abschluß der Aufgabe Aktionen wie "Programm beenden" oder "Computer herunterfahren" durchzuführen. Eine feste Uhrzeit ist jedenfalls wenig sinnvoll, da wie bereits erwähnt wurde für Windows oder Autoit nicht bekannt ist ob zu diesem Zeitpunkt bereits alle Aufgaben abgeschlossen wurden. Würde dir daher die Dokumentation deiner Rendering Anwendung empfehlen, denn das ist mit Sicherheit zuverlässiger als über externe Software herauszufinden ob alles erledigt ist.

  • Anfängerfrage -> Mausklick simulieren ohne Pos

    • misterspeed
    • 20. April 2021 um 06:29

    Bzgl. Schritt 2 (Ausdruck der PDF):

    Dafür brauchst du normalerweise auch keine GUI Automatisierung eines PDF Viewers. Siehe z.B. hier https://www.autoitscript.com/forum/topic/16…ntly-print-pdf/

    Allerdings landet der Shellexecute Aufruf standardmässig beim Default Drucker des Benutzers. Daher wird im obigen Thread Sumatra erwähnt (portabler PDF Viewer, der scheinbar mit commandline Befehlen auch auf beliebigen anderen Druckern drucken kann).

    Alternativ könnte man mit Autoit aber sicher auch den aktuellen Standard Drucker ermitteln, auf einen anderen wechseln und danach wieder zurückstellen. ;)

  • Anfängerfrage -> Mausklick simulieren ohne Pos

    • misterspeed
    • 19. April 2021 um 19:59

    Und welche Webapplikation ist das? Handelt es sich um die Webseite eines Logistikunternehmens wie DHL, UPS, TNT usw. oder ist das ein anderes Produkt?

    Hintergrund der Frage:

    Sicher kann man Webseiten automatisieren indem man Benutzeraktionen wie Mausklicks simuliert. Sehr viel einfacher, zuverlässiger und performanter geht das aber, wenn die Webseite eine API für genau solche Zwecke bereitstellt. Dann reichen im Idealfall wenige Zeilen Text direkt an den Webserver ohne lahmen Browser dazwischen, damit er dir das gewünschte Dokument bereitstellt.

  • Dateitypen für eigenes Programm registrieren

    • misterspeed
    • 5. März 2021 um 20:59

    Zwar etwas OffTopic, aber wer schonmal den Acrobat Reader genutzt hat hat sicher schon den sehr ungewöhnlichen Workaround von Adobe gesehen um den Acrobat Reader zum Standardprogramm für PDF Dateien zu machen. Hab mich schon sehr lange gefragt wieso eine große Firma wie Adobe auf solche Tricks zurückgreifen muss und die notwendigen Registry Schlüssel nicht einfach selbst setzt.

    Adobe umgeht das Problem durch Anzeigen des Dateieigenschaftenn Dialogs einer mitgelieferten PDF Datei und fordert den User dann zum anklicken des "Ändern" Buttons bei "Öffnen mit" über eine Overlay GUI auf. Scheinbar ist das die einzigste zuverlässige Methode für PDF Dateien, andernfalls hätte man das sicher nicht so primitiv bei Adobe gelöst.

    Aber auch das Setzen des Standard Browsers scheint nicht ganz so simpel zu sein. Firefox öffnet dafür einfach den Dialog von Windows in dem die Standard Apps festgelegt werden können.

    Microsoft hat hier definitiv Hürden eingebaut, die es so in früheren Windows Versionen nicht gab.

  • Script stoppt wenn Notebook aus Docking-Station gezogen wird

    • misterspeed
    • 4. März 2021 um 08:37

    Nunja, aber Schwachpunkt daran ist doch, dass du so auf jedem Gerät die Termine pflegen müsstest oder wie ist dein Plan für die Synchronisierung zwischen den Geräten? Deswegen bietet sich hier eben eine cloudbasierte Lösung an, z.B. über dein sicher bereits vorhandenes Smartphone.

    Klar mit Autoit hat das dann nix mehr zutun und hilft dir nicht wirklich bzgl. Erfahrung im Programmieren sammeln. Dennoch ist es eben die bessere Lösung. Wenn du mit Autoit vergleichbares erreichen willst wird das ein sehr aufwendiges Projekt, welches dich vermutlich überfordert.

    Aber zurück zum Standby Problem... schonmal getestet ob das Script auch dann den Betrieb einstellt, wenn du auf sleep verzichtest?

    Eine Möglichkeit wäre z.B. timerinit() / timerdiff() oder AdlibRegister() und das Makro @hour zu verwenden.

  • Script stoppt wenn Notebook aus Docking-Station gezogen wird

    • misterspeed
    • 3. März 2021 um 22:36

    Wenn das Script nur 2x am Tag eine Erinnerung anzeigen soll macht es kaum Sinn dieses permanent laufen zu lassen. Stattdessen würde ich einfach die Windows Aufgabenplanung nutzen und das Script zu den gewünschten Uhrzeiten aufrufen lassen. Vorteil is hier auch, dass die Windows Aufgabenplanung verpasste Programmstarts nachholen kann wenn der Rechner zur fraglichen Zeit gerade im Standby oder gar aus war. Dein Script müsste beim Start dann nur noch ermitteln ob es "morgens" oder "abends" ist und die entsprechende Meldung anzeigen, danach wird es beendet und Thema erledigt.

    Aber davon mal ab wurden für sowas Kalender Serientermine erfunden, sowohl auf dem Smartphone, als auch in Email Clients am PC.

  • Pfad und Dateiname aus Variablen zusammenbauen

    • misterspeed
    • 19. Februar 2021 um 18:47
    Zitat von SEuBo

    Oder statt mit StringFormat, was ich immer etwas kryptisch finde, einfach mit StringRight.

    StringRight("00000" & $iZahl, 5)

    Stringformat ist in der Tat schrecklich... nie wirklich selbst abseits von fertigen "Pattern" benutzt und neulich zum ersten mal mit der doch etwas umfangreicheren Doku beschäftigt. Per Stringright gehts natürlich auch. ;)

  • Pfad und Dateiname aus Variablen zusammenbauen

    • misterspeed
    • 17. Februar 2021 um 21:53

    Da geb ich @Musashi recht.

    Dennoch zu deinen Fragen:

    1. Um einen String zum Beispiel mit 0 aufzufüllen verwendet man die Funktion stringformat()

    Beispiel:

    AutoIt
    $sData = "2"
    $sDataFormated = StringFormat("%+03s",$sData)
    
    ConsoleWrite($sDataFormated & @CRLF)
    
    Exit

    2. Das Problem mit der Dateiendung könntest du komplett umgehen, wenn du statt irgendwelchen Edits und Usereingaben einfach einen FileOpenDialog() verwenden würdest. Hier kann der User dann einfach die gewünschte Datei auswählen.

    3. Falls du das weiterhin so tun möchtest verwende einfach if Bedingungen für beide Dateiformate

    AutoIt
    Func Dateioeffnen()
    $gem = GuiCtrlRead($idgem)
    $fl = GuiCtrlRead($idfl)
    $rnr = GuiCtrlRead($idrnr)
    $sImageFileName = "D:\TESTUMGEBUNG\Archiv\" & $gem & "\" & $fl & "\" & $gem & "_N_" & $fl &"_" & $rnr ; nur der Name!
    If FileExists($sImageFileName & ".tif") Then
        ShellExecute($sImageFileName & ".tif")
        If @error Then Exit MsgBox(BitOR(4096, 16), "Fehler : ", "ShellExecute fehlgeschlagen !" & @CRLF)
    Else
        If FileExists($sImageFileName & ".jpg") Then
           ShellExecute($sImageFileName & ".jpg")
           If @error Then Exit MsgBox(BitOR(4096, 16), "Fehler : ", "ShellExecute fehlgeschlagen !" & @CRLF)
        else
           MsgBox(BitOR(4096, 16), "Fehler : Datei nicht gefunden", $sImageFileName & @CRLF)
        endif
    EndIf
    endfunc
    Alles anzeigen

    Obiger Code ist natürlich grausam und kann auch massivst verkürzt werden, insbesondere wenn du noch mehr Dateiendungen abdecken willst macht das auf diese Art wenig Sinn.

  • Pfad und Dateiname aus Variablen zusammenbauen

    • misterspeed
    • 17. Februar 2021 um 21:09

    Sagen wir mal besser.

    1. Es bringt dir nichts ein Edit Feld direkt nach der Erstellung auszulesen, denn da ist es ja noch leer. Du musst es schon auslesen nachdem der Benutzer etwas reingeschrieben hat (z.B. wenn er den "öffnen" Button drückt).

    2. Die Variable $idEditProjekt ist ebenfalls leer und ungenutzt, deine Zeilen zum Ändern der Schrift bringen also rein garnichts

  • Pfad und Dateiname aus Variablen zusammenbauen

    • misterspeed
    • 17. Februar 2021 um 20:36

    1. Du verwendest die Variable $rnr garnicht, sondern deklarierst sie nur, vermutlich willst du den Inhalt des Editfeldes $flst

    2. In den Variablen $gem, $fl und $flst sind nicht die Werte gespeichert, welche du in das Edit einträgst, sondern die ControlID, also eine eindeutige ID mit der du das GUI Control auslesen, bearbeiten oder auch verschieben kannst.

    3. Um den Inhalt eines Controls auszulesen verwendet man die Funktion guictrlread()

  • Systemweit ermitteln, ob ein "(" per Tastatur eingegeben wurde - UNABHÄNGIG vom Tastaturlayout

    • misterspeed
    • 8. Februar 2021 um 21:55

    Nun lass mich mal eben zusammenfassen welche Dinge du hast:

    1. Du hast einen funktionierenden Keylogger und kannst für jeden Tastendruck den vKey ermitteln

    2. Du hast eine Funktion um das gesetzte Keyboard Layout auszulesen und vermutlich wäre es auch simpel das Keyboard Layout auf beliebige andere Sprachen in einer Testumgebung festzulegen

    3. Du kannst prinzipiell die geloggten vKeys in ein eigenes Textfenster umleiten oder ggf. auch automatisiert alle 255 vKeys senden um diese mit dem gesuchten Zeichen "(" abzugleichen

    Daraus ergibt sich, dass du eine vKeyMap und Zuordnung zum Keyboardlayout automatisiert für hunderte Sprachen vorab erstellen und für spätere Wiederverwendung in deinem oder weiteren Scripten speichern könntest.

    Der einmalige Aufwand und Dauer solch eine Tabelle zu generieren dürfte sich in Grenzen halten und wäre dafür dann auch zuverlässig in der Zukunft einsetzbar.

  • Systemweit ermitteln, ob ein "(" per Tastatur eingegeben wurde - UNABHÄNGIG vom Tastaturlayout

    • misterspeed
    • 7. Februar 2021 um 21:56

    Ich frag mich immernoch aus welchem Grund man systemweit mitschneiden sollte wann das Zeichen "(" gedrückt wurde. Was ist an diesem Zeichen so besonders und wozu brauchst du diese Erkennung?

    Ich verstehe, wenn man diese Erkennung in einem eigenen Textfenster benötigt, um z.B. eine Autovervollständigung in einer IDE zu ermöglichen. Aber das begrenzt sich dann ja auf (d)eine Anwendung und erfordert kein systemweites Keylogging bzw. allgemein kein Keylogging, da du einfach den Inhalt des Textfeldes überwachen und abgleichen könntest.

    Versteh das nicht falsch, ich bin einfach neugierig wozu man genau sowas braucht.

  • kompiliertes Autoit Script mit #require Admin aber im Usercontext starten

    • misterspeed
    • 13. August 2020 um 22:24
    Zitat von Xenon

    Alternativ könnte man auch das Admin-Skript nur einmal starten und dann über Interprozesskommunikation die auszuführenden Aktionen übermitteln.


    Genau so würd ich das machen. ;)

    User Programm ohne Privilegien startet automatisch einen Admin Prozess, welcher unsichtbar im Hintergrund auf Befehle des User Programms wartet. Eine UAC Abfrage und fertig.

  • wie einloggen in meinen Linux-Receiver

    • misterspeed
    • 8. August 2020 um 00:10

    Naja da dort Linux läuft und das "terminal" vermutlich nix anderes ist als eine webbasierte SSH Verbindung würde ich die Webautomatisierung komplett weglassen und direkt per SSH zugreifen. Putty sollte entsprechend automatisierbar sein um sowohl login, als auch reboot zu bewerkstelligen, ganz ohne fehleranfällige Tastatur Emulation oder Webseitenautomatisierung.

    EDIT:

    Plink aus dem Putty Paket sollte das können was du brauchst

    https://www.thegeekstuff.com/2017/05/putty-plink-examples/ (siehe Punkt 3)

    https://the.earth.li/~sgtatham/putt…c/Chapter7.html (siehe Parameter zur PW Übergabe)

  • Browser kopflos / headless steuern

    • misterspeed
    • 17. Juni 2020 um 08:58

    Nein da fehlt einfach nur ein

    Code
    ; Display the GUI.
        GUISetState(@SW_SHOW, $hGUI)

    Bzw. wenn du noch was sehen willst musst du natürlich auch das guidelete und Programmende verhindern.

  • Differenz zwischen 2 Datumswerten - ABER - Ergebnis gesucht in: Jahren, Monaten, Tagen, Stunden, Minuten und Sekunden

    • misterspeed
    • 15. Juni 2020 um 17:56
    Zitat von AspirinJunkie

    Edit: Ach du scheiße - was hab ich denn hier für ne Threadleiche ausgegraben? - der Thread ist ja zwei Jahre alt - wie kam der denn auf meine Startseite?

    Vielleicht kam die Sortierfunktion des Forums mit dem Threaddatum durcheinander *hust*

    Oder du lebst einfach in der Vergangenheit und hattest im Moment des Antwortens eine "Schalt-mich-in-die-Gegenwart" Sekunde.

    Ich schlage vor wir suchen die Antwort in 400 Jahren und lassen den Thread bis dahin in der Vergangenheit.

  • Daten "sicher durch kompilieren"?

    • misterspeed
    • 28. April 2020 um 14:01

    "psexec" mag normalerweise vielleicht möglich sein, wenn sich Quell und Ziel PC im selben Netzwerk befinden und andere Vorraussetzungen (Gruppenrichtlinien, Firewall, Virenschutz) dafür erfüllt sind. Hier ist das aufgrund von Home Office und mangelnder VPN Verbindung aber nicht gegeben.

  • Daten "sicher durch kompilieren"?

    • misterspeed
    • 27. April 2020 um 23:23

    Da wir auch schon ein ähnliches Problem hatten und dem Benutzer das lokale Administrator Passwort nicht einfach so mitteilen konnten:

    Du könntest per Teamviewer im Usercontext zugreifen.

    Danach lädst du ein kleines Autoitscript hoch, welches hardcodierte Daten des lokalen Administrators enthält und via runas dort einen temporären Adminuser anlegt, dessen Daten du dann bedenkenlos dem User mitteilen kannst. Dein Script löscht sich nach getaner Arbeit am besten selbst, so dass keine Spuren davon auf dem Rechner zurückbleiben.

    Den temporären Adminuser kannst du nach der VPN Installation über selbige Methode auch wieder löschen.

    Es ist unwahrscheinlich, dass der User unter deiner Beaufsichtigung Unsinn mit dem temporären Adminaccount anstellt.

    Alternativ kannst du natürlich auch versuchen die komplette Installation via runas Aufruf zu automatisieren. Aufwand ist aber deulich höher als einem User ein temporäres Admin Passwort mitzuteilen und ihn durch die Installation zu leiten.

    Weitere Alternative... statt mit einem temporären Admin Account zu arbeiten kannst du auch den Benutzeraccount temporär zu den Administratoren hinzufügen.

    Und zu guter letzt... wir nutzen Teamviewer zwar eher selten, aber ich erinner mich daran schonmal die Windowsanmeldemaske in einer Teamviewersitzung gesehen zu haben. Theoretisch sollte es dir so auch möglich sein dich mit deinem lokalen Administrator anzumelden und die Installation darüber durchzuführen. Zumindestens bei uns erscheint auf dem Superadministrator Account keine UAC Abfrage.

  • Script möglichst früh mit Windows Starten

    • misterspeed
    • 14. April 2020 um 22:19

    Dein Ziel ist es jederzeit das zur Uhrzeit passenden Desktophintergrundbild zu setzen. Dich stört, dass es bei der Nutzeranmeldung zu lange dauert bis das Script startet.

    Daher würde ich das Script bzw. eine modifizierte Instanz davon bereits vor Windowsameldung als System ausführen. So ist gewährleistet, dass bei allen (bekannten / von dir gewählten) Usern schon vor der Anmeldung das passende Hintergrundbild gesetzt wird.

    Das sollte grundsätzlich möglich sein, da der Wert dafür scheinbar nur in den Registryzweig des "current users" geschrieben werden muss. Der DLL Call deines Scriptes ist vermutlich nur zur Aktualisierung des gerade angezeigten Desktops notwendig, was bei Useranmeldung dann ohnehin erfolgt.

    Für das Systemscript muss denke ich auch der Registrywert "Wallpaper" im Zweig "HKEY_USERS\S-1-5-21-xxxxxxx-xxxxxxx-xxxx\Control Panel\Desktop" geändert werden. Welche ID dein(e) User haben musst du vorher ermitteln.

    Den Start des Systemscripts machst du über die Windows Aufgabenplanung mit der Option "unabhängig von der Benutzeranmeldung" ausführen, falls nötig mit dem User "SYSTEM" und "höchsten Privilegien".

    So sollte bei Anmeldung bereits das korrekte Bild gesetzt sein und du kannst alle weiteren Änderungen dann über das Script des Nutzers machen, oder aber du lässt das Systemscript die eigentliche Arbeit weiterhin machen und führst im Userkontext nur periodisch den DLL Call aus, damit das Bild gemäß des aktuellen Registrywerts regelmäßig aktualisiert wird.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™