Vielleicht kannst du ja recherchieren was die Funktion exakt macht und die Änderungen selber übernehmen (FileDelete etc).
Beiträge von alpines
-
-
Wenn WinSetState nicht funktioniert kannst du es ja außerhalb des Sichtbereiches verschieben?
-
Das nächste Mal den grünen Haken für erledigt / gelöst (Threadstatus anpassen, 1. Beitrag bearbeiten) nicht vergessen!
-
Das Script würde ich aber noch überarbeiten, das schaut nicht sehr gut aus.
Funktioniert wenigstens deine GUI jetzt wie du es willst? Wenn ja kannst du ja den grünen Haken für erledigt / gelöst setzen indem du den Threadstatus anpasst (1. Beitrag bearbeiten).
-
Hab dir mal was gebastelt. Ist ziemlich rudimentär aber ich denke wenn du dir das ansiehst wirst du die grafische Darstellung selber gestalten.
Das parsen kannst du ja so mehr oder weniger übernehmen.Du solltest bedenken, dass der die aktuelle Uhrzeit und das Datum zur Errechnung der Show nimmt und er vermutlich crasht wenn das ganze nicht mehr passt.
Das ganze ist OHNE Errorhandling! Nur zur Demonstration![Blockierte Grafik: http://i.imgur.com/LJuU9xO.png]
-
Liegt ja auf der Hand. Du gehst in die While-Schleife aus der du nicht mehr rausgehst oder abfragst ob es neue GUI-Messages gibt.
Von dem Fall, das man Zeile 60 bis 93 in einem Case formulieren könnte, mal abgesehen hast du mehrere Möglichkeiten wie du das ganze lösen kannst.
Entweder du fragst in der While-Schleife die Messages von GUIGetMsg() ab (nicht zu empfehlen), oder du strukturierst dein Programm um (eher zu empfehlen) oder du setzt gleich auf den OnEventMode.Beim EventMode musst du dich um die Nachrichten überhaupt nicht kümmern, du gibst am Anfang an welche Funktion ausgeführt werden soll beim Klick des Buttons und er führt sie anschließen auch aus, ungeachtet dessen ob du dich momentan in einer Schleife befindest oder nicht.
-
Wie kann man das mit GDI+ machen?
Das rausfaden? Schau dir doch mal deine _GDIPlus_PenCreate an. Du übergibst ihr dort eine Farbe die du erstellen willst.
Die Farbe ist 4 Byte (ARGB). Der Alphakanal gibt die Deckung der Farbe an. FF = volle Deckung, 00 = transparent.
Du kannst die Boxen aktualisieren (Graphics clearen) und mit einem neuen Pinsel transparenter zeichnen.Wenn du deine Fenster verschiebst werden die Boxen übrigens nicht aktualisiert, du musst also noch die WM_MOVE hooken mit GUIRegisterMsg.
-
Oh man, volle Kanne übersehen das du TreeViews meinst und ich von ListViews gesprochen hab, tut mir echt leid.
Ja, das was du suchst ist dann natürlich (wie könnte es auch anders sein) ControlTreeView!Da kannst du den Pfad einfach direkt angeben und er wird auch geklickt.
Im Anhang ist mal ein Beispiel von mir wie einfach das ganze tatsächlich ist. -
Ich weiß leider nicht, wie. Daher meine Bitte um ein Beispiel.
Im Moment kann ich keins schreiben aber heute abend. Wenn bis dahin niemand was geopstet hat schau ich mal ob ich für dich ein gutes Beispiel geskriptet kriege.
-
Kannst du nicht nach dem 1. Item im Pfad suchen und dann seine Unteritems durchgehen?
-
Ist es denn deine eigene GUI oder eine Fremd-GUI?
Bei deiner eigenen GUI musst du als $hWnd den Return von GUICtrlListView nehmen. Sollte die Funktion mit fremden GUIs möglich sein, dann brauchst du das Handle mittels ControlGetHandle und der dazugehörigen Klasse.
Das $iIndex (NICHT $hItem) musst du herausfinden. Du kannst ja durch alle Einträge durchgehen und die Texte (bzw. Pfade) vergleichen.
Hast du den übereinstimmenden Pfad, so nimmst du den Index beim Click. -
ansteuern. Ich weiß leider nicht wie ich das selektieren kann.
Du willst das Item anklicken? https://www.autoitscript.com/autoit3/docs/l…w_ClickItem.htm
-
Ermittelt den kompletten Pfad bis hin zum gewünschten Item
Willst du ein Item in einer neuen Position im TreeView platzieren? Lösch das alte und erstell es im neuen würde ich sagen.
Kannst ja alle ListView-Elemente durchgehen und wenn du ein Objekt gefunden hast gehst du alle Subobjekte durch und immer so weiter bis du am Ende deines Pfades angekommen bist.
Dort kannst du das neue erstellen. -
Vielleicht reicht es auch schon, wenn Du es so programmierst, dass es die gewünschten Werte in Strings legt
Willst du die XML-Nodes geparsed in Strings haben oder was?
Vielleicht wäre es ja schön wenn du uns einen Ausschnitt der Quelldatei zeigst und eine GUI provisorisch mit Paint aufmalst wie die Daten aussehen sollen, dann können wir uns darunter sicherlich besser was vorstellen.
-
habe nicht erwartet im Autoitforum jemanden zu begegnen der Freiheits liebend ist
Hältst du uns für geisteskranke Psychopathen oder warum hast du damit nicht gerechnet?
-
Du hättest den selben Thread nehmen und keinen neuen aufmachen sollen da es sich ja letztlich um das gleiche Skript handelt (weißte halt fürs nächste Mal besser).
Codestruktur ist sehr hübsch geworden aber bei der Variablennennung kräuseln sich mir wieder die Fingernägel. $Label7, $Button1 sowas sollte man auf jeden Fall vermeiden. -
Ja aber hat das Signalfenster denn wirklich keinen Titel? Ich kannes mir nicht wirklich vorstellen.
Außerdem gibt es (wenn du dir mal WinList anschaut mit Fenstern des Titels "") unfassbar viele Fenster also wirst du mit dieser Abfrage kein Gewinn erzielen.
-
Wie meinst du das mit dem schließen? Außerdem verstehe ich nicht mal was diese WinWaitActive("") bringen soll.
-
Lies es erst komplett bevor du dich daran versuchst:
Das ist ein Parameter für die ControlId wo du einen sogenannten regulären Ausdruck geben kannst der dann das passende Control sucht.
Probier mal ob du damit auch das Objekt geklickt kriegst.Bei den Windows8 Klassen bin ich mir ziemlich unsicher, ich weiß nicht ob er das richtige matchen wird beim RegEx
AutoItControlClick($hWnd, '', '[REGEXPCLASS:WindowsForms10\.Window\.8\.app\..+?\..+?; INSTANCE:4]')
_________________Ich sehe gerade das du völlig auf die Klasse verzichten kannst da ja ein "NAME" vergeben wurde. Nimm lieber das! Damit kannst du es 100%ig identifizieren.
Im Grunde kannst du eigentlich immer die Advanced Class selber herauskopieren und musst nicht es selber zusammenbauen. Das übernimmt schon AutoIt Window Info. -
Läuft alles jetzt? Dann setz doch bitte den grünen Haken für erledigt / gelöst in dem du dem Threadstatus im 1. Beitrag anpasst.