Was man über die Forensuche so alles findet... -> GDI+ Tutorial ;).
Beiträge von name22
-
-
Das ist die Größe relativ zur Arbeitsfläche des Fensters ;). Allerdings musst du bei Controlclick doch gar keine Koordinaten angeben, dann wird einfach die Mitte des Controls genommen. Und für MouseClick musst du die Koordinaten erst umrechnen mit
[autoit]_WinAPI_ScreenToClient
[/autoit] -
Zitat
ich mein die control coord´s für mouseclick bzw controlclick() ...
Was denkst du was ControlGetPos zurückgibt?
-
Vielleicht liegt es ja daran, dass du nur ein 128x128 Bild im .ico File hast. Wenn das dann ohne Resampling (oder wie das heißt?) auf 16x16 verkleinert wird leidet die Qualität... denke ich.
Ich hab mal das .png extrahiert und mit einem Programm auf 48x48 und 16x16 verkleinert. So wird es bei mir problemlos dargestellt. -
Und ich habe mir leider eine Art Freestyle-Tippsystem angewöhnt :wacko: . Sehr abwechslungsreich :D...
-
Zitat
Gehört hier nicht rein, ist aber eigentlich ach keine thread wert
Nein... Aber einen weiteren Beitrag, nachdem du erst vor 2 Minuten deinen letzten gepostet hast, ist es auch nicht wert.
GUICtrlSetStyle kann nachträglich den Stil eines Controls verändern. -
Du kannst ja die Funktionen
[autoit]_GUICtrlEdit_GetFirstVisibleLine
[/autoit]
;und
_GUICtrlEdit_Scroll
wie in meinem Beispiel verwenden. Aber vielleicht hat Großvater ja dafür noch eine praktischere Lösung parat. -
Zitat
Oscar ich glaube ein ListView wäre unpassend da es meistens längere Texte sind.
Dann nimm doch eine ListBox (GUICtrlCreateList) ;). -
Das ist kein Wahrsagerforum, du müsstest also schon dein Script posten wenn dir geholfen werden soll. Wenn ich raten müsste, würde ich sagen du hast die MsgBox direkt in die Hauptschleife gesetzt und nicht in eine Bedingungsabfrage (Switch, If...).
-
Ich kenne keinen Befehl oder Stil der das direkt verhindert, aber du kannst ja den Zustand des Controls vor dem updaten speichern und danach wiederherstellen. Hier mal ein Beispiel.
Spoiler anzeigen
[autoit]#include <EditConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIEdit.au3>$text = ""
[/autoit] [autoit][/autoit] [autoit]
For $x = 1 To 100
$text &= "Text " & $x & @CRLF
Next$Form1 = GUICreate("", 639, 438, 192, 124, -1, BitOR($WS_EX_TRANSPARENT, $WS_EX_WINDOWEDGE))
[/autoit] [autoit][/autoit] [autoit]
$Edit1 = GUICtrlCreateEdit("", 129, 32, 401, 265)
GUICtrlSetCursor(-1, 5)
GUICtrlSetData(-1, $text)
GUISetState()AdlibRegister("_Refresh", 700)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]$nMsg = GUIGetMsg()
[/autoit] [autoit][/autoit] [autoit]
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndFunc _Refresh()
[/autoit]
$iCursor = MouseGetCursor()
GUISetCursor($iCursor, 0, $Form1)
$iLine = _GUICtrlEdit_GetFirstVisibleLine($Edit1)
$aCurSel = _GUICtrlEdit_GetSel($Edit1)
_GUICtrlEdit_BeginUpdate($Edit1)
_GUICtrlEdit_SetText($Edit1, $text)
For $i = 1 To $iLine
_GUICtrlEdit_Scroll($Edit1, 1)
Next
_GUICtrlEdit_SetSel($Edit1, $aCurSel[0], $aCurSel[1])
_GUICtrlEdit_EndUpdate($Edit1)
EndFunc ;==>_Refresh -
Zitat
Ja es gibt fertige Programme, aber da ist der schwäbische (Ehr-)Geiz zu groß, ich will das selber mal versuchen
. Dlls wären aber nicht schlecht.
Ja, das kenn ich. So ist fast jeder in meiner Familie ^^. Schau mal hier, vielleicht findest du ja da was.
-
Wenn ich es mit Adminrechten starte, geht es bei mir... Oder zumindest erhalte ich einen Wert ungleich Null.

-
Vielleicht ist die Webcam UDF nicht mit deiner Webcam kompatibel, oder der Treiber deiner Webcam verhindert einen normalen Zugriff darauf...
-
Man könnte ggf. auch mit GDI+ Matrizenden Kontrast o.Ä erhöhen. Das ist vielleicht einfacher als geringe Abweichungen im Farbwert zu beachten...
Außerdem gibt es zur professionellen Erkennung von Objekten in Bildern gibt es doch auch schon fertige Dlls und Programme. -
Du musst im Kontextmenü auf "Compile with options" klicken. Mit "Compile Script" geht das aus irgendeinem Grund nicht...
-
Ich wünsche dir auch alles Gute zum Geburtstag
! -
Klar geht das. Ich hab hier mal schnell was zusammengetippt und es funktionniert, wenn auch ein wenig langsam...
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Func _PixelListToArray($iLeft, $iTop, $iRight, $iBottom, $iRGB_ColorSearch, $iShade_Variation = 0, $hWnd_Search = -1)
; Author: name22 (http://www.autoit.de)
Local $aReturn[($iRight - $iLeft) * ($iBottom - $iTop) + 1][2]
$aReturn[0][0] = 0Local $iLeft_Start = $iLeft
[/autoit] [autoit][/autoit] [autoit]
Local $iTop_Start = $iTopLocal $aLastResult[2]
[/autoit] [autoit][/autoit] [autoit]While True
[/autoit] [autoit][/autoit] [autoit]
$aResult = PixelSearch($iLeft, $iTop, $iRight, $iBottom, $iRGB_ColorSearch, $iShade_Variation, $hWnd_Search)
Switch @error
Case 0
$aReturn[0][0] += 1
$aReturn[$aReturn[0][0]][0] = $aResult[0]
$aReturn[$aReturn[0][0]][1] = $aResult[1]$iLeft = $aResult[0] + 1
[/autoit]
Case Else
If Not IsArray($aLastResult) Then ExitLoop
$iLeft = $iLeft_Start
$iTop = $aLastResult[1] + 1
EndSwitch
$aLastResult = $aResult
WEnd
ReDim $aReturn[$aReturn[0][0] + 1][2]
Return $aReturn
EndFunc -
Mit StringRegExp würde es so funktionieren...
Spoiler anzeigen
[autoit]Func _CheckSerial($CheckSerialInput)
[/autoit]
Local $sFile = BinaryToString(InetRead("http://xxx/serial.txt", 1 + 2))
Local $sInput = GUICtrlRead($SerialNrInput)
If StringRegExp($sFile, '\b' & $sInput & '\b', 0) Then
MsgBox(0, "Test", "Korrekt")
Else
MsgBox(0, "Test", "Falsch")
Exit 0
EndIf
EndFunc ;==>_CheckSerial -
Ob es nun sinnvoll ist, ist doch irrelevant. Es gibt hier im Forum bereits mehrere "Sinnlose" Scripte, aus denen man dennoch etwas lernen kann. Einen Taschenrechner mit den selben Funktionen wie der Windowseigene zu Programmieren macht auch keinen Sinn, aber hat schon vielen Anfängern dabei geholfen AutoIt besser zu verstehen.
-
Leichenschänder!
Der Thread war doch schon längst gelöst, und FileSelectFolder als Parameter einfügen kann ich auch
.