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. Moombas

Beiträge von Moombas

  • OrganizeIncludes

    • Moombas
    • 4. Mai 2020 um 08:01

    Bitnugger: Danke für deine Mühe schon mal. Getestet habe ich nun deine Version:

    - Umlaute: :thumbup:

    - bestehende Includes löschen: :thumbup:

    Den Shortcut hatte ich noch nicht geändert, da ich nicht zu oft daran Hand anlegen wollte, wenn es halt eine Lösung zur autom. Ausführung vor dem Kompilieren gegeben hätte. Und warum wäre das kontraproduktiv? Bisher hat er alle (selbst "nicht Standard") includes gefunden und eingebunden.

  • OrganizeIncludes

    • Moombas
    • 30. April 2020 um 11:24
    Zitat von BugFix

    Pfui! Wer verwendet denn Umlaute in den Pfaden. :D

    Wer mit Begriffen wie "Begründungsschlüssel" arbeiten muss, da kann das schon mal vor kommen^^

    Zitat von BugFix

    Na, das ist ja (seit vorletzter Version?) Standard, also nicht UTF8, sondern UTF8wBOM. Da OI vor dieser Zeit erstellt wurde, kann das ein Grund sein.

    Leider muss ich explizit UTF8 verwenden, hängt mit der Nacharbeitung der Skripte in Lazarus zusammen.

    AutoIt: SciTEGlobal.properties
    # Internationalisation
    #NewFileEncoding=CodePage/UTF8BOM/UTF8/UTF16BE/UTF16LE         # Only available in SciTE4AutoIt3 version
    
    #~ Enhance function of auto checking utf8: providing two methods
    # detect utf8 and add BOM automatically   Credits to SciTE-RU
    #~ utf8.auto.check=1
    # detect utf8 and do not add BOM
    utf8.auto.check=2
    # detect ascii high characters and if none found set default encoding to UTF8 and add BOM
    #~ utf8.auto.check=3
    # detect ascii high characters and if none found set default encoding to UTF8 and do not add BOM
    #~ utf8.auto.check=4
    Alles anzeigen

    Es war einfacher Scite auf UTF8 umzustellen als in Lazarus das an jeder einzelnen Stelle einzuhämmern das einzulesende anders zu interpretieren...

  • OrganizeIncludes

    • Moombas
    • 30. April 2020 um 10:07

    Mag sein, gab bisher damit keine Probleme, hat ja aber eigentlich auch nichts mit meinem Problem von OI zu tun:

    - nicht löschen der vorhandenen #includes, obwohl ausgewählt in den Optionen

    - Problem mit Umlauten in Dateiname/Pfad

    Oder?

    Mir ist gerade jedoch etwas eingefallen, was zu dem Problem führen könnte: Ich definiere per Standard das bei mir die AU3 Dateien als UTF8 codiert sind, kann das die Ursache sein?

  • OrganizeIncludes

    • Moombas
    • 30. April 2020 um 08:22

    Moin zusammen,

    ich habe gerade mal mir Organizeincludes angeschaut -> geiles Tool, will ich auch in Delphi und Lazarus haben^^ aber ich schweife ab :D

    Es gibt ja die Option "Remove all includes" bzw. "Remove only unneeded includes".

    Nach ein wenig rum probieren habe ich diese "Funktionen" auch verstanden wie es gemeint ist, jedoch ist mir da eine Kleinigkeit aufgefallen und evtl. ist das auch nur ein Bedienerfehler von mir (oder Wunschdenken^^).

    Wenn ich "Organice Includes" mit den entsprechenden Settings ausführe (oder es auf silent laufen lasse), packt er alle benötigten includes an die gewünschte Stelle (so weit so gut.).

    ABER: Er behält auch alle bereits vorhandenen includes, ich habe sie also ggf. doppelt/mehrfach drin.

    Ich hätte nun gedacht, das er entweder nur fehlende nachträgt oder alle vorhandenen löscht und entsprechend alle benötigten einträgt.

    Denn Laut der Hilfe-Datei soll eben das ja passieren, hab es bei mehreren Dateien ausprobiert.

    Edit: Und er fügt (wenn kein include benötigt wird) eine Leerzeile hinzu.

    Besonderheit: Bei mir stehen die Includes erst nach einem Kommentarblock und Autoit3Wrapper-Anweisungen:

    AutoIt
    Opt('MustDeclareVars', 1)
    #cs ----------------------------------------------------------------------------
    
        AutoIt Version: 3.3.14.5
        Author:         XXX
    
        Script Function:
    Tasks setzen
    
    #ce ----------------------------------------------------------------------------
    #AutoIt3Wrapper_icon=iconpath
    #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    #include <Date.au3>
    Alles anzeigen

    Das Einfügen nach #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 funktioniert auch 1A.

    Hab ich da irgendeinen Fehler meinerseits drin oder muss ich mich nun im engl. Forum deswegen anmelden um das zu thematisieren?

    Kann man OI auch beim kompilieren drüber laufen lassen anstatt wirklich jedesmal die doch recht üppige Tastenkombination drücken zu müssen, also idealerweise:

    F7 fürs kompilieren -> autom. OI (silent) -> dann autom. erst das kompilieren?

    Und einen "Fehler" habe ich noch gefunden: Er mag keine Umlaute (im Pfad und Dateinamen).

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 29. April 2020 um 14:54

    Zu deinem letzten Post oberh:

    Selbst bei anderen Programmiersprachen musst du entweder den Pfad der zu verwendenden dll(s) angeben und/oder diese direkt einbinden (was bisher NICHT der Fall war, @Musashi aber ja gezeigt hat wie es geht, was ich in deinem Fall auch machen würde, da dann wirklich nur die Exe benötigt wird).

    Ich selber packe mir auch include-files (da gehören keine dll's dazu), die Sinn ergeben, weil sie auch auf andere Programme angewendet werden könnten (hier wäre es ja die DBF.au3), in den Standard-Include Ordner.

    ABER: Bedenke das die Art und Weise wie diese angesprochen wird sich dann ändert: #include "DBF.au3" --> #include <DBF.au3>

    Und das, wenn andere deine Programme mal überarbeiten müssen, sie diese "besonderen" Include-Dateien zur Verfügung haben (ich lege alle meine Includefiles in einem Verzeichnis ab, wo auch andere in der Firma drauf zugreifen können).

    Verwende für eine allgemeine "Verteilung" immer nur Programme die komplett Kompiliert sind, nicht die au3 (Sourcecode). Wenn andere in der Firma die gleichen Ambitionen hat wie du, ändert er evtl. was an deinem Tool und dann knallt es ggf.


    Das mit dem FileSelectFolder-Dialog haben wir ja als "erforderlich" bzw. "sinnvoll" gesehen also ist das ja durchaus richtig wie du es am Anfang hattest was diesen Teil angeht.^^

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 29. April 2020 um 13:27

    @Musashi: Hab ich auch nochmal was gelernt^^

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 29. April 2020 um 12:18
    Zitat von Musashi

    Deine Idee mit der Eingabemöglichkeit für den Dateinamen der .dbf ist sinnvoll :thumbup: .

    Die hatte er ja im Ursprung schon drin, hast du doch selber raus genommen zu Testzwecken^^ War also nicht meine Idee :P

    Zitat von Musashi

    ...und den Pfad direkt gesetzt (damit man nicht immer durch den FileSelectFolder-Dialog durch muss ;) ).

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 29. April 2020 um 11:55

    Das das Skript nicht mehr funktioniert, wenn die .dll fehlt ist (aus meiner Sicht) doch logisch.

    Ich würde dir empfehlen:

    Kompiliere dein Skript (mit F7) als *.exe

    Dann besteht dein Programm nur noch aus der *.exe und der *.dll (und erfordert kein autoit bzw. Scite zur Ausführung auf den jeweiligen Rechnern)

    Die *.dbl-Datei lässt du ja jedesmal manuell angeben und gehört ja nicht zum eigentlichen Programm.

    Ggf. solltest du dafür dann jedoch evtl. eine kleine GUI bauen (es reicht ja eine Edit in das du rein schreibst) anstatt der Konsolenausgabe (denn diese passiert dann natürlich nicht) um eine Rückmeldung für den Benutzer zu haben oder halt eine MSG-Box-Ausgabe wegen evtl. Fehler oder Gesamt-Erfolg machen.

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 29. April 2020 um 08:13

    Mal anders gesponnen, was den Hinweis von autoBert betrifft: Wenn der TE ein 64-Bit System hat, sollte er das Flag #AutoIt3Wrapper_UseX64 auf "Y" setzen und dann noch mal testen und schauen ob das Problem damit behoben ist.

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 28. April 2020 um 15:23

    Müsste in der Zip eigentlich enthalten sein. Kann sie selber aber gerade nicht runter laden, Chrome zickt aktuell ein wenig.

    Edit: Mit Firefox ging es: Scite ist enthalten.

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 28. April 2020 um 15:01

    Aber wegen dem Installieren hast du doch eigtl. kein Problem bei Autoit.

    Es gibt doch unter https://www.autoitscript.com/site/autoit/downloads/ eine Version als ZIP, die keine Installation erfodert.

    Da kannst du auch ganz normal Scite nutzen und entsprechend kompilieren.

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 28. April 2020 um 14:21

    oberh: Ggf. solltet ihr dann eine Anforderung zur Arbeitserleichterung an die EDV stellen mit entsprechenden Begründungen (Zeitersparnis von X Stunden/Woche etc.). Wenn sich das summiert wird sie eventuell entwickeln müssen oder euch es doch erlauben.

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 28. April 2020 um 13:53

    Hab erst jetzt gesehen das die DBF.au3 ja "fremd" Ware ist^^

    Aber bei mir läuft deins durch, hab nur keine dbf-Datei zum testen.

    Edit: Mit der DBF von oben läuft es einwandfrei durch.

  • Fehler bei Script mit DBF-UDF

    • Moombas
    • 28. April 2020 um 11:29

    Oberh hast du den Hinweis von Musashi geändert?

    Zitat von Musashi

    -> ERROR : MsgBox(4096, "", "Fehler in Datensatz " & $i & ", String endet nicht mit ".FO" ..." & @CRLF) ==> "... nicht mit '.FO' ..." & @CRLF)

    In deinem letzten Post ist das immer noch falsch.

    Wobei ich (meine persönliche Meinung) Strings immer in ' anstatt " setze und somit im String " ganz normal verwenden kann ohne darauf achten zu müssen.

  • Daten "sicher durch kompilieren"?

    • Moombas
    • 28. April 2020 um 08:20

    Oder du machst das mit einem Remotezugriff (mit psexec):

    • Programm was du installieren willst (ohne Benutzereingaben!) zum Ziel-PC kopieren:
    AutoIt
    $Source      = @ScriptDir & '\Deine_Install_Datei.exe' ;z.B. Kannst auch ganze Ordner kopieren etc., Anpassen!
    $Destination = '\\' & $IPdesZielPC & '\c$\Zielverzeichnis\' ;Anpassen
    Filecopy($Source, $Destination) ;Oder Bei Ordner: DirCopy()
    • PSexec ausführen
    AutoIt
    $IPdesZielPC = 'x.x.x.x' ;Anpassen
    $Adminbenutzer = 'Adminbenutzer' ;Anpassen
    $AdminPasswort = '' ;Anpassen
    Runwait('psexec.exe -accepteula -n 30 -s \\' & $IPdesZielPC & ' -u ' & $Adminbenutzer & ' -p "' & $AdminPasswort & '" -c \\' & $IPdesZielPC & '\c$\Zielverzeichnis\Deine_Install_Datei.exe', @ScriptDir, @SW_HIDE) ;Verzeichnis und Datei anpassen
    
    Die kopierten Dateien/Ordner wieder löschen!!

    Das ganze muss dann besonders (separat) gestartet werden (Ich mache das aktuell über Lazarus, in Autoit gibt es sicherlich auch eine entsprechende Lösung):

    Code
    //Prozess als bestimmten Benutzer starten (Hilfsaufruf)
    procedure TTools.startas(exe: Widestring; param: string);
    var
      User              : WideString;
      PW                : WideString;
      err               : DWORD;
    begin
      User := '';
      PW   := '';
      err  := CreateProcessAsLogon(User, PW, exe, WideString(param), '');
      if err <> 0 then
      begin
        ShowMessage(SysErrorMessage(err));
      end;
    end; 
    //Aufruf: startasSU(Pfad incl Dateiname welche ausgeführt werden soll (Lokal, obiges Programm), Pfad des obigen Programms); 
    
    //Prozess als bestimmten Benutzer starten
    function TTools.CreateProcessAsLogon(const User, PW, Application, param, CmdLine: WideString): DWORD;
    var
      s   : WideString;
      si  : TStartupInfoW;
      pif : TProcessInformation;
    begin
      ZeroMemory(@si, sizeof(si));
      si.cb := sizeof(si);
      si.dwFlags := STARTF_USESHOWWINDOW;
      si.wShowWindow := 1;
    
      if CmdLine = '' then
      begin
        s := Application;
      end else
      begin
        s := Application + ' "' + CmdLine + '"';
      end;
    
      SetLastError(0);
      SI.cb  := SizeOf(TStartupInfo);
      if CreateProcessWithLogonW(PWideChar(User), nil, PWideChar(PW), 0, nil, PWideChar(s), CREATE_DEFAULT_ERROR_MODE, nil, PWideChar(param), @si, @pif) then
      begin
        sleep(500);
        if PIf.dwProcessId > 0 then
        begin
          AppPID := PIf.dwProcessId;
          CloseHandle(PIf.hProcess);
          CloseHandle(PIf.hThread);
        end;
      end;
      Result := GetLastError;
    end;      
    Alles anzeigen

    Evtl. hilft dir das weiter, denn das kann komplett im Hintergrund laufen ohne das der Benutzer das überhaupt mit bekommt.

    Nachteil: Auch hier wäre das Passwort hard codiert enthalten, jedoch nur temporär (auf Zielsystem, da nach Durchführung diese wieder gelöscht werden) bzw. dauerhaft (auf dem Quellsystem). Sollte aber weniger Schlimm sein als dem Benutzer irgendwelche Passwörter oder (temporären) Rechte zu geben.

  • Aufruf von autoit generierter HTML Datei plus Input File ohne Webserver

    • Moombas
    • 27. April 2020 um 07:55
    Zitat von AspirinJunkie

    Wie rufst du denn die Datei auf? - einfach ShellExecute und //file/ davor?

    Habe jetzt mal bei mir getestet indem ich die Datei als Parameter beim Aufruf des Browsers mitgebe und die werden bei mir damit sowohl mit IE, Edge, Chromium und FireFox korrekt angezeigt mit allen Abhängigkeiten.

    Ganz naiv so rangegangen:

    AutoIt
    $s_HtmlDateiPfad = "C:\Pfad\zu\meiner\Datei\Test.html"
    
    $s_StandardBrowser = RegRead('HKEY_CLASSES_ROOT\htmlfile\shell\open\command', '')
    
    Run(StringReplace($s_StandardBrowser, '%1', $s_HtmlDateiPfad))

    Bei mir ist der Pfad des Standardbrowsers nicht unter ...\htmlfile\..., sondern unter ...\http\.... bzw. ...\https\... abgelegt.

  • Aufruf von autoit generierter HTML Datei plus Input File ohne Webserver

    • Moombas
    • 24. April 2020 um 07:51

    Kannst du mal den kompletten Aufruf (mit "file:///C:/C4F/MeineTabelle.html") deiner Datei posten?

  • Mauscursor versetzen

    • Moombas
    • 21. April 2020 um 13:05
    Zitat von BugFix

    Darf man fragen, wozu das genutzt wird?

    Habe ich ja auch schon nach gefragt, denn ich kann mir aktuell keine Situation vorstellen, wo das wirklich Sinn macht und nicht anders besser gelöst werden könnte.

  • Mauscursor versetzen

    • Moombas
    • 21. April 2020 um 07:59

    Naja es geht ja dabei, wenn ichs richtig verstehe, nicht nur um die reine Verschiebung des Mauszeigers um ein paar Pixel.

    Du müsstest vom "Master-PC" (der an dem du die Maus bewegst) die Mausposition an den "Slave-PC" übergeben und dann entsprechend setzen.

    Vom Prinzip her also:

    Wenn die Maus bewegt wird -> Position auslesen -> an den Slave-PC übergeben -> Mausposition setzen

    Nur wegen der Umsetzung und ob dies (von der Reaktionsgeschwindigkeit her gesehen) Sinnvoll umsetzbar ist bin ich aktuell raus.

    Darf ich fragen wozu du das nutzt, evtl. gibt es eine wesentlich bessere Lösung für dein Problem.

  • Warum schreibt AutoIT mein RAM voll ?

    • Moombas
    • 8. April 2020 um 11:12

    Ich kann es nur empfehlen sich mal Datenbanken generell mal anzuschauen. Da es diverse gibt, ist es schwer hier ein direktes HowTo etc. zu posten. So mit das gängiste ist MYSQL, aber es gibt halt viele andere gute Alternativen.

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™