Beiträge von mirko2002

    Hallo zusammen,


    ich habe ein Inputfeld welches ein Passwort enthält durch Sterne ersetzt. Daneben habe ich ein Icon eingesetzt (was man aus Windows kennt - dieses Auge womit das PW wieder eingeblendet wird). Ziel soll sein, dass das PW wieder im Klartext eingeblendet wird, wenn mit der Maus das Icon gedrückt wird. Wenn Maus losgelassen wird, soll das PW wieder verschlüsselt sein.


    Folgende Codezeilen verwende ich:


    Code
    $input_admin_OSC_PW = GUICtrlCreateInput(FileReadLine($file_ticketversion, 9), 390, 470, 130)
    _SendMessage(GUICtrlGetHandle($input_admin_OSC_PW), $EM_SETPASSWORDCHAR, Asc('*'), 0)
    $icon_admin_OSC_PW = GUICtrlCreateIcon("\\BER04APPMM4-1\allgemein\TicketTool\settings\icons.dll", -10, 522, 473, 15, 15)

    Und hier der Teil aus der While-Schleife:


    Code
    Case $icon_admin_OSC_PW
    Do
    _SendMessage(GUICtrlGetHandle($input_admin_OSC_PW), $EM_SETPASSWORDCHAR, 0, 0)
    Until _IsPressed("01") = False
    _SendMessage(GUICtrlGetHandle($input_admin_OSC_PW), $EM_SETPASSWORDCHAR, Asc('*'), 0)


    Das ganze funktioniert indirekt. Wenn ich die Maus drücke während ich über dem Icon bleibe passiert nichts. Halte ich die Maus aber gedrückt und ziehe dabei dann über das Inputfeld, dann setzt er den Befehl um. Auch das "zurücksetzen" auf die Verschlüsselung macht er nur, wenn ich die Maus über dem Inputfeld loslasse und nicht - wie es ja sein sollte - über dem Icon.


    Wo übersehe ich den Fehler?

    Guten Morgen Bitnugger


    mir gefällt Deine Schreibweise :)


    Tatsächlich ist die Fehlermeldung fast richtig:


    "TicketTool.au3" (1714) : ==> The requested action with this object has failed.:

    $read_reservierung = FileReadLine($sPath & $Files.Name, 13)

    $read_reservierung = FileReadLine($sPath & $Files^ ERROR


    "Er" ist übrigens mein kleiner PC. Ich mag ihn - auch wenn er nicht immer das macht was ich möchte :)

    Mit der wackligen Internetverbindung kann schon sein, manchmal haben wir hier Probleme mit. Was mich aber wundert ist, dass dieser Fehler nur bei Rechnern auftritt die bereits auf Win10 umgestellt sind. Unsere Win7 Rechner laufen wie eine Eins. Und selbst bei den Win10 Rechnern taucht es ja nur sporadisch auf. Mal einen ganzen Tag überhaupt nicht, mal im 10 Minuten Takt.


    Mit dem Verzeichnis hast Du Recht - es ist ein Ordner auf unserem Server.


    Nicht desto trotz habe ich inzwischen einen COM-ERROR-Handler eingebaut und die neue Version ist heute online gegangen. Ich werde das ganze mal damit beobachten.


    Deine beiden vorgeschlagenen Varianten sind leider beide nicht möglich, das macht unsere IT nicht mit.

    Du hast das Problem eigentlich schon zu 100% getroffen. Die Ansicht soll sich nur aktualisieren, wenn ein neues Ticket erstellt oder gelöscht/verschoben wurde. Umbenennen der Tickets wird nicht passieren. Und ein inhaltliches Update in den Tickets ist egal - da muss die TreeView Ansicht nicht extra aktualisiert werden, da das Ticket eh ausgelesen wird sobald man es in der TreeView anklickt.


    Bisher ist es tatsächlich so, das durch den Countdown alle 5 Minuten einfach die Funktion _GUICtrlTreeView_CreateDirectory durchgejagt wird oder wenn ein Ticket erstellt wurde - weil auch danach soll die TreeView Ansicht ja aktuell sein, sonst taucht das neue Ticket ja nicht auf.


    Ansich kann ich mich über die TreeView Variante nicht beschweren. Seit ca 1 Jahr hab ich das Programm hier im Einsatz und es läuft soweit eigentlich super (mit Ausnahme jetzt auf Win10). Wenn es aber natürlich zu verbessern geht hab ich da gerne offene Ohren für :)

    Hm da muss ich euch etwas korrigieren. Bei einem MouseClick bewegt er ebenfalls den Cursor auf das vogegebene Ziel. Erst dann wird der Click ausgelöst.


    Nichtsdestotrotz habe ich es trotzdem mal probiert, vorher ein MouseMove auf dieselben Koordinaten zu setzen und auch hier landet der anschließende Klick ins Leere.


    Ok Kommando zurück... ich hab vergessen das GUIGetCursorInfo() nachträglich noch ausführen zu lassen... damit geht es :)


    Vielen dank für die Hinweise. Tolles Forum.... kann ich immer nur wiederholen!

    Ok hier mal folgendes Codebeispiel:




    Aufpassen in Zeile 50, dort habe ich einfach nur die Coords x200 und y200 angegeben, der Mauscursor wandert also je nach Auflösung bei euch sonstwohin.


    Beim manuellen Mausklick erhalte ich die ID 3 - so sollte es korrekt sein. Bei automatischen Klick registriert er nur den manuellen Mausklick auf den Button, aber nicht den, der automatisch durch die Funktion aufgerufen wird.

    Hallo zusammen,


    ich habe folgendes "Phänomen":


    In meiner While-Schleife habe ich folgenden Aufruf:

    Code
    Case $GUI_EVENT_PRIMARYDOWN
    _GUI_EVENT_PRIMARYDOWN()

    In der Funktion _GUI_EVENT_PRIMARYDOWN() gehts wie folgt los:

    Code
    $aInfo = GUIGetCursorInfo($hGui)
    If $aInfo[4] = $hTreeView Then

    Es ist also so: Wenn mit der Maus mit der linken Taste in den Treeview geklickt wurde, dann soll er gewisse Dinge durchführen. Funktioniert tadellos.


    Ich wollte nun gewisse Dinge automatisieren und bediene mich der Funktion MouseClick. Diese klickt in den Treeview rein (man sieht es ja an dem Item was dann blau ausgewählt wird) aber es passiert nichts. Er löst also nicht die Bedingung "If $aInfo[4] = $hTreeView Then" aus. Wenn ich das ganze mit MsgBox(0,"",$aInfo[4]) überprüfe, sehe ich auch dass eine ganz andere Control-ID ausgeworfen wird.


    Also Beispiel: Mache ich den reellen Mausklick wirft de Messagebox die ID 4 aus. Baue ich einen Testbutton ein der den MouseClick im TreeView ausführt erhalte ich die ID 20 - nämlich die vom Button... warum auch immer.


    Also habe ich nun versucht das ganze mal mit ControlClick auszuführen. Aber hier dasselbe Phänomen. Er klickt das TreeView Item an (es wird blau) aber es scheint nicht identisch mit dem reellen Mausklick zu sein.


    Hat da jemand schon Erfahrung mit gesammelt?

    Hallo Bitnugger


    das ist sehr sehr freundlich von Dir :)


    Ich habe mir mal die Liste angeschaut. Zeile 20: $SHCNE_UPDATEDIR - das wäre meines Erachtens das richtige.


    Zur Erklärung: In meinem Tool werden Tickets erstellt (einfachte *.txt-Dateien mit durch mir festgelegten Inhalt). Diese werden in einem festen Ordner erstellt und dieser Ordner wird durch Treeview Ansicht dargestellt, dass derjenige der diese Tickets bearbeitet, natürlich immer sieht, welche Tickets derzeit existieren. Die TreeView Ansicht lasse ich derzeit in bestimmten Dingen aktualisieren:


    Automatisch alle 5 Minuten durch einen eingebauten Countdown oder sobald ein Ticket vom Bearbeiter bearbeitet und geschlossen wurde. Dann wird lediglich die Funktion aufgerufen, die den Treeview aufbaut (siehe gepostete Funktion oben in meinem ersten Post).


    Das bearbeitete/geschlossene Ticket wird tatsächlich dann nur in einen Unterordner verschoben, damit man dieses später bei Bedarf jederzeit nochmal aufrufen kann.


    Brauchst Du noch mehr, bzw genauere Infos? Der Pfad bzw der Ordner der bei mir in der TreeView Ansicht angezeigt wird ist dieser: "\\BER04APPMM4-1\allgemein\Mailer\". Fertige Tickets werden dann lediglich in "\\BER04APPMM4-1\allgemein\Mailer\erledigt" verschoben (dort gibt es zwar noch weitere Unterordner sortiert nach Datum und anderen Kriterien, das ist aber erstmal uninteressant).


    Viele Grüße,


    Mirko

    Bitnugger

    Hab mal in die Hilfe für die Funktion geschaut.... da bin ich ehrlich doch etwas mit überfordert, zumal die Hilfe für diese Funktion hier leider nur in Englisch zur Verfügung steht :(


    water

    Ja das Programm habe ich selber geschrieben, weiß also natürlich wie die Dateien aufgebaut sind :)

    Es ist generell so, dass in den Dateien in den Zeilen 13, 14 und 15 immer entweder der Wert 1 oder 4 steht (wird beim erstellen der Datei der Wert einer Checkbox eingetragen - also entweder Checkbox ausgewählt oder halt nicht).


    Wie gesagt, grundsätzlich funktioniert das ganze ja auch Reibungslos, nur seit der Umstellung auf Win10 kommt es manchmal zu den besagten Fehlern.

    Ok hab mal zusätzlich den COM handler eingebaut:




    Mal schauen ob der Fehler wieder auftritt und was der Handler auswirft ;)

    Nee es arbeiten ca 30 Mitarbeiter bei uns mit dem Tool und die Dateien in der Ansicht (dort werden Tickets aufgelistet) muss ständig aktuell sein. Damit ich nicht im Sekundentakt die Ansicht aktualisieren lasse habe ich ne Abfrage auf 5 Minuten gesetzt - es muss halt zwingend die Dateiansicht aktuell sein, geht leider nicht anders.


    mit dem zweiten Hinweis werde ich mal einbauen... evtl reduziert das ja schon die "Leselast" damit es nicht mehr zu diesem Fehler kommt :)

    Hallo zusammen,


    seit unsere Arbeitsrechner auf Windows 10 umgestellt worden sind, schmiert vereinzelt die TreeView Funtion bei uns ab, was vorher unter Win7 ewig absolut fehlerfrei lief.


    Fehler ist "The requested action with this object has failed.:" und zwar moniert er folgendes:


    Das ist eine angepasste Variante von Oscar 's TreeView.


    Er moniert zwischendurch mal (nicht immer, daher bin ich da auch verwundert) die Zeilen:


    Code
    $read_reservierung = FileReadLine($sPath & $Files.Name, 13)
    $read_important = FileReadLine($sPath & $Files.Name, 14)
    $read_liefertermin = FileReadLine($sPath & $Files.Name, 15)

    Speziell hängt er sich am Parameter .Name auf.

    Die Meldung tritt mal gar nicht auf, mal etliche Male am Tag (meine Treeview wird alle 5 Minuten neu erstellt/aktualisiert) - und dies erst seit der Umstellung auf Windows 10.


    Da unsere Win10 Rechner um einiges schneller sind habe ich die Vermutung (mehr ist es aber auch nicht), dass er einfach die Dateien noch nicht alle "durchgelesen" hat und er mit der TreeView erstellen schneller wäre als das durchlesen der ganzen Dateien und er daher den Fehler aufwirft.


    Wie kann ich das umgehen? Denn das Tool stürzt natürlich vollständig ab, sobald er über diesen Fehler stolpert.


    Ich hoffe diese Codezeilen reichen aus.


    LG

    Mirko

    Interessant ist ja eigentlich nur

    AutoIt
    _Excel_RangeSort($oWorkbook, Default, Default, "A:D")


    Ich finde, dadurch das dieser Befehl etliche Sub-Angabe hat sehr unübersichtlich. Ich werde hier sicher nur was nicht eingetragen haben da meine Angabe doch seeehr Basic ist :)


    So gesehen soll er ja eigentlich wirklich nur Spalte A sortieren (alphabetisch aufsteigend) und die Spalten B, C, D lediglich mitziehen. Wenn also ein Eintrag aus Spalte aus von Zeile 3 auf 1 hochsortiert wurde, dann müssen auch die Spalten B, C, und D von Zeile 3 auf 1 hochgezogen werden.

    Hallo zusammen,


    ich mal wieder mit einem Problem :)


    ich schreibe durch einen Button einige Werte in Excel. Das ganze erfolgt in 4 Spalten.


    Das ganze ist im nachhinein so aufgebaut:


    A1 | B1 | C1 | D1

    A2 | B2 | C2 | D2

    A3 | B3 | C3 | D3


    Ich möchte nun eine sortierung vornehmen. Ansich mit _Excel_RangeSort erstmal kein Problem, aber er sortiert ja nur eine Spalte. Wenn aber z.B. A3 auf die Position nach A1 sortiert wird müssen zwingend auch die Zeilen B3 auf B1 mitgehen, da die Werte zu A dazugehören, da es Kundenadresse sind. Als Beispiel in Spalte A steht der Vorname und in Spalte B der Nachname. Lasse ich nun _Excel_RangeSort drüber laufen sortiert er mir zwas z.b. die Vornamen aber zerreisst mir dann natürlich die Nachnamen denn diese sind nicht mehr zugeordnet. So heißt z.B. ein Hans Müller im nachhinein Hans Winter. (nur als Beispiel).


    Er soll also nicht eine einzelne Zelle verschieben sondern die komplette Zeile. Geht das mit _Excel_RangeSort? Die Hilfe sieht mir nicht danach aus, da ich dort nur die Sortierrichtung angeben kann, aber nicht sage, er soll die komplette Zeile bewegen.


    Ich hoffe das ist verständlich meine Formulierung :)