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

Beiträge von eukalyptus

  • Glühbirne ausgewechselt!!!

    • eukalyptus
    • 14. Mai 2008 um 23:38

    @stormy:
    du hast also erfolgreich die defekte glühlampe ausgewechselt und dazu gratuliere ich auch herzlich!

    die lebensdauer einer glühbirne hängt ganz entscheidend von der beschaffenheit des lampenschirms ab!
    damit deine neue lichtquelle auch maximal lang leuchtet, solltest du nun überprüfen, ob der lampenschirm auch
    die richtige wärmeabstrahlcharakteristik aufweist.
    das hängt einerseits von der form (kugel, kegel, parabol usw...),
    des weiteren von der montageposition der glühbirne (im idealfall brennpunkt oder lamda/4 der schirm-eigenresonanz)
    und zuletzt von der materialbeschaffenheit deselbigen ab.

    ACHTUNG bei der materialwahl:
    die bei discountern angebotenen billigst-lampenschirme aus Seifenblasen haben nur scheinbar optimale bedingungen.
    zwar sind diese maximal lichtdurchlässig und absolut brandfest, jedoch liegt die lebensdauer fast immer unter denen von glühbirnen!

    aus erfahrung empfehle ich lampenschirme aus gegossenem iridium; etwas teurer, aber ein ding fürs leben!

    lgE

  • Progress senkrecht ?

    • eukalyptus
    • 14. Mai 2008 um 19:24

    mit folgender funktion bekommst du die segmente (xp-style) weg und kannst den progressbar einfärben:

    Spoiler anzeigen
    [autoit]

    Func XPStyleToggle($OnOff = 1)
    Local $XS_n
    If Not StringInStr(@OSTYPE, "WIN32_NT") Then Return 0
    If $OnOff Then
    $XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
    Return 1
    ElseIf IsArray($XS_n) Then
    DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
    $XS_n = ""
    Return 1
    EndIf
    Return 0
    EndFunc

    [/autoit]

    z.b.:

    Spoiler anzeigen
    [autoit]

    XPStyleToggle(1)
    GUICtrlCreateProgress($X, $Y, $W, $H, $PBS_SMOOTH + $PBS_VERTICAL)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetColor(-1, 0xFF0000)
    XPStyleToggle(0)

    [/autoit]


    ps.: falls du labels benutzen willst: bei Guictrlsetpos kannst du auch die Breite/Höhe angeben, und die änderst du dann beim updaten der labels.

    lGE

  • Glühbirne ausgewechselt!!!

    • eukalyptus
    • 14. Mai 2008 um 11:55
    Zitat von muh_kuh

    Ich habe meine Letze Glühbirne bei Aldi gekauft
    da brauch ich wenigesen kein "Schlechten Kundendienst der Baumärkte" nutzen

    Oh Mann!!! Bei solchen Rechtschreibfehlern solltest du das Glühbirnen-auswechseln vielleicht von jemand anderen durchführen lassen!
    "letzte" wird KLEIN geschrieben und mit TZT!!!
    und was bitteschön soll das Wort "wenigesen" bedeuten! - "wenig essen" schreibt man in 2 Wörtern und "essen" mit 2 "s" !!!

    so ein diletantenforum hier...

  • DllStructCreate & $WM_CAP_SET_VIDEOFORMAT

    • eukalyptus
    • 5. Mai 2008 um 15:55

    erstmal danke für die hilfe (hab eigentlich gar nicht erwartet, daß ich für dieses problem antworten erhalte;)), leider will sich der erfolg noch nicht einstellen.

    hab momentan leider keine zeit zum testen und probieren, da ich z.z. etwas im streß bin...

    trotzdem mal dankeschön!

  • DllStructCreate & $WM_CAP_SET_VIDEOFORMAT

    • eukalyptus
    • 3. Mai 2008 um 17:47

    Hallo

    diesmal kämpfe ich mit einem sehr komlizierten problem:

    ich will die auflösung meiner webcam via script ändern.
    lt microsoft geht das mit WM_CAP_SET_VIDEOFORMAT:

    Code
    WM_CAP_SET_VIDEOFORMAT 
    wParam = (WPARAM) (wSize); 
    lParam = (LPARAM) (LPVOID) (psVideoFormat);
    
    
    psVideoFormat = Pointer to a BITMAPINFO structure.

    BITMAPINFO

    Code
    typedef struct tagBITMAPINFO { 
      BITMAPINFOHEADER bmiHeader; 
      RGBQUAD          bmiColors[1]; 
    } BITMAPINFO, *PBITMAPINFO;

    BITMAPINFOHEADER

    Code
    typedef struct tagBITMAPINFOHEADER{
      DWORD  biSize; 
      LONG   biWidth; 
      LONG   biHeight; 
      WORD   biPlanes; 
      WORD   biBitCount; 
      DWORD  biCompression; 
      DWORD  biSizeImage; 
      LONG   biXPelsPerMeter; 
      LONG   biYPelsPerMeter; 
      DWORD  biClrUsed; 
      DWORD  biClrImportant; 
    } BITMAPINFOHEADER, *PBITMAPINFOHEADER;
    Alles anzeigen

    RGBQUAD

    Code
    typedef struct tagRGBQUAD {
      BYTE    rgbBlue; 
      BYTE    rgbGreen; 
      BYTE    rgbRed; 
      BYTE    rgbReserved; 
    } RGBQUAD;

    ich hab das jetzt mal so probiert:

    Spoiler anzeigen
    [autoit]

    $BITMAPINFO = DllStructCreate("ptr BITMAPINFOHEADER;ptr RGBQUAD")
    $BITMAPINFOHEADER = DllStructCreate("DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant")
    $RGBQUAD = DllStructCreate("BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved")

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

    DllStructSetData($BITMAPINFOHEADER, "biSize", DllStructGetSize($BITMAPINFOHEADER))
    DllStructSetData($BITMAPINFOHEADER, "biWidth", 640)
    DllStructSetData($BITMAPINFOHEADER, "biHeight", 480)
    DllStructSetData($BITMAPINFOHEADER, "biPlanes", 1)
    DllStructSetData($BITMAPINFOHEADER, "biBitCount", 8)
    DllStructSetData($BITMAPINFOHEADER, "biCompression", 0)
    DllStructSetData($BITMAPINFOHEADER, "biSizeImage", 0)
    DllStructSetData($BITMAPINFOHEADER, "biXPelsPerMeter", 0)
    DllStructSetData($BITMAPINFOHEADER, "biYPelsPerMeter", 0)
    DllStructSetData($BITMAPINFOHEADER, "biClrUsed", 0)
    DllStructSetData($BITMAPINFOHEADER, "biClrImportant", 0)

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

    DllStructSetData($RGBQUAD, "rgbBlue", 0)
    DllStructSetData($RGBQUAD, "rgbGreen", 0)
    DllStructSetData($RGBQUAD, "rgbRed", 0)
    DllStructSetData($RGBQUAD, "rgbReserved", 0)

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

    DllStructSetData($BITMAPINFO, "BITMAPINFOHEADER", DllStructGetPtr($BITMAPINFOHEADER))
    DllStructSetData($BITMAPINFO, "RGBQUAD", DllStructGetPtr($RGBQUAD))

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

    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_VIDEOFORMAT, "wparam", DllStructGetSize($BITMAPINFO), "lparam", DllStructGetPtr($BITMAPINFO))

    [/autoit]

    das ganze im audoit-gängigen webcamscript:

    Spoiler anzeigen
    [autoit]

    $BITMAPINFO = DllStructCreate("ptr BITMAPINFOHEADER;ptr RGBQUAD")
    $BITMAPINFOHEADER = DllStructCreate("DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant")
    $RGBQUAD = DllStructCreate("BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved")

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

    DllStructSetData($BITMAPINFOHEADER, "biSize", DllStructGetSize($BITMAPINFOHEADER))
    DllStructSetData($BITMAPINFOHEADER, "biWidth", 640)
    DllStructSetData($BITMAPINFOHEADER, "biHeight", 480)
    DllStructSetData($BITMAPINFOHEADER, "biPlanes", 1)
    DllStructSetData($BITMAPINFOHEADER, "biBitCount", 8)
    DllStructSetData($BITMAPINFOHEADER, "biCompression", 0)
    DllStructSetData($BITMAPINFOHEADER, "biSizeImage", 0)
    DllStructSetData($BITMAPINFOHEADER, "biXPelsPerMeter", 0)
    DllStructSetData($BITMAPINFOHEADER, "biYPelsPerMeter", 0)
    DllStructSetData($BITMAPINFOHEADER, "biClrUsed", 0)
    DllStructSetData($BITMAPINFOHEADER, "biClrImportant", 0)

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

    DllStructSetData($RGBQUAD, "rgbBlue", 0)
    DllStructSetData($RGBQUAD, "rgbGreen", 0)
    DllStructSetData($RGBQUAD, "rgbRed", 0)
    DllStructSetData($RGBQUAD, "rgbReserved", 0)

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

    DllStructSetData($BITMAPINFO, "BITMAPINFOHEADER", DllStructGetPtr($BITMAPINFOHEADER))
    DllStructSetData($BITMAPINFO, "RGBQUAD", DllStructGetPtr($RGBQUAD))

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

    $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
    #include <GUIConstants.au3>
    $avi = DllOpen("avicap32.dll")
    $user = DllOpen("user32.dll")
    $Main = GUICreate("Camera", 350, 270)
    $cap = DllCall($avi, "int", "capCreateCaptureWindow", "str", "cap", "int", BitOR($WS_CHILD, $WS_VISIBLE), "int", 15, "int", 15, "int", 320, "int", 240, "hwnd", $Main, "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)

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

    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_VIDEOFORMAT, "wparam", DllStructGetSize($BITMAPINFO), "lparam", DllStructGetPtr($BITMAPINFO))

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

    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_END, "int", 0, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0)
    DllClose($user)
    Exit
    EndIf
    Sleep(1)
    WEnd

    [/autoit]

    leider funktioniert das aber nicht!

    blickt da jemand durch und weiß, wo der fehler liegt?!?

    ich bin zumindest mit meinem latein am ende;)

    thx
    eukalyptus

  • nützliche funktionen!?

    • eukalyptus
    • 3. Mai 2008 um 11:02

    _IN liefert TRUE, wenn die erste variable gleich einer der weiteren ist, also im prinzip eine vereinfachung von:
    IF $V=$V1 OR $V=$V2 OR $V=$V3 usw...
    _IN(1,3,5,"11","abc")=False
    _IN("Test","abc",4,0x54)=False
    _IN(1,1,6,"abc")=True
    _IN("1",1)=True

    _MakeLong speichert 2 Werte in 1 Variable und mit _LoWord bzw. _HiWord bekommt man diese wieder.
    (hab eine DLL, welche mir als Return 2 Werte als Lo & HiWord zurückgibt)

    vielleicht findet einer verwendung dafür...

    lgE

    Spoiler anzeigen
    [autoit]

    Func _IN($V,$V1,$V2="",$V3="",$V4="",$V5="",$V6="",$V7="",$V8="",$V9="",$V10="",$V11="",$V12="",$V13="",$V14="",$V15="",$V16="",$V17="",$V18="",$V19="",$V20="")
    Local $L,$T[2]=[1,$V1]
    For $L=2 To 20
    If Eval("V" & $L) = "" Then ExitLoop
    ReDim $T[$L+1]
    $T[$L]=Eval("V" & $L)
    Next
    $T[0]=$L-1
    For $L=1 to $T[0]
    If $V=Eval("V" & $L) Then Return True
    Next
    Return False
    EndFunc

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

    Func _LoWord($DWord)
    If BitAND($DWord, 0x8000) = 0 Then
    Return BitAND($DWord, 0xFFFF)
    Else
    Return BitOR($DWord, 0xFFFF0000)
    EndIf
    EndFunc

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

    Func _HiWord($DWord)
    Return BitAND($DWord, 0xFFFF0000) / 0x10000
    EndFunc

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

    Func _MakeLong($LoWord, $HiWord)
    Return BitOR(BitAND($HiWord * 0x10000, 0xFFFF0000), BitAND($LoWord, 0xFFFF))
    EndFunc

    [/autoit]
  • nach resizing: setcolor bei Graphiccontrol - wtf

    • eukalyptus
    • 1. Mai 2008 um 22:36

    whow, das ging ja flink

    danke, so gehts *freu* *juhuu*

  • nach resizing: setcolor bei Graphiccontrol - wtf

    • eukalyptus
    • 1. Mai 2008 um 22:19

    hallo

    ich hab wieder mal ein seltsames problem!

    ich erstelle ein graphiccontrol
    mit guictrlsetcolor färbe ich dann den rand (rot)

    [Blockierte Grafik: http://www.play.fm/images/pics/p00053082.jpg]

    dann winmove ich das fenster kleiner und setcolor (grün) färbt nur mehr einen teil des graphic-randes

    [Blockierte Grafik: http://www.play.fm/images/pics/p00053083.jpg]

    Spoiler anzeigen
    [autoit]

    GUICreate("TestGraphic",200,200,100,100)
    $Graphic=GUICtrlCreateGraphic(10,10,50,50)
    GUISetState()

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

    GUICtrlSetColor($Graphic,0xFF0000)

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

    MsgBox(0,"","")
    WinMove("TestGraphic","",100,100,100,200)

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

    GUICtrlSetColor($Graphic,0x00FF00)
    MsgBox(0,"","")

    [/autoit]

    gibts da vielleicht eine erklärung dafür?
    ich hab bis jetzt nichts gefunden, außer die info, daß sich graphiccontrols nicht resizen lassen...

    herzlichen dank
    Eukalyptus

  • µit - April

    • eukalyptus
    • 25. April 2008 um 23:21

    hier mein beitrag.
    es sind doch 825 zeilen geworden!

    falls die anderen teilnehmer noch zeitprobleme haben, dann hab ich kein problem damit, wenn wir die abgabefrist noch nach hinten verlängern.


    lgE

    Edit:

    C
    #include <StaticConstants.au3>
    #include <EditConstants.au3>


    einfügen, damit das spiel auch in version 3.2.12.0 läuft...

    RAR-Passwort: 4231

    Dateien

    Schiffeversenken_eukalyptus.rar 27,71 kB – 359 Downloads
  • µit - April

    • eukalyptus
    • 21. April 2008 um 16:56

    Wikipedia: Die Schiffe dürfen nicht aneinander stoßen.

    das verstehe ich so, daß sich die schiffe auch nicht am eck berühren dürfen.

    also es muß rund um das schiff ein kästchen frei bleiben.

    zumindest hab ich das so verstanden und es auch so realisiert.

    auf was einigen wir uns nun?

    lgE

  • Mic/LineIn - Lautstärkenregler hardware oder softwareseitig?

    • eukalyptus
    • 19. April 2008 um 14:51

    hallo

    vielleicht weiß das ja jemand:

    wenn ich die regler für den mikrofon bzw. line-in eingang verändere, ändert sich die lautstärke dann hardwareseitig, also anderer gain bei der soundkarte, oder bleibt dieser gleich und die lautstärke wird nur gerechnet...?!?

    also bringt es was, bei zuviel input-pegel den slider etwas nach unten zu setzen, oder wird der a/d-wandler trotzdem überfahren...

    thxE

  • µit - April

    • eukalyptus
    • 18. April 2008 um 12:11

    mein schiffe-versenken ist fast fertig und hat 770 zeilen! davon fallen 400 zeilen auf die K.I.

    als meine K.I. nur etwa 170 zeilen hatte, war sie nicht viel schlechter - ich frage mich jetzt, ob die zusätzlichen functionen im härtetest auch wirklich was bringen ;)

    lgE

  • µit - April

    • eukalyptus
    • 17. April 2008 um 10:41

    ich mach übrigens auch mit... :)

    wie genau soll das script den nun dokumentiert werden?!
    ich meine, um die scripts der anderen teilnehmer überhaupt zu verstehen, sollte das doch etwas ausführlicher gemacht werden.
    das erleichtert das einlesen und auch die auswertung; bedeutet allerdings mehr zeitaufwand und größere scripte (außer man lagert die doku aus)

    mein spiel wird schätzungsweise ca. 600 zeilen haben. momentan hab ich 512 zeilen, hab schon gegen meine KI verloren, aber so richtig strategisch und logisch arbeitet sie (noch?) nicht ;) - da liegt noch einige arbeit vor mir...

    btw. ich find die aufgabe diesmal sehr gut und unterhaltsam und freue mich schon auf die anderen scripte!

    lgE

  • GUICtrlSetOnHover ist scriptübergreifend :(

    • eukalyptus
    • 9. April 2008 um 17:42

    Yeah!!!

    du bist mein held! - Danke!

  • GUICtrlSetOnHover ist scriptübergreifend :(

    • eukalyptus
    • 8. April 2008 um 19:34

    hallöchen

    folgendes problem:

    ich verwende die GuiCtrlSetOnHover_UDF.au3:

    Spoiler anzeigen
    [autoit]

    #include-once
    Opt("MustDeclareVars", 1)
    Opt("OnExitFunc", "CallBack_Exit")

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

    ;GUICtrlSetOnHover Initialize
    Global $HOVER_CONTROLS_ARRAY[1][1]
    Global $LAST_HOVERED_ELEMENT[2] = [-1, -1]
    Global $LAST_HOVERED_ELEMENT_MARK = -1
    Global $pTimerProc = DllCallbackRegister("CALLBACKPROC", "none", "hwnd;uint;uint;dword")
    Global $uiTimer = DllCall("user32.dll", "uint", "SetTimer", "hwnd", 0, "uint", 0, "int", 10, "ptr", DllCallbackGetPtr($pTimerProc))
    $uiTimer = $uiTimer[0]

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

    Opt("MustDeclareVars", 0)

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

    ;===============================================================================
    ;
    ; Function Name: GUICtrlSetOnHover()
    ; Description: Set function(s) to call when hovering/leave hovering GUI elements.
    ; Parameter(s): $CtrlID - The Ctrl ID to set hovering for (can be a -1 as indication to the last item created).
    ; $HoverFuncName - Function to call when the mouse is hovering the control.
    ; $LeaveHoverFuncName - [Optional] Function to call when the mouse is leaving hovering the control
    ; (-1 no function used).
    ;
    ; Return Value(s): Always returns 1 regardless of success.
    ; Requirement(s): AutoIt 3.2.10.0
    ; Note(s): 1) TreeView/ListView Items can not be set :(.
    ; 2) When the window is not active, the hover/leave hover functions will still called,
    ; but not when the window is disabled.
    ; 3) The hover/leave hover functions will be called even if the script is paused by such functions as MsgBox().
    ; Author(s): G.Sandler (a.k.a CreatoR).
    ;
    ;===============================================================================
    Func GUICtrlSetOnHover($CtrlID, $HoverFuncName, $LeaveHoverFuncName=-1)
    Local $Ubound = UBound($HOVER_CONTROLS_ARRAY)
    ReDim $HOVER_CONTROLS_ARRAY[$Ubound+1][3]
    $HOVER_CONTROLS_ARRAY[$Ubound][0] = GUICtrlGetHandle($CtrlID)
    $HOVER_CONTROLS_ARRAY[$Ubound][1] = $HoverFuncName
    $HOVER_CONTROLS_ARRAY[$Ubound][2] = $LeaveHoverFuncName
    $HOVER_CONTROLS_ARRAY[0][0] = $Ubound
    EndFunc

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

    ;CallBack function to handle the hovering process
    Func CALLBACKPROC($hWnd, $uiMsg, $idEvent, $dwTime)
    If UBound($HOVER_CONTROLS_ARRAY)-1 < 1 Then Return
    Local $ControlGetHovered = _ControlGetHovered()
    Local $sCheck_LHE = $LAST_HOVERED_ELEMENT[1]

    If $ControlGetHovered = 0 Or ($sCheck_LHE <> -1 And $ControlGetHovered <> $sCheck_LHE) Then
    If $LAST_HOVERED_ELEMENT_MARK = -1 Then Return
    If $LAST_HOVERED_ELEMENT[0] <> -1 Then Call($LAST_HOVERED_ELEMENT[0], $LAST_HOVERED_ELEMENT[1])
    $LAST_HOVERED_ELEMENT[0] = -1
    $LAST_HOVERED_ELEMENT[1] = -1
    $LAST_HOVERED_ELEMENT_MARK = -1
    Else
    For $i = 1 To $HOVER_CONTROLS_ARRAY[0][0]
    If $HOVER_CONTROLS_ARRAY[$i][0] = GUICtrlGetHandle($ControlGetHovered) Then
    If $LAST_HOVERED_ELEMENT_MARK = $HOVER_CONTROLS_ARRAY[$i][0] Then ExitLoop
    $LAST_HOVERED_ELEMENT_MARK = $HOVER_CONTROLS_ARRAY[$i][0]
    Call($HOVER_CONTROLS_ARRAY[$i][1], $ControlGetHovered)
    If $HOVER_CONTROLS_ARRAY[$i][2] <> -1 Then
    $LAST_HOVERED_ELEMENT[0] = $HOVER_CONTROLS_ARRAY[$i][2]
    $LAST_HOVERED_ELEMENT[1] = $ControlGetHovered
    EndIf
    ExitLoop
    EndIf
    Next
    EndIf
    EndFunc

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

    ;Thanks to amel27 for that one!!!
    Func _ControlGetHovered()
    Local $Old_Opt_MCM = Opt("MouseCoordMode", 1)
    Local $iRet = DllCall("user32.dll", "int", "WindowFromPoint", _
    "long", MouseGetPos(0), _
    "long", MouseGetPos(1))
    $iRet = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $iRet[0])
    Opt("MouseCoordMode", $Old_Opt_MCM)
    Return $iRet[0]
    EndFunc

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

    ;Release the CallBack resources
    Func CallBack_Exit()
    DllCallbackFree($pTimerProc)
    DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "uint", $uiTimer)
    EndFunc

    [/autoit]

    in folgendem testscript:

    Spoiler anzeigen
    [autoit]

    #include "GuiCtrlSetOnHover_UDF.au3"

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

    GUICreate("HoverButton",170,100,100,200)
    GUICtrlCreateIcon(@SystemDir & "\shell32.dll", -1, 50, 50, 32, 32)
    GUICtrlSetOnHover(-1, "Hover_Func", "Leave_Hover_Func")
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func Hover_Func($CtrlID)
    GUICtrlSetImage($CtrlID, @SystemDir & "\shell32.dll", 2)
    EndFunc
    Func Leave_Hover_Func($CtrlID)
    GUICtrlSetImage($CtrlID, @SystemDir & "\shell32.dll", 1)
    EndFunc

    [/autoit]

    wenn ich nun folgendes script paralell laufen lasse:

    Spoiler anzeigen
    [autoit]

    GUICreate("Nix Hover",170,100,300,100)
    GUICtrlCreateLabel("Dieses Label triggert den hover-effekt des anderen scripts",10,50,150,50)
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

    [/autoit]

    dann läßt sich das icon des ersten script mit dem label des 2 scriptes hovern...
    ich hoffe, ihr wisst, was ich meine; der hovereffekt ist leider nicht auf ein script beschränkt!

    kann man das irgendwie lösen, sodaß sich die beiden programme nicht gegenseitig stören?

    vielen dank
    lgE

  • Mp3-Recording via bass.dll

    • eukalyptus
    • 2. April 2008 um 22:47

    um die bass.dll mit autoit nutzen zu können, benötigt man eine callback-routine!
    diese stürtz mit autoit immer nach kurzer zeit ab!
    (mein post von oben funktioniert ohne callback auch nur, wenn man alle 15ms eine peak-abfrage macht ;))

    deshalb hab ich mir eine dll in freepascal geschrieben, welche diese callback übernimmt...

    ich würd jetzt mal sagen: eine spectrumanalyse mit bass.dll direkt von autoit aus ist nicht ohne umweg möglich!

    falls du in c++ fit bist - bei der bass.dll ist ein c++ beispiel für spectrum-analyse dabei...


    lgE

  • µit - März

    • eukalyptus
    • 22. März 2008 um 00:47

    vielleicht könnt ma das bewertungssystem für die zukunft so lösen:

    .) alle teilnehmer + moderatoren können punkte vergeben
    .) max punkzahl = anzahl der teilnehmer (bei 10 teilnehmer gibt man dem favoriten 10p, dem zweiten 9 usw... der letzte kriegt 1 punkt)
    .) wobei handling, design und scriptgröße extra bewertet werden sollten?!
    .) wäre schön, wenn die experten die aufgabenlösung etwas untersuchen und kommentieren könnten...
    dann hätten laien die möglichkeit zu sehen, warum eine herangehensweise gut und eine andere eher umständlich ist...

    damit wäre Waluev der druck der auswertung genommen;)

    ich finde diesen contest sehr gut, da es spaß macht, und man viel lernen kann!

    so long
    E

  • GINA HOOK

    • eukalyptus
    • 21. März 2008 um 23:46
    Zitat von Xenobiologist

    Hi,

    guck dir dies an und versuch es zu überlisten.

    Spoiler anzeigen
    [autoit]

    #include<Misc.au3>
    #include<WindowsConstants.au3>
    #NoTrayIcon
    $VER = "2.0"
    Opt("WinTitleMatchMode", 4)
    Global $KEY = "111"
    Global $codeFestgelegt = False, $inputCode, $splash = 0
    code()
    HotKeySet("!{TAB}", "doNothing")
    HotKeySet("{TAB}", "doNothing")
    HotKeySet("{ESC}", "doNothing")
    HotKeySet("{F9}", "code")
    HotKeySet("!^{F9}", "OnAutoItExit") ; STRG+ALT+F9 Sofort-Exit
    $SAFE = GUICreate('')
    GUISetState($WS_EX_TRANSPARENT, $SAFE)
    $VAULT = GUICreate(" *Mega*", @DesktopWidth, @DesktopHeight, -1, -1, -1, -1, $SAFE)
    GUISetState()
    WinMinimizeAll()
    WinSetTrans(" *Mega*", "", 1)
    $LOCK = DllOpen("user32.dll")
    WinSetOnTop(" *Mega*", "", 1)

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

    ; The script
    $startPath = "c:\Downloads\AutoIt-Skripte\Entwicklung\ForumTests\MegaBlock\NotePadTut.exe"

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

    While 1
    For $TRY = 1 To 91
    If _IsPressed($TRY, $LOCK) Or _IsPressed("0D", $LOCK) Then doNothing()
    If WinExists('classname=DV2ControlHost', '') Then WinClose('Startmenü')
    ToolTip("Protected by, *Mega* v" & $VER & " | " & @HOUR & ":" & @MIN & ":" & @SEC, 5, 5)
    Next
    _MouseTrap(95, 18, 140, 22)
    WinSetOnTop(" *Mega*", "", 1)
    Sleep(1) ; erhöhen um CPU zu sparen? Sicherheit geht dann verloren
    WEnd

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

    Func code()
    $inputCode = InputBox(" *Mega*", "Bitte Passwort/Code eingeben: ", "", "*10", 150, 100, 50, 50, 10)

    If $codeFestgelegt = False Then
    If $inputCode = $KEY Then
    secure()
    $codeFestgelegt = True
    Return
    Else
    MsgBox(64, " *Mega*", "Falscher SperrCode", 3)
    Exit
    EndIf
    Else
    If $inputCode = $KEY Then
    DllClose($LOCK)
    SplashOff()
    MsgBox(64, "Info - Administrator", "Dieser PC wurde freigegeben!" & @LF & @LF & _
    "Tel.: XXXX" & @LF & _
    "Email: Mega@xxx.com" & @LF & _
    @LF & _
    "Mega", 3)
    _MouseTrap()
    Sleep(2000)
    Exit
    Else
    WinSetOnTop(" *Mega*", "", 1)
    Return
    EndIf
    EndIf
    EndFunc ;==>code

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

    Func secure()
    WinMinimizeAll()
    ;Hide Taskbar
    DllCall("WinLockDll.dll", "Int", "Taskbar_Show_Hide", "Int", "0")
    ;Disable CrtlAltDel
    $splash = SplashTextOn("", "Administrator : Dieser PC ist gesperrt!" & @LF & @LF & _
    "Tel.: XXXX" & @LF & @LF & _
    "Email: Mega@xxx.com" & @LF & _
    @LF & @LF & _
    "Mega", _
    550, @DesktopHeight / 2, 1, 500, 1, 5, 16, 600)
    DllCall("WinLockDll.dll", "Int", "CtrlAltDel_Enable_Disable", "Int", "0")
    DllCall("WinLockDll.dll", "Int", "Desktop_Show_Hide", "Int", "0")
    EndFunc ;==>secure

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

    ;DllCall("WinLockDll.dll", "Int", "Process_Desktop", "str", "MyDesktop2", "str", "cmd.exe")

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

    Func OnAutoItExit()
    WinMinimizeAllUndo()
    _MouseTrap()
    DllCall("WinLockDll.dll", "Int", "Desktop_Show_Hide", "Int", "1")
    DllCall("WinLockDll.dll", "Int", "CtrlAltDel_Enable_Disable", "Int", "1")
    ;~ DllCall("WinLockDll.dll", 'Long', "CtrlAltDel_Enable_Disable", 'Long', '1')
    DllCall("WinLockDll.dll", "Int", "Taskbar_Show_Hide", "Int", "1")
    SplashOff()
    Exit (0)
    EndFunc ;==>OnAutoItExit

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

    Func doNothing()
    _MouseTrap(95, 18, 140, 22)
    WinSetState("Windows Task-Manager", "", @SW_HIDE)
    WinSetOnTop(" *Mega*", "", 1)
    EndFunc ;==>doNothing

    [/autoit]

    Mega

    Alles anzeigen

    nicht schlecht!
    wenn man aber weiß, mit was man es zu tun hat ist es nicht schwer da rauszukommen ;)

    mit dem winkey kommt man immer noch in die shell...

  • unerlaubte zeichen aus dateinamen umwandeln

    • eukalyptus
    • 19. März 2008 um 17:59

    cool - dankeschön!

    mit StringRegExpReplace hab ich zwar etwas herumprobiert, hab das aber nicht hinbekommn! ;)

  • unerlaubte zeichen aus dateinamen umwandeln

    • eukalyptus
    • 19. März 2008 um 16:34

    Hallo

    ich will sicherstellen, daß eine datei korrekt gespeichert wird und habe aus diesem grund folgende funktion gebastelt:

    [autoit]

    Global $String=""

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

    For $i=1 to 255

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

    $String&=Chr($i)

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

    Next

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

    MsgBox(0,"erlaubte zeichen",_FileNameEncode($String))

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

    MsgBox(0,"TestDateiname",_FileNameEncode(" Test/Dateinaäme?Test<Test>.txt"))

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

    Func _FileNameEncode($Filename)

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

    Local Const $ValidChars[256] = _

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

    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _

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

    0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, _

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

    0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, _

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

    0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, _

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

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _

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

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _

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

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _

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

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

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

    Local $sEncoded=""

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

    For $i = 1 To StringLen($Filename)

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

    Local $c = StringMid($Filename, $i, 1)

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

    If Number($ValidChars[Asc($c)]) Then

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

    $sEncoded &= $c

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

    Else

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

    $sEncoded &= StringFormat("_", Asc($c))

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

    EndIf

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

    Next

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

    Return $sEncoded

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

    EndFunc

    [/autoit]


    aus dem ascii-satz werden nur folgende zeichen zugelassen (alle unerlaubten werden durch "_" ersetzt)

    Code
    ________________________________!__$___()_+,-._0123456789_______ABCDEFGHIJKLMNOPQRSTUVWXYZ______abcdefghijklmnopqrstuvwxyz_____________________________________________________________________________________________________________________________________


    weiß zufällig jemand, welche zeichen erlaubt sind und welche dateinamen ungültig, dann könnte man diese funktion noch erweitern...
    momentan lasse ich ja nicht alle gültigen zeichen zu...

    und zb.: der dateiname "LPT1" wäre ungültig!?

    falls sich damit jemand auskennt, dann bitte ich hiermit um ergänzungen ;)

    lgE

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™