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

Beiträge von vivus

  • K8055 Board - Abfrage ob Taster gedrückt?

    • vivus
    • 11. Oktober 2010 um 13:12

    hi ..

    hier fiel mein Name ?

    wo liegt den das Problem ?

    von meiner UDF kommt ein Array zurück, dass du auch als solches auswerten musst.

    sonnst kommt natürlich ein Fehler ..

    bye

  • Pc herunterfahren

    • vivus
    • 22. September 2010 um 09:52

    kann jemand mal den Thread als gelöst markieren ?

  • Run mit working dir

    • vivus
    • 22. September 2010 um 09:49

    gib mal den Source her ... dann guck ich mir des gern an ..

    denke da liegt der Hund wo anderst begraben ..

  • Webcam.au3 fehler bei Windows 7 x32/x64

    • vivus
    • 22. September 2010 um 09:46

    in der webcam.au3 ..

    in der Funktion :: _WebcamClose($sId)

    fehlt DllCall($user, "int", "SendMessage", "hWnd", $sId, "int", $WM_CAP_STOP , "int", 0, "int", 0)

    ... und wenn man es genau nimmt auch :: DllClose($avi) ..

    würde ich jetzt so sagen .. .. test's ,mal aus ..

  • Brauche dringend hilfe !

    • vivus
    • 22. September 2010 um 09:33

    ... also ich würde mich ja echt gerne produktiv beteiligen,

    ich verstehe aber immer noch nicht, was hier eigentlich das Ziel sein soll . . .

    kannst du mal in verständlichen zusammenhängenden Sätzen formulieren, was dein Script eigentlich machen soll......

    oder zumindest mal deine Anfänge posten .. damit man sich das mal angucken kann ....

  • was besseres als _ClipBoard_

    • vivus
    • 21. September 2010 um 08:47

    hi @ all ,

    hab da mal ne Frage.

    hier ist ein Progrämmle, mit dem man ein Web-Cam steam um 90 grad drehen kann.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <ClipBoard.au3>

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

    Opt("TrayIconHide", 1)

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

    _GDIPlus_Startup()

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

    $Gridstep=50 ;Abstand zwischen den Pixeln zum Abtasten

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

    $sensitivity = 15 ;Empfindlichkeit

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

    $gui_x=300;@DesktopWidth-(@DesktopWidth/8)
    $gui_y=300;@DesktopHeight-(@DesktopHeight/8)
    $top = $CMDLINE[4] ;150
    $left = $CMDLINE[3] ;160
    $TopDebug = $CMDLINE[6] ;162
    $LeftDebug = $CMDLINE[5] ;637
    $drehwinkel = $CMDLINE[7] ;90
    $picx = 640
    $picy = 480

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

    $width=$gui_x

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

    $cam_xlength=400;(1.3*($width/2)-(2*($width/20)));300 ;Breite (1.3*($width/2)-(2*($width/20)))
    $cam_ylength=400;( $width/2)-(2*($width/20));300 ;Höhe ( $width/2)-(2*($width/20))

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

    ;HotKeySet("{END}", "Quit");
    HotKeySet("{INSERT}", "SnapShot")

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

    Global $snapfile[4]
    $snapfile[0] = @ScriptDir & "\MusterBilder\scrshot1.jpg"
    $snapfile[1] = @ScriptDir & "\MusterBilder\scrshot2.jpg"
    $snapfile[2] = @ScriptDir & "\MusterBilder\scrshot3.jpg"
    $snapfile[3] = @ScriptDir & "\MusterBilder\scrshot4.jpg"
    $snapcount = 0
    $tempbild = @ScriptDir & "\temp.bmp"

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

    #include-once
    $WM_CAP_START = 0x400
    $WM_CAP_UNICODE_START = $WM_CAP_START +100
    $WM_CAP_PAL_SAVEA = $WM_CAP_START + 81
    $WM_CAP_PAL_SAVEW = $WM_CAP_UNICODE_START + 81
    $WM_CAP_UNICODE_END = $WM_CAP_PAL_SAVEW
    $WM_CAP_ABORT = $WM_CAP_START + 69
    $WM_CAP_DLG_VIDEOCOMPRESSION = $WM_CAP_START + 46
    $WM_CAP_DLG_VIDEODISPLAY = $WM_CAP_START + 43
    $WM_CAP_DLG_VIDEOFORMAT = $WM_CAP_START + 41
    $WM_CAP_DLG_VIDEOSOURCE = $WM_CAP_START + 42
    $WM_CAP_DRIVER_CONNECT = $WM_CAP_START + 10
    $WM_CAP_DRIVER_DISCONNECT = $WM_CAP_START + 11
    $WM_CAP_DRIVER_GET_CAPS = $WM_CAP_START + 14
    $WM_CAP_DRIVER_GET_NAMEA = $WM_CAP_START + 12
    $WM_CAP_DRIVER_GET_NAMEW = $WM_CAP_UNICODE_START + 12
    $WM_CAP_DRIVER_GET_VERSIONA = $WM_CAP_START + 13
    $WM_CAP_DRIVER_GET_VERSIONW = $WM_CAP_UNICODE_START + 13
    $WM_CAP_EDIT_COPY = $WM_CAP_START + 30
    $WM_CAP_END = $WM_CAP_UNICODE_END
    $WM_CAP_FILE_ALLOCATE = $WM_CAP_START + 22
    $WM_CAP_FILE_GET_CAPTURE_FILEA = $WM_CAP_START + 21
    $WM_CAP_FILE_GET_CAPTURE_FILEW = $WM_CAP_UNICODE_START + 21
    $WM_CAP_FILE_SAVEASA = $WM_CAP_START + 23
    $WM_CAP_FILE_SAVEASW = $WM_CAP_UNICODE_START + 23
    $WM_CAP_FILE_SAVEDIBA = $WM_CAP_START + 25
    $WM_CAP_FILE_SAVEDIBW = $WM_CAP_UNICODE_START + 25
    $WM_CAP_FILE_SET_CAPTURE_FILEA = $WM_CAP_START + 20
    $WM_CAP_FILE_SET_CAPTURE_FILEW = $WM_CAP_UNICODE_START + 20
    $WM_CAP_FILE_SET_INFOCHUNK = $WM_CAP_START + 24
    $WM_CAP_GET_AUDIOFORMAT = $WM_CAP_START + 36
    $WM_CAP_GET_CAPSTREAMPTR = $WM_CAP_START + 1
    $WM_CAP_GET_MCI_DEVICEA = $WM_CAP_START + 67
    $WM_CAP_GET_MCI_DEVICEW = $WM_CAP_UNICODE_START + 67
    $WM_CAP_GET_SEQUENCE_SETUP = $WM_CAP_START + 65
    $WM_CAP_GET_STATUS = $WM_CAP_START + 54
    $WM_CAP_GET_USER_DATA = $WM_CAP_START + 8
    $WM_CAP_GET_VIDEOFORMAT = $WM_CAP_START + 44
    $WM_CAP_GRAB_FRAME = $WM_CAP_START + 60
    $WM_CAP_GRAB_FRAME_NOSTOP = $WM_CAP_START + 61
    $WM_CAP_PAL_AUTOCREATE = $WM_CAP_START + 83
    $WM_CAP_PAL_MANUALCREATE = $WM_CAP_START + 84
    $WM_CAP_PAL_OPENA = $WM_CAP_START + 80
    $WM_CAP_PAL_OPENW = $WM_CAP_UNICODE_START + 80
    $WM_CAP_PAL_PASTE = $WM_CAP_START + 82
    $WM_CAP_SEQUENCE = $WM_CAP_START + 62
    $WM_CAP_SEQUENCE_NOFILE = $WM_CAP_START + 63
    $WM_CAP_SET_AUDIOFORMAT = $WM_CAP_START + 35
    $WM_CAP_SET_CALLBACK_CAPCONTROL = $WM_CAP_START + 85
    $WM_CAP_SET_CALLBACK_ERRORA = $WM_CAP_START + 2
    $WM_CAP_SET_CALLBACK_ERRORW = $WM_CAP_UNICODE_START + 2
    $WM_CAP_SET_CALLBACK_FRAME = $WM_CAP_START + 5
    $WM_CAP_SET_CALLBACK_STATUSA = $WM_CAP_START + 3
    $WM_CAP_SET_CALLBACK_STATUSW = $WM_CAP_UNICODE_START + 3
    $WM_CAP_SET_CALLBACK_VIDEOSTREAM = $WM_CAP_START + 6
    $WM_CAP_SET_CALLBACK_WAVESTREAM = $WM_CAP_START + 7
    $WM_CAP_SET_CALLBACK_YIELD = $WM_CAP_START + 4
    $WM_CAP_SET_MCI_DEVICEA = $WM_CAP_START + 66
    $WM_CAP_SET_MCI_DEVICEW = $WM_CAP_UNICODE_START + 66
    $WM_CAP_SET_OVERLAY = $WM_CAP_START + 51
    $WM_CAP_SET_PREVIEW = $WM_CAP_START + 50
    $WM_CAP_SET_PREVIEWRATE = $WM_CAP_START + 52
    $WM_CAP_SET_SCALE = $WM_CAP_START + 53
    $WM_CAP_SET_SCROLL = $WM_CAP_START + 55
    $WM_CAP_SET_SEQUENCE_SETUP = $WM_CAP_START + 64
    $WM_CAP_SET_USER_DATA = $WM_CAP_START + 9
    $WM_CAP_SET_VIDEOFORMAT = $WM_CAP_START + 45
    $WM_CAP_SINGLE_FRAME = $WM_CAP_START + 72
    $WM_CAP_SINGLE_FRAME_CLOSE = $WM_CAP_START + 71
    $WM_CAP_SINGLE_FRAME_OPEN = $WM_CAP_START + 70
    $WM_CAP_STOP = $WM_CAP_START + 68

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

    $avi = DllOpen("avicap32.dll")
    $user = DllOpen("user32.dll")

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

    $gui_name=$CMDLINE[1]

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

    ;$gui = GUICreate($gui_name,$gui_x,$gui_y)
    ;$gui = GUICreate($gui_name,$gui_x,$gui_y, $top, $left, $WS_BORDER, $WS_EX_TOPMOST)
    ;$gui = GUICreate("sodele", 1600, 1000, 0, 0, -1, $WS_EX_TOPMOST) ; generierung des haupt fensters

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

    ;$WebcamID = _WebcamOpen($gui, 0, 0, $cam_xlength, $cam_ylength)
    ;$WebcamID = _WebcamOpen($gui, 10, 10, $cam_xlength, $cam_ylength)
    $WebcamID = _WebcamOpen($CMDLINE[2], $leftDebug, $topDebug, $cam_xlength, $cam_ylength)

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

    ;GUISetState(@SW_SHOW)

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

    $hMatrix = _GDIPlus_MatrixCreate()
    ;_GDIPlus_MatrixTranslate($hMatrix, $left+$picy, $top)
    _GDIPlus_MatrixTranslate($hMatrix, $left, $top+$picx)
    _GDIPlus_MatrixRotate($hMatrix, $drehwinkel)
    ;$hGraphic = _GDIPlus_GraphicsCreateFromHWND($gui)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($CMDLINE[1])
    _GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix)

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

    While 1

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

    sleep(5)

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

    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    _WebcamClose($WebcamID)
    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    Exit
    EndIf

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

    _Drehen()

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

    WEnd

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

    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    Exit

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

    Func SnapShot()
    _WebcamSnap($WebcamID, $snapfile[$snapcount])
    $snapcount += 1
    EndFunc

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

    Func Quit()
    _WebcamClose($WebcamID)
    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

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

    Func _Drehen()
    DllCall($user, "int", "SendMessage", "hWnd", $WebcamID, "int", $WM_CAP_GRAB_FRAME_NOSTOP, "int", 0, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", $WebcamID, "int", $WM_CAP_EDIT_COPY, "int", 0, "int", 0)
    sleep(10)
    _ClipBoard_Open ($CMDLINE[2])
    $hImageCB = _ClipBoard_GetDataEx ($CF_BITMAP )
    ;If $hImageCB = 0 Then _WinAPI_ShowError ("Mist hImageCB")
    $hImage = _GDIPlus_BitmapCreateFromHBITMAP( $hImageCB )
    ;If $hImage = 0 Then _WinAPI_ShowError ("Mist hImage")
    _WinAPI_DeleteObject($hImageCB)
    _ClipBoard_Close ()
    ;$iWidth = _GDIPlus_ImageGetWidth($hImage) * 96 / _GDIPlus_ImageGetVerticalResolution($hImage)
    ;$iHeight = _GDIPlus_ImageGetHeight($hImage) * 96 / _GDIPlus_ImageGetHorizontalResolution($hImage)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
    ;_GDIPlus_ImageDispose($hImage)
    _GDIPlus_BitmapDispose($hImage)
    EndFunc

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

    ;===============================================================================
    ;
    ; Description: Open's a webcam preview screen in your gui
    ; Syntax: _WebcamOpen($sHwnd, $sLeft, $sTop, $sWidth, $sHeight)
    ; Parameter(s): $sHwnd - The handle of the gui
    ; $sLeft - Left coord. of the preview screen
    ; $sTop - Top coord. of the preview screen
    ; $sWidth - Width of the preview screen
    ; $sHeight - Height of the preview screen
    ; Requirement(s): A webcam
    ; Return Value(s): On Success - Returns id needed for other controls
    ; On Failure - Returns -1
    ; Author(s): Ludocus
    ; Note(s): None
    ;
    ;===============================================================================
    func _WebcamOpen($sHwnd, $sLeft, $sTop, $sWidth, $sHeight)
    ;$cap = DllCall($avi, "int", "capCreateCaptureWindow", "str", "cap", "int", BitOR($WS_CHILD,$WS_VISIBLE), "int", $sLeft, "int", $sTop, "int", $sWidth, "int", $sHeight, "hwnd", $sHwnd, "int", 1)
    $cap = DllCall($avi, "int", "capCreateCaptureWindow", "str", "cap", "int", BitOR($WS_CHILD,$WS_VISIBLE), "int", $sLeft, "int", $sTop, "int", $sWidth, "int", $sHeight, "hwnd", $sHwnd, "int", 1)
    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_DRIVER_CONNECT, "int", 0, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_SCALE, "int", 1, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_OVERLAY, "int", 1, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_PREVIEW, "int", 1, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_PREVIEWRATE, "int", 1, "int", 0)
    if @error then return -1
    return $cap[0]
    EndFunc

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

    ;===============================================================================
    ;
    ; Description: Creates a Snapshot from a webcam
    ; Syntax: _WebcamSnap($sId, $sFile)
    ; Parameter(s): $sId - Id (returned from _WebcamOpen)
    ; $sFile - File to save the snapshot to (*.bmp)
    ; Requirement(s): A webcam
    ; Return Value(s): On Success - Returns 1
    ; On Failure - Returns 0
    ; Author(s): Ludocus
    ; Note(s): None
    ;
    ;===============================================================================
    Func _WebcamSnap($sId, $sFile)
    DllCall($user, "int", "SendMessage", "hWnd", $sId, "int", $WM_CAP_GRAB_FRAME_NOSTOP, "int", 0, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", $WebcamID, "int", $WM_CAP_EDIT_COPY, "int", 0, "int", 0)
    sleep(10)
    _ClipBoard_Open ($CMDLINE[2])
    $hImageCB1 = _ClipBoard_GetDataEx ($CF_BITMAP )
    If $hImageCB1 = 0 Then _WinAPI_ShowError ("Mist hImageCB1")
    $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP( $hImageCB1 )
    If $hImage1 = 0 Then _WinAPI_ShowError ("Mist hImage1")
    _ClipBoard_Close ()

    $hMatrix1 = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixRotate($hMatrix1, $drehwinkel)

    $hGraphic1 = _GDIPlus_ImageGetGraphicsContext($hImage1)
    _GDIPlus_GraphicsSetTransform($hGraphic1, $hMatrix1)
    ;_GDIPlus_GraphicsDrawImage($hGraphic1, $hImage1, 0, 0)
    _GDIPlus_ImageSaveToFile($hImage1, $sFile)
    ;_GDIPlus_BitmapDispose($hImage)
    _GDIPlus_ImageDispose($hImage1)

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

    _GDIPlus_MatrixDispose($hMatrix1)
    _GDIPlus_GraphicsDispose($hGraphic1)
    _WinAPI_DeleteObject($hImageCB1)

    ;ALT DllCall($user, "int", "SendMessage", "hWnd", $sId, "int", $WM_CAP_FILE_SAVEDIBA, "int", 0, "str", $sFile)
    if @error Then
    return 0
    Else
    return 1
    EndIf
    EndFunc

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

    ;===============================================================================
    ;
    ; Description: Closes the preview screen created with _WebcamOpen
    ; Syntax: _WebcamClose($sId)
    ; Parameter(s): $sId - Id (returned from _WebcamOpen)
    ; Requirement(s): A webcam
    ; Return Value(s): On Success - Returns 1
    ; On Failure - Returns 0
    ; Author(s): Ludocus
    ; Note(s): None
    ;
    ;===============================================================================
    Func _WebcamClose($sId)
    DllCall($user, "int", "SendMessage", "hWnd", $sId, "int", $WM_CAP_END, "int", 0, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", $sId, "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0)
    DllClose($user)
    if @error Then
    return 0
    Else
    return 1
    EndIf
    EndFunc

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

    soweit ist ja alles ganz gut .. und erfüllt seinen zweck.

    jetzt stört mich aber die "dreh" Funktion ..

    Spoiler anzeigen
    [autoit]

    _ClipBoard_Open ($CMDLINE[2])
    $hImageCB = _ClipBoard_GetDataEx ($CF_BITMAP )
    ;If $hImageCB = 0 Then _WinAPI_ShowError ("Mist hImageCB")
    $hImage = _GDIPlus_BitmapCreateFromHBITMAP( $hImageCB )
    ;If $hImage = 0 Then _WinAPI_ShowError ("Mist hImage")
    _WinAPI_DeleteObject($hImageCB)
    _ClipBoard_Close ()
    ;$iWidth = _GDIPlus_ImageGetWidth($hImage) * 96 / _GDIPlus_ImageGetVerticalResolution($hImage)
    ;$iHeight = _GDIPlus_ImageGetHeight($hImage) * 96 / _GDIPlus_ImageGetHorizontalResolution($hImage)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
    ;_GDIPlus_ImageDispose($hImage)
    _GDIPlus_BitmapDispose($hImage)

    [/autoit]

    im grunde genommen wird der Steam als Bild gespeichert, dann durch eine Matrix gedreht
    und das unter Zuhilfenahme des _ClipBoard_ . . . . was ich echt MIST finde..

    WEIL, wenn man z.B. ein Desctop- abbild macht, schiesst es einem den Video Steam zusammen.

    .. schon weng störend .. und absolut nicht stabil ..

    mir fällt aber absolut nicht ein, wie ich das anders lösen könnte.

    jemand ne Idee ... oder n Tip ??

  • Wallpaper im laufenden Betrieb ändern

    • vivus
    • 21. September 2010 um 08:29

    ;) .. egal ob Leichenschänder oder nicht .. ich mache dinge gerne fertig ...

    also hier ein komplett lauf fähiges Programm.

    welches alle in einem Ordner befindlichen bmp oder jpg Dateien einliest, und via Zufall eines als Hintergrund darstellt.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    #include <gdiplus.au3>

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

    Global Const $SPIF_UPDATEINIFILE = 0x01
    Global Const $SPIF_SENDWININICHANGE = 0x02
    Global Const $SPI_SETSCREENSAVEACTIVE = 0x11
    Global Const $SPI_SETDESKWALLPAPER = 0x14
    Global Const $SPI_GETDESKWALLPAPER = 0x73
    Global $target = @ScriptDir & "\Wallpapers"
    Global $aktuellesWP = $target & "\aktuell"

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

    $ppic = _FileListToArray($target, "*.*")

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

    ;_ArrayDisplay($ppic,"test")

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

    $result = $ppic[0]

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

    ;MsgBox(0,"",$result)

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

    $random_nummer = Random(1, $result ,1)

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

    ;MsgBox(0,"",$random_nummer)

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

    dim $rpic = $ppic[$random_nummer]

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

    ;MsgBox(0,"",$rpic)

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

    Global $Bitmap = $target & "\"& $rpic

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

    ;MsgBox(0,"",$Bitmap)

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

    RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "TileWallpaper", "REG_SZ", "0")
    RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "WallpaperStyle", "REG_SZ", "2")

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

    $ext = StringTrimLeft($Bitmap, StringInStr($Bitmap, ".", -1))

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

    ;MsgBox(0,"",$ext)

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

    If not ($ext = "bmp") then
    ; MsgBox(0,"Hintergrundbild","Bild muss konvertiert werden.")
    _GDIPlus_Startup()
    $Bild = _GDIPlus_ImageLoadFromFile($Bitmap)
    _GDIPlus_ImageSaveToFile($Bild, $aktuellesWP & "\wallpaper.bmp")
    _GDIPlus_ImageDispose($Bild)
    _GDIPlus_Shutdown()

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

    Else
    FileCopy($Bitmap, $aktuellesWP & "\wallpaper.bmp",1)

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

    endif

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

    ;MsgBox(0,"",$aktuellesWP & "\wallpaper.bmp")

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

    if FileExists($aktuellesWP & "\wallpaper.bmp") Then
    _SetDeskWallpaper($aktuellesWP & "\wallpaper.bmp")

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

    Else
    MsgBox(0,"Hintergrundbild","FEHLER - Bild existiert nicht")

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

    EndIf

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

    ;MsgBox(0,"EXIT","Exit")

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

    Exit

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

    ;#####################################################################################

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

    Func _SetDeskWallpaper($Filename)

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

    DllCall("user32.dll", "long", "SystemParametersInfo" _
    , "long", $SPI_SETDESKWALLPAPER _
    , "long", 0 _
    , "str", $Filename _
    , "long", BitOR($SPIF_UPDATEINIFILE, $SPIF_SENDWININICHANGE) _
    )

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

    ;MsgBox(0,"",$Filename & " Als Hintergrund übernommen")
    EndFunc ;==>_SetDeskWallpaper

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

    Func _GetDeskWallpaper()
    Local $Filename = DllStructCreate("char[256]")
    DllCall("user32.dll", "long", "SystemParametersInfo" _
    , "long", $SPI_GETDESKWALLPAPER _
    , "long", 255 _
    , "ptr", DllStructGetPtr($Filename) _
    , "long", 0 _
    )

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

    Return DllStructGetData($Filename, 1)
    EndFunc ;==>_GetDeskWallpaper

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

    ;--------------------------------------------------------;

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

    .. viel spaß, für den, den's noch interessiert ..

  • Wallpaper im laufenden Betrieb ändern

    • vivus
    • 9. September 2010 um 10:23

    müsste Zeile 8 deines Spoilers nicht

    $ppic = _FileListToArray("C:\Dokumente und Einstellungen\Nickname\Eigene Dateien\Eigene Bilder", "*.*")

    anstelle von $ppic = _FileListToArray("C:\Dokumente und Einstellungen\Nickname\Eigene Dateien\Eigene Bilder", "*.jpg")

    heissen ?

    weil er ja sonst gar keine bmp in das array übernimmt. . .

    oder täusche ich mich da jetzt ...

  • C#-DLL in AutoIt einbinden

    • vivus
    • 15. Juli 2010 um 16:33

    mmm sehr schön ..

    ;) jetzt muss ich nur noch raus finden, wie das mit c++ express dll funktioniert ..

    das wunder schöne tool bringt nämlich n error..

    Spoiler anzeigen

    error : 'c:\dokumente und einstellungen\ich\eigene dateien\visual studio 2008\projects\get_back\debug\get_back.dll' has no valid CLR header and cannot be disassembled


    jemand n tip ?

  • Com-Port

    • vivus
    • 15. Juli 2010 um 15:31

    da gibt's n paar möglichkeiten ..

    erstens über die "commMG.dll " . mit entsprechender au3 .. ( müste ab V2,8 die signale bereitstellen, die du willst ..


    oder über die Windows standart .. MSCOMM32.OCX ....


    .. dann z.b. mit ..

    Spoiler anzeigen
    [autoit]

    $MsComm1 = ObjCreate("MSCOMMLib.MsComm.1") ; überprüfung ob sich objekt com generieren lässt
    if not IsObj($MsComm1) then ; wenn nicht dann
    MsgBox(0,"Fehler"," Kann datei : mscomm32.ocx : nicht im system finden. Installation läuft")
    FileInstall("MSCOMM32.OCX", EnvGet("SystemRoot") & "\System32\MSCOMM32.OCX") ; installation der mscomm32.ocx
    Run(@ComSpec & " /c C:\WINDOWS\SYSTEM32\REGSVR32.EXE C:\WINDOWS\SYSTEM32\MSCOMM32.OCX") ; ausführung
    RegWrite("HKEY_CLASSES_ROOT\Licenses\DB4C0D00-400B-101B-A3C9-08002B2F49FB", "", "REG_SZ", "mgkgtgnnmnmninigthkgogggvmkhinjggnvm") ; registration
    RegWrite("HKEY_CLASSES_ROOT\Licenses\7BC20EDC-4A42-101B-A3C9-08002B2F49FB", "", "REG_SZ", "gifblihbhiiihbciocfbkifbqcfcdiebbiqh") ; registration
    $MsComm1 = ObjCreate("MSCOMMLib.MsComm.1") ; erneute überprüfung ob sich objekt com generieren lässt
    endif

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

    $MsComm1.Settings = "110,N,8,1"; settings für com
    $MsComm1.Handshaking = 1 ; settings für com
    ;$MsComm1.InBufferSize = 1
    $MsComm1.InputLen = 20 ; settings für com
    $MSComm1.DTREnable = 1 ; setzt dtr signal hi
    ;MsgBox(0,"",IniRead($wrkdir&$targets,"SETUP","COM","FEHLER"))
    $MsComm1.CommPort = IniRead($wrkdir&$targets,"SETUP","COM","FEHLER") ; settings für com
    $MsComm1.PortOpen = 1 ; settings für com setzt com-port .. reservierung für script

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

    If NOT $MsComm1.PortOpen = True then ; überprüfung ob reservierung gelungen
    MsgBox(0,"ERROR","kann PORT nicht Öffnen") ; error meldung
    Exit ; exit
    EndIf

    [/autoit]


    zum initialisieren .. und mit

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    While $MsComm1.CtsHolding="-1"

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

    oder

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

    $MSComm1.RTSEnable = $zustand

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

    oder

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

    $MSComm1.DTREnable = 1

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

    die kalälchen ansprechen .. was willste denn damit machen ? .. ne richtige communikation kriegste damit nicht hin .. oder halt mit viel vielarbeit ..

    recht grad dafür um n lämpchen am PC blinken zu lassen .. ( obwohl cih die leitungen auch schon mal vergewohltätigt hab .. ;)

    hoffe ich konnte helfen ..

  • AutoIT mit USB EXPERIMENT INTERFACE BOARD - BAUSATZ

    • vivus
    • 15. Juli 2010 um 08:39

    das ist auch noch sehr passend ..

    http://www.autoit.de/index.php?page=Thread&postID=117621&highlight=k8055.dll#post117621

  • AutoIT mit USB EXPERIMENT INTERFACE BOARD - BAUSATZ

    • vivus
    • 15. Juli 2010 um 08:36

    hier ne udf...

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.0.0
    Author: myName

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

    Script Function:
    handles the k8055d.dll 2009.10.19

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

    #ce ----------------------------------------------------------------------------
    func USB_DLLOpen()

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

    DllOpen(@ScriptDir & "\" & "k8055D_multi.dll") ; öffnen der DLL

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

    EndFunc

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

    ;----------------------------------------------------------------------------

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

    Func initial_board($address)

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

    $begin = TimerInit()
    Do
    $result = USBOpenDevice($address)
    Sleep(250)

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

    $dif = TimerDiff($begin)

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

    If $dif > "4000" Then ExitLoop

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

    Until $result = 1

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

    ClearAllDigital($address)

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

    Sleep(250)

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

    SetDigitalChannel($address, "8")

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

    If $result = 1 Then
    Return "1"

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

    Else
    MsgBox(0, "ERROR", "fehler bei initialisierung des USB board's" & $address)
    MsgBox(0, "ERROR", "Programm wird beendet! mit " & $result)
    Exit
    Return "0"

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

    EndIf

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

    EndFunc ;==>initial_board

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

    ;----------------------------------------------------------------------------

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

    Func USBOpenDevice($address)

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

    $result = DllCall("k8055D_multi.dll", "long", "OpenDevice", "long", $address)

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

    If $result[0] = $address Then
    Return "1"

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

    Else
    ;MsgBox(0, "ERROR", "Keine Verbindung zu USB BOARD ADRESSE " & $address & " !!", 2)
    ;exit
    Return "0"
    EndIf

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

    EndFunc ;==>USBOpenDevice

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

    ;---------------------------------------------------------------------------

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

    Func CloseAllDevice()
    $res = DllCall("k8055D_multi.dll", "none", "CloseDevice")
    DllClose(@ScriptDir & "\" & "k8055D_multi.dll") ; öffnen der DLL

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

    EndFunc ;==>USBCloseDevice

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

    ;---------------------------------------------------------------------------

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

    Func SearchDevices()

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

    $result = DllCall("k8055D_multi.dll", "long", "SearchDevices")

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

    Return $result[0]

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

    EndFunc

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

    ;---------------------------------------------------------------------------

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

    Func USBCloseDevice($address)
    SetCurrentDevice($address)
    $res = DllCall("k8055D_multi.dll", "none", "CloseDevice")
    ;Return ;;$result[0]
    EndFunc ;==>USBCloseDevice

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

    ;---------------------------------------------------------------------------

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

    Func ClearAllDigital($address)
    SetCurrentDevice($address)
    $res = DllCall("k8055D_multi.dll", "int", "ClearAllDigital")
    EndFunc ;==>ClearAllDigital

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

    ;----------------------------------------------------------------------------

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

    Func SetCurrentDevice($address)

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

    $begin = TimerInit()
    Do

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

    $result = DllCall("k8055D_multi.dll", "long", "SetCurrentDevice", "int", $address)

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

    ;ToolTip($address&"="&$result[0],0,0)
    $dif = TimerDiff($begin)

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

    If $dif > "4000" then ExitLoop

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

    Until $address = $result[0]

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

    ;ToolTip("",0,0)

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

    If $address = $result[0] Then
    ;nix
    Else
    MsgBox(0, "", "adresse = " & $address & " result = " & $result[0])

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

    EndIf

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

    EndFunc ;==>SetCurrentDevice

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

    ;----------------------------------------------------------------------------

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

    Func SetDigitalChannel($address, $channel)
    SetCurrentDevice($address)
    DllCall("k8055D_multi.dll", "none", "SetDigitalChannel", "int", $channel)
    EndFunc ;==>SetDigitalChannel

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

    ;---------------------------------------------------------------------------

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

    Func ClearDigitalChannel($address, $channel)
    SetCurrentDevice($address)
    DllCall("k8055D_multi.dll", "none", "ClearDigitalChannel", "int", $channel)
    EndFunc ;==>ClearDigitalChannel

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

    ;---------------------------------------------------------------------------

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

    Func ReadAnalogChannel($address, $channel)
    SetCurrentDevice($address)
    $result = DllCall("k8055D_multi.dll", "int", "ReadAnalogChannel", "int", $channel)
    Return $result[0]
    EndFunc ;==>ReadAnalogChannel

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

    ;---------------------------------------------------------------------------

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

    Func ReadAllDigital($address)
    SetCurrentDevice($address)
    $alldigit = DllCall("k8055D_multi.dll", "int", "ReadAllDigital")
    Return $alldigit[0]
    EndFunc ;==>ReadAllDigital
    ;---------------------------------------------------------------------------

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

    Func ReadDigitalChannel($address, $sellect)
    Dim $channel[6]
    $channel[1] = 0
    $channel[2] = 0
    $channel[3] = 0
    $channel[4] = 0
    $channel[5] = 0

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

    $wert = ReadAllDigital($address)

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

    ;MsgBox(0,"",$alldigit[0] & " " & $wert)
    Select

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

    Case $wert = 0
    $channel[1] = 0
    $channel[2] = 0
    $channel[3] = 0
    $channel[4] = 0
    $channel[5] = 0

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

    Case $wert = 1
    ;I1
    $channel[1] = 1

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

    Case $wert = 2
    ;I2
    $channel[2] = 1

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

    Case $wert = 3
    ;I1 + I2
    $channel[1] = 1
    $channel[2] = 1

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

    Case $wert = 4
    ;I3
    $channel[3] = 1

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

    Case $wert = 5
    ;I3 + I1
    $channel[1] = 1
    $channel[3] = 1

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

    Case $wert = 6
    ;I3 + I2
    $channel[2] = 1
    $channel[3] = 1

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

    Case $wert = 7
    ;I3 + I2 + I1
    $channel[1] = 1
    $channel[2] = 1
    $channel[3] = 1

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

    Case $wert = 8
    ;I4
    $channel[4] = 1

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

    Case $wert = 9
    ;I4 + I1
    $channel[1] = 1
    $channel[4] = 1

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

    Case $wert = 10
    ;I4 + I2
    $channel[2] = 1
    $channel[4] = 1

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

    Case $wert = 11
    ;I4 + I2 + I1
    $channel[1] = 1
    $channel[2] = 1
    $channel[4] = 1

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

    Case $wert = 12
    ;I4 + I3
    $channel[3] = 1
    $channel[4] = 1

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

    Case $wert = 13
    ;I4 + I3 + I1
    $channel[1] = 1
    $channel[3] = 1
    $channel[4] = 1

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

    Case $wert = 14
    ;I4 + I3 + I2
    $channel[2] = 1
    $channel[3] = 1
    $channel[4] = 1

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

    Case $wert = 15
    ;I4 + I3 * I2 + I1
    $channel[1] = 1
    $channel[2] = 1
    $channel[3] = 1
    $channel[4] = 1

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

    Case $wert = 16
    ;I5
    $channel[5] = 1

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

    Case $wert = 17
    ;I1
    $channel[1] = 1
    $channel[5] = 1

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

    Case $wert = 18
    ;I2
    $channel[2] = 1
    $channel[5] = 1

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

    Case $wert = 19
    ;I1 + I2
    $channel[1] = 1
    $channel[2] = 1
    $channel[5] = 1

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

    Case $wert = 20
    ;I3
    $channel[3] = 1
    $channel[5] = 1

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

    Case $wert = 21
    ;I3 + I1
    $channel[1] = 1
    $channel[3] = 1
    $channel[5] = 1

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

    Case $wert = 22
    ;I3 + I2
    $channel[2] = 1
    $channel[3] = 1
    $channel[5] = 1

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

    Case $wert = 23
    ;I3 + I2 + I1
    $channel[1] = 1
    $channel[2] = 1
    $channel[3] = 1
    $channel[5] = 1

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

    Case $wert = 24
    ;I4
    $channel[4] = 1
    $channel[5] = 1

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

    Case $wert = 25
    ;I4 + I1
    $channel[1] = 1
    $channel[4] = 1
    $channel[5] = 1

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

    Case $wert = 26
    ;I4 + I2
    $channel[2] = 1
    $channel[4] = 1
    $channel[5] = 1

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

    Case $wert = 27
    ;I4 + I2 + I1
    $channel[1] = 1
    $channel[2] = 1
    $channel[4] = 1
    $channel[5] = 1

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

    Case $wert = 28
    ;I4 + I3
    $channel[3] = 1
    $channel[4] = 1
    $channel[5] = 1

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

    Case $wert = 29
    ;I4 + I3 + I1
    $channel[1] = 1
    $channel[3] = 1
    $channel[4] = 1
    $channel[5] = 1

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

    Case $wert = 30
    ;I4 + I3 + I2
    $channel[2] = 1
    $channel[3] = 1
    $channel[4] = 1
    $channel[5] = 1

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

    Case $wert = 31
    ;I4 + I3 * I2 + I1
    $channel[1] = 1
    $channel[2] = 1
    $channel[3] = 1
    $channel[4] = 1
    $channel[5] = 1

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

    Case Else

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

    $channel[1] = 0
    $channel[2] = 0
    $channel[3] = 0
    $channel[4] = 0
    $channel[5] = 0

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

    EndSelect

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

    If $channel[$sellect] = 1 Then
    ; MsgBox(0,"","return 1")
    Return 1
    Else
    ; MsgBox(0,"","return 0")
    Return 0

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

    EndIf

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

    EndFunc ;==>ReadDigitalChannel
    ;----------------------------------------------------------------------------

    [/autoit]
  • Script dekompillieren

    • vivus
    • 5. Juli 2010 um 14:17

    ich find's blöd ...

    war echt ne gute sache ... musste man nicht immer soo sauber alles horten .. und konnt au mal schnell was nachgucken au wenn man die AU3 nimme hatte ...

    .. überflüssige Lizenz Geschichte immer ..

  • Text, disabled in msgbox

    • vivus
    • 30. Juni 2010 um 11:54

    hab ich das richtig verstanden ? du willst die msgbox ändern ?

    .. soweit ich weis, geht das nicht ..

    ist ne standardisierte Ausgabe .. die schon sehr stark angepasst werden kann durch msgbox(XXXX,"",.....)
    anstelle der XXXX kannst du n weng variieren...

    aber sowas wie diseable .. geht nicht ...

    dazu must du dich in die GUI einarbeiten ..

  • Textdatei nach einem String durschsuchen

    • vivus
    • 30. Juni 2010 um 11:48

    ich hatte mal n ähnliches Problem

    hier ist eine Funktion aus nem Programm,

    Es durchsucht eine *.log Datei nach dem zuletzt eingetragenen EAN

    da die Dateien recht groß werden wird hier von hinten her gearbeitet

    vielleicht bringt's dich ja auf den richtigen weg ;)

    Spoiler anzeigen
    [autoit]


    Func _get_last_log_ean($file)

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

    $start = TimerInit() ;startet sicherheitstimer

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

    $file = FileRead($file)

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

    ;$ret = StringRegExp(FileRead($file), 'EAN-Code: \d+', 3)
    $ret = StringRegExp($file, '(?:EAN-Code: )(\d+)', 3)

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

    #cs

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

    '(?:EAN-Code: )(\d+)' - ist das Suchmuster (Pattern)
    (?:EAN-Code: ) - erster Ausdruck in Klammern (Backreferenz) dient zum Finden des Strings (EAN...)
    ?: ist die Anweisung: diese Backreferenz im Ergebnis nicht aufführen
    (\d+) - zweite Backreferenz, ist zu berücksichtigen.
    \d bedeutet Ziffer, + ist ein Quantifier und heißt mindestens 1-mal bis beliebig oft

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

    #ce

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

    ;_ArrayDisplay($ret)

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

    $letzter_eintrag = UBound($ret) - 1

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

    $ean = $ret[$letzter_eintrag]

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

    ;ConsoleWrite($ean & @CRLF)

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

    ;ConsoleWrite('Zeit: ' & TimerDiff($start) & @CRLF)

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

    Local $return[3]
    $return[1] = $ean
    $return[2] = TimerDiff($start)
    Return $return

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

    EndFunc ;==>_get_last_log_ean

    [/autoit]
  • dll ansprechen mit stuktur

    • vivus
    • 30. Juni 2010 um 10:27

    Hi bugFix
    hast du schon recht . . . die funktion ist nicht in der dll

    Habe jetzt auch den grund für die Misere :

    man benötigt eine Runtime-Engine . . . um die DLL auszuführen.

    die DLL versucht wahrscheinlich in ihren Funktionen selbst auf die bemängelte "fehlende" Funktion zu zu greifen.

    leider hab ich die DLL nicht selber geschrieben und habe somit keinen einblick in diese.

    ... habe die Runtime installiert .. ( von ni.com ) ist die CVI runtime 8.5

    jetzt ist auch die Fehlermeldung weg.

    allerdings muss man doch die dll mit "int" aufrufen nicht mit "int:cdecl" .. weil sonst autoIt abraucht.

    leider bekomme ich noch keine Werte zurück von der Karte ..

    muss wohl noch ein wenig rum spielen ..

    DANKE !

  • Bild auf Knopfdruck drehen

    • vivus
    • 30. Juni 2010 um 08:00

    hier ein beispiel ..

    Spoiler anzeigen


    #include <GDIPlus.au3>


    $drehwinkel=90

    _GDIPlus_Startup()

    $hGui = GUICreate("Test Rotate", 800, 600)
    GUISetState()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)

    $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Test.bmp")
    $iWidth = _GDIPlus_ImageGetWidth($hImage) * 96 / _GDIPlus_ImageGetVerticalResolution($hImage)
    $iHeight = _GDIPlus_ImageGetHeight($hImage) * 96 / _GDIPlus_ImageGetHorizontalResolution($hImage)

    $hMatrix = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixTranslate($hMatrix, 400, 300)

    ;For $i = 1 To 360
    _GDIPlus_MatrixRotate($hMatrix, $drehwinkel, "False")
    _GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, -$iWidth / 2, -$iHeight / 2)
    ; Sleep(1)
    ;Next

    While GUIGetMsg() <> -3
    Sleep(10)
    WEnd

    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

    must nur noch ein Bild umbenennen in "Test.bmp" und ins gleiche Verzeichnis legen.

    wenn du das Bild kontinuierlich drehen lassen willsch,

    must du "$drehwinkel=90" immer erhöhen .. oder verringern .. jeh nach dreh richtung .. und das script als funktion erneut aufrufen ..

    ich guck mal ob ich da noch was rum liegen hab ..

  • dll ansprechen mit stuktur

    • vivus
    • 30. Juni 2010 um 07:52

    hi Greenhorn !!
    hab's mal versucht ... kommt leider genau der gleiche Fehler wie bei meinem Script

    -> SetPanelCharacterSet in cvirte.dll nicht gefunden <- ? ??

    hängt wahrscheinlich irgend was noch in der Luft was noch gefunden werden muss ..

    Ich häng mich jetzt noch mal an die Initialisierungsparameter, vielleicht stimmt da was nicht.

    Danke für dein Script . . habe die restlichen Parameter weg gelassen, weil ich dachte dass die nur für die Fehlerroutinen sind.

    du hast "int:cdecl" eingesetzt .. hab mal ge googelt . . handelt sich also um einen Aufrufmethode . . hat was mit dem stack zugriff zu tun.
    Woher weist du, dass man das hier verwenden muss ? Woran sieht man das ?

    DANKE !

  • dll ansprechen mit stuktur

    • vivus
    • 29. Juni 2010 um 16:57

    Hallo @ all

    hab da n kleines Problemchen...

    Ich versuche eine DLL anzusprechen mit einer Struktur.

    ABER irgendwie glaube ich, funktioniert mein dllcall nicht, weis aber nicht, was ich da anderst machen soll.

    hier mein Script

    also wenn irgend jemand was auf fällt ... einfach mal los schreiben ..

    DANKE !!

    Spoiler anzeigen


    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.6.1
    Author: myName

    Script Function:
    NIdll ansprechen

    #ce ----------------------------------------------------------------------------

    #cs

    #define BUFFERSIZE 256
    #define NumberIOs 24

    typedef struct
    {
    char name[BUFFERSIZE]; // Name der Karte
    char port0[BUFFERSIZE]; // Name von Port0
    char port1[BUFFERSIZE]; // Name von Port1
    char port2[BUFFERSIZE]; // Name von Port2
    BOOL ioPort0; // Input (TRUE) oder Output (FALSE)
    BOOL ioPort1; // Input (TRUE) oder Output (FALSE)
    BOOL ioPort2; // Input (TRUE) oder Output (FALSE)
    int handle[NumberIOs]; // Maximal pro IO ein Handle
    BOOL bits[NumberIOs]; // Eine Karte hat NumberIOs Bits.
    } NICard;


    ;#########################################################

    how to use:
    niDll:
    NI USB-Karten,

    init_NICard (NICard *nicard, +Std)
    öffnet die Handle für die einzelnen Ports.
    Hierbei wird unterschieden zwischen Input/Output-Ports

    Für einen Input-Port wird ein Handle aufgemacht,
    für einen Output-Port wird für jedes Bit ein Handle aufgemacht,
    so dass auch jedes Bit einzeln geschrieben werden kann.

    write_NICard_bit (NICard *nicard, int bit, +Std)
    schreibt ein einzelnes bit,

    read_NICard (NICard *nicard, +Std)
    liest alle Ports auf einmal und

    shutdown_NICard (NICard *nicard, +Std)
    schließt alle Handle.

    genauer :
    int init_NICard (NICard *nicard, char* reportText, short* errorOccured, long* errorCode, char* errorMsg);

    int read_NICard (NICard *nicard, char* reportText, short* errorOccured, long* errorCode, char* errorMsg);

    int write_NICard_bit (NICard *nicard, int bit, char* reportText, short* errorOccured, long* errorCode, char* errorMsg);

    int shutdown_NICard (NICard *nicard, char* reportText, short* errorOccured, long* errorCode, char* errorMsg);

    #ce


    ; strukturparameter
    $str = "char name[256];char port0[256];char port1[256];char port2[256];BOOL ioPort0; BOOL ioPORT1;BOOL ioPORT2;int handle[24];BOOL bits[24]"


    $nidll_Strukt = DllStructCreate($str) ; struktur generieren

    DllStructSetData($nidll_Strukt,"name","test")
    DllStructSetData($nidll_Strukt,"port0","A")
    DllStructSetData($nidll_Strukt,"port1","B")
    DllStructSetData($nidll_Strukt,"port2","C")
    DllStructSetData($nidll_Strukt,"ioPort0",True)
    DllStructSetData($nidll_Strukt,"ioPort1",True)
    DllStructSetData($nidll_Strukt,"ioPort2",True)
    DllStructSetData($nidll_Strukt,"handle",3)
    DllStructSetData($nidll_Strukt,"bits",0)


    ; dll öffnen
    $niDll_dll = DllOpen("niDll.dll")

    ;result = DllCall ( "dll ","return type"," function " , type1 , param1 )
    $result = DllCall ( $niDll_dll , "int" ,"init_NICard", "ptr" ,DllStructGetPtr($nidll_Strukt) )


    ; close

    DllClose($niDll_dll)
    $nidll_Strukt = 0 ; struktur löschen

    ich suche grad noch free-webspace, dann poste ich noch die zugehörige dll

    hier die DLL -> http://uploaded.to/file/m5b7sn

  • Unglaublich kompliziert ausgedrückt :-D

    • vivus
    • 24. Juni 2010 um 13:13

    soll des so ne art sync-tool werden ?

    oder wie ?

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™