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

Beiträge von Techmix

  • X-Mas

    • Techmix
    • 27. Dezember 2015 um 12:23

    Hohoho,
    hab meinem Sohn ein kleines CPU Upgrade gegönnt. Er hat ein Sockel 775 Board mit 6GB DDR3 und einer ASUS 7790. Sein alter CPU ist der Core2Duo 7400 und den haben wir mit einem Xeon 5430 getauscht.
    Jetzt hat er im Heaven Benchmark mit extremer Tesselation 57% mehr Leistung ^^

    Hätte ich so nicht erwartet...

    Dicke Grüsse :D

  • [Gelöst] Excel / Outlook Event Hilfe in VBA

    • Techmix
    • 17. November 2015 um 09:09

    Moin!
    Ich verstehe deine Fragestellung nicht ganz... Willst du auf einem Button drücken und dieser soll deinen Code ausführen - oder was meinst du mit der "Send" Button Abfrage?

    Grüsse!

  • UDF-Transfer Probleme

    • Techmix
    • 15. November 2015 um 22:39

    Habe gerade getestet, das Beispiel läuft bei mir problemlos!
    Die Fehlermeldung kommen aber nicht bei mir, der Thenäre Opperator scheint bei dir nicht zu funzen - Hast du die gleichen Meldungen auch beim TCP-Script??

    ...Ich sehe grade das ich das selber duch C&P verursacht habe - Sorry dafür! Die genannte Variable nennt sich '$eUDP_String' und nicht '$eTCP_String'... Habe den Startpost angepasst.

    Aber auch mit Anpassung wird das Script nicht wie gewünscht ausgeführt - Der Client bleibt beim UDPRecv stehen bzw. empfängt einfach nichts...

  • UDF-Transfer Probleme

    • Techmix
    • 15. November 2015 um 21:48

    Nabend :D

    Für ein aktuelles Projekt habe ich mir ein Automatisiertes IPC geschrieben welches 6 Protokolle unterstützt (TCP / UDP / Datei / Clipboard / Mailslot / Messagehandler). 5 dieser Protokolle laufen schon seit geraumer Zeit nur bekomme ich das UDP-Protokoll nicht in den Griff... Entweder stehe ich total auf dem Schlauch vielleicht hat meine Rechner-Konfig einen Knall - oder es liegt an der aktuellen AutoIt3 Version.

    Ich habe mal zwei einfache Versionen geschrieben damit wenigstens eine davon funktioniert, die TCP-Variante nutzt einen Datenkanal und die UDP zwei.

    TCP
    C
    #Region	- Includes -----------------------------------------------------------------------------------------------------------------
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_UseUPX=n
    
    
    #RequireAdmin
    #include-once
    #include <Array.au3>
    #include <String.au3>
    
    
    Opt("MustDeclareVars", 1)
    
    
    #EndRegion -------------------------------------------------------------------------------------------------------------------------
    
    
    
    
    
    
    ; ----------------------------------------------------------------------------------------------------------------------------------
    ;	Deklarationen
    ; ----------------------------------------------------------------------------------------------------------------------------------
    Global _
    	$eTCP_Handle[4], _
    	$eTCP_IP 					= "127.0.0.1", _
    	$eTCP_String				= FileRead(@AutoItExe), _
    	$eTCP_File					= @ScriptDir & "\" & StringTrimRight(@ScriptName, 4) & ".exe"
    Global _
    	$i4KiB 						= 4096, _
    	$bEOF 						= "{EOF}", _
    	$iEOFLen 					= StringLen($bEOF)
    
    
    
    
    
    
    ; ----------------------------------------------------------------------------------------------------------------------------------
    ;	TCP Transfer
    ; ----------------------------------------------------------------------------------------------------------------------------------
    Func _GetTCP($hSocket)
    	Local _
    		$sTransfer
    
    
    	Do
    		$sTransfer &= TCPRecv($hSocket, $i4KiB)
    	Until StringRight($sTransfer, $iEOFLen) = $bEOF
    	$sTransfer = StringTrimRight($sTransfer, $iEOFLen)
    
    
    	Return $sTransfer
    EndFunc
    
    
    Func _SetTCP($vData, $hSocket)
    	TCPSend($hSocket, $vData & $bEOF)
    EndFunc
    
    
    
    
    
    
    ; ----------------------------------------------------------------------------------------------------------------------------------
    ;	Prozedur-Start
    ; ----------------------------------------------------------------------------------------------------------------------------------
    If @Compiled = 0 Then		; Host
    	Local _
    		$hHandle, _
    		$sAutoItExe, _
    		$hTimer, _
    		$sText
    
    
    	; Client Kompilieren
    	$sAutoItExe = StringReplace(@AutoItExe, "AutoIt3.exe", "aut2exe\aut2exe.exe")
    	RunWait($sAutoItExe & ' /in ' & '"' & StringReplace($eTCP_File, ".exe", ".au3") & '"')
    
    
    	; Client Starten
    	TCPStartup()
    	$eTCP_Handle[0] = 2015
    	$eTCP_Handle[1] = TCPListen($eTCP_IP, $eTCP_Handle[0])		; Host <--> Client
    	$hHandle = ShellExecute($eTCP_File, "", @SW_HIDE)
    
    
    	; Warten auf Client-Verbindung
    	Do
    		$eTCP_Handle[2] = TCPAccept($eTCP_Handle[1])
    	Until $eTCP_Handle[2] <> -1
    
    
    	; Daten an Client senden
    	$hTimer = TimerInit()
    	_SetTCP($eTCP_String, $eTCP_Handle[2])
    	$sText = _GetTCP($eTCP_Handle[2])
    	$hTimer = TimerDiff($hTimer)
    	ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hTimer = ' & $hTimer & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    	$sText = "Data Valid: " & ($eTCP_String = $sText ? "Yes" : "No")
    	ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sText = ' & $sText & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    
    
    	TCPCloseSocket($eTCP_Handle[2])
    	TCPCloseSocket($eTCP_Handle[1])
    	TCPShutdown()
    EndIf
    
    
    If @Compiled Then			; Client
    	Local _
    		$sText
    
    
    	; Client Starten und mit Host verbinden
    	TCPStartup()
    	AdlibRegister("Check", 100)
    	$eTCP_Handle[0] = 2015
    	Do
    		$eTCP_Handle[1] = TCPConnect($eTCP_IP, $eTCP_Handle[0])	; Host <--> Client
    	Until $eTCP_Handle[1] > -1
    
    
    	; Daten von Host empfangen und zurücksenden
    	$sText = _GetTCP($eTCP_Handle[1])
    	_SetTCP($sText, $eTCP_Handle[1])
    
    
    	TCPCloseSocket($eTCP_Handle[1])
    	TCPShutdown()
    EndIf
    
    
    
    
    Func Check()
    	if ProcessExists("autoit3.exe") = 0 then Exit
    EndFunc
    Alles anzeigen
    UDP
    C
    #Region	- Includes -----------------------------------------------------------------------------------------------------------------
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_UseUPX=n
    
    
    #RequireAdmin
    #include-once
    #include <Array.au3>
    #include <String.au3>
    
    
    Opt("MustDeclareVars", 1)
    
    
    #EndRegion -------------------------------------------------------------------------------------------------------------------------
    
    
    
    
    
    
    ; ----------------------------------------------------------------------------------------------------------------------------------
    ;	Deklarationen
    ; ----------------------------------------------------------------------------------------------------------------------------------
    Global _
    	$eUDP_Handle[4], _
    	$eUDP_IP 					= "127.0.0.1", _
    	$eUDP_String				= FileRead(@AutoItExe), _
    	$eUDP_File					= @ScriptDir & "\" & StringTrimRight(@ScriptName, 4) & ".exe"
    Global _
    	$i4KiB 						= 4096, _
    	$bEOF 						= "{EOF}", _
    	$iEOFLen 					= StringLen($bEOF)
    
    
    
    
    
    
    ; ----------------------------------------------------------------------------------------------------------------------------------
    ;	UDP Transfer
    ; ----------------------------------------------------------------------------------------------------------------------------------
    Func _GetUdp($hSocket)
    	Local _
    		$sTransfer
    
    
    	Do
    		$sTransfer &= UDPRecv($hSocket, $i4KiB, 0)
    	Until StringRight($sTransfer, $iEOFLen) = $bEOF
    	$sTransfer = StringTrimRight($sTransfer, $iEOFLen)
    
    
    	Return $sTransfer
    EndFunc
    
    
    Func _SetUdp($vData, $hSocket)
    	UDPSend($hSocket, $vData & $bEOF)
    EndFunc
    
    
    Func _GetUdp_Binary($hSocket)
    	Local _
    		$sTransfer
    
    
    	Do
    		$sTransfer &= UDPRecv($hSocket, $i4KiB, 1)
    	Until StringRight($sTransfer, $iEOFLen*2) = StringTrimLeft(StringToBinary($bEOF), 2)
    	$sTransfer = BinaryToString($sTransfer)
    	$sTransfer = StringTrimRight($sTransfer, $iEOFLen)
    
    
    	Return $sTransfer
    EndFunc
    
    
    Func _SetUdp_Binary($vData, $hSocket)
    	UDPSend($hSocket, StringToBinary($vData & $bEOF))
    EndFunc
    
    
    
    
    
    
    ; ----------------------------------------------------------------------------------------------------------------------------------
    ;	Prozedur-Start
    ; ----------------------------------------------------------------------------------------------------------------------------------
    If @Compiled = 0 Then		; Host
    	Local _
    		$hHandle, _
    		$sAutoItExe, _
    		$hTimer, _
    		$sText
    
    
    	; Client Kompilieren
    	$sAutoItExe = StringReplace(@AutoItExe, "AutoIt3.exe", "aut2exe\aut2exe.exe")
    	RunWait($sAutoItExe & ' /in ' & '"' & StringReplace($eUDP_File, ".exe", ".au3") & '"')
    
    
    	; Client Starten
    	UDPStartup()
    	$eUDP_Handle[0] = 2015
    	$eUDP_Handle[1] = UDPBind($eUDP_IP, $eUDP_Handle[0])		; Host <-- Client
    	$eUDP_Handle[2] = $eUDP_Handle[0]+1
    	$hHandle = ShellExecute($eUDP_File, "", @SW_HIDE)
    
    
    	; Warten auf Client-Verbindung
    	Do
    		$eUDP_Handle[3] = UDPOpen($eUDP_IP, $eUDP_Handle[2])	; Host --> Client
    	Until @error = 0
    
    
    	; Daten an Client senden
    	$hTimer = TimerInit()
    	_SetUdp($eUDP_String, $eUDP_Handle[3])
    	$sText = _GetUdp($eUDP_Handle[1])
    	$hTimer = TimerDiff($hTimer)
    	ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hTimer = ' & $hTimer & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    	$sText = "Data Valid: " & ($eUDP_String = $sText ? "Yes" : "No")
    	ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sText = ' & $sText & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    
    
    	UDPCloseSocket($eUDP_Handle[1])
    	UDPCloseSocket($eUDP_Handle[3])
    	UDPShutdown()
    EndIf
    
    
    If @Compiled Then			; Client
    	Local _
    		$sText
    
    
    	; Client Starten und mit Host verbinden
    	UDPStartup()
    	AdlibRegister("Check", 100)
    	$eUDP_Handle[0] = 2015
    	Do
    		$eUDP_Handle[1] = UDPOpen($eUDP_IP, $eUDP_Handle[0])	; Host <-- Client
    	Until @error = 0
    	$eUDP_Handle[2] = $eUDP_Handle[0]+1
    	$eUDP_Handle[3] = UDPBind($eUDP_IP, $eUDP_Handle[2])		; Host --> Client
    
    
    	; Daten von Host empfangen und zurücksenden
    	$sText = _GetUdp($eUDP_Handle[3])
    	MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '@error' & @CRLF & @CRLF & 'Return:' & @CRLF & @error) ;### Debug MSGBOX
    
    
    	MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '$sText' & @CRLF & @CRLF & 'Return:' & @CRLF & $sText) ;### Debug MSGBOX
    	_SetUdp($sText, $eUDP_Handle[1])
    
    
    	UDPCloseSocket($eUDP_Handle[1])
    	UDPCloseSocket($eUDP_Handle[3])
    	UDPShutdown()
    EndIf
    
    
    
    
    Func Check()
    	if ProcessExists("autoit3.exe") = 0 then Exit
    EndFunc
    Alles anzeigen


    Die Clients erstellen sich bei Ausführungder Scripte selber.

    Wo liegt das Problem bei der UDF-Version?? Host und Client verbinden sich (@error=0) aber entwender sende ich oder empfange die Daten falsch...

    System Win7 x64, AutoIt V3.3.14.2

    Grüsse!

    [PS]
    Wieso gehen die Code-Tags nicht richtig?!? <- Sorry :D

  • [close] AI Fight #1 - Snake

    • Techmix
    • 20. März 2015 um 23:28

    Hy,
    als Spiel würde sich Tron wirklich anbieten! Es ist schnell programmiert und auch einfach gehalten. Oder auch ein Panzerspiel im Stile von den ollen Atari 2600 Spielen würde einfach zu schreiben sein. Was ich dir nicht empfehle sind im Spiel integrierte "Gegner" wie z.B. bei PacMan die Geister - da wäre der Zufallsfaktor viel zu hoch und es würde als "Unfair" eingestuft werden...

    Zu dem Punkt mit dem Strategiespiel würden mich weitere Infos interessieren, an welcher Art von Strategie-Spiel denkst du?? In Richtung Aufbau-Strategie hatte ich einen einfachen 600-Zeiligen "Prototyp" in tiefer Vergangenheit angefertigt mit Einheiten, Sichtweiten, Gebäuden, Ressourcen und Untergrund. Auf einer grafischen Anzeige hatte ich komplett verzichtet und alles mit einfachen Labels dagestellt, mir ging es nur um die Umsetzung der benötigtigten Basisfunktionen. Wenn man sowas im "Multiplayer" Modus schreiben möchte, hat man sogar die Möglichkeit mehr als 2 Gegner zeitgleich antreten zu lassen - ist im Sinnes eines AI-Fightes total unnütz, hätte aber trotzdem den Vorteil das man in der Entwicklung seiner eigenen AI auch gleich mehrere Konfigurationen oder unterschiedeleich AI´s gegeneinander anteten lassen könnte. Da geplant ist 2 AI´s antreten zu lassen ist der Untergrund seeehr wichtig und sollte als interaktiver Spiegel zu der Gegenseite erstellt werden - AI1 entdeckt ein neues Feld und das wird gespiegelt bei AI2 plaziert und eben andersrum. Dadurch stellst du sicher das beide Seiten auf die gleichen Untergrundwerte zugreifen können und dieser als "Unfair-Bug" ausgeschlossen wird... Auch kann man ein größeres Spielfeld verwenden und dadurch können sich die AI´s besser entwickeln und es kommt vielmehr auf dem Programmierer an wie seine AI sich verhalten soll da man nicht gleich nach einigen Zügen auf den Gegner trifft!

    Die Retrospiele sind in einem viel kürzeren Zeitraum zu realisieren und die AI´s müssen auch nicht so hoch entwickelt werden, das währe ein guter Einstieg. Aber das Strategiespiel ist in seiner eigenen Entwicklung im Verhältniss schon High-End, und die AI´s müssen auch sehr gut Ausgebaut sein damit diese überhaupt fähig sind den Umfang verarbeiten zu können!

    Ich finde dieses Thema sehr interessant und bin gespannt in welcher Richtung du das Weitertreibst!

    Grüsse!

  • Steganografie für Bild- und Sounddateien

    • Techmix
    • 28. Februar 2015 um 12:12

    Coole Idee und Umsetzung!

    Könnte man eine Datei auch in einem Video verstecken??? Also die Funktion weiter Erweitern ^^

    Grüsse!

    P.S: Andy, wieso kannst du ein .png verwenden?? Krieg es nicht geladen :whistling:

  • AD Userprofil Citrixprofilpfad mit AutoIT setzen

    • Techmix
    • 25. Februar 2015 um 16:50

    Versuche die .bat und .vbs mit ShellExecute() statt den Run-Befehlen auszuführen. Im Gegensatz zu den Run-Befehlen wird bei ShellExecute die API verwendet.

    Grüsse!

  • SciTE4AutoIt - Erweitern um FreeBasic, Lexer Probleme...

    • Techmix
    • 18. Februar 2015 um 23:04

    Wow, sieht schonmal gut aus dein Link 8o
    Hat sich zufällig jemand diese russischen *.properties übersetzt - Google Translate spuckt teilweise wirren Kram aus...

    Und ich kann kein russisch :D

    Aber da haben die echt ne Menge aus Scintilla gemacht! Auch die Sidebar und Tools können sich sehen lassen :thumbup: Werde mich die Tage damit mal intensiv beschäftigen.

    Grüsse!

  • SciTE4AutoIt - Erweitern um FreeBasic, Lexer Probleme...

    • Techmix
    • 18. Februar 2015 um 21:06

    Für dein Edit fehlen mir die Zugriffsrechte ?!?

  • SciTE4AutoIt - Erweitern um FreeBasic, Lexer Probleme...

    • Techmix
    • 18. Februar 2015 um 12:22

    Danke ;)

  • SciTE4AutoIt - Erweitern um FreeBasic, Lexer Probleme...

    • Techmix
    • 18. Februar 2015 um 12:02

    Räusper...
    Ihr hattet recht, wenn man in SciTE4Au3 den Au3-Lexer für andere Sprachen verwendet - werden diese Einstellungen auch in Au3 aktiv... So ein Mist ^^

    Habe mir gestern WScite geladen, aber noch keine Hand angesetzt... SciTE-RU kann ich nicht runterladen, die Google-Code Seite ist Down - und es ist von 2007... ?!?

    Und ich hatte so darauf gehofft das SciTE4AutoIt "schnell" angepasst werden kann :whistling: Ich will doch "nur" den grafischen Stil und das Folding von Au3 in FB haben (und noch ein paar andere Extras) aber der Lexer wurde anscheinend schwer verändert - und kein Source ist verfügbar... Sonst könnte man dort wenigstens einige Anpassungen durchführen damit sich dieser nicht so stur auf Au3 fixiert.

  • SciTE4AutoIt - Erweitern um FreeBasic, Lexer Probleme...

    • Techmix
    • 17. Februar 2015 um 12:04

    Hy!

    Raupi : Ist ne gute Frage ^^ Ich tippe mal auf Gewohnheit! Ich mage es nicht das ich für unterschiedliche Sprachen andauernd den Editor wechseln muss - deshalb mein Anliegen die AutoIt-Version von SciTE anzupassen. Nur wusste ich nicht das diese offensichtlich stärker verändert wurde als das nur andere *.properties verwendet werden. Ich werde mir heute Abend mal SciTE-RU anschauen und auch nochmals die offizielle Scintilla.

    BugFix : Super Sache das mit dem Highlighting :thumbup: Wusste nicht das dieses auch an den Properties angewand werden kann.

    Im allgemeinen würde ich schon gerne bei SciTE bleiben, ich liebe den minimalismus ^^ Mit IDE´s tue ich mich meißtens schwer und verwende dann fast auschließlich nur den Editorteil :D Auch für C verwende ich SciTE, hab nur Keywords editiert und eben Hilfedateien includiert sowie nötige Compiler - dann noch etwas Farbe, und schon Code ich gemütlich in C.

  • SciTE4AutoIt - Erweitern um FreeBasic, Lexer Probleme...

    • Techmix
    • 16. Februar 2015 um 21:02

    Super Link, endlich mal etwas Einblick in den ganzen Lexer Krams - Danke ^^

    Ich habe jetzt einfach eine Version mit Au3 Lexer erstellt - und das Highlighting ist jetzt in Bunt und ähnelt schon eher dem gewohnten Bild ;) stimmt aber noch nicht 100%. Auch ist das Folding jetzt besser als zuvor, es gehen bloß keinerlei Kommentare. Auch wird Au3 nicht groß davon beinträchtigt, ich verwende ja nur den Lexer mit einem anderen File-Pattern und anderen Keywords. Lediglich die FreeBasic-API scheint bei mir in Au3 aktiv zu sein :whistling:

    Ausserdem hatte ich die FB-Keywords mit einem Skript erstellt und auch die Ext-Lib mit einbezogen, aber leider ist das Skript verloren und die Keywords sind auf dem Stand von 2013 - daher weiß ich nicht in wie weit diese überhaupt zur aktuellen FB-Version kompitabel sind! Ich hatte mit dem Skript auch eine FB-Api erstellt, diese ist ebenso nicht akuell - aber ich füge diese noch dem Archiv bei. <- Muss in "*\AutoIt3\SciTE\api" abgelegt werden, die freebasic.properties verwendet diese Api.

    Ind der freebasic.properties wird ein Skript angesprochen welches das Kompilieren und ähnliches ermöglichen soll. Ich schreibe dieses noch neu damit auch *.bi Dateien kompiliert werden können...

    Jetzt ist mir etwas aufgefallen, kann es sein das innerhalb der *.properties das Zeichen '/' genauso wie '\' intern reserviert sind? Habe es zwar auch schon geändert getestet - und es gab keine Besserung, aber jetzt grundsätzlich: In FB soll ich ja für eine Kommentar-Box /' und '/ verwenden, wenn dieses Zeichen aber reserviert ist wie könnte ich dieses trotzdem verwenden?
    Der einfache Kommentar-Block (Taste -) lässt sich ja auch verwenden.

    freebasic.properties
    Code
    # FreeBASIC4SciTE settings.
    #
    # 2015 - Techmix
    #
    #
    
    
    # Filepattern: fb
    # Lexer: freebasic
    
    
    ## Pathes&Files
    #~ freebasic.exe=C:\Coding\FreeBASIC\fbc.exe
    #~ freebasic.helpfile=
    win32.help=
    win.styles.help=C:\Coding\FreeBASIC\freebasicEdit\Help\Windows_styles.chm
    au3.exe=C:\Coding\AutoIt3\autoit3.exe
    
    
    ## Patterns
    fb=*.bas;*.bi
    filter.fb=FreeBasic (bas bi)|$(fb)|
    lexer.$(fb)=au3
    
    
    ## Autocomplete and call tip settings
    api.$(fb)=$(SciteDefaultHome)\api\freebasic.api
    proper.case=0
    calltip.au3.word.characters=$(chars.alpha)$(chars.numeric)_
    calltip.au3.ignorecase=1
    calltip.au3.end.definition=)
    calltip.au3.parameters.separators=,
    autocomplete.au3.ignorecase=1
    autocomplete.au3.start.characters=$(chars.alpha)$(chars.numeric)_@#*
    word.characters.$(fb)=$(chars.alpha)$(chars.numeric)$(chars.accented)._@#*
    
    
    statement.indent.$(fb)=
    statement.end.$(fb)=
    statement.lookback.$(fb)=
    block.start.$(fb)=5 \
        asm if else elseif for case select switch do while with function sub \
        Asm If Else ElseIf For Case Select Switch Do While With Function Sub \
        ASM IF ELSE ELSEIF FOR CASE SELECT SWITCH DO WHILE WITH FUNCTION SUB
    block.end.$(fb)=5 \
        next until loop wend end \
        Next Until Loop Wend End \
        NEXT UNTIL LOOP WEND END
    
    
    ## Comments functions definition
    comment.block.au3='~
    comment.block.at.line.start.au3=1
    comment.stream.start.au3=/'
    comment.stream.end.au3='/
    comment.box.start.au3=/'
    comment.box.middle.au3=
    comment.box.end.au3= '/
    
    
    ## Import the seperate freebasic.keywords.properties file
    import properties\freebasic.keywords
    import properties\asm.keywords
    # Keywords & Datatypes
    keywords.$(fb)=$(keywords) $(datatypes)
    # Functions
    keywords2.$(fb)=$(functions)
    # Api-Functions
    keywords3.$(fb)=$(apifunctions)
    # Ext-Functions
    keywords6.$(fb)=$(extfunctions)
    # Pre-Processor
    keywords5.$(fb)=$(preprocessor)
    # Inline-ASM
    keywords4.$(fb)=$(asm)
    
    
    ## FreeBasic Syntax-Colors:
    Col_Backround=         #F0F4F9
    Col_CarretLine=     #FFFED8
    Col_SelectedTextF=     #006000
    Col_SelectedTextB=     #F0A0A8
    Col_WhiteSpace=     #000000
    Col_CommentLine=     #008000,italics
    #~ Col_Number=            #0000FF,bold,italics
    Col_Number=            #AC00A9,bold,italics
    Col_Function=        #000090,bold,italics
    Col_Keyword=        #0000FF,bold
    Col_Macro=            #808000,bold
    Col_String=            #FF0000,bold
    Col_Operator=        #FF8000,bold
    Col_Variable=        #5A5A5A,bold
    Col_SendKeys=        #808080,bold
    Col_PreProcessor=    #808000,italics
    Col_Special=        #DC143C,italics
    Col_AbbrevExpand=    #FF0000,bold
    Col_COMObjects=        #993399,bold,italics
    Col_UDFs=            #0080FF,bold,italics
    Col_Test=            #00FF00,bold,italics
    
    
    ## FreeBasic extendet style
    # Background
    style.freebasic.32=style.*.32=back:$(Col_Backround)
    # CaretLine Background
    caret.line.back=$(Col_CarretLine)
    # White space
    style.freebasic.0=fore:$(Col_WhiteSpace)
    # Comment
    style.freebasic.1=fore:$(Col_CommentLine)
    # Comment Block
    style.freebasic.2=fore:$(Col_CommentLine)
    # Number
    style.freebasic.3=fore:$(Col_Number)
    # Function
    style.freebasic.4=fore:$(Col_Function)
    # Keyword    - Keywords&Datatypes
    style.freebasic.5=fore:$(Col_Keyword)
    # Macro
    #~ style.freebasic.6=fore:$(Col_Macro)
    # String
    style.freebasic.7=fore:$(Col_String)
    # Operator
    style.freebasic.8=fore:$(Col_Operator)
    # Variable
    style.freebasic.9=fore:$(Col_Variable)
    # FreeBasic Inline-ASM (Send keys in string)
    style.freebasic.10=fore:$(Col_SendKeys)
    # Pre-Processor
    style.freebasic.11=fore:$(Col_PreProcessor)
    # Special
    style.freebasic.12=fore:$(Col_Special)
    # Abbrev-Expand
    style.freebasic.13=fore:$(Col_AbbrevExpand)
    # COM Objects
    style.freebasic.14=fore:$(Col_COMObjects)
    # Standard UDF's
    style.freebasic.15=fore:$(Col_UDFs)
    # Line numbers
    #~ style.freebasic.33=fore:$(WHITE),back:$(GREY)
    # Brace highlight
    style.freebasic.34=fore:$(Col_Keyword),back:$(Col_Backround)
    # Brace incomplete highlight
    style.freebasic.35=fore:#009933,back:$(Col_Backround)
    Alles anzeigen

    Grüsse!

    [EDIT]
    Eines der Probleme bei dem Folding konnte ich auffinden, die FB Befehle Select, Function, Sub, ... enden nicht wie in Au3 mit z.B. EndSelect sondern mit End Select. Wie könnte ich jetzt folgende Zeilen darauf anpassen:

    Spoiler anzeigen
    Code
    block.start.$(fb)=5 \
        asm if else elseif for case select switch do while with function sub \
        Asm If Else ElseIf For Case Select Switch Do While With Function Sub \
        ASM IF ELSE ELSEIF FOR CASE SELECT SWITCH DO WHILE WITH FUNCTION SUB
    block.end.$(fb)=5 \
        next until loop wend end \
        Next Until Loop Wend End \
        NEXT UNTIL LOOP WEND END


    Das Problem ist eine der End XXX Anweisungen, der zweite Befehl besagt SciTE das direkt nach End der nächste Block geöffnet werden soll. Wie kann ich SciTE beibringen das End Select als eine einzelne Anweisung gilt??
    Habe auch schon soetwas erfolglos probiert: Next Until Loop Wend EndIf "End If" "End Select" "End Function"

  • SciTE4AutoIt - Erweitern um FreeBasic, Lexer Probleme...

    • Techmix
    • 16. Februar 2015 um 15:03

    Hy,
    den Link hatte ich schon gefunden bin mir aber nicht ganz im klaren wie/wo ich in LUA die Positionen für die entsprechenden Keywords hinterlegen könnte.

    Das nervigste Problem sind die Farbzuweisungen
    Bsp.

    Code
    keywords.$(fb)=$(keywords)
    ...
    # Keyword1    - Keywords&Datatypes
    style.freebasic.3=fore:$(Col_Keyword)


    Woher weiß ich welche "Keyword-ID" zu welchem Style gehört? Ich finde nichts darüber zum nachlesen, und diese ewige Testerei mit den ganzen möglichen Style-ID´s ist eine Zeitschindung... Jedenfalls ist es so nicht richtig.

    Was hällst du von der Idee SciTE zu vermitteln das es sich nicht um FB sondern um Au3 geht? Das wollte ich als nächstes testen - wenn der FB-Lexer unverändert bleiben muss.

    Grüsse!

  • SciTE4AutoIt - Erweitern um FreeBasic, Lexer Probleme...

    • Techmix
    • 15. Februar 2015 um 23:28

    Hy Community,
    ich mache gerade einen Seitensprung in FreeBasic und versuche schon seit einer Ewigkeit SciTE4AutoIt3 dazu zu bringen das auch FB-Code in einem ähnlichen Style wie Au3 erstrahlt.

    Habe schon zig mal die 'freebasic.properties' geändert oder angepasst - immer ohne Erfolg... Habe mich auch durch die (leider englische) SciTE Hilfedatei gelesen und dort einige Punkte erhascht worin beschrieben wird wie der Lexer umgebaut werden kann. Nur liegt nicht der Source des Lexer´s vor und eine neuere Version dessen bringt SciTE direkt zum Absturz.

    Ich las auch was davon das ich ein LUA-Skript verwenden könnte, nur wo finde ich eine Vorlage und wo binde ich diese ein?
    Habt ihr schon Versuche mit dem SciTE-Lexer unternommen? Oder könnt ihr mir (verständliche) Info´s über dieses Thema zukommen lassen ^^

    Um es auf dem Punkt zu bringen, es werden mir Farben angezeigt welche ich garnicht deklariert habe und auch das Folding stimmt gar nicht. Da ich nicht in Erfahrung bringen kann wie ich die Keywords zuordnen muss, kann ich diese nicht entsprechend einfärben... Und das Folding von Kommentar-Blöcken soll in FB mit dem Lexer nicht möglich sein, entweder baue ich diesen um oder vielleicht kann ich auch dem Lexer erzählen das er eine Sprache vor sich hat?!

    freebasic.properties
    Code
    # Freebasic4SciTE settings.
    #
    # 2015 - Techmix
    #
    #
    
    
    # Filepattern: fb
    # Lexer: freebasic
    
    
    ## Pathes&Files
    #~ freebasic.exe=C:\Coding\FreeBASIC\fbc.exe
    #~ freebasic.helpfile=
    win32.help=
    win.styles.help=C:\Coding\FreeBASIC\freebasicEdit\Help\Windows_styles.chm
    au3.exe=C:\Coding\AutoIt3\autoit3.exe
    
    
    ## Patterns
    #~ freebasic=*.bas;*.bi
    #~ filter.freebasic=FreeBasic (bas bi)|$(freebasic)|
    #~ lexer.$(freebasic)=au3
    
    
    fb=*.bas;*.bi
    filter.fb=FreeBasic (bas bi)|$(fb)|
    lexer.$(fb)=freebasic
    
    
    ## Autocomplete and call tip settings
    api.$(fb)=$(SciteDefaultHome)\api\freebasic.api
    proper.case=0
    calltip.freebasic.word.characters=$(chars.alpha)$(chars.numeric)_
    calltip.freebasic.ignorecase=1
    calltip.freebasic.end.definition=)
    calltip.freebasic.parameters.separators=,
    autocomplete.freebasic.ignorecase=1
    autocomplete.freebasic.start.characters=$(chars.alpha)$(chars.numeric)$_@#*
    word.characters.$(fb)=$(chars.alpha)$(chars.numeric)$(chars.accented).$_@#*
    
    
    statement.indent.$(fb)=1 if else do while
    statement.end.$(fb)=5 endif until loop
    statement.lookback.$(fb)=
    block.start.$(fb)=5 \
        asm if else elseif for case select switch do while with function sub \
        Asm If Else ElseIf For Case Select Switch Do While With Function Sub \
        ASM IF ELSE ELSEIF FOR CASE SELECT SWITCH DO WHILE WITH FUNCTION SUB
    block.end.$(fb)=5 \
        endif next until loop wend end \
        EndIf Next Until Loop Wend End \
        ENDIF NEXT UNTIL LOOP WEND END Declare
    
    
    ## Comments functions definition
    comment.block.freebasic='~
    comment.block.at.line.start.freebasic=1
    comment.stream.start.freebasic=/'
    comment.stream.end.freebasic='/
    comment.box.start.freebasic=/'
    comment.box.middle.freebasic=
    comment.box.end.freebasic='/
    
    
    ## Import the seperate freebasic.keywords.properties file
    import properties\freebasic.keywords
    import properties\asm.keywords
    # Inline-ASM
    keywords6.$(fb)=$(asm)
    # keywords&datatypes
    keywords.$(fb)=$(keywords) $(datatypes)
    # Functions
    keywords2.$(fb)=$(functions)
    # Api-Functions
    keywords3.$(fb)=$(apifunctions)
    # Ext-Functions
    keywords4.$(fb)=$(extfunctions)
    # Pre-Processor
    keywords5.$(fb)=$(preprocessor)
    
    
    ## FreeBasic Syntax-Colors:
    Col_Backround=         #F0F4F9
    Col_CarretLine=     #FFFED8
    Col_SelectedTextF=     #006000
    Col_SelectedTextB=     #F0A0A8
    Col_WhiteSpace=     #000000
    Col_CommentLine=     #008000,italics
    #~ Col_Number=            #0000FF,bold,italics
    Col_Number=            #AC00A9,bold,italics
    Col_Function=        #000090,bold,italics
    Col_Keyword=        #0000FF,bold
    Col_Macro=            #808000,bold
    Col_String=            #FF0000,bold
    Col_Operator=        #FF8000,bold
    Col_Variable=        #5A5A5A,bold
    Col_SendKeys=        #808080,bold
    Col_PreProcessor=    #808000,italics
    Col_Special=        #DC143C,italics
    Col_AbbrevExpand=    #FF0000,bold
    Col_COMObjects=        #993399,bold,italics
    Col_UDFs=            #0080FF,bold,italics
    Col_Test=            #00FF00,bold,italics
    
    
    ## FreeBasic extendet style
    # Background
    style.freebasic.32=style.*.32=back:$(Col_Backround)
    # CaretLine Background
    caret.line.back=$(Col_CarretLine)
    # White space
    style.freebasic.0=fore:$(Col_WhiteSpace)
    # Comment
    style.freebasic.1=fore:$(Col_CommentLine)
    # Number
    style.freebasic.2=fore:$(Col_Number)
    # Keyword1    - Keywords&Datatypes
    style.freebasic.3=fore:$(Col_Keyword)
    # String
    style.freebasic.4=fore:$(Col_String)
    # FreeBasic Pre-Processor
    style.freebasic.5=fore:$(Col_PreProcessor)
    # Operator
    style.freebasic.6=fore:$(Col_Operator)
    # Identifier
    style.freebasic.7=$(style.freebasic.0)
    # Date
    # style.freebasic.8=$(colour.error)
    # StringEOL
    # style.freebasic.9=$(colour.error)
    # Keyword2: seems to be for Freebasic preprocessors    - Base Functions
    style.freebasic.10=fore:$(Col_Function)
    # Keyword3    - Api Functions
    style.freebasic.11=fore:$(Col_COMObjects)
    # Keyword4    - Ext Functions
    style.freebasic.12=fore:$(Col_UDFs)
    # Constant
    # style.freebasic.13=$(colour.error)
    # FreeBasic Inline-ASM
    style.freebasic.14=fore:$(Col_Special)
    # Label
    style.freebasic.15=$(colour.preproc)
    # Error
    style.freebasic.16=$(colour.error)
    # HexNumber
    style.freebasic.17=fore:$(Col_Number)
    # BinNumber
    style.freebasic.18=fore:$(Col_Number)
    
    
    # Line numbers
    #~ style.freebasic.33=fore:$(WHITE),back:$(GREY)
    # Brace highlight
    style.freebasic.34=fore:$(Col_Keyword),back:$(Col_Backround)
    # Brace incomplete highlight
    style.freebasic.35=fore:#009933,back:$(Col_Backround)
    
    
    ## freebasic Commands
    # 1 Ausführen einer kompilierten Datei
    command.name.1.$(fb)=Run
    command.1.$(fb)="$(fb.exe)" -s gui "$(FileNameExt)"
    command.save.before.1.$(fb)=1
    command.shortcut.1.$(fb)=F5
    
    
    # 2 Kompiliere Anwendung
    command.name.2.$(fb)=Compile Gui
    command.2.$(fb)="$(fb.exe)" -s gui "$(FileNameExt)"
    command.save.before.2.$(fb)=1
    command.shortcut.2.$(fb)=Shift+F5
    
    
    # 3 Kompiliere Konsolenanwendung
    command.name.3.$(fb)=Compile Console
    command.3.$(fb)="$(fb.exe)" -s console "$(FileNameExt)"
    command.save.before.3.$(fb)=1
    command.shortcut.3.$(fb)=Ctrl+F5
    
    
    # 4 Kompiliere Dll
    command.name.4.$(fb)=Compile Dll
    command.4.$(fb)="$(fb.exe)" -s gui -dll -export "$(FileNameExt)"
    command.save.before.4.$(fb)=1
    command.shortcut.4.$(fb)=F7
    
    
    # 5 Kompiliere Dll SSE
    command.name.5.$(fb)=Compile SSE-Dll
    command.5.$(fb)="$(fb.exe)" -s gui -dll -export -fpmode FAST -fpu SSE "$(FileNameExt)"
    command.save.before.5.$(fb)=1
    command.shortcut.5.$(fb)=Shift+F7
    
    
    # 6 Konvertiere zu ASM
    command.name.6.$(fb)=Covert to ASM
    command.6.$(fb)="$(fb.exe)" -s gui -dll -export -R "$(FileNameExt)"
    command.save.before.6.$(fb)=1
    command.shortcut.6.$(fb)=Shift+F9
    
    
    # 7 Hilfe fb
    command.name.7.$(fb)=Hilfe
    command.7.$(fb)="$(au3.exe)" "$(SciteDefaultHome)\api\fbExecute.au3" "$(fb.helpfile)_Help" $(CurrentWord)
    command.save.before.7.$(fb)=0
    command.subsystem.7.$(fb)=2
    command.shortcut.7.$(fb)=F1
    
    
    # 8 Hilfe Win32
    command.name.8.$(fb)=Hilfe Win32
    command.8.$(fb)="$(win32.help)"
    command.save.before.8.$(fb)=0
    command.subsystem.8.$(fb)=2
    command.shortcut.8.$(fb)=Shift+F1
    
    
    # 9 Hilfe Win Styles
    command.name.9.$(fb)=Hilfe Win Styles
    command.9.$(fb)="$(win.styles.help)"
    command.save.before.9.$(fb)=0
    command.subsystem.9.$(fb)=2
    command.shortcut.9.$(fb)=Ctrl+F1
    Alles anzeigen

    Da ich die Keywords nicht Posten kann (mein Firefox hängt sich immer auf) habe ich beide Dateien noch gezippt.

    Grüsse!

  • _stringbetween andersrum

    • Techmix
    • 10. Februar 2015 um 14:38

    Psssst, sonst werden wir noch verklagt.
    ^^

  • Windows 8 Apps

    • Techmix
    • 29. Januar 2015 um 20:38

    Huch :D

  • Windows 8 Apps

    • Techmix
    • 29. Januar 2015 um 14:46

    Hy, vielleicht kann dir "Push the Button" von Oscar weiterhelfen. Damit kann man sogar Java App's mit Hilfe von Bitmaps (Buttons oder so) ansteuern.

    Grüsse!

  • Exe nicht richtig ausführbar.Unable to open the script file.

    • Techmix
    • 26. Januar 2015 um 16:58

    Vor dem kompilieren den Virenscanner deaktivieren, dann sollte der Fehler nicht mehr erscheinen.

    Grüsse!

  • _ArrayDisplayConsole v0.92 build 2015-01-25 beta

    • Techmix
    • 26. Januar 2015 um 11:26

    Super Funktion, werde ich öfters verwenden!

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™