Dann setz doch bitte den Präfix des Threads auf gelöst (1. Beitrag bearbeiten)! ![]()
MfG
Dann setz doch bitte den Präfix des Threads auf gelöst (1. Beitrag bearbeiten)! ![]()
MfG
ich wusste es ich hätts rein schreiben sollen
![]()
Nein! nix Voten, Liken, Pushen oder sonst was...
Dann schreib doch einfach, wofür du das brauchst, wenn es ja eh nicht gegen die Forenregeln widerspricht ![]()
Mir kommt das auch ein seltsam vor...
MfG
Ich glaube nicht, das willhaben eine solche Automatisierung erlaubt.
(Ansonsten poste hier bitte einen Gegenbeweis)
Und wenn du mal in die Forenregeln schaust, wirst du merken, das du bei so einem Vorhaben hier falsch bist ![]()
MfG
Ich weiß ja nicht, aber ist
[autoit]$oColorBG = "932929"
[/autoit]überhaupt ein gültiger RGB-Wert? ![]()
MfG
Ich hatte mal aus Langeweile einen kleinen Taschenrechner geschrieben, vielleicht hilft dir das Skript ja.
; by PainTain
[/autoit] [autoit][/autoit] [autoit]#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=3
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Fileversion=1.0
#AutoIt3Wrapper_Res_LegalCopyright=Made by PainTain
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
#AutoIt3Wrapper_Run_Tidy=y
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
#NoTrayIcon
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GuiEdit.au3>
$hGUI = GUICreate("Calculator by PainTain", 434, 386, 214, 119)
GUISetFont(8, 800, 0, "MS Sans Serif")
$hTerm = GUICtrlCreateEdit("", 16, 16, 401, 37, $ES_READONLY);---BitOR($GUI_SS_DEFAULT_EDIT, $ES_READONLY))
GUICtrlSetData(-1, "")
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
$hNumNull = GUICtrlCreateButton("0", 16, 328, 91, 41)
$hNumPoint = GUICtrlCreateButton(".", 120, 328, 91, 41)
GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif")
$hResult = GUICtrlCreateButton("=", 224, 328, 91, 41)
$hNumOne = GUICtrlCreateButton("1", 16, 272, 91, 41)
$hNumTwo = GUICtrlCreateButton("2", 120, 272, 91, 41)
$hNumThree = GUICtrlCreateButton("3", 224, 272, 91, 41)
$hNumFour = GUICtrlCreateButton("4", 16, 216, 91, 41)
$hNumFive = GUICtrlCreateButton("5", 120, 216, 91, 41)
$hNumSix = GUICtrlCreateButton("6", 224, 216, 91, 41)
$hNumSeven = GUICtrlCreateButton("7", 16, 160, 91, 41)
$hNumEight = GUICtrlCreateButton("8", 120, 160, 91, 41)
$hNumNine = GUICtrlCreateButton("9", 224, 160, 91, 41)
$hResOutput = GUICtrlCreateEdit("", 16, 82, 324, 64, $SS_CENTER + $ES_READONLY)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
$hNumPlus = GUICtrlCreateButton("+", 328, 160, 91, 41)
$hNumMinus = GUICtrlCreateButton("-", 328, 216, 91, 41)
$hNumMulti = GUICtrlCreateButton("x", 328, 272, 91, 41)
$hNumDivi = GUICtrlCreateButton("%", 328, 328, 91, 41)
GUICtrlCreateLabel("Result:", 16, 64, 88, 17)
$hClearAll = GUICtrlCreateButton("Clear All", 352, 120, 67, 25)
$hBackspace = GUICtrlCreateButton("Back", 352, 80, 67, 25)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hNumNull
_GUICtrlEdit_AppendText($hTerm, "0")
Case $hNumOne
_GUICtrlEdit_AppendText($hTerm, "1")
Case $hNumTwo
_GUICtrlEdit_AppendText($hTerm, "2")
Case $hNumThree
_GUICtrlEdit_AppendText($hTerm, "3")
Case $hNumFour
_GUICtrlEdit_AppendText($hTerm, "4")
Case $hNumFive
_GUICtrlEdit_AppendText($hTerm, "5")
Case $hNumSix
_GUICtrlEdit_AppendText($hTerm, "6")
Case $hNumSeven
_GUICtrlEdit_AppendText($hTerm, "7")
Case $hNumEight
_GUICtrlEdit_AppendText($hTerm, "8")
Case $hNumNine
_GUICtrlEdit_AppendText($hTerm, "9")
Case $hNumPoint
_GUICtrlEdit_AppendText($hTerm, ".")
Case $hNumPlus
_GUICtrlEdit_AppendText($hTerm, "+")
Case $hNumMinus
_GUICtrlEdit_AppendText($hTerm, "-")
Case $hNumMulti
_GUICtrlEdit_AppendText($hTerm, "*")
Case $hNumDivi
_GUICtrlEdit_AppendText($hTerm, "%")
Case $hClearAll
GUICtrlSetData($hTerm, "")
GUICtrlSetData($hResOutput, "")
Case $hBackspace
$fInputRead = GUICtrlRead($hTerm)
$fInputBack = StringTrimRight($fInputRead, 1)
GUICtrlSetData($hTerm, $fInputBack)
;~ If @error Then MsgBox(0, "Debug", "Error: " & @error)
Case $hResult
_CheckTerm()
EndSwitch
WEnd
Func _CheckTerm()
Local $fTermRead = GUICtrlRead($hTerm)
If $fTermRead = "" Then
MsgBox(0 + 64 + 4096, "Error", "Please insert a Term to calcute!")
ElseIf StringLeft($fTermRead, 1) = "+" Or StringLeft($fTermRead, 1) = "-" Or StringLeft($fTermRead, 1) = "*" Or StringLeft($fTermRead, 1) = "%" Then
MsgBox(0 + 64 + 4096, "Error", "Invalid Term!")
ElseIf StringRight($fTermRead, 1) = "+" Or StringRight($fTermRead, 1) = "-" Or StringRight($fTermRead, 1) = "*" Or StringRight($fTermRead, 1) = "%" Then
MsgBox(0 + 64 + 4096, "Error", "Invalid Term!")
ElseIf StringLeft($fTermRead, 1) = "." Or StringRight($fTermRead, 1) = "." Or StringInStr($fTermRead, "..") Then
MsgBox(0 + 64 + 4096, "Error", "Invalid Term!")
ElseIf StringInStr($fTermRead, "+-") Or StringInStr($fTermRead, "+*") Or StringInStr($fTermRead, "+%") Or StringInStr($fTermRead, "++") Or StringInStr($fTermRead, "-+") Or StringInStr($fTermRead, "-*") Or StringInStr($fTermRead, "-%") Or StringInStr($fTermRead, "--") Then
MsgBox(0 + 64 + 4096, "Error", "Invalid Term!")
ElseIf StringInStr($fTermRead, "*+") Or StringInStr($fTermRead, "**") Or StringInStr($fTermRead, "*-") Or StringInStr($fTermRead, "*%") Or StringInStr($fTermRead, "%+") Or StringInStr($fTermRead, "%-") Or StringInStr($fTermRead, "%*") Or StringInStr($fTermRead, "%%") Then
MsgBox(0 + 64 + 4096, "Error", "Invalid Term!")
Else
_CalculateTerm($fTermRead)
EndIf
EndFunc ;==>_CheckTerm
Func _CalculateTerm($fTermRead)
$fTermConv = StringReplace($fTermRead, "%", "/")
;~ ConsoleWrite($fTermConv & @CRLF)
$fResult = Execute($fTermConv)
[/autoit] [autoit][/autoit] [autoit];~ ConsoleWrite(StringLen($fResult) & @CRLF)
If StringLen($fResult) >= 18 Then
GUICtrlSetData($hResOutput, _TrimResult($fResult))
Else
GUICtrlSetData($hResOutput, $fResult)
EndIf
EndFunc ;==>_CalculateTerm
Func _TrimResult($fResult) ;Ich weiß, könnte man auch mit Round machen ![]()
Local $i = 1
Do
$fResult = StringTrimRight($fResult, 1)
$i += 1
Until StringLen($fResult) = 18
Return $fResult
EndFunc ;==>_TrimResult
Das hatte ich am ziemlich am Anfang geschrieben, wo ich mit AutoIt noch nicht so vertraut war.
Also beschwert euch nicht, wenn ihr den Taschenrechner viel zu umständlich findet. ![]()
MfG
Ich hätte das ja eher so gemacht (da du anscheinend nur Plus-Rechnen willst):
[autoit]Func _Rechne()
Local $iZahl1 = GUICtrlRead($Input1), $iZahl2 = GUICtrlRead($Input7)
$iErgebnis = Number(Execute($iZahl1 & "+" & $iZahl2))
ConsoleWrite("> Ergebnis: " & $iErgebnis & @LF)
EndFunc
(Ist auf die Schnelle im Browser getippt, daher keine Garatie, das ein korrektes Ergebnis herauskommt :P)
MfG
Hast du die Input-Felder mit "GUICtrlRead()" ausgelesen? ![]()
Und probier mal das:
[autoit]$Array[$Zahl3][$Wert] = Number($Array[$Zahl1][$Wert]) + Number($Array[$Zahl2][$Wert])
[/autoit]MfG
Sieht nett aus, muss mich mal damit ein wenig rumspielen. ![]()
MfG
P.S.: Guck dir mal die Funktionsbeschreibung von _Bit() an, da hast einen kleinen Tippfehler eingebaut. ![]()
Hast du nach _FTP_ListToArray2D() schon auf @error geprüft?
Bzw. bau mal ein _ArrayDisplay($List) nach _FTP_ListToArray2D() ein. ![]()
Wenn dir nämlich diese Funktion einen Error wirft, wird auch das _GUICtrlListView_InsertItem() nicht funktionieren. ![]()
MfG
Auch von mir Alles Gute! ![]()
Da es ja nun funktioniert, setze bitte den Präfix des Threads auf gelöst (1. Beitrag bearbeiten)
MfG
PainTain,
soweit ist er schon^^
Jetzt möchte er nur diese "includierte" Datei direkt aus dem Speicher ausführen, und nicht vorher auf die Platte auslagern
Das war mit einer Frage eigentlich gemeint...
Warum das ein solches Problem ist, die DLL irgendwo auf der Platte auszulagern... ![]()
MfG
Was spricht eigentlich dagegen, die DLL mithilfe von "FileInstall" oder BugFix's Fremddateien "includen" (ohne FileInstall) zu includen? ![]()
MfG
Ist das ein Bug oder liegt es am Betriebssystem?
Welches BS hast du überhaupt? ... ![]()
MfG
Siehe Post #1: leider nicht. Gibt es nicht eine alternative UDF?
Sogar DllCallHac geht nicht!
Ich glaube, chessi hat das so gemeint:
DllCall("D:\WINDOWS\system32\User32.dll", "int", "MessageBox", "hwnd", 0, "str", "Some text", "str", "Some title", "int", 0)
[/autoit]![]()
MfG
Hast du schon mal auf @error bzw. die Rückgabe von den Funktionen überprüft? ![]()
MfG
Hehe, danke euch allen ![]()
So einen Kuchen wünsch ich mir: [Blockierte Grafik: http://fc09.deviantart.net/fs71/f/2012/179/f/a/my_little_pony_birthday_cake_c__by_xneonfeather-d555o8w.jpg] ![]()
Vielleicht hilft dir ja dieser Code-Schnipsel weiter:
[autoit]Local $a[2] = ["First Element", "Second Element"]
Local $sName = "test"
Assign("var_" & $sName, $a)
[/autoit][autoit][/autoit][autoit]$aNew = Eval("var_" & $sName)
If IsArray($aNew) Then
For $i = 0 To UBound($aNew) - 1
ConsoleWrite("$aNew[" & $i & "] = " & $aNew[$i] & @CRLF)
Next
Else
ConsoleWrite($aNew & @CRLF)
EndIf
Ich glaube minx hat mir dieses Beispiel mal geschrieben. ![]()
MfG
Hi,
danke für die Antwort
Dass sowas wegen einer solchen Kleinigkeit schon nicht mehr funktioniert![]()
Dann setzt doch bitte den Präfix des Threads auf gelöst (1. Beitrag bearbeiten)! ![]()
MfG
2. @AutoItExe gibt den Dateipfad DER autoIt.exe datei an, nicht allerdings den Pfad der ausgeführten Datei.
Kompiliere dein Skript mal...
(--> Hilfe lesen hilft :P)
Mfg