Coole Info Oscar. Vielen Dank!
Beiträge von autoiter
-
-
Dann kannst du ja einfach mehrere Hotkeys definieren und entsprechende Funktionen dazu aufrufen - analog der im Beispiel von x0r. Problem ist gelöst, oder?
-
Hi Kazume,
ich hatte schon angefangen hier zu antworten. Mir ist dann aber klar geworden, dass du besser eine genauere Beschreibung bringst, bevor ich hier irgendeinen Mist schreibe.
Zeig doch bitte mal einen Schnipsel aus $aADGroup. Ich würde nämlich gerne wissen, ob du das Array 1zu1 in der Listview darstellen möchtest, oder du immer drei Zeilen aus dem Array in eine Zeile in der Listview packen willst.
AutoIt$aListView[$i][0] = Stringreplace($aADGroup[$i],"CN=","") $aListView[$i][1] = Stringreplace($aADGroup[$i],"DC=","")
Dein Codebeispiel sieht mehr nach letzterem aus..
Zu deiner Frage, was da passiert:
AutoItGlobal $aListView[UBound($aADGroup)][3] ; <- ein entsprechend großes 2D-Array erstellen For $i = 0 To UBound($aADGroup) - 1 ; alle Einträge aus dem AD-Array durchlaufen $aListView[$i][0] = $aADGroup[$i] ; Gruppe als Item eintragen $aListView[$i][1] = '' ; <- hier kannst Du noch Einträge für die SubItems vornehmen $aListView[$i][2] = '' ; <- hier kannst Du noch Einträge für die SubItems vornehmen Next
Oscar hat dir ja Anmerkungen dazu geschrieben. Das heißt du verstehst den Rest nicht?Die Variable $aListView[UBound($aADGroup)][3] erstellst du, weil du sie gleich mit Inhalten füllen möchtest. Die Anzahl der "Zeilen" wird dabei auf die Anzahl der Zeilen von $aADGroup festgelegt, weil Oscar davon ausging, dass du jede Zeile aus $aADGroup in eine "Zeile" der Listvieww schreiben wolltest.
For $i = 0 To UBound($aADGroup) - 1 Hier wird eine For ... Next-Schleife ausgeführt und die Variable $i mit der Durchlaufnummer gefüllt. $i hat erst den Wert 0, dann 1, dann 2, ..., dann die letzte Zeilennummer aus $aADGroup. Das - 1 steht dahinter, weil das Array eine Zeile weniger hat, als Ubound anzeigt (Ubound gibt in der Zeile Null die Anzahl der Array-Elemente an).
In der Schleife wird nun in die "Zeile" 0 und "Spalte" 1 des Listview-Arrays ($aListView) die "Zeile" 0 aus dem aADGroup-Array, in "Zeile" 0 und "Spalte" 2 des Listview-Arrays irgendwas und in "Zeile" 0 und "Spalte" 3 des Listview-Arrays irgendwas eingetragen. Danach das gleiche für die jeweilige "Zeile" 1 der Arrays, danach für Zeile 2 und so weiter bis zur letzten Zeile von aADGroup.
Mein Tipp:
Benutze die Hilfe. Lerne Schleifen zu benutzen und zu verstehen und prüfe ob du dieses Array-Tut hier verstehst: http://www.bug-fix.info/array_tut.htm -
Hi @AspirinJunkie,
kann ich super gebrauchen. Vielen Dank
-
Ubound hat noch eine weitere Konsequenz. Schau dir einfach die Hilfe an. Das ist nichts mit Winkelzügen. Ein Durchlesen der Beschreibung muss alle deine Fragen beantworten.
-
Hallo @Kazume,
Sollte aus dem Bsp. von Oscar hervorgehen. Allerdings möchte ich dich doch noch darauf hinweisen, dass du in deinem Bsp. Ubound falsch verwendest.
Code$Groups = _AD_GetUserGroups(@Username) For $i = 0 To UBound -1 _GUICtrlListView_AddItem($GUI,$Groups) Next
So geht das nicht. Siehe Bsp. von Oscar und Autoit-Hilfe.
-
Nein, nein General, denk nochmal darüber nach.
Ein Hersteller, hat x Vorbesteller und mehrere Millionen Interessierte auf einer Warteliste. Aus nicht näher bekannten Gründen verzögert sich das Anlaufen der Lieferung aber um einen Monat. Um die enttäuschten Vorbesteller und Wartenden von der Warteliste zu entschädigen, gibt es einen einstündigen offenen Verkauf, bei dem jeder zum Zug kommen kann. Platz 2 auf der Warteliste hat dabei nicht mehr Chancen, als irgendwer, der sich gar nicht darum gekümmert hat. Platz 2 hat aber vllt. 50 neue Kunden geworben..
Kann es sich dabei wirklich um eine Entschädigung für die Leute handeln, die sehnlichst auf das Handy gewartet haben?.. Nach spätestens zehn Minuten bricht der Server zusammen und man aktualisiert wie ein Idiot die Website. Am nächsten Tag erfährt man dann welch ein Erfolg die Aktion war. Um die armen, leer ausgegangenen Kunden in Spe zu trösten, entschließt sich OnePlus diese Aktion zu wiederholen.
Vielen Dank.
-
Der Kommentar von 15:41 gefällt mir:
... so meine Vermutung, dass da gar nichts "verbaselt" wurde. Das ist Teil deren... -
Hallo mauric,
du willst schnellstmöglich zum Ziel fertige Anwendung gelangen. Auf dem Weg dahin vernachlässigst du aber das Lernen beim Schreiben etwas.
- Deshalb hab ich in Zeile 30 geschrieben For $i = 1 to UBound(GuiCtrlRead($Input1)) -1
weil diese noch zu diesem Zeitpunkt korrekt befüllt war/ist.Kanashius schrieb dir "GuiCtrlRead() liefert aber auf jedenfall KEIN Array". Ubound würde entsprechend nichts bringen. Du hast es jetzt ja noch einmal zu erklären versucht, aber das ist nicht adäquat - denn das grundsätzliche Problem hat Kanashius dir genannt. Du kannst nicht Ubound auf einen String anwenden.
Du pipest String aus GUICtrlRead($Input1) durch deine Funktion _AD_GetUserGroups. Aus einem anderen Thread, meine ich mich zu erinnern, dass $aUser ein Array ist. Darauf lässt auch das $a.. schließen. An diese Konventionen habe ich mich zu Anfang auch nicht gehalten. Es hilft aber enorm wenn man nach einiger Zeit seinen Code mal wieder anschaut. Wenn es ein Array ist, dann ist auch klar, warum die Message Box leer ist. Sie kann nur Strings und keine Arrays darstellen.
Setze doch mal unter die Zeile 27 _ArrayDisplay($aUser) - (hierfür ist #include <Array.au3> nötig).
Wenn etwas angezeigt wird, liege ich mit meinem Verdacht richtig.Du benutzt doch SciTE, oder?
Klicke immer mal die Befehle an, die du benutzt und drücke F1. SciTE öffnet dann direkt die Hilfe zu diesem Befehl. Lies dir die Beschreibungen durch und schau dir die Beispiele an. Du kannst sie auch direkt in SciTE öffnen und dir den Code in Action anschauen. Das hilft sehr beim Verständnis.
Daneben gibt es noch Unmengen an Tutorials. Suche unbedingt mal in der SM deiner Wahl z.B. nach "AutoIt Array Tutorial". Du wirst ein Tut von Bugfix finden, dass du unbedingt gelesen haben solltest. -
Ich kenne jetzt ja nicht die Listview. Aus meiner Sicht musst du eben die Spalte bei der Erstellung auch bereitstellen die meinetwegen erst leer ist und dann einfach mit _GUICtrlListView_SetItemText Nein oder den Wert setzen, den du aus der Ini ausliest.
-
Ich verstehe das Problem noch nicht. IniRead kennst du ja. If und Else doch auch. Wo liegt denn jetzt dein Problem genau.
Hat sich mit Oscars Antwort überschnitten. Kannst du ignorieren. -
Achso ja.
Schau dir mal die Hilfe zu ShellExecuteWait an.
Der Befehl sollte doch so aufgebaut sein: ShellExecuteWait ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag]]]] ) ?!? -
Hinter $Input1 in Zeile 20 hast du versehentlich ein Dollarzeichen statt einem Und verwendet.
-
Hier können sicher noch qualifiziertere Antworten als meine kommen. Also warte noch ab.
Alternativ könntest du ja ein rotes Label als Rahmen oder Unterstreichung um das Control legen. (Ist für die Lesbarkeit vllt. auch besser).
Es geht dir ja nur um den Hinweis, wo die Leute jetzt hinklicken sollen. -
Der Befehl färbt nicht den ausgeklappten Bereich, sondern den ersten Inhalt. Den hast du aber schon mit dem Style $CBS_DROPDOWNLIST belegt. Daher klappt das nicht.
Du müsstest den Style entfernen. -
Hallo Kazume,
Schreib mal die Zeile in deinen Schnipsel _ArrayDelete($aUser, 0) über die Zeile _GUICtrlListView_AddArray($ListViewUser,$aUser)
Das löscht den ersten Wert im Array $aUser. -
Hallo,
du musst wahrscheinlich mal deinen Code zeigen.
Prinzipiell funktioniert das nämlich. -
Du liest die Box direkt nach der Erstellung aus. Verschiebe die GuictrlRead-Zeile einfach unter die Ausführung des Buttons.
AutoIt
Alles anzeigen#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 269, 99,193,115) $Input1 = GUICtrlCreateInput("",72,16,121,21) $Tmp = GUICtrlRead($Input1) $Button1 = GUICtrlCreateButton("Button1",96,56,75,25,0) GUISetState(@SW_SHOW) ;; set the gui state to show so you can see it While 1 ;;; start of loop[/COLOR] $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $Tmp = GUICtrlRead($Input1) MsgBox(1,"","111"& $Tmp &"ddd",100) ; Kürzer wäre es so MsgBox(1,"","111"& GUICtrlRead($Input1) &"ddd",100) EndSwitch WEnd
-
Hallo @TaPS
Bei mir klappt der TCP Connect nicht mit Port 4321. Mit Port 80 aber auch hier problemlos.
-
EDIT: Da war ja schon eine Antwort Hab es auch mal gespoilert.
Spoiler anzeigen
Hi @BugFix,
Einerseits hast du natürlich recht, den Kopf zu schütteln, dass Leute sich zum Affen machen, weil sie jemandem Geld für sein Produkt geben möchten und das möglichst schneller als andere.Dich nervt vllt. der "Hype" (falls der nicht nur in der Gruppe, der erfolgreich gebundenen Kunden, besteht), auf den diese Marketingstrategie baut. Ich finde die Darstellung auch oft übertrieben glorifizierend. Allerdings halte ich deine Antithese für genauso falsch und möchte das jetzt mal nicht so stehen lassen.
Prinzipiell kann man bei diesen China-Smartphones doch zugreifen. Ich hatte bisher das Oppo Find 5, das Zopo ZP999 und das richtig trashige Cubot X9 in Händen. Die haben neben meinem Note 3 eine gute Figur gemacht. Gerade das Zopo ZP999 bietet sogar mehr Leistung (wenn man es braucht). Meist muss man auch nicht irgendwo nach China schicken, sondern erhält das Gerät aus Europa und kann es auch innerhalb der EU zum Support senden.
Warum sollte man nun ein Smartphone von dieser Firma kaufen wollen? Naja, weil das letzte Produkt ein hervorragendes Preis-Leistungs-Niveau, bei insgesamt hoher Kundenzufriedenheit bot. Das ist ein sehr gutes Argument. Tests gibt es auch bereits. Die c't hatte einen im letzten Heft, es gibt auch andere und es werden sicher mehr kommen. Das OnePlus 2 ist sicher nicht das beste Gerät am Markt, aber sicher ein Smartphone, für dessen Kauf man sich entscheiden kann.