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

Beiträge von BugFix

  • [Nim] Registry - Typ eines Schlüssels abfragen

    • BugFix
    • 26. April 2020 um 13:47

    Interaktionen mit der Registry sind ja ständig erforderlich. Es gibt dafür auch ein Modul "winregistry" (Dokumentation).

    Ich habe damit ergänzend mein Modul "registry" mit folgenden Funktionen erstellt:

    • AppPathGet
      Returns the installation path of an passed application
    • VolatileEnvironmentGet
      Returns a tuple with all volatile environment values
    • EnvironmentGet
      Returns the value of a passed environment name
    • EnvironmentValueNamesGet
      Returns a list with all environment names
    • CountKeyValues
      Returns the number of key-value pairs that are associated with the specified
      registry key. Does not count default key-value pair.
    • ListNameValuePairs
      Fills a table with all name-value-pairs for a passed registry key.
      The table to receive the values must passed too.
    • RegistryGetValueType
      Gets the type of the value for a passed registry key.

    Die Funktion "RegistryGetValueType" gefällt mir aber nicht so richtig, weil sie auf der Basis von Try&Error arbeitet, also eher eine Notlösung darstellt. Dazu hatte ich auch meine bisher einzige Anfrage im Nim-Forum erstellt - leider ohne Resonanz.

    Vielleicht habt ihr ja eine Idee, wie man das etwas eleganter gestalten kann.

    Code
    #------------------------------------------------------------------------------
    # Gets the type of the value for a passed registry key.
    #------------------------------------------------------------------------------
    # example:
    #   var
    #     h: RegHandle
    #   
    #   try:
    #     h = open(r"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control", samRead or samQueryValue)
    #     echo RegistryGetValueType(h, "PreshutdownOrder")  # output --> REG_MULTI_SZ
    #   except RegistryError:
    #     echo "Registry Open Error"
    #   finally:
    #     close(h)
    #------------------------------------------------------------------------------
    proc RegistryGetValueType*(h: RegHandle, key: string): string =
      var 
        iErr = 0
        readStr: string
        readMultiStr = newSeq[string]()
        readInt32: int32
        readInt64: int64
        readBinary = newSeq[byte]()
    
      try:
        readMultiStr = h.readMultiString(key) # REG_MULTI_SZ
      except RegistryError:
        iErr = 1
        
      if iErr == 1:
        try:
          readStr = h.readExpandString(key)   # REG_EXPAND_SZ
        except RegistryError:
          iErr = 2
            
      if iErr == 2:
        try:
          readStr = h.readString(key)         # REG_SZ
        except RegistryError:
          iErr = 3
        
      if iErr == 3:
        try:
          readInt32 = h.readInt32(key)        # REG_DWORD
        except RegistryError:
          iErr = 4
        
      if iErr == 4:
        try:
          readInt64 = h.readInt64(key)        # REG_QWORD
        except RegistryError:
          iErr = 5
        
      if iErr == 5:
        try:
          readBinary = h.readBinary(key)      # REG_BINARY
        except RegistryError:
          iErr = 6
      
      case iErr
        of 6:
          return "UNKNOWN_TYPE"
        of 5:
          return "REG_BINARY"
        of 4:
          return "REG_QWORD"
        of 3:
          return "REG_DWORD"
        of 2:
          return "REG_SZ"
        of 1:
          return "REG_EXPAND_SZ"
        of 0:
          return "REG_MULTI_SZ"
        else:
          discard
    #-------------------------------------------------------- /RegistryGetValueType
    Alles anzeigen

    Dateien

    registry.zip 1,73 kB – 570 Downloads
  • [Nim] Syntaxcheck On/Off ?

    • BugFix
    • 26. April 2020 um 11:58

    In VSCode/VSCodium erfolgt der Syntaxcheck ja on-the-fly. Das ist besonders bei größerer Source sehr lästig, weil es lange dauert und bis dahin alles mögliche als Fehler markiert ist (nebenbei bremst es den PC auch deutlich aus).

    Ich suche jetzt nach einer Möglichkeit, wie in AutoIt, den Syntaxcheck nur auf Kommando auszuführen.

    Falls euch also ins Auge fällt, wie man das umsetzen könnte, sagt Bescheid. ;)

  • [Nim] Fragen zu einem Frame (Window)

    • BugFix
    • 26. April 2020 um 11:21

    Hier mal ein Bsp. um ein PNG anzuzeigen (Dateipfad anpassen), Funktioniert auch mit anderen Bildformaten.

    Code
    import wnim/[wApp, wFrame, wPanel, wStaticBitmap, wBitmap]
    
    type
      MenuID = enum
        idExit = wIdUser
    
    let app = App()
    
    let frame = Frame(title="Test StaticBitmap", size=(400,300))
    
    let panel = Panel(frame)
    
    const somePng = staticRead(r"C:\Users\BugFix\Pictures\ICON\Windows M3 PDC Icons & PNG\PNG\DDORes_dll_04_13.png")
    
    let staticbitmap = StaticBitmap(panel, bitmap=Bitmap(somePng))  # style=wSbAuto (default); wSbFit; wSbCenter
    
    frame.idExit do (event:wEvent):
      frame.delete
    
    frame.center()
    frame.show()
    app.mainLoop()
    Alles anzeigen

    Die Funktionsdetails findest du alle in der Online-Doku wNim.

    Übrigens, wenn nur die ID "idExit" benötigt wird, kann man sich die Typdeklartion sparen. Dann reicht völlig:

    const idExit = wIdUser

    (oder man nimmt gleich wIdExit :Face:, naja - auch für mich noch neu)

  • [Nim] Fragen zu einem Frame (Window)

    • BugFix
    • 26. April 2020 um 10:03

    Erst mal zum AutoLayout - für mich auch noch immer hartes Brot.

    Das stammt aus der Apple-Welt: https://developer.apple.com/library/archiv…0010853-CH7-SW1

    Zum Testen gibt es einen Online-Editor: https://rawgit.com/IjzerenHein/vi…dist/index.html

    Die Erstellung der Fenster mit den Ctrl läßt sich mit der Malerei vergleichen.

    - als Erstes brauchst du einen Bilderrahmen --> Frame

    - den bespannst du mit dem Leinen --> Panel

    - und auf dem Leinen wird gemalt --> Positionieren der Ctrl

    Es gibt noch andere GUI-Module, die zusätzlich auf dem Panel noch Container positionieren, in denen die Ctrl platziert werden. Vereinfacht die Ausrichtung

    "app.mainloop()" - das schätze ich genauso ein, wie du. Ich habe aber noch nicht versucht den Aufruf in den Ressourcen nachzuverfolgen, zumal ich davon ausgehe, dass das irgendwo in einer Dll endet.

    Ressourcenfreigabe ist angenehmerweise nicht erforderlich.

  • Verständnisfrage zu einer Return-Funktion (Anfänger)

    • BugFix
    • 25. April 2020 um 15:26

    Das ist ein Ternärer Operator:

    Ausdruck ? wenn-wahr : sonst

    Also eine andere Art von If-Then-Else.

  • Programmiersprache Nim

    • BugFix
    • 24. April 2020 um 10:59

    Ich habe die Installationsanleitung ergänzt um den VSCode Fork "VSCodium" (identisch zu VSCode - aber von Haus aus ohne Telemetrie und installierbar über scoop).

    Ebenfalls hinzugefügt habe ich mein Einstellungsdatei für VSCode/VSCodium, dann braucht nicht jeder erst experimentieren.

    Dateien

    manual.pdf 80,5 kB – 1.280 Downloads
  • Programmiersprache Nim

    • BugFix
    • 23. April 2020 um 16:44
    Zitat von Bitnugger

    BugFix - wäre schön, wenn du hier deine Anleitung zur Installation für scoop, NIM, usw. posten würdest.

    Hatte ich gestern schon in Post #1 angehängt. :*

  • Programmiersprache Nim

    • BugFix
    • 23. April 2020 um 09:37
    Zitat von autoiter

    Ich will nur zu bedenken geben, dass die Sprache wirklich anders ist als AutoIt (typsicher und so) und dass es eher ein toter Zweig würde.

    Selbst Lua, was ja auch in unserem Kontext zur SciTE Modifikation genutzt werden könnte, beinhaltet doch nur Beiträge von BugFix, oder?

    Du hast natürlich recht, dass diese Sprache anders ist. Auch der Hinweis auf das Unterforum Lua ist nicht von der Hand zu weisen. Jedoch sehe ich einen eklatanten Unterschied zu Lua:

    Lua kannst du eigentlich nur verwenden um diese Skripte irgendwo zu implementieren. Es ist nichts, was selbst lauffähig ist.

    Nim dagegen ist kompilierbar. Und die Typsicherheit ist ja gerade ein Fakt, der sehr angenehm ist. Für Anfänger mag der Datentyp Variant von Vorteil sein, aber wenn du schon etwas mehr Erfahrung hast, empfindest du das mehr als Limitierung (zumindest geht es mir so).

    Ich denke, dass hier eine gute Möglichkeit besteht z.B. zeitrelevante Anwendungen auszulagern.

    Selbst wenn wir dafür ein Unterforum erstellen sollten ändert das doch nichts an dem, was wir sind: Die AutoIt-Gemeinde. :love:

  • Programmiersprache Nim

    • BugFix
    • 22. April 2020 um 15:25

    Das Forum gibt es nur in englisch.

    Und mit meinem momentanen Wissensstand nach 1 Jahr gelegentlichen Programmierens mit Nim wage ich kaum dort Fragen zu stellen, wenn ich sehe mit welcher Thematik man sich dort beschäftigt. ?(

    Was ich toll finde, dass diese Sprache sehr intensiv entwickelt wird.

    Mein Daumen für ein Unterforum. :thumbup:

  • Includes - Entsprechungen und Handhabung mit alten AutoIt Versionen

    • BugFix
    • 21. April 2020 um 21:18
    Zitat von Musashi

    Wie invasiv wäre eine Installation ? Verbiegt sie einem das ganze System, oder kann man sie problemlos wieder entfernen ?

    Ist nicht sehr invasiv. Ich empfehle die Installation mittels scoop, darüber lässt sich auch prima deinstallieren.

    Ich füge dich zur Konversation hinzu.

  • Includes - Entsprechungen und Handhabung mit alten AutoIt Versionen

    • BugFix
    • 21. April 2020 um 19:35
    Zitat von Oscar

    Mir auch, bitte!

    erledigt, s. Konversation

  • Includes - Entsprechungen und Handhabung mit alten AutoIt Versionen

    • BugFix
    • 21. April 2020 um 17:31
    Zitat von Professor Bernd

    Habe ich das richtig verstanden, dass NIM keine visuellen Elemente wie GUIs/Fenster unterstützt und eher für unsichtbare Anwendungen zu verwenden ist?

    Das hast du falsch verstanden. Es gibt nichts, was du mit Nim nicht anstellen kannst. Es gibt einigeGUI-Bibliotheken. Ich empfehle wNim, weil man dann keine weiteren Bindungen berücksichtigen muss bei den m.M. nach umfangreichsten Controls.

    P.S.

    Falls du mit Nim arbeiten möchtest, würde ich dir eine Installationsanleitung schicken für eine wenig umständliche, zukunftssichere Installation.

  • FB Code Optimierung

    • BugFix
    • 21. April 2020 um 17:00
    Zitat von AspirinJunkie

    Lavadarstellung oder sowas?

    Sieht wirklich cool aus. Aber ich dachte als erstes an Darmschlingen, hängt wohl mit meiner beruflichen Ausrichtung zusammen. ^^

  • Listview- Datenbank v3 Beispiel

    • BugFix
    • 21. April 2020 um 13:35

    Setz mal bitte deinen Versuchscode hier rein. Dann können wir am Ehesten sehen, wo der Hund begraben ist.

  • Mauscursor versetzen

    • BugFix
    • 21. April 2020 um 13:03

    Bring kenne ich nicht, ist das ein Screen Mirroring Programm?

    Die Ursache liegt dann im Programm, es ist fraglich ob man dann an den Symptomen herumdoktern sollte, statt evtl. in den Settings des Programms den Fehler zu beheben.

    Darf man fragen, wozu das genutzt wird?

  • FB Code Optimierung

    • BugFix
    • 21. April 2020 um 12:19

    Variante 1: Mittelwert 29 fps

    Variante 2: Mittelwert 19 fps !

    i5, 2,4GHz, 8 GB RAM, Win7 pro x64

  • Includes - Entsprechungen und Handhabung mit alten AutoIt Versionen

    • BugFix
    • 21. April 2020 um 09:42
    Zitat von Professor Bernd

    Kompilierte Exes will ich vermeiden, zum einen weil die recht groß werden und sich das bei mehreren Dateien aufaddiert, und zum anderen, weil die AntiVir-BlödmännerInnen sich über jede AutoIt Exe händereibend kaputt lachen: "He, he, he, die werd ich gleich mal löschen! Und wieder und wieder, ... dann warte ich mal ein paar Wochen ... und dann wieder, und ..." :evil:

    Wenn du magst, könnte man kleine, nicht AntiVir-Programme aufscheuchende Exe z.B. mit Nim erstellen. Sourcecode dazu stellen, dass jeder der keine fremdkompilierte Exe nutzen mag sich das bei Bedarf auch selbst kompilieren kann. Bin zwar selbst noch am Anfang mit der Sprache (programmiere damit seit knapp einem Jahr), aber gerade was Geschwindigkeit bei Textverarbeitung angeht ist das wie Shinkansen und Straßenbahn im Vergleich zu AutoIt. :P

  • Mauscursor versetzen

    • BugFix
    • 21. April 2020 um 09:26
    Zitat von FrankA340

    beide werden über ein Programm und eine Maus gesteuert.

    Eine Maus für beide PC? Wie hast du das gelöst, irgendein Switch? Das könnte das Problem sein (eine Signalquelle für 2 Signalempfänger).

    Wenn eine absolut identische Positionierung erreicht werden soll (Voraussetzung ist dann auch identische Hardware bei beiden PC - Grafikkarte/Monitor) muss ein PC die Maus direkt angeschlossen haben. Dann wird jedes Maus-Event gelesen und per Netzwerkprotokoll an den 2.ten PC übertragen und dort ein entsprechendes Maus-Event ausgelöst. Dazu wird es vermutlich erforderlich sein, dass eine Maus (die selbst nicht bewegt wird) angeschlossen ist. Denn ohne Hardware-Maus wird das System m.M. Maus-Events ignorieren. - Aber das ist im Moment etwas spekulativ, habe ich selbst nicht probiert bisher.

    Gib erst mal an, wie genau die Hardwaresituation ist.

  • Accelerators UDF

    • BugFix
    • 19. April 2020 um 17:33

    v. 0.2 Ergänzt um Anbindung an bestehendes Control, nicht nur Dummies.

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.5 2020.04.13)

    • BugFix
    • 19. April 2020 um 15:34

    :whistling:

    Irren ist menschlich. - Aber euch gibt's ja auch noch. :thumbup:

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™