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

Beiträge von BugFix

  • Text automatisch vergrößern

    • BugFix
    • 21. November 2012 um 23:53
    Zitat von chesstiger

    Sowas wie BugFix' Tool brauch man eigentlich nicht.


    :P
    Ich beneide dich um die Fähigkeit, dir alle Farbschattierungen allein anhand der Farbwerte vorstellen zu können. Das ist sicher "Wetten Dass"-reif. :rofl:
    Und der integrierte Farbmixer zeigt detailliert die einzelnen Farbanteile, sofern man es denn wissen möchte. ;)

  • QR-Code Creator

    • BugFix
    • 21. November 2012 um 23:25
    Zitat von x0r

    €dit: füge ich statt $return[0] einfach $return ein, dann funktionierts. Strange?!


    Hmm, also ich hatte vergessen in diesem Aufruf:

    [autoit]

    $return = DllCall("quricol32.dll", "HANDLE", "GetHBitmap", "str", $_sText, "int", 4, "int", 2)

    [/autoit]

    den Dateinamen mit der Pfadvariablen ($sDllQR) zu ersetzen. Allerdings dürfte das zu keinem Problem führen, da dann der Aufruf ebenfalls im @ScriptDir stattfindet.
    Mir ist absolut schleierhaft, dass

    [autoit]

    $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($return)

    [/autoit]

    funktionieren soll. Wenn $return[0] mit Arrayfehler abbricht bedeutet das, dass der Dll-Aufruf nicht erfolgreich war und demzufolge kannst du an

    [autoit]

    _GDIPlus_BitmapCreateFromHBITMAP

    [/autoit]

    kein Handle übergeben ($return hat nur den Wert 0). Somit muss diese Funktion fehlschlagen. :wacko:

  • QR-Code Creator

    • BugFix
    • 21. November 2012 um 20:08
    Zitat von Torni

    kleines Manko, wenn ich ca. 2000 Zeichen reinpacke, verkleinert sich die Gui und kein QR ist zu sehen..

    Kann ich leider nicht nachvollziehen. Ich kann exakt 3049 Zeichen codieren, der von dir geschilderte Effekt tritt bei mir erst ab Zeichen 3050 auf.
    Verwende mal stückweise kürzere Strings, um festzustellen bei welcher Schwelle es bei dir kippt.
    Wie gesagt: bei mir auf Win 7, 64Bit sind 3049 zeichen möglich.

    Zitat von Torni

    p.s. gibt es so was auhc für 128er-BarCode??

    Wenn du eine Dll findest, die das umsetzt und auch eine Beschreibung für die Dll hast, kann man das realisieren.

    Zitat von AntiSpeed

    oder auch ein Link ist

    Warum? Link wird doch von Redern automatisch erkannt und formatiert.
    Ähm, einen Algo kannst du dier hier nicht ansehen, aber in dem Link auf die EN-Forum-Seite findest du auch einen Verweis auf die Dll-Source. Da kannst du dir den Algo ansehen.

  • Text automatisch vergrößern

    • BugFix
    • 21. November 2012 um 19:52
    Zitat von Ququknife

    wo finde ich die ganzen Codes für die Farben,


    z.B. hier.

  • QR-Code Creator

    • BugFix
    • 21. November 2012 um 19:26

    Hi,
    im EN-Forum habe ich einen schönen Beitrag zum Erstellen von QR-Code gefunden.
    Das Bsp. war mir nur viel zu aufgebläht und nicht zur direkten Texteingabe vorgesehen.
    Somit habe ich eine GUI dafür erstellt mit folgenden Optionen:

    - Auswahl: Kopiere in Zwischenablage
    - Auswahl: Speichere Code als BMP und/oder PNG (oder gar nicht)
    - Auswahl: Dateiname, Präfix ist immer "QR_", Vorgabe: "JJJJMMTT_hhmmss"
    - Auswahl: Speicherordner, Vorgabe: Skriptordner
    - Texteingabe im Edit, verbleibende Zeichenzahl wird angezeigt (max. 3049 Zeichen; normalerweise erlaubt QR bis 4296 Zeichen, die verwendete Dll hat hier jedoch limitiert - vermutlich Qualitätslevel)
    - bei Restzeichenzahl unter 11 wird das Zählereld gelb hinterlegt, beim Überschreiten der zulässigen Anzahl erfolgt Rotfärbung
    - Bei Erstellen des QR-Codes wird die GUI auf die jeweils erforderliche Größe angepasst

    So schauts aus:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Die notwendige Dll habe ich als Binärstring gleich in die au3 mit eingebaut. Sie wird temporär erstellt im Skriptordner und beim Beenden wieder gelöscht.
    Hier im Thread-Code habe ich den Binärstring gekürzt.

    Edit 21.12.2012:
    Ich glaube der Fehler ist gefunden: #AutoIt3Wrapper_UseX64=N ist erforderlich. Gleich noch einen kleinen Fehler gefixed: Es wurde immer im @ScriptDir gespeichert (hatte vergessen die Variable dafür zu setzen ;)).

    QR_Creator.au3
    [autoit]


    #AutoIt3Wrapper_UseX64=N

    [/autoit] [autoit][/autoit] [autoit]

    #include <Constants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <EditConstants.au3>
    #include <GDIPlus.au3>
    #include <Clipboard.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GuiOnEventMode', 1)
    OnAutoItExitRegister("_DelBinaryTempFiles")

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $__QR_MAX_LEN = 3049 ; == may be that in your system another, low value is possible

    [/autoit] [autoit][/autoit] [autoit]

    Global $sDllQR = @ScriptDir & "\quricol32.dll"
    _CreateDll()

    [/autoit] [autoit][/autoit] [autoit]

    Func _CreateDll()
    Local $bData
    ; String mit den Binärdaten von: quricol32.dll
    $bData &= "0x4D5A90000300000004000000FFFF0000B8000000000000004000000000000000000000000000000000000000000000000000000000000000000...." ; gekürzt
    $bData &= "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    Local $hFileOut = FileOpen($sDllQR, 2+8+16)
    FileWrite($hFileOut, Binary($bData))
    FileClose($hFileOut)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DelBinaryTempFiles()
    FileDelete($sDllQR)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Global $hWnd, $cbClip, $cbBMP, $cbPNG, $cbName, $lbName, $inName, $inPath, $btPath, $editQR, $btRun, $btDel
    Global $iState, $fClip = False, $fBMP = False, $fPNG = True, $sFile, $iH

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("QR Creator", 500, 395)
    $a = WinGetPos($hWnd)
    $iH = $a[3]
    GUICtrlCreateGroup(' Optionen ', 10, 10, 480, 120)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $cbClip = GUICtrlCreateCheckbox(' Kopie in Zwischenablage', 30, 35, 150, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlCreateLabel('Speichern als:', 260, 38, 80, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $cbBMP = GUICtrlCreateCheckbox(' *.BMP', 350, 35, 50, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $cbPNG = GUICtrlCreateCheckbox(' *.PNG', 420, 35, 50, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $cbName = GUICtrlCreateCheckbox(' Name Datei', 30, 65, 80, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $lbName = GUICtrlCreateLabel('QR_', 120, 66, 30, 18, BitOR(0x0002, 0x0200)) ; SS_RIGHT,SS_CENTER
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetBkColor(-1, 0xFEFEFE)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $inName = GUICtrlCreateInput('JJJJMMDD_hhmmss', 152, 65, 318, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetBkColor(-1, 0xFEFEFE)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateLabel('Ordner', 50, 98, 60, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $inPath = GUICtrlCreateInput('', 120, 95, 325, 20, $ES_READONLY)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetBkColor(-1, 0xFEFEFE)
    GUICtrlSetData(-1, @ScriptDir)
    $btPath = GUICtrlCreateButton('...', 450, 95, 20, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateLabel('Zu codierender Text', 10, 143, 120, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlCreateLabel('Eingabelänge [ max. ' & $__QR_MAX_LEN & ' Zeichen ]:', 240, 143, 185, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $inCounter = GUICtrlCreateInput($__QR_MAX_LEN, 430, 140, 40, 20, BitOR($ES_READONLY, $ES_CENTER))
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetBkColor(-1, 0xFEFEFE)
    $editQR = GUICtrlCreateEdit('', 10, 165, 480, 150, BitOR($ES_WANTRETURN, $ES_MULTILINE, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $btRun = GUICtrlCreateButton('Start', 420, 325, 70, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $btDel = GUICtrlCreateButton('Löschen', 420, 365, 70, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUISetOnEvent(-3, '_exit')
    GUICtrlSetOnEvent($cbClip, '_event')
    GUICtrlSetOnEvent($cbBMP, '_event')
    GUICtrlSetOnEvent($cbPNG, '_event')
    GUICtrlSetOnEvent($cbName, '_event')
    GUICtrlSetOnEvent($btPath, '_event')
    GUICtrlSetOnEvent($btRun, '_event')
    GUICtrlSetOnEvent($btDel, '_event')

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While True
    Sleep(50)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _event()
    Switch @GUI_CtrlId
    Case $cbClip
    $fClip = Not $fClip
    Case $cbBMP
    $fBMP = Not $fBMP
    Case $cbPNG
    $fPNG = Not $fPNG
    Case $cbName
    Local $iState = $GUI_DISABLE
    If BitAND(GUICtrlRead($cbName), $GUI_CHECKED) Then
    $iState = $GUI_ENABLE
    If (Not $fBMP And Not $fPNG) Then
    GUICtrlSetState($cbName, $GUI_UNCHECKED)
    Return MsgBox(262160, 'Fehler', 'Bitte erst Dateityp zum Speichern auswählen!')
    EndIf
    EndIf
    GUICtrlSetState($lbName, $iState)
    GUICtrlSetState($inName, $iState)
    Case $btPath
    Local $sPath = FileSelectFolder('Speicherpfad für QR-Image wählen', '', 7)
    If $sPath = '' Then Return
    GUICtrlSetData($inPath, $sPath)
    Case $btRun
    $sFile = GUICtrlRead($inName)
    If $sFile = "JJJJMMDD_hhmmss" Then $sFile = -1
    Local $iFormat = 0
    If $fBMP Then $iFormat += 1
    If $fPNG Then $iFormat += 2
    Local $sContent = GUICtrlRead($editQR)
    If StringLen($sContent) > $__QR_MAX_LEN Then Return MsgBox(262160, 'Fehler', 'Der Inhalt überschreitet die maximal zulässige Anzahl an Zeichen!')
    _Reset()
    createQR($sContent, $fClip, $sFile, $iFormat)
    Case $btDel
    GUICtrlSetData($editQR, '')
    _Reset()
    _WinMove()
    EndSwitch
    If (Not $fBMP) And (Not $fPNG) Then
    GUICtrlSetState($btPath, $GUI_DISABLE)
    GUICtrlSetState($inPath, $GUI_DISABLE)
    Else
    GUICtrlSetState($btPath, $GUI_ENABLE)
    GUICtrlSetState($inPath, $GUI_ENABLE)
    EndIf
    EndFunc ;==>_event

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Reset()
    _WinAPI_RedrawWindow($hWnd)
    GUICtrlSetData($inCounter, $__QR_MAX_LEN)
    GUICtrlSetColor($inCounter, 0x000000)
    GUICtrlSetBkColor($inCounter, 0xFEFEFE)
    EndFunc ;==>_Reset

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit, $iCount, $iShow, $sFormat = '%04d'
    $hWndEdit = GUICtrlGetHandle($editQR)
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $hWndFrom
    Case $hWndEdit
    Switch $iCode
    Case $EN_CHANGE
    $iCount = StringLen(GUICtrlRead($editQR))
    $iShow = $__QR_MAX_LEN - $iCount
    If $iShow < 0 Then
    $sFormat = '%+05d'
    GUICtrlSetColor($inCounter, 0xFFFFFF)
    GUICtrlSetBkColor($inCounter, 0xFF0000)
    ElseIf $iShow < 11 Then
    GUICtrlSetColor($inCounter, 0x000000)
    GUICtrlSetBkColor($inCounter, 0xFFFF00)
    Else
    GUICtrlSetColor($inCounter, 0x000000)
    GUICtrlSetBkColor($inCounter, 0xFEFEFE)
    EndIf
    GUICtrlSetData($inCounter, StringFormat($sFormat, $iShow))
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; =======================================================================================
    ; Title .........: QR Creator basierend auf Skript von Giovanni Rossati (El Condor) - http://www.autoitscript.com/forum/topic/14…de/#entry994116
    ; Description ...: Erstellen von QR-Code, wahlweise Speichern als bmp und/oder png, optional Speichern in Zwischenablage
    ; Parameters.....: $_sText zu codierender Text
    ; ......optional.: $_fClipboard Übergabe Image an Zwischenablage, Standard: "True"
    ; ......optional.: $_sImageName Dateiname, erhält autom. Präfix 'QR_', Standard: "-1" = "QR_JJJJMMDD_hhmmss"
    ; ......optional.: $_iFormat Speicheroption: 0=nicht Speichern, 1=BMP, 2=PNG (Standard), 3=BMP und PNG
    ; Author(s) .....: Giovanni Rossati (El Condor)
    ; ..modified.by..: BugFix
    ; =======================================================================================
    Func createQR($_sText, $_fClipboard = False, $_sImageName = -1, $_iFormat = 2)
    Local $return, $hBitmap, $hGraphic, $hBitmap2, $iWidth, $sPath = GUICtrlRead($inPath)
    If (Not FileExists($sPath)) And $_iFormat > 0 Then Return MsgBox(262160, 'Fehler', 'Speicherordner existiert nicht!')
    Local $iErr = 0, $hDll = DllOpen($sDllQR)
    If $_sImageName = -1 Then
    $_sImageName = '\QR_' & @YEAR & @MON & @MDAY & '_' & @HOUR & @MIN & @SEC
    Else
    $_sImageName = '\QR_' & $_sImageName
    EndIf
    If BitAND($_iFormat, 1) Then DllCall($hDll, "none", "GenerateBMP", "str", $sPath & $_sImageName & ".bmp", "str", $_sText, "int", 4, "int", 2)
    If BitAND($_iFormat, 2) Then DllCall($hDll, "none", "GeneratePNG", "str", $sPath & $_sImageName & ".png", "str", $_sText, "int", 4, "int", 2)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    $return = DllCall($hDll, "HANDLE", "GetHBitmap", "str", $_sText, "int", 4, "int", 2)
    $iErr = @error
    DllClose($hDll)
    If Not IsArray($return) Or $iErr <> 0 Then Return MsgBox(262160, 'Fehler', "Der Dll-Aufruf endete mit dem Fehler-Nr: " & $iErr & "!")
    $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($return[0])

    [/autoit] [autoit][/autoit] [autoit]

    $iWidth = _GDIPlus_ImageGetWidth($hBitmap)
    If $iWidth > 60 Then _WinMove($iWidth)

    [/autoit] [autoit][/autoit] [autoit]

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 10, 325)

    [/autoit] [autoit][/autoit] [autoit]

    If $_fClipboard Then
    If Not _ClipBoard_Open($hWnd) Then _WinAPI_ShowError("_ClipBoard_Open failed")
    If Not _ClipBoard_Empty() Then _WinAPI_ShowError("_ClipBoard_Empty failed")
    $hBitmap2 = _WinAPI_CopyImage(_GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap), 0, 0, 0, $LR_COPYDELETEORG + $LR_COPYRETURNORG)
    _ClipBoard_SetDataEx($hBitmap2, $CF_BITMAP)
    _ClipBoard_Close()
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Clean up resources
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_BitmapDispose($hBitmap)
    _WinAPI_DeleteObject($return[0])
    _GDIPlus_Shutdown() ; Shut down GDI+ library
    Return
    EndFunc ;==>createQR

    [/autoit] [autoit][/autoit] [autoit]

    Func _WinAPI_CopyImage($hImage, $iType = 0, $xDesired = 0, $yDesired = 0, $iFlags = 0); from _WinAPIEx by Yashied
    Local $Ret = DllCall('user32.dll', 'ptr', 'CopyImage', 'ptr', $hImage, 'int', $iType, 'int', $xDesired, 'int', $yDesired, 'int', $iFlags)
    If (@error) Or (Not $Ret[0]) Then Return SetError(1, 0, 0)
    Return $Ret[0]
    EndFunc ;==>_WinAPI_CopyImage

    [/autoit] [autoit][/autoit] [autoit]

    Func _WinMove($_iDiff = -1)
    Local $iHeight, $aWin = WinGetPos($hWnd)
    If $_iDiff = -1 Then
    $iHeight = $iH
    Else
    $iHeight = 305 + $_iDiff + 60
    EndIf
    WinMove($hWnd, '', $aWin[0], $aWin[1], $aWin[2], $iHeight)
    EndFunc ;==>_WinMove

    [/autoit]

    DL bisher: 63

    Dateien

    QR_Creator.au3 457,86 kB – 1.280 Downloads qr_creator.png 19,85 kB – 0 Downloads
  • Welchen Updater nutzt Ihr?

    • BugFix
    • 20. November 2012 um 20:42

    Damit das nicht ausufert:
    [CLOSED]

  • Dateipfade auf Handles umbauen

    • BugFix
    • 20. November 2012 um 20:30
    Zitat von F1109

    die absoluten Pfad-Verweise auf Handles umzubauen


    Häääää? Ich verstehe nur Bahnhof. Was verstehst du denn unter Handle?

  • Wie baue ich eine Menüleiste ein

    • BugFix
    • 20. November 2012 um 19:49
    Zitat von heyhey83

    Na ja so sehr hilfreich scheint ihr mir hier wo nicht zu sein man habe nicht die zeit um mich nur darum zu kümmern aber danke dachste es könnte mir mal schnell einer mehr helfen als wie nur mit dieser hilfe.........


    Da geht mir doch der Hut hoch! Du hast ja wohl nicht mehr alle Nadeln an der Tanne?
    Sollen wir dir den Arm aus der Sonne legen und auch noch den Allerwertesten putzen? Kriegst du überhaupt was gebacken ausser rumzumaulen?
    Wir können mit Fug und Recht behaupten, dass unser Forum schnell und qualitativ hochwertig Hilfe bietet - Hilfe zur Selbsthilfe! Du sollst hier was Lernen und nicht andere für dich skripten lassen.
    Also ändere mal radikal deine Einstellung oder geh mir in Zukunft gefälligst aus der Sonne! :cursing:

  • eintrag beim "rechtsklickmenü" von datein hinzufügen

    • BugFix
    • 20. November 2012 um 19:38
    Zitat von Andy

    Das macht vor allem bei Dateioperationen Sinn, da man die so übergebenen Dateien einfach im AutoItscript per $CMDLINE[]  auswerten kann.


    Genau zu diesem Zweck erfolgt der Eintrag: RegWrite($sKey, '', 'REG_SZ', $newProgramPath & " %1")
    %1 steht hier für die übergebenen Parameter, sprich die/den markierte(n) Datei(en)/Ordner im Explorer.

  • eintrag beim "rechtsklickmenü" von datein hinzufügen

    • BugFix
    • 20. November 2012 um 18:00

    Hier aus einem Skript von mir:

    [autoit]


    $sKey = 'HKEY_CLASSES_ROOT\Folder\shell\' & $newProgramName
    RegWrite($sKey)
    $sKey = 'HKEY_CLASSES_ROOT\Folder\shell\' & $newProgramName & '\command'
    RegWrite($sKey)
    RegWrite($sKey, '', 'REG_SZ', $newProgramPath & " %1")

    [/autoit]
  • Tabelle kopieren

    • BugFix
    • 20. November 2012 um 15:42

    Der einfachste Weg:
    - per Hand machen und dabei als Makro aufzeichnen
    - den VBA-Code des Makros nach AutoIt portieren
    Hilfreich dabei: Word-Objekt-Modell (Table)

  • Text automatisch vergrößern

    • BugFix
    • 20. November 2012 um 11:28

    Eventuell meinst du das Anpassen beim Resizen des Fensters?

    Du könntest das SIZE-Event auswerten und je nach der neuen Größe des Labels den Font anpassen.
    Welchen Platz dein Text mit welchem Font beansprucht, kannst du z.B. vorab in allen Variationen mit dem TextMeter feststellen und dann je nach aktueller Größe den passenden Font wählen.

    [autoit]

    $hGui = GUICreate('Test', 400, 300, -1, -1, BitOR(0x00040000,0x00080000)) ; $WS_SIZEBOX 0x00040000, $WS_SYSMENU 0x00080000
    $cLabel = GUICtrlCreateLabel('Label', 20, 20)
    GUICtrlSetBkColor(-1, 0xfefefe)
    GUICtrlSetResizing(-1, 1) ; 1 = $GUI_DOCKAUTO
    GUIRegisterMsg(0x0214, '_WM_SIZING')

    [/autoit][autoit][/autoit][autoit]

    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    Do
    Until GUIGetMsg() = -3

    [/autoit][autoit][/autoit][autoit]

    Func _WM_SIZING($hWnd, $Msg, $wParam, $lParam)
    If $hWnd <> $hGui Then Return 'GUI_RUNDEFMSG'
    Local $aSize = ControlGetPos($hWnd, '', $cLabel)
    Local $iWidth = $aSize[2]
    Local $iHeight = $aSize[3]
    ConsoleWrite('Label Breite/Höhe: ' & $iWidth & '/' & $iHeight & @CRLF)
    Return 'GUI_RUNDEFMSG'
    EndFunc

    [/autoit]
  • Mousehook - Daten asynchron verarbeiten

    • BugFix
    • 18. November 2012 um 16:25

    Die 2-Skript-Variante ist m.M. hier die eleganteste und sinnvollste Lösung.
    Wenn du das in einem Skript regeln willst, mußt du deine (zu lange dauernden) Funktionen irgendwie in einem Queue parken und abarbeiten lassen während der Hook-Return bereits erfolgte. Sicher ist das nicht unmöglich, aber vermutlich recht aufwändig.
    Wenn du also mit der Arbeitsweise deiner Lösung zufrieden bist, solltest du es ruhig dabei belassen. Es sei denn, es hat jemand tatsächlich eine Variante in petto, die die Problematik auflöst.

  • StringFormat: vorangestellte Leerzeichen

    • BugFix
    • 17. November 2012 um 23:13

    Mit StringFormat:

    [autoit]

    ConsoleWrite('>' & StringFormat("%8s", 'AutoIt') & '<' & @CRLF)

    [/autoit]

    Da die Syntax ja nicht unbedingt selbstverständlich ist, gäbe es auch eine Variante mit anderen String-Funktionen:

    [autoit]


    ConsoleWrite('>' & _PreSpaces('AutoIt', 8) & '<' & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    Func _PreSpaces($_sString, $_iLen)
    Local $sSpaces = ''
    For $i = 1 To $_iLen -1
    $sSpaces &= ' '
    Next
    Return StringRight($sSpaces & $_sString, $_iLen)
    EndFunc

    [/autoit]

    Edit: grr, zu lange geschrieben, da war doch wer schneller :D

  • OCR - aber wie?

    • BugFix
    • 16. November 2012 um 08:28

    1. Wenn du Zugriff auf eine Website hast, kannst du deren Inhalte direkt lesen,
    sofern
    2. Die AGB des Seitenbetreibers ein automatisiertes Lesen nicht untersagen,
    womit
    3. das Bearbeiten mit OCR (welches in der Mehrzahl der Einsatzfälle gegen unsere Forenregeln verstößt) hinfällig ist.


    [CLOSED]

  • [GDI+] Kollision

    • BugFix
    • 13. November 2012 um 16:04

    Wie wäre es, wenn du mal in der Suchfunktion "Kollision" eingibst? Da erhältst du ausreichend Lösungen.

  • Java-Link => Markierung in Firefox anklicken.

    • BugFix
    • 13. November 2012 um 13:22

    Wenn ich mich recht erinnere, haben wir bereits einen User, mit starker Sehschwäche oder gar Erblindung. Ich denke er könnte hier wesentlich mehr einbringen.
    Falls sich also jemand erinnert, wie der Name des Users ist - bitte melden.

    EDIT: Hab ihn gerade gefunden (christopher), aber er hat sich einen Tag angemeldet und war am Folgetag zum letzten mal online, also wohl doch keine Hilfe. :S

    EDIT2: Ha, hab noch jemanden gefunden: gamefighter - und er ist aktiv. Also vielleicht hat er eine Idee. (Habe ihm eine PN gesendet mit Verweis auf diesen Thread)

  • Maske ausführen

    • BugFix
    • 13. November 2012 um 13:13

    Ich habe mal in einem Bsp. von mir das Enablen/Disablen mit eingefügt:

    Spoiler anzeigen
    [autoit]

    ; Muster Checkbox-Bearbeitung
    ; Ziel: einfache Abfrage, welche CB aktiviert sind

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>
    Opt('GUIOnEventMode', 1)
    Opt("MustDeclareVars", 1)
    Global $bCheckAll, $bUnCheckAll, $GUI, $i, $str
    Global $arCB[20][2] ; Array für Handle und Dual-Wert der CB
    For $i = 0 To UBound($arCB) -1
    $arCB[$i][1] = 2^$i ; Zuweisung eindeutiger Wert
    Next
    Global $Checked = 0 ; Variable nimmt Status ALLER Checkboxen in einem Wert auf,
    ; Startstatus für alle: UNCHECKED
    Global $w = 500, $h = 20*30+40, $l = (@DesktopWidth-$w)/2, $t = (@DesktopHeight-$h)/2
    Global $top = -10
    $GUI = GUICreate('Test Checkbox', $w, $h, $l, $t)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Ende')
    For $i = 0 To UBound($arCB) -1
    $top += 30
    $arCB[$i][0] = GUICtrlCreateCheckbox('CheckBox_' & $i+1, 40, $top, 120)
    GUICtrlSetOnEvent(-1, '_ClickCB')
    Next
    $bCheckAll = GUICtrlCreateButton('Alle markieren', 250, 20, 150, 21)
    GUICtrlSetOnEvent(-1, '_CheckAll')
    $bUnCheckAll = GUICtrlCreateButton('Markierung aufheben', 250, 50, 150, 21)
    GUICtrlSetOnEvent(-1, '_UnCheckAll')
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Ende()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ClickCB()
    For $i = 0 To UBound($arCB) -1
    If $arCB[$i][0] = @GUI_CtrlId Then
    $Checked = BitXOR($Checked, $arCB[$i][1])
    _ReadCB()
    ExitLoop
    EndIf
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _CheckAll()
    For $i = 0 To UBound($arCB) -1
    If Not BitAND($Checked, $arCB[$i][1]) Then
    ;~ GUICtrlSetState($arCB[$i][0], $GUI_CHECKED)
    GUICtrlSetState($arCB[$i][0], BitOR($GUI_CHECKED, $GUI_DISABLE)) ; markieren und disablen
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _UnCheckAll()
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then
    ;~ GUICtrlSetState($arCB[$i][0], $GUI_UNCHECKED)
    GUICtrlSetState($arCB[$i][0], BitOR($GUI_UNCHECKED, $GUI_ENABLE)) ; Markierung aufheben und enablen
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ReadCB() ; Fkt. dient nur zur Ausgabe, welche CB markiert sind
    Local $str = 'Markiert: '
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then $str &= $i+1 & ', '
    Next
    WinSetTitle($GUI, '', StringTrimRight($str, 2))
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Java-Link => Markierung in Firefox anklicken.

    • BugFix
    • 13. November 2012 um 11:07

    Unabhängig vom Java-Problem: Vielleicht ist es sinnvoll ein eigenes Mausset zu verwenden, mit sehr großem und vor allem blinkenden Mauszeiger.

  • INI Datei eine VAR pro KEY

    • BugFix
    • 11. November 2012 um 13:40

    Einfach in einer eigenen Sektion speichern, der Keyname ist dabei völlig egal, den brauchst du gar nicht, muß nur angegeben werden, da die INI das erwartet:

    Code
    [bilder]
    bild1=Pfad1
    bild2=Pfad2
    bild3=Pfad3


    In deinem Skript lädst du beim Start die Pfade in ein Array:

    [autoit]

    $aPicture = IniReadSection('Pfad_INI_Datei', 'bilder')
    ; Bild1 ist dann $aPicture[1][1], Bild2 ist dann $aPicture[2][1] usw.

    [/autoit]

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™