Danke!
Du warst mir eine große Hilfe!
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 ...
Danke!
Du warst mir eine große Hilfe!
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 ...
hm, entweder meinst du nicht das selbe wie ich oder ich steh komplett aufn Schlauch ...
Hier mal ein Beispiel Skript:
#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 ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
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 ...
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
Kann mir keiner weiter helfen?
Ich hab jetzt den ganzen Tag damit verbracht eine Lösung zu suchen, aber weiß echt nicht mehr weiter ...
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?
Ich hab hier ein Problem mit der _FFStart() Funktion ...
MozRepl ist installiert und gestartet ...
Hier mein Skript:
#include <FF.au3>
[/autoit] [autoit][/autoit] [autoit]$seite1 = "http://autoit.de/"
$seite2 = "http://german.documentation.ff-au3.thorsten-willert.de/"
_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
If _FFIsConnected() then
_FFOpenURL($seite2)
MsgBox(0, "", "Fertig!")
Else
MsgBox(0, "", "Fehler!")
EndIf
_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)
@ Oscar:
thx! Ich hab mein Skript aber mittlerweile komplett umgebaut und in das eigentliche Skript eingebaut ...
@ button421:
Dazu sag ich mal lieber nichts ...
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"!?
Danke für den Tipp! Nur leider schlägt der Virenscanner immer noch darauf an
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 ...
$ini_pfad = IniRead(@ScriptDir&"\kill.ini", "Ort", "Pfad", "")
FileDelete($ini_pfad)
Wie kann ich es anstellen, das ich mein eigenes Programm löschen kann?
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 ...
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 ...
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:
#include <GUIConstantsEx.au3>
#include <TreeviewConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
$text = ""
; 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)
; Liste wird geladen
Dim $liste_empf1[3] = ["Hans", "Karl", "Max"]
Dim $liste_empf2[5] = ["Moritz", "Fritz", "Josef", "Günter", "Otto"]
; 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
$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
; GUI starten
GUISetState(@SW_SHOW)
; Elemente definieren
ControlTreeView("", "", $gui_empf_h, "Expand", "Liste1")
ControlTreeView("", "", $gui_empf_h, "Expand", "Liste2")
ControlTreeView("", "", $gui_empf_h, "Check", "Liste1|Hans")
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
WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit]
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?
ok, ich dank euch allen für die Antworten!
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 ...
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';" ...
Hi,
Ich will eine Liste in AutoIt intern erstellen, ala "$liste = (1, 2, "test", 5, "test2")"
Nur scheint das in AutoIt nicht zu gehen
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"
Ich will in einer einzigen Zeile, schön übersichtlich, mehrere Objekte in einem Array zusammenfassen!
Wie geht das?
thx
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
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!
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 ...
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 ...
Sers,
Ich hab nach der Anleitung das installiert, ...
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:
#include "MySQL.au3"
[/autoit] [autoit][/autoit] [autoit]$UserName = "xxx"
$Password = "xxx"
$Database = "xxx"
$MySQLServerName = "123.123.123.123"
$SQLInstance = _MySQLConnect($UserName,$Password,$Database,$MySQLServerName)
[/autoit] [autoit][/autoit] [autoit]_MySQLEnd($SQLInstance)
[/autoit]
Die Daten stimmen auf jeden Fall ...
Was mach ich falsch?
thx
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 ...