Beiträge von Moombas

    Ich bin mir nicht sicher ob Excel mit "Links" auch die Links zu den Datenbanken einbezieht.

    Wenn ja versuch mal das hier:

    AutoIt
    Local $oWorkbook = _Excel_BookOpen($oExcel, $sWorkbook, $bReadOnly, $bVisible, $sPassword, 0)

    Die 0 am Ende verhindert das Updaten der Links und somit sollte die Datei als "nicht bearbeitet" stehen bleiben und somit auch nicht zum Speichern auffordern..

    Ok, ich habe ggf. die Lösung für dein Problem, erklären kann ich es nicht direkt:

    Vor dem Schließen des Excelblatts, ein "Enter" oder "ESC" senden:

    Warum: Durch irgendwelche Makros ist das Sheet im "Bearbeitungsmodus" und wird daher nicht geschlossen (soweit bei mir im Test). Durch das Senden von Enter wird der Bearbeitungsmodus abgeschlossen (oder durch ESC abgebrochen) und ermöglicht das schließen.


    Aber wie gesagt ich bekomme niemals die Nachfrage zum Speichern der Änderungen.

    Hmm, das akzeptiere ich jetzt mal :P

    Also ein Test bei mir war erfolgreich (habe jedoch "nur" eine normale xlsx als xlsm gespeichert und dann getestet), teste das ganze mal mit einer anderen Datei.

    Ich gehe davon aus das die in der Datei hinterlegten Makros diese verändern.

    Sollte dich dies nicht stören dann solltest du folgenden Befehl vor dem schließen mit einbauen: _Excel_BookSave()


    Aber eigentlich sind alle Hebel gesetzt es nicht zu speichern und trotzdem zu schließen...bei mir klappt das im manuellen Test (nach dem öffnen warte ich 5sekunden im Program in der ich die Datei bearbeite).


    Versuch sonst auch ma: _Excel_Open($bVisible, True, True, False)

    Damit schaltetst du interaktiv aus, ich habe beim probieren festgestellt, das er das Workbook nicht schließt wenn ich es manuell geändert habe.

    Hmm, müsste man sich noch einmal anschauen.

    Mich macht aber nun stutzig, das du in deinem Screenshot einen Teil des Dateinamens unkenntlich machst.

    Zusätzlich assoziiert der Name "SkillDB" das du hier Spielautomation versuchst, was laut Forenregeln verboten ist. Bitte daher um Erklärung bevor ich weiter helfe.

    Tipp1: Auch wenn es wohl nur ein Workbook-Passwort ist, solltest du es hier nicht mit veröffentlichen.

    Tipp2: Die Fehlermeldung sagt doch schon alles. Bevor du die Datei schließt solltest du eine der folgenden Funktionen nutzen:

    Denn aktuell änderst du nur etwas, ohne den Speicherbefehl auszuführen. Dann ist klar das du solch eine Fehlermeldung bekommst.


    Sorry, hab nicht gesehen, das du nur die Daten einlesen willst. Dann würde ich an deiner Stelle folgendes probieren:

    Tipp 3: Ich hoffe, dass dies alles in einer Funktion steht, ansonsten sind alle deine Variablen Global, auch wenn du sie als Local definiert hast!

    Da du hier ein externes Programm ansteuerst ist die Aussage: Gar nichts.

    Das externe Programm wird die Daten auch erst laden, sobald der entsprechende Focus gesetzt wurde. Sprich du musst eben diesen simulieren um an diese Daten zu kommen.

    Wäre es nicht Sinnvoller diese Funktion eher zu verbieten/abzuschalten?

    Wenn das Antiviren Programm vernünftig arbeitet und eingerichtet ist, ist diese Funktion überflüssig.

    Wie gesagt, mein Beispiel aus #7 funktioniert.

    Bedeutet, das du wenn du den Inhalt von $test dynamisch aus einer externen Datei ziehen würdest, es mit diesem Skript kompiliert werden würde (und schlimmsten falls auch ausgeführt wird).

    Aber wenn wir ehrlich sind: Wenn du soweit kommst, das jemand per extern Zugriff auf das Dateisystem/CMD hast (und somit solche Meachaniken nutzen könnte), hast du so oder so schon verloren.

    Den Benutzer würdest du "Zwangsabmelden" wenn du den entsprechenden Dienst vor dem kopieren stoppst (und danach wieder startest), wenn ich mich nicht irre.

    Aber das ist natürlich nicht unbedingt das, was man machen sollte.

    Bin ich jetzt deppert?

    Das wird sie doch inmeinem Beispiel (bzw. deinem, nur korrigiert).

    Ich denke es gibt halt unterschiedliche Sicherheitsebenen wo dieser angesprochen werden kann, idealerweise halt im BIOS, bevor irgendwas gemacht werden kann (wie bei dir). Aber hier geht es ja schon um den schon in Windoof eingeloggten Zustand und ein separates Programm.

    Wie man aber den BeispielCode von C# auf Autoit münzt, bin ich leider auch raus.

    Naja bei den seltsamen Anfragen die hier manchmal eintrudeln ist eine gewisse Vorsicht schon angebracht.

    Aber aktuell ist mir kein Weg bekannt und kann dazu auch nichts fertiges im I-Net finden aber ich glaube Oscar hat sich da vor 10 Jahren mal beschäftigt aber da kein Ergenis im Beitrag zu finden ist gehe ich davon aus, das dies auch nicht erfolgreich war.


    Laut dem was ich aber finden konnte, brauchst du dazu die DLL des Fingerabdrucksensors, um ihn auslesen zu können. Ganz unabhängig von Windows selber.

    Du musst also eher nach der Hardware suchen als nach "Windowslösungen" und ggf. an den Hersteller heran treten. Das dürfte aber insbesondere bei den z.B. im Notebook integrierten Scanner ggf. schwierig sein das herauszufinden.


    Aber das ist nur eine Vemrutung da ich mich damit bisher garnicht beschäftigt habe.

    Das mit deinem Fileinstall habe ich bei mir aus Testgründen weggelassen aber der Rest würde so funktionieren:

    Der Einzige Unterschied, sind die " und ' in deinem $test.

    Zudem beforzuge ich das /out mit zu definieren.

    ruby : nur als Tipp, Dim ist aus meiner Sicht suboptimal, besser ist Global bzw. Local zu nutzen um eine eindeutige Definition zu erhalten.

    Ebenso anstatt StringMid("|||", 1, 4 - @extended) würd ich zur besseren Lesbarkeit zu StringLeft("|||", 4 - @extended) raten. Stringmid würde ich nur nutzen, wenn wirklich mittendrin etwas zu holen ist.