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

Beiträge von Crys

  • Gruppe oder Bereich in GUI scrollen

    • Crys
    • 18. Mai 2010 um 11:00

    Danke!
    Du warst mir eine große Hilfe! :thumbup:

    Jetzt wäre es noch genial, wenn man die Scollbar mit dem Mausrad oder Pfeiltasten scrollen könnte, aber da bin ich schon in anderen Threads dran ... leider noch vergeblich ...

  • Gruppe oder Bereich in GUI scrollen

    • Crys
    • 18. Mai 2010 um 09:03

    hm, entweder meinst du nicht das selbe wie ich oder ich steh komplett aufn Schlauch ...

    Hier mal ein Beispiel Skript:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 441, 441, 508, 269)
    $Group1 = GUICtrlCreateGroup("Group1", 10, 10, 200, 200)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group4 = GUICtrlCreateGroup("Group4", 220, 220, 200, 200)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Group2", 220, 10, 200, 200)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("Group3", 10, 220, 200, 200)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]

    Es soll darin z.B. nur der Inhalt von Group2 gescollt werden, nicht die ganze GUI!

    Wenn du das selbe gemeint hast, dann bitte ich noch um einen kurze Erklärung ...

  • Gruppe oder Bereich in GUI scrollen

    • Crys
    • 17. Mai 2010 um 22:18

    Ich hab eine GUI, in der einige Gruppen sind!
    In mache der Gruppen will ich mehr Inhalt rein packen, als es die Größe zu lässt, deshalb möchte ich diese Gruppe, unabhängig vom Rest, scrollbar machen!
    In diese Gruppe kommt ein Bild, Text, und Checkboxen rein ...

    ist so etwas ohne weiteres Möglich?
    Wenn dann wie?

    Mir fällt nur ein, dass ich eine zweite GUI quasi auf die Haupt-GUI aufsetzte und die zweite GUI komplett scollbar mache (so wie ich es schon in anderen Thread hier im Forum gesehen habe)!?
    Ist das die einzige Möglichkeit oder geht das noch eleganter?

    thx

  • Problem mit FF.au3

    • Crys
    • 17. Mai 2010 um 22:08

    Kann mir keiner weiter helfen?
    Ich hab jetzt den ganzen Tag damit verbracht eine Lösung zu suchen, aber weiß echt nicht mehr weiter ...

  • Scrollbare GUI

    • Crys
    • 17. Mai 2010 um 21:52

    sry für's ausgraben von diesem Uralthread, aber ich wollte diesen Quelltext verwenden und musste feststellen, dass bei mir das scollen mit Mausrad und Pfeiltasten auch nicht geht!
    Weiß jemand rat?

  • Problem mit FF.au3

    • Crys
    • 17. Mai 2010 um 12:07

    Ich hab hier ein Problem mit der _FFStart() Funktion ...
    MozRepl ist installiert und gestartet ...

    Hier mein Skript:

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $seite1 = "http://autoit.de/"
    $seite2 = "http://german.documentation.ff-au3.thorsten-willert.de/"

    [/autoit] [autoit][/autoit] [autoit]

    _FFStart($seite1, "default", 1, False)
    Switch @error
    Case 1
    MsgBox(48, "", "Allgemeiner Fehler!")
    Case 3
    MsgBox(48, "", "Ungültiger Datentyp!")
    Case 6
    MsgBox(48, "", "Zeitüberschreitung beim Laden")
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    If _FFIsConnected() then
    _FFOpenURL($seite2)
    MsgBox(0, "", "Fertig!")
    Else
    MsgBox(0, "", "Fehler!")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _FFQuit()

    [/autoit]

    Fall1:
    Der FF ist auf meinem PC geschlossen und ich starte das Skript, es kommt "Fehler!"

    Fall2:
    Der FF ist auf meinem PC gestartet, ich starte das Skript, dann sehe ich wie mein aktuelles Fenster auf $seite2 wechselt, es kommt die Meldung "Fertig!" und der FF (den ich ja manuell geöffnet habe) wird geschlossen!

    Ich will aber, das eine neue FF Instanz sich sichtbar öffnet (unabhängig ob ich schon den FF geöffnet habe oder nicht) dort die $seite1 und dann die $seite2 sich nacheinander, im selben Fenster, öffnet, das Skript "Fertig!" ausgibt und nur diese, vom Skript geöffnete Instanz, sich schließt!
    Was mache ich falsch?

    thx


    Daten:
    FireFox 3.6.3
    FF.au3 aktuelle
    MozRepl 1.0.2
    AutoIt 3.3.6.1
    Win7 x64 (<== da liegt der Fehler)

  • Problem mit TreeView

    • Crys
    • 16. Mai 2010 um 21:35

    @ Oscar:
    thx! Ich hab mein Skript aber mittlerweile komplett umgebaut und in das eigentliche Skript eingebaut ...

    @ button421:
    Dazu sag ich mal lieber nichts ...

  • Programm selbst löschen

    • Crys
    • 16. Mai 2010 um 14:58

    thx SEuBo, hat geklappt!

    Ich schreibe meine Skripte immer mit Notepad++ und nicht mit SciTE, deshalb klick ich immer rechts auf die Skripte im Explorer und dann 'Compile Script' ...
    Mit 'Compile with Options' (also dem AutoIt3Wrapper ...) hab ich dann die UPX deaktiviert und schon hat der Virenscanner nicht mehr darauf angeschlagen!
    Jetzt habe ich mal bei 'Compile with Options' mal zum Spaß wieder UPX angekreuzt und compilieren lassen und es kam immer noch keine Meldung vom Virenscanner!
    Kann es sein, das dieser AutoIt3Wrapper eine andere Methode zum kompilieren verwendet, als das normale "Rechtsklick compilieren"!?

  • Programm selbst löschen

    • Crys
    • 15. Mai 2010 um 23:24

    Danke für den Tipp! Nur leider schlägt der Virenscanner immer noch darauf an :rolleyes:

    [Blockierte Grafik: http://saved.im/mtczmjc2ajz5_vs/virus.jpg]

  • Programm selbst löschen

    • Crys
    • 15. Mai 2010 um 23:18

    Ich versuche ein Programm oder besser gesagt ein Skript zu schreiben, dass das ausführende Programm löschen kann!

    Hintergrund: Ich schreibe hin und wieder Programme, die einen bösen Abgang haben ... wie einen Nachrichtendienst für die Uni, mit dem man von einem PC zu anderen mit Texten kommunizieren kann. Leider habe ich dort nach einiger Zeit die Funktion eingebaut, das man TrayTips schicken kann (so konnte man auch an Rechnern ohne das laufende Programm Nachrichten schreiben) ... kurz um, das Programm hat sich wie die Karnickel verbreitet und überall, sind immer nur noch TrayTips an den Rechnern erschienen ... die Leute im RZ hat das nicht gefreut ...
    Das will ich in Zukunft verhindern!

    Da man die Ausgeführte Datei nicht selbst löschen kann (sich quasi die Füße weg ziehen), hab ich mir was ausgedacht:
    Das Programm prüft auf meinem Webserver, ob es ausgeführt werden darf, I-Net Verbindung besteht ja immer ...
    Dann gibt es eine Datei (Kill.exe), die nur die Aufgabe hat einen Pfad aus der einer ini zu lesen und diesen dann zu löschen. Diese ist schon nach Temp beim Programmstart kopiert worden!
    Wenn das Programm nicht ausgeführt werden darf schreibt das Programm die ini-Datei mit ihren eigenen Pfad in Temp, führt die Kill.exe aus und schließt sich selbst!
    Dann löscht die Kill.exe das Programm ... soweit die Theorie!

    In der Praxis kann ich die Datei, die den ini Pfad auslesen soll und dann das Programm löschen soll, nicht mal kompilieren!
    Der Virenscaner meinst, dass das Programm ein Wurm wär ... wenn ich ihn deaktiviere, kompiliere und dann wo anders hin kopiere er kennt er ihn noch immer als Wurm ...

    Spoiler anzeigen
    [autoit]

    $ini_pfad = IniRead(@ScriptDir&"\kill.ini", "Ort", "Pfad", "")
    FileDelete($ini_pfad)

    [/autoit]

    Wie kann ich es anstellen, das ich mein eigenes Programm löschen kann?

  • Problem mit TreeView

    • Crys
    • 15. Mai 2010 um 19:11
    Zitat von AutoBert

    dass einzelne Punkte keine CheckBox haben, andere aber schon ist meines Wissens nach nicht möglich. Dass einzelne Punkte nicht auswählbar sind, sollte zu schaffen sein ist aber meinen Erachtens nach unnötig.


    Ok, ist weiter nicht tragisch ... klar kann ich die Ergebnisse dieser Punkte einfach ignorieren ... es wäre optisch aber schöner, wenn man die Punkte gleich in vornherein nicht anklicken könnte ...

    Zitat von AutoBert

    Mir ist aufgefallen, dass du ControllTreeView verwendest. Die Funktionen in der GuiTreeView.au3 sind um einiges mächtiger. Versuche am besten das Skript von Oscar zu verstehen, schau dir die entsprechenden Befehle dazu in derHilfe an. Danach solltest du alle nötigen Befehle kennen um dein Problem zu lösen.


    Negativ, kein Problem wurde gelöst ... als versucht hab es danach umzuschreiben ist gar nichts mehr gegangen ... selbst nach 2h Fehlersuche geht nichts mehr!
    Deshalb bleib ich bei den schönen einfachen Grundbefehlen, die wenigstens zum teil funktionieren!


    Dennoch bleiben die wichtigsten Fragen noch offen:
    - Wie kann ich auslesen, ob die Checkbox eines Items an gehackt ist oder nicht!? In meinem Skript klappt es nicht ...
    - Die Frage wegen den Controll-Elementen (siehe oben im Edit) ist auch noch offen!
    - Und dann wüsste ich gerne, wie man es hin bekommt, dass das TreeView immer ab ganz oben angezeigt wird, auch wenn die Liste so lang wird, das es einen Scrollleiste gibt!?
    Das mit dem Mehrdimensionalen Array hat sich erledigt ...


    /edit:
    Naja, so musste es auch kommen ... ich hab mit dem Controll-Elementen, im speziellen mit dem Handel rum gespielt und schon geht das testen, ob ein Item angeklickt ist ...
    Die Letzte Frage ist aber immer noch offen ...

  • Problem mit TreeView

    • Crys
    • 15. Mai 2010 um 16:12

    Ich möchte quasi einen Liste erzeugen, die in zwei oder drei Teile geteilt ist und viele Unterpunkte hat ... ich denke dafür ist GUICtrlCreateTreeView() am besten geeignet!

    Ich hab schon ein kleines Programm geschrieben, nur bin ich auf unlösbare Probleme gestoßen...

    Hier mein Programm:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <TreeviewConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    $text = ""

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI und TreeView definieren
    $gui = GUICreate("ControlTreeview test", 212, 198)
    $gui_empfaenger = GUICtrlCreateTreeView(6, 6, 200, 160, BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_SHOWSELALWAYS,$TVS_CHECKBOXES),$WS_EX_CLIENTEDGE)
    $gui_empf_h = ControlGetHandle("", "", $gui_empfaenger)
    $button = GUICtrlCreateButton("Test", 6, 172, 200, 20)

    [/autoit] [autoit][/autoit] [autoit]

    ; Liste wird geladen
    Dim $liste_empf1[3] = ["Hans", "Karl", "Max"]
    Dim $liste_empf2[5] = ["Moritz", "Fritz", "Josef", "Günter", "Otto"]

    [/autoit] [autoit][/autoit] [autoit]

    ; TreeView
    $liste1 = GUICtrlCreateTreeViewItem("Liste1", $gui_empfaenger)
    Dim $empf1[Ubound($liste_empf1)]
    For $y=0 to Ubound($liste_empf1)-1
    $empf1[$y] = GUICtrlCreateTreeViewItem($liste_empf1[$y], $liste1)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $liste2 = GUICtrlCreateTreeViewItem("Liste2", $gui_empfaenger)
    Dim $empf2[Ubound($liste_empf2)]
    For $y=0 to Ubound($liste_empf2)-1
    $empf2[$y] = GUICtrlCreateTreeViewItem($liste_empf2[$y], $liste2)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; GUI starten
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    ; Elemente definieren
    ControlTreeView("", "", $gui_empf_h, "Expand", "Liste1")
    ControlTreeView("", "", $gui_empf_h, "Expand", "Liste2")
    ControlTreeView("", "", $gui_empf_h, "Check", "Liste1|Hans")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $button ; Beim klichen auf test
    For $y=0 to Ubound($empf1)-1
    $check = ControlTreeView("", "", $gui_empf_h, "IsChecked", "#0|#"&$y)
    If $check == 1 then
    $text = $text&$liste_empf1[$y]&@CRLF
    EndIf
    Next
    For $y=0 to Ubound($empf2)-1
    $check = ControlTreeView("", "", $gui_empf_h, "IsChecked", "Liste1|"&$liste_empf2[$y])
    If $check == 1 then
    $text = $text&$liste_empf2[$y]&@CRLF
    EndIf
    Next
    MsgBox(0, "Markierte Empänger", $text)
    EndSelect

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
    • Ich möchte das die Punkte 'Liste1' und 'Liste2' keine Checkbox haben und am besten auch nicht anklickbar sind ...
    • Ich kann irgendwie nicht mehr auslesen, was angeklickt ist! Ich kann aber meinen Fehler nicht finden ...
      Ich habe auch zwei Methoden angewendet ... ein mal über die Namen der Liste|Empänger und einmal über deren Anordnung #0|#1
    • Schaff ich es nicht die Punkte "Liste1" und "Liste2" zusammen zu fassen, in ein mehrdimensionales array ... das gelingt mir nicht ...


    thx


    /edit:
    Noch ne Zusatzfrage:
    Bei den ganzen Controll..() Elementen (ControlTreeView, ControlHide, ...) sind die ersten beiden Parameter immer "Title" und "Name"! Ist es egal was ich das eingebe?
    Weil ich habe bisher keinen Unterschied festgestellt, ob ich da was richtiges oder nicht eingebe!
    Was ist eig. das richtige, was man dort eingeben sollte?

  • Problem mit MySQL

    • Crys
    • 15. Mai 2010 um 15:35

    ok, ich dank euch allen für die Antworten! :thumbup:

    Funktioniert jetzt 1a!
    Aber, ich habe gemerkt, das diese Methode einen Web MySQL Server anzuwählen nicht besonders sicher ist ...

    Ich hab einen Kuppel (gelernter Informatiker) mein (kompiliertes) Programm zum zugreifen auf meinem MySQL Server geschickt und der hatte innerhalb kürzester Zeit herausgefunden, was das PW und Username ist ...
    ... er hat mit erklärt, wie man das macht ... abfangen der Signale vom Programm an den Server ... egal ... wenn er das hin bekommt, dann bekommen das viele hin ...
    Ich hab jetzt auf meinem Server einen kleine API in php geschrieben, die die Daten auswertet, die von meinen Programm kommen und Rückwerte gibt ... die Logindaten sind auf der nicht zugreifbaren Seite meines Webspaces (hoffentlich) sicher ...

    Für den Lokalen oder Intranet Einsatz, ist die Methode aber dennoch was ...

  • Liste erstellen

    • Crys
    • 13. Mai 2010 um 16:04
    Zitat von Alizame

    bin mir nicht sicher aber glaube so geht das in einer zeile... :?:

    [autoit]

    Dim $liste[4] = [1,2,"test",5,"test2"]

    [/autoit]


    thx, das wäre schon eine Näherung, an eine einfachere Schreibweise!


    Es muss aber wirkich 5 heißen!

    [autoit]

    Dim $liste[5] = [1,2,"test",5,"test2"]

    [/autoit]


    Wieso weiß ich auch nicht! Geht ja sonst in der IT i.d.R. immer mit Null los ...


    Man, wieso kann es nicht so einfach, wie z.B. in php gehen: "$liste = array(1,2,'test',5,'test2');" !? :(
    Man muss nicht wissen was in das Array kommt und auch nicht wissen wie viel!
    Und erweitern der Liste geht auch noch kinderleicht: "$liste[] = 'test3';" ...

  • Liste erstellen

    • Crys
    • 13. Mai 2010 um 15:12

    Hi,

    Ich will eine Liste in AutoIt intern erstellen, ala "$liste = (1, 2, "test", 5, "test2")"
    Nur scheint das in AutoIt nicht zu gehen 8|

    Denn, ich weiß nicht wie viele Objekte in die Liste rein kommen und so ist mir das auch viel zu umständlich:

    [autoit]

    Dim $liste[5]
    $liste[1] = 1
    $liste[2] = 2
    $liste[3] = "test"
    $liste[4] = 5
    $liste[5] = "test2"

    [/autoit]


    Ich will in einer einzigen Zeile, schön übersichtlich, mehrere Objekte in einem Array zusammenfassen!
    Wie geht das?

    thx

  • Problem mit MySQL

    • Crys
    • 9. Mai 2010 um 20:27

    Ich verwende noch Xampp v1.7.2, aber die *.dll Dateien sind aufs Bit gleich groß ...

    Es geht ja alles, was ich bisher will ... von dem her nicht so tragisch

  • Problem mit MySQL

    • Crys
    • 9. Mai 2010 um 20:16
    Zitat von progandy

    PS: Falls du 64bit hast, musst du als x86 (32bit) starten, da ich noch keine libmysql.dll für x64 gefunden habe.


    Danke, das war's!

    Super Tool soweit! :thumbup:

    Aber ein kleiner Fehler: Wenn ich die test.au3 starte, dann läuft die Fehler-Demo durch. Dann kommt die Msg "XAMPP-Cdcol-demo" und dann stürzt das Programm ab!
    Wenn ich die Fehler-Demo auskommentiere, dann läuft das Programm durch ...

  • Problem mit MySQL

    • Crys
    • 9. Mai 2010 um 19:55

    Ganz einfach: Weil es keine Anleitung gibt, wie man das installiert!

    Ich habe die zip-Datei runtergeladen und alle Dateien, bis auf die test.au3, in den Include Ordner kopiert ... oder?
    Geht auf jeden Fall nicht ... wenn ich die test.au3 dann ausführe kommt gleich am Anfang, bei der "_MySQL_InitLibrary()" ein Fehler ...

  • Problem mit MySQL

    • Crys
    • 9. Mai 2010 um 19:22

    Sers,

    Ich hab nach der Anleitung das installiert, ...

    Spoiler anzeigen

    Genauer Installationsweg:
    - Dateien wie auf Seite angegeben heruntergeladen
    - beide nach c: kopiert (ODBC DRIVER INSTALL.au3 und Setup.exe)
    - ODBC DRIVER INSTALL.au3 mit x86 kompiliert
    - kompilierte Datei gestartet
    - mysql.au3 in den Inculde-Ordner kopiert

    System: Win7 x64

    ...ohne Probleme, aber ich bekomme immer einen Fehler, wenn ich auf die mysql.au3 zugreifen will:
    [Blockierte Grafik: http://saved.im/mtcxnjk5cjyz_vs/mysql.png]


    Wer die mysql.au3 kennt, kennt auch den Quellcode ... ich habe daran nichts verändert ...
    Die Datei wird in meinem Skript inkludiert, im Skript steht nur das minimale:

    Spoiler anzeigen
    [autoit]

    #include "MySQL.au3"

    [/autoit] [autoit][/autoit] [autoit]

    $UserName = "xxx"
    $Password = "xxx"
    $Database = "xxx"
    $MySQLServerName = "123.123.123.123"

    [/autoit] [autoit][/autoit] [autoit]

    $SQLInstance = _MySQLConnect($UserName,$Password,$Database,$MySQLServerName)

    [/autoit] [autoit][/autoit] [autoit]

    _MySQLEnd($SQLInstance)

    [/autoit]


    Die Daten stimmen auf jeden Fall ...

    Was mach ich falsch?

    thx

  • PNG in GUI einbauen

    • Crys
    • 24. April 2010 um 20:24

    Das erste Problem habe ich gelöst, in dem ich eine Gruppe hinzugefügt habe, die nur auf der ersten Seite sichtbar ist und größer als das Fenster ist!
    Ist zwar keinen schöne Lösung, aber da ich keinen Hilfe bekommen habe ... tja, es geht ...

    Zum 2ten Probleme:
    Es scheint so, als ob der die Grafik immer und immer wieder lädt, so lang nichts mehr von den Alpha-Werten übrig ist ..
    Wie bekomm ich das hin, das ich auch einen Teiltransparenz darstellen kann?
    Liegt es vielleicht an meiner Datei?
    Helft mir einfach ...

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™