Du kannst Texte innerhalb von Listviews nicht ohne weiteres mehrfarbig machen, nur einfarbig.
Beiträge von alpines
-
-
Wie wäre es denn wenn du ins erstmal dein Script zur Verfügung stellst? Offenbar bist du ja schon so weit.
Wenn du auf der 1. GUI wieder Controls erzeugen möchtest, obwohl du bereits eine zweite GUI erstellt hast, dann kannst du dafür GUISwitch nehmen.
Da übergibst du einfach die aktive GUI und die Controls werden dann auf der entsprechenden GUI erzeugt.
Du kannst auch auf GUISwitch komplett verzichten indem du alle Unter-GUIs vorher erzeugst und mit GUISetState und @SW_HIDE erstmal versteckst.
Anschließend erzeugst du deine Haupt-GUI. Das ganze funktioniert, wenn du auf den Unter-GUIs keine neuen Controls erzeugst sondern sie nur beschreibst.
-
Es hat sich rausgestellt, dass er die App nicht braucht. Der Standardwecker bietet nämlich bereits ein Widget was mehr oder weniger seinen Zweck erfüllt von daher setze ich das hier mal als [gelöst].
-
-
Bei ListBoxen ist das nicht so einfach möglich, selbst in C# muss man dafür das Zeichnen selber übernehmen.
Du bist besser bedient wenn du stattdessen eine ListView nimmst und den Style $LVS_LIST, dann siehts wie eine ListBox aus.
AutoIt
Alles anzeigen#include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 185, 227, 192, 124) $ListView1 = GUICtrlCreateListView("", 40, 32, 90, 150, BitOR($GUI_SS_DEFAULT_LISTVIEW,$LVS_SMALLICON)) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 1000) $ListView1_0 = GUICtrlCreateListViewItem("123123", $ListView1) GUICtrlSetBkColor(-1, 0x000000) GUICtrlSetColor(-1, 0xFFFFFF) $ListView1_1 = GUICtrlCreateListViewItem("2132323", $ListView1) GUICtrlSetBkColor(-1, 0xFF0000) GUICtrlSetColor(-1, 0x00FF00) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd -
Was meinst du denn mit Liste? Eine ListView mit Checkboxen oder einfach Labels und Checkboxen nebeneinander?
-
Wie läuft das? ich tippe nur den aktuell kommenden Spieltag. Richtig?
Wenn es wie bei der WM ist, dann kannst du auf alles im voraus tippen. Allerdings sind einige Paarungen noch nicht bekanntgegeben und dann tauchen dort nur Platzhalternamen auf.
Aber bei den Spielen die entschieden sind (wer also gegen wen spielt) kannst du so weit im voraus tippen wie du willst, ab einer bestimmten Deadline (Beginn des Spiels) wird dein Tipp eingefroren.
-
Ein Blick in die Hilfe hilft da weiter:
They cannot fire a function directly - they action their associated control which then fires the function using GUIGetMsg() or GUICtrlSetOnEvent(). If there is no suitable control available in the GUI then a dummy control can be created using GUICtrlCreateDummy.
Du kannst also unter Anderem damit Accelerators setzen, das sind praktisch in-gui Hotkeys die dann in der Messageloop abgearbeitet werden können sofern die Accelerators nicht auf den Controls selbst aktiviert werden sollen.
-
Dass diese "völlig veraltete" Hardware aber incl. BS bulletproof und mit völlig ausreichender Geschwindigkeit gearbeitet hat, ist ja seitens IT-Infrastrukturspezialistenseits auch völlig unerheblich.
Da hilft nur im Zehnerpack zu bestellen wenn die Geräte einsatzfähig bleiben dürfen.
-
Zuerst habe ich esauch sauber mit .exists gemacht, musste dann aber leider feststellen,dass es immer True ist.
Es ist doch nur True wenn du den Schlüssel ansprichst bevor du es mit Exists abfragst. Solange du konsistent Exists davor nutzt wird es nie immer True returnen.
Ich verstehe ja nicht mal was du genau machen möchtest, dass dich die Performance so stört.
Es gibt vielleicht eine bessere Datenstruktur um dein Problem zu lösen, welches in konstanter statt logarithmischer/linearlogarithmischer Zeit läuft.
Du kannst den Code auch in einen Code-Tag packen und dann AutoIt als Highlighter auswählen, dann sieht das ganze 'ne Ecke besser aus.
-
Dann ist die Funktion unbrauchbar... dann halt so...
Und wenn der Server down ist? Nimm als URL doch mal http://asoifajosfjasofjao8isfhjashfao0ghfa9osh890ohas.de.
Es handelt sich um eine gültige URL, auch wenn unter dem Server nichts erreichbar ist.
-
oder so...
Kreativ, geb ich zu.Aber _WinAPI_IsInternetConnected returnt auch True wenn eine Lan-Verbindung besteht.
Du kannst also zum Router verbunden sein (der Router kann aber alle Anfragen blockieren und es ist dennoch True, habs gerade getestet.)
Ganz zu schweigen davon, ob der Webserver überhaupt erreichbar ist oder nicht.
-
oder du machst es so...
Und wenn du offline bist?
-
Du prüfst mit Exists ob ein Key schon existiert und deine andere Abfrage dient dazu um zu schauen ob der Eintrag leer ist.
Sofern du nicht wahllos Keys ansprichst die nicht existieren ist Exists der saubere Weg das zu coden.
Deine Abfrage ob der Key leer ist gibt dir aber nicht zurück ob der Key vorher existiert hat oder nicht.
Schreibe ich in einen Key und prüfe ob er leer ist, so weißt du nur, dass der Eintrag leer sein kann, aber der Key vorher nicht existiert hat.
Du musst also verfolgen ob du den Key schon mal geschrieben hast oder nicht.
Wohingegen bei der Exists-Variante das nicht der Fall ist. Solange du nur schreibst wenn dein Exists false ist, hast du auch noch den Überblick darüber,
ob der Key vorher existierte oder nicht.
Immerhin versuchst du auch nicht in Arrayindizes zu schreiben ohne vorher zu schauen wie groß das Array ist.
-
Jo, das ist das Problem! Und das ist Working as intended?
Natürlich, so stehts auch in der Dokumentation.
Zitat von msdnIf key is not found when attempting to return an existing item, a new key is created and its corresponding item is left empty.
-
Der Schlüssel wird automatisch bei Ansprechung erzeugt. Siehe hier: https://stackoverflow.com/q/10475669
-
Call
Brauchst du seit einigen Versionen überhaupt nicht mehr da du Funktionsreferenzen in Variablen speichern kannst und sie die Variablen wie Funktionen aufrufen kannst.
@HotKeyPressed funktioniert nur wenn HotKeySet eine Funktion aufruft die registriert wurde, ansonsten sollte HotKeyPressed undefiniert sein.
Wenn du die generell alle Tastendrücke abfangen willst (ohne sie zu blockieren) kannst du dafür _IsPressed verwenden.
Einfach den Scancode übergeben und du kriegst True oder False zurück je nach dem ob die Taste gedrückt worden ist oder nicht.
Wenn du dazu noch alle Scancodes in ein Array packst und einfach durchiterierst findest du raus welche Tasten auf der Tastatur gedrückt worden sind und welche nicht.
-
Danke, im kurzen Test mit normalen Windows kopieren erreicht sie zwar nur 5,75 mb/s. Als Karte für mein Nokia 3 (kommt erst noch), hauptsächlich um GPS-Daten zu tracken, reicht es allemal.
Was für Dateien kopierst du denn? Es macht einen gewaltigen Unterschied ob du mehrere kleine oder wenige große kopierst.
-
Vielleicht könnte man ja mal AutoIt so designen oder eine Möglichkeit einbauen, das es nicht disassemblierbar und es keine Möglichkeit mehr gibt aus einer EXE
wieder Programmcode heraus zu bekommen.Das ist als würdest du ein Auto zu bauen versuchen, welches fahren kann aber nicht auseinanderschraubbar ist - das ist unmöglich.
Woher soll der Interpreter oder dein PC denn dann wissen welche Anweisungen er ausführen soll?
Den Programmcode kriegt man auch ohne weiteres nicht raus, deshalb mach die Sperre so vernünfitg wie es geht und
steck den Rest deiner Energie lieber in das Programm selber, immerhin willst du es ja nicht öffentlich verteilen sondern nur an gezielte Personen.
-
Das eher schwieriger, es ist aber möglich ohne großen Aufwand einfache If-Abfragen abzuhebeln oder einfach komplett zu überspringen.
Absolute Sicherheit gibt es nicht, du kannst zur Sicherheit noch einen Obfuscator nutzen oder einen Online-Interface zum Login anbieten,
aber selbst das ist, wenn man sich die Zeit dafür nimmt, knackbar.
Deshalb solltest du dir die Frage stellen ob dein Programm wirklich so kostbar ist, dass du es mit einem Passwort absichern möchtest und wenn ja,
wie schwierig du es dem Angreifer machen willst.
Verteilst du dein Programm nur an DAUs musst du nicht so viel Arbeit reinstecken wie an jemanden der weiß was er am Rechner tut.
-
Sollte das nicht Stimmen?
Du brauchst keinen Decompiler um deine Simple If-Abfrage auszuhebeln.
Wenn ich genauer ins Detail gehen würde verstößt das gegen die Forenregeln aber das was chess gesagt geht schon in die richtige Richtung.
Ein paar Minuten im Disassembler und das Programm ist geknackt.