Hat sich erledigt. Ich bin total auf den Kopf gefallen. So schwer war die Lösung nicht. Danke an alle die sich die Zeit genommen haben mir zu antworten
Dann wäre es doch schön wenn du die Lösung mit uns teilst oder?
Hat sich erledigt. Ich bin total auf den Kopf gefallen. So schwer war die Lösung nicht. Danke an alle die sich die Zeit genommen haben mir zu antworten
Dann wäre es doch schön wenn du die Lösung mit uns teilst oder?
Die Aut2Exe nimmt die Präprozessoren standardmäßig nicht.
Wie hast du denn AutoIt installiert? Im Kontextmenu müsste wenn du auf das Script rechtsklickst eigentlich die Option verfügbar sein.
Probier es mal mit dem Script hier: C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3
soweit ich mich bisher belesen habe scheinen wrappper nicht ausgeführte zeilen zu sein
Falsch. Ein Wrapper ist definitiv kein Präprozessor. Er macht etwas einfacher zugänglich in dem er das ganze verpackt ("wrapped").
Ein Beispiel wäre die GDI+ UDF die als Wrapper für die ganzen GDI+ DLL Funktionen dient. Oder der AutoIt3Wrapper für den Compiler mit den ganzen Präprozessoren.
Allerdings ist der Begriff Präprozessor bei dem Fall richtig. Vor dem Compilen werden die Zeilen durch entsprechende Code-Zeilen oder Instruktionen im Compiler ersetzt.
Wenn du deine Anwendung normal compilest und Präprozessoren drinne hast, werden sie nicht mitcompiled, da du dem Compiler nicht mitgeteilt hast das welche enthalten sind.
Wenn du die Präprozessoren mitcompilen willst, dann musst du das Script rechtsklicken und "Compile with Options" anwählen.
Das öffnet den AutoIt3Wrapper der die Funktionen des Compilers leicht zugänglich macht.
Dort kannst du auch alle Einstellungen tätigen ohne das im Code selber schreiben zu müssen, denn wenn du einmal Compile with Options verwendet hast, übernimmt er die Präprozessoren direkt in das Script mit.
Schau dir mal die Scripte an die ich hier gepostet habe, damit kriegst du das genauso hin. Transparente Bereiche sind nicht klickbar.
Custom GUI, Image Buttons, Overlapping
Das Problem ist, wenn der erste Treffer gefunden wird und mit der Zeile $Array[0][$Reihe] = $Mapping[$MappingZeile][1] die erste Zuweisung aus dem Mapping erfolg ist, dass dann sofort mit der For $Reihe = 0 To Ubound($Array,2)-1 Schleife weiter gemacht wird statt mit der For $MappingZeile = 0 To Ubound($Mapping)-1
Wie groß ist denn $Mapping? Eventuell ist es am Ende des Arrays angelangt und es ist nur ein Index groß weshalb er sofort die For-Schleife beendet?
Oder es liegt an der If-Verzweigung, das die nicht immer richtig auslöst weil die Bedingung evtll. falsch ist.
Willst du die transparenten Bereiche klickbar machen (also ein Viereck wie bei einem Pic-Control drumlegen) oder soll das Bild nur klickbar sein wenn man auf nicht transparente Bereiche klickt?
Na dann weißt du es jetzt ja besser ![]()
Wenn dein Problem gelöst ist (und davon gehe ich mal aus) wäre es schön wenn du den grünen Haken für [gelöst] bzw. erledigt setzt indem du deinen 1. Beitrag in diesem Thread bearbeitest.
Vielen Dank für deinen Beitrag und auch an alpines für den Hinweis mit den veralteten Funktionen.
Habs schon gerochen das es daran liegen muss wenn alle Excel-Funktion nicht mal den selben Namen wie bei meiner Version (3.3.14.2) tragen ![]()
Außerdem ist 3.6.6 die Version von SciTE und nicht die von AutoIt! Schreib mal in ein Script MsgBox(0, 0, @AutoItVersion) und lass dir diese Version mal ausgeben.
Die AutoIt-Version die du draufhast ist vermutlich (wie es in der UDF steht) 3.2.3 (~2008/2009).
Welche AutoIt-Version verwendest du? Ich finde die _ExcelReadSheetToArray in meiner Excel.au3 nicht.
Eventuell ist die Funktion etwas langsam und man könnte ein bisschen mehr Geschwindigkeit rausholen.
Kannst du grob zusammenfassen was er in diesen 10 Sekunden für die 1000 Zeilen macht? Das kommt mir dennoch irgendwie viel vor.
Es ist klar, dass das Aktualisieren der Datenbestände durch ein SQL Script sehr viel schneller wäre aber einen Arbeitsausfall möchte ich dennoch nicht verantworten.
Das ist sehr schön das du dir diese Gedanken machst. Meine Antwort bezog sich allerdings nur auf den Post von BugFix der den SQL-Weg überhaupt erst vorgeschlagen hat.
Solltest du den Weg jemals einschlagen wollen - so hast du immer die Möglichkeit über Backuplogs zu gehen falls irgendetwas unvorhersehbares schiefgehen sollte.
Der langsamere Weg über Excel z.B. ist in keiner Weise schlecht - das mag niemand bezweifeln - aber wie kommst du denn auf ganze 97 Minuten? Das hört sich ein bisschen nach zu viel an.
Lass dir mal alle Parameter in der Funktion die du verwendest ausgeben wenn du es normal machst und wenn du es während dem Schließens machst.
Eventuell findest du da einen Unterschied?
ich habe noch ein (für mich nicht lösbares) Problem.
... ich hab nen falschen Eindruck hinterlassen ...
Funktioniert es denn beim dritten Mal überhaupt? Die Bedingungen in der For-Schleife sind eigentlich korrekt und du springst raus wenn die Keys identisch sind.
Lass dir mal $aDeCryptKey und $aCryptKey (Das sind keine Arrays, das sind Strings also immer schön $s nehmen und nicht $a!) in die Konsole ausgeben.
Außerdem solltest du mal nachprüfen wie oft die __idIni_decrypt_() aufgerufen wird, eventuell wird sie 3x aufgerufen, springt aber immer aus der Schleife raus und es kommt dir nur so vor als ob sie nicht rausspringt?
Ein Tipp am Rande:
Wenn deine _Crypt_DeriveKey() Funktion fehlschlägt und du schon mit If @error nachprüfst ob sie gescheitert ist, dann solltest du die Funktion auch unterbrechen, da ansonsten die anderen _Crypt*-Funktionen ausgeführt werden und sie sowieso zwangsweise fehlschlagen.
Des Weiteren benutzt du _Crypt_Shutdown() nur wenn es keinen Error gab, obwohl das jedes Mal ausgeführt werden sollte.
Und was soll eigentlich die zwei Sends unten nach dem GUISwitch() bringen?
Kein Standard-Include, somit musst du dich an den Ersteller der UDF wenden, ich kenne diese nicht.
Ist die selbe Schrott-UDF wie jeder andere sie verwendet nur mit 2015 hinten dran. Die wurde überall hochgeladen also wundert es mich nicht, wenn jemand einfach 2015 dahinter setzt.
Wofür willst du denn den Klick auf das Bild automatisieren? Es gibt sicherlich etliche bessere Wege als das ganze mit ImageSearch zu machen also sag uns was du bei welchem Programm erreichen willst und wir geben dir Ratschläge wie du das ganze effektiver und stabiler lösen kannst.
Funktioniert das wenn du einfach die ID platt einträgst? Normalerweise schreibe ich immer "[ID:zahl]".
Was ist wenn du das ganze 2x einträgst?
Vielen Dank für die Unterstützung und sorry wegen den vielen "doofen" Fragen.
Dafür sind wir schließlich da.
Static wird im Normalfall in AutoIt leider fast von niemandem verwendet obwohl es ziemlich praktisch ist.
Es erstellt die Variable einmal mit dem Wert den man ihr übergibt und danach wird der Wert verwendet der drinne eingespeichert wird.
Sozusagen globale Variablen für eine Funktion.
Schau doch mal was als Fehlermeldung angegeben wird. "Cannot make existing variables static".
Du hast die $iCheckCount schon vorher deklariert und deklarierst sie hier nochmal als statische Variable neu, das kann natürlich nicht klappen.
Entweder gibts du ihr einen neuen Namen oder nimmst die Deklaration vorher raus.
Bekomme immer einen Error.
Es wäre nicht schlecht wenn du uns den Error auch mitposten würdest.
Ist die Control-ID wenn du es mit RunAs startest eventuell anders? Es kann ja nicht sein das nur der IP-Teil nicht funktioniert, der Rest aber schon.
Kann ich das spezifizieren?
This example adds a horizontal line above the fifth paragraph in the active document.
Vor dem Range Specifier wurde bei dem Beispiel auf msdn der Paragraph angegeben. Du musst also deine $oSelection ändern.