Kann es sein, daß du Javascript deaktiviert hast?
Beiträge von eukalyptus
-
-
Ja, und zwar alle Funktionen (wie auch Variablen), die als "stringcall" vorkommen wie zb.:
[autoit]GUICtrlSetOnEvent(-1, "Check_Status")
[/autoit]Das werd ich aber irgendwann mal einbauen...
thxE
Edit:
[autoit]
Das hatte ich schon eingebaut, jedoch vorerst wieder rausgenommen, weil das dann schon zu kompliziert wurde.
Ich habe mich zu sehr auf die Erkennung "nicht eindeutiger" Funktionsaufrufe konzentriert, z.B.:GUICtrlSetOnEvent(-1 $sPre & "Function")
[/autoit]
;Oder
GUICtrlSetOnEvent(-1 "Function" & $sPost)
obwohl sowas eher ganz selten vorkommt...btw.: gibt es noch weitere Möglichkeiten um Funtionen und Variablen als String aufzurufen, als diese hier?:
CodeGUISetOnEvent,GUICtrlSetOnEvent,GUIRegisterMsg,HotKeySet,Execute,Eval,Assign,IsDeclared,Call,TraySetOnEvent, TrayItemSetOnEvent,DllCallbackRegister,AdlibRegister,AdlibUnRegister,GUICtrlRegisterListViewSort,OnAutoItExitRegister, OnAutoItExitUnRegister,_FTP_ProgressDownload,_FTP_ProgressUpload,_FTP_SetStatusCallback,_SQLite_Exec,ObjEventthx
-
UEZ: Jo, das war ein Bug
Der Funktionsname Turn wurde mit einem Leerzeichen in das Scripting.Dictionary eingetragen...geänderte Version im ersten Post
@progandy: geteilte Zeilen werden immer zusammengefügt, ist das schlecht?
[autoit]
mit Strings zusammenfügen meine ich sowas:"String1" & "String2"
[/autoit]
[autoit]
sowas kommt häufig bei Konstanten in Includes vor:Global Const $tagNMHDR = "hwnd hWndFrom;uint_ptr IDFrom;INT Code"
[/autoit]
Global Const $tagNMCBEDRAGBEGIN = $tagNMHDR & ";int ItemID;ptr szText"
$tagNMHDR wird durch seinen Wert ersetzt und schon hab ich einen geteilten String@nof@ker2: kannst du mir das entsprechende Script bitte zukommen lassen bzw. es reicht ein kurzes Testscript, bei dem der selbe Fehler auftritt...
Edit: Probier doch bitte die geänderte Version aus dem ersten Post nochmal---
btw.: Die Variable $CmdLine darf natürlich nicht umbenannt werden!
gibt es noch weitere solche Variablen, die von Autoit reserviert sind?lgE
-
Ich habe mich mal an einer Art Preprocessor für Autoit versucht.
Neue Version
Diese Version läuft etwas langsamer als die alte, dafür ist die Statusanzeige vielfach schneller (GDI+ statt RichEdit)
Zusätzlich wird auch noch ein LogFile erstellt.Aufruf via CMD-Line und Run_Before ist auch möglich.
#AutoIt3Wrapper_Run_Before=""%autoitdir%\aapp.exe" "%in%""
(es wird auch ein Backup erstellt)Der PreProcessor
.) fügt alle Includes ein
.) entfernt alle überflüssigen Funktionen
.) ersetzt Global Const durch ihren Wert
.) entfernt überflüssige Global Const
.) benennt Funktionen und Variablen in ganz kurze Namen um
.) berechnet einfache mathematische Ausdrücke
.) kombiniert & _ geteilte Zeilen (außer die Zeilenlänge würde 4095 Zeichen übersteigen)
.) kombiniert & geteilte Strings
.) optimiert IF und CASE
.) wandelt Zahlen in Hex umEinige Probleme hatte ich mit den Stringcalls, also Funktionen bzw. Variablen die via String aufgerufen werden.
[autoit]
Wenn ein String erwartet wird, jedoch nur eine Variable gefunden wird:$Str='_Func'
[/autoit]
Call($Str)
dann wird in diesem Fall keine Funktion entfernt oder umbenannt, denn $Str könnte den Namen jeder Funktion enthalten!oft verwendet man Execute nur um 2 Strings zusammenzufügen oder sonst was, jedoch nicht um eine Funktion oder Variable aufzurufen.
deshalb gibt es die Funktion Execute is used to call functions/variables
z.B.: bei Unicalc Grafik von Ludwig kann man diese Optionen deaktivieren, da sonst keine Funktionen entfernt bzw. umbenannt werden würden...
jedoch beim Hilfebeispiel _FTP_SetStatusCallback muß man diese Optionen aktiviert lassen, ansonsten ist das fertige Script nicht lauffähig---
Kann mir jemand helfen die englischen Sätze richtig und gut zu formulieren?!
mein Englisch ist leider sehr bescheiden
thxlgE
-
Das sollte so in etwa gehen:
[autoit]$fftstruct = DllStructCreate("float[128]")
[/autoit]
_BASS_ChannelGetData($hMusicHandle, DllStructGetPtr($fftstruct), $BASS_DATA_FFT256)
For $i = 0 To 127
$fft = Round(DllStructGetData($fftstruct, 1, $i + 1) * 100)
Next
Nicht getestet! -
Hi
bei meinem Audio-Recorder hab ich sowas eingebaut:
http://www.autoitscript.com/forum/index.php?showtopic=86639&view=findpost&p=621195du mußt halt nur dir grafische Darstellung etwas "optimieren"

-
Herzlichen Glückwunsch!

-
Du mußst bei _GDIPlus_GraphicsSetTransform als ersten Parameter ein Grafikhandle angeben und kein Bildhandle
probiers mal so:
[autoit]_GDIPlus_GraphicsSetTransform($hBack_Buffer, $hMatrix)
[/autoit]mfg
E -
Danke
So ähnlich mach ich das eh schon.
Das Problem ist, daß es sich dabei um tausende Stellen handelt und es sehr auf die Geschwindigkeit ankommt!
Ein Stringregexp würde das in wenigen Sekunden schaffen, während meine momentane Lösung schon im Minutenbereich liegen kann...
Da ja sehr oft Stringreplace aufgerufen wird!Edit
[autoit]
Du hast mich trotzdem auf eine Idee gebracht und die ist viel schneller!
das reicht für meine Zwecke erstmal:$string = '"Test1" Blablabla "Test55" Blablabla "Test23"'
[/autoit]
$string = StringRegExpReplace($string, '(".+?")', Chr(1))
$temp = StringSplit($string, Chr(1))
$string = ""
For $i = 1 To $temp[0] - 1
$string &= $temp[$i] & '#' & $i & '#'
Next
$string &= $temp[$temp[0]]
MsgBox(0, 0, $string)thx
E -
Hi
Ich möchte alle ".."-Stellen eines Strings mit einer fortlaufenden Nummer ersetzen
aus:
"Test1" Blablabla "Test55" Blablabla "Test23"
soll das werden:
#1# Blablabla #2# Blablabla #3#gibts da einen Parameter, den ich beim StringRegExpReplace - Replacestring verwenden kann?
so ähnlich, wie back-references...thx
E -
Oh, wie peinlich

-
bei mir sind die Buttons "organize includes", "open ini", "renew ini" und "exit" unten.
Und sie sind zur Hälfte von der Statusleiste verdeckt; Wenn ich den Style $WS_SIZEBOX einfüge (damit ich OI verwenden kann) dann sind die Buttons komplett von der Statusleiste verdeckt, kommen jedoch zum Vorschein, wenn man die Fenstergröße leicht verändert...
Ich hab Win 7 auf dem Netbook
-
so sollte es gehn:
[autoit]$Open = DllOpen ("C:\Test.dll")
[/autoit]
$Result = DllCall ($Open, "int", "Rechnen", "int", 50, "int", 50)
MsgBox (64, "Test", $Result[0]) -
Hi
Das Fenster ist leider etwas zu groß für die typische Netbookauflösung von 1024x600px und läßt sich auch nicht verkleinern, sodaß man nicht an die Buttons kommt.
Vielleicht kannst du ja da auch noch was machen...mfgE
-
Ein ganz simles Graustufen-Beispiel hätte ich noch hier:
Deutsche Hilfe - Funktionen ohne BeispielmfgE
-
Happy birthday euch beiden!
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
Ich hab jetzt mal etwas herumprobiert und muß sagen, daß diese Aufgabe ziemlich heftig ist!
Wenn man nur die Global Const durch ihre Werte ersetzen will oder die Namen der Funktionen kürzen, dann muß man bereits unzählige Möglichkeiten berücksichtigen!
Folgendes Script zeigt ein paar dieser Probleme:
Spoiler anzeigen
[autoit]#include "Winapi.au3"
[/autoit] [autoit][/autoit] [autoit]
;#include 'Winapi.au3'
;#include <Winapi.au3>
$Test = '#include "Winapi.au3"'
$Test = "#include 'Winapi.au3'"
Global Const $Const1 = 0x01
Global Const $Const2 = $Const1 + 0x01
Global Const $Const3 = (0x01 + 0x02), $Const4 = "0x04" & '0x40'
Global Const $Const5[2][2] = [[0x05, 0x05],[0x05, 0x05]], $Const6[2][2] = [["Global Const $Const1 = 0x01", $Const1],[$Const1, BitOR(BitAND(1, 2), 3)]], $Const8 = BitOR(0, 1, 2)
Global Const $Const7 = "Global Const $Const1 = 0x01"
Global Const $Const1Neu = "Run('Notepad.exe')"
Global Const $Const9 = 0x01, _
$Const10 = 0x02ConsoleWrite($Const1 & @LF)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite($Const2 & @LF)
ConsoleWrite($Const4 & @LF)
ConsoleWrite($Const6[0][0] & @LF)
ConsoleWrite($Const7 & @LF)
ConsoleWrite($Const1Neu & @LF)
ConsoleWrite(Eval("Const3") & @LF)ConsoleWrite(Eval("Con" & "st3") & @LF)
[/autoit] [autoit][/autoit] [autoit]$Test="3"
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite(Eval("Const" & $Test) & @LF)ConsoleWrite(Execute("$Const5[0][0]") & @LF)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Vorher " & _
" Nachher")Opt("GuiOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$hGui = GUICreate("")
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent(-3, "_EXIT")
For $i = 1 To 3
GUICtrlCreateButton($i, 10, $i * 30, 100, 20)
GUICtrlSetOnEvent(-1, "_Func" & $i)
Next
GUISetState()Call("_Function1")
[/autoit] [autoit][/autoit] [autoit]Call("_Fun" & "cti" & "on1")
[/autoit] [autoit][/autoit] [autoit]$Test="1"
[/autoit] [autoit][/autoit] [autoit]
Call("_Function" & $Test)For $i = 1 To 3
[/autoit] [autoit][/autoit] [autoit]
Call("_Func" & $i)
NextWhile 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Sleep(1000)
WEndFunc _Func1()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Func1" & @LF)
EndFuncFunc _Func2()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Func2" & @LF)
EndFuncFunc _Func3()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Func3" & @LF)
EndFuncFunc _Function1()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Function1" & @LF)
_Function2()
EndFuncFunc _Function2()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Function2" & @LF)
_Function3()
EndFuncFunc _Function3()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Function3" & @LF)
EndFuncFunc _Exit()
[/autoit]
Exit
EndFuncSollte dieser µIt tatsächlich zustandekommen, dann wird 1 Monat wohl nicht ausreichen

mfgE
-
Einzeilige If-Then sind bei weitem am schnellsten!
-
-