Klar ginge das. Man sieht ja recht offensichtlich wie die Create/Funktion funktioniert. Das kann man einfach auf andere Anwendungen ... anwenden.
Beiträge von minx
-
-
Das Skript dürfte selbsterklärend sein. Man kann damit das notepad als Control einbinden. Dabei kann auch Text ausgelesen / eingegeben werden, auch Resize ist möglich.
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WinAPI.au3>
#include <Constants.au3>Local $Bound = 0
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$hGUI = GUICreate("Embedded Notepad", 800, 600, -1, -1, $WS_SIZEBOX)
$hNotepad = _GUICtrlNotepad_Create($hGUI, 5, 5, 788, 505)
$hCount = GUICtrlCreateLabel("0 Zeilen im Notepad | Erste Buchstaben sind ''", 5, 515, 500, 100)
GUISetState()While GUIGetMsg() <> -3
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$nBound = UBound(StringSplit(_GUICtrlNotepad_GetText($hNotepad), @CRLF, 3))
If $nBound <> $Bound Then
$Bound = $nBound
GUICtrlSetData($hCount, $Bound & " Zeilen im Notepad | Erste Buchstaben sind '"&StringLeft(_GUICtrlNotepad_GetText($hNotepad),3)&"'")
EndIf
WEnd; # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
[/autoit] [autoit][/autoit] [autoit]Func _GUICtrlNotepad_Delete($hNote)
[/autoit] [autoit][/autoit] [autoit]
Return WinClose($hNote)
EndFuncFunc _GUICtrlNotepad_Move($hNote, $iLeft, $iTop, $iWidth, $iHeight)
[/autoit] [autoit][/autoit] [autoit]
_WinAPI_MoveWindow($hNote, $iLeft, $iTop, $iWidth, $iHeight, True)
EndFuncFunc _GUICtrlNotepad_SetText($hNote, $sText)
[/autoit] [autoit][/autoit] [autoit]
Return ControlSetText($hNote, "", "Edit1", $sText)
EndFuncFunc _GUICtrlNotepad_GetText($hNote)
[/autoit] [autoit][/autoit] [autoit]
Return ControlGetText($hNote, "", "Edit1")
EndFuncFunc _GUICtrlNotepad_Create($hParent, $iLeft, $iTop, $iWidth, $iHeight)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$iPID = Run("notepad.exe", "", @SW_MINIMIZE)
WinWait("[class:Notepad]")
$hNotepad = _WinGetByPID($iPID)
_WinAPI_SetParent($hNotepad, $hParent)
_WinAPI_MoveWindow($hNotepad, $iLeft, $iTop, $iWidth, $iHeight, True)
_WinAPI_SetWindowLong($hNotepad, $GWL_STYLE, $WS_POPUP + $WS_VISIBLE)
WinSetState($hNotepad, "", @SW_SHOW)
Return $hNotepad
EndFuncFunc _WinGetByPID($iPID) ; 0 Will Return 1 Base Array & 1 Will Return The First Window.
[/autoit]
Local $aError[1] = [0], $aWinList, $sReturn
If IsString($iPID) Then
$iPID = ProcessExists($iPID)
EndIf
$aWinList = WinList()
For $A = 1 To $aWinList[0][0]
If WinGetProcess($aWinList[$A][1]) = $iPID And BitAND(WinGetState($aWinList[$A][1]), 2) Then
Return $aWinList[$A][1]
$sReturn &= $aWinList[$A][1] & Chr(1)
EndIf
Next
If $sReturn Then
Return StringSplit(StringTrimRight($sReturn, 1), Chr(1))
EndIf
Return SetError(1, 0, $aError)
EndFunc ;==>_WinGetByPID -
So. Prinzipiell steht eine Art SDK bereit. Ich habe mal weiter einige sehr leichte Funktionen wie StringLen (siehe oben) bzw. Beep() usw umgesetzt. Die können praktisch 1:1 konvertiert werden.
Ich habe mich noch nicht mit der Übersetzung von If / While / For / Do usw beschäftigt, was auch eher ein zweirangige Rolle spielt, da sich das schnell erledigt hat. Hilfe bräuchte ich wie gesagt bei der Umsetzung der ganzen Au3 Funktionen (Wie Abs, Floor, Mod, Random, usw.). Von GuiCreate wollen wir mal gaaaar nicht sprechen ;-).
-
Na klar, ich werde da mal ein paar Leute anschreiben.
Die Website des Projekts liegt auf meiner Seite (https://autoit.de/www.mf-i.de/w) [Domain von Blume
]. Da werden wir dann werkeln. -
Die UDFs
[url=http://autoit.de/index.php?page=Thread&threadID=33509&highlight=]Mein OpenGL Tutorial -
Why not :D. Wenn man einmal etwas hat was funktioniert

-
Oder *hust* wir nutzen das aPaste Repo. Dann lege ich einfach einen Account für die Entwickler an, und per wpt kann es dann geholt werden

-
In Bälde
Ich muss mir noch ein System denken, wie das hoffentlich zustande kommende Entwicklungsteam die Version immer aktuell halten kann. Auf jeden Fall kann ich das nicht alles alleine umsetzen.
-
So. Perseus hat jetzt ein echtes Include-system, und ich habe begonnen einige zu schreiben. Damit können direkt AutoIt-Funktionen umgesetzt werden, eigentlich nur eine Fleißarbeit weitere Funktionen zu implementieren. Sowas wie StringLen() brauchte ich schon, deshalb ist das jetzt schon enthalten. Des Weiteren eine UDF (also ein Include) für Konsolenanwendungen, das heißt, dass jetzt GUI und CUI Anwendungen möglich sind. LASM selbst hat kein Subsystem (wie MASM etc.). GUIs sind einfacher zu erstellen, aber die UDF macht das CUI Handling auch deutlich leichter.
-
Bis zum Ende des Tages. Also 23:59 bei Eingang der Mail

-
Schalt mal 5 Gänge zurück hier :D. PN Private Nachricht schreiben und keinen alten Thread schänden

-
Schreib ihm einen Scheck

(Es gibt auch ein PN System. Außerdem ist der User seit dem 4. Juli anscheinend tot!)
-
_IsPressed hat nichts mit HotKeys zu tun und setzt auch keinen "Systemweiten Hotkey". _IsPressed prüft, ob (allein) im geprüften Zeitpunkt ein bestimmter Input zu verzeichnen war. Das ist kein HotKey.
-
Der Task geht doch aber von einer Rekursion aus. Es ist ja nicht so, dass Rekursion in AutoIt nicht möglich wäre.
-
Naja, es ist ja die richtige Implementation. Es funktioniert und es ist nicht nicht machbar. Eigentlich müsste das so raus.
-
Hat jemand eine Idee, warum James Skript keinen AutoIt-Error hervorruft?
Schon ab Q(30) geht fast nichts mehr.
-
@Name
Sehr schön

-
Achwas.
Wenn kein AutoIt dann macht mans so etwas in einer WYSIWYG 3D Game Engine. Sowas lässt sich mit Blender / Untiy 3D etc betreiben.
-
Und ich weiß von ein paar, die dies auch taten, aber nicht veröffentlicht haben. Desweiteren finden sich Beispiel im Vietnam Forum
-
Ich meine damit: Beim Lesen des Threads wird sich mancher denken: "Schon wieder?". Da ist es gut, wenn man gleich alle Zweifel mit einer ausführlichen, gegliederten und durchdachten Beschreibung eliminieren kann
