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

Beiträge von Greenhorn

  • Frage zu Dll und GUICtrlCreatePIc.

    • Greenhorn
    • 7. September 2009 um 20:02

    Moin Raupi,

    dann mache es doch einfach so ...

    Spoiler anzeigen
    [autoit]

    ;
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Constants.au3>

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

    Global Const $STM_SETIMAGE = 0x0172

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

    $hInstance = GetModuleHandle ("shell32.dll")

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

    $hbmp = LoadImage ( _
    $hInstance, _
    MAKEINTRESOURCE(131), _
    $IMAGE_BITMAP, _
    0, _ ; Originalgröße
    0, _ ; Originalgröße
    $LR_CREATEDIBSECTION _
    )

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

    $hwnd = GUICreate ("Pic From Resource", 413, 72)

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

    $ID_PIC = GUICtrlCreatePic ("", 0, 0, 413, 72)

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

    GUICtrlSendMsg ($ID_PIC, $STM_SETIMAGE, $IMAGE_BITMAP, $hbmp)

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

    GUISetState (@SW_SHOW, $hwnd)

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

    While (TRUE)

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

    Switch (GUIGetMsg (FALSE))

    Case $GUI_EVENT_CLOSE
    DeleteObject ($hbmp)
    Exit (0)

    Case Else
    EndSwitch
    WEnd

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

    Func DeleteObject ($hObject)

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

    Local $aRes = DllCall ("gdi32.dll", 'int', 'DeleteObject', _
    'ptr', $hObject) ; handle to graphic object
    Return $aRes[0]

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

    EndFunc

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

    Func GetModuleHandle ($sModuleName)

    Local $type = 'wstr'
    If (not $sModuleName or IsPtr ($sModuleName)) Then $type = 'ptr'
    Local $aRes = DllCall ("kernel32.dll", "ptr", "GetModuleHandleW", _
    $type, $sModuleName)
    Return $aRes[0]

    EndFunc

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

    Func LoadImage ($hinst, $lpszName, $uType, $cxDesired, $cyDesired, $fuLoad)

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

    Local $type = 'wstr'
    If (IsPtr ($lpszName)) Then $type = 'ptr'

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

    Local $aRes = DllCall ("user32.dll", 'ptr', 'LoadImageW', _
    'ptr', $hinst, _
    $type, $lpszName, _
    'uint', $uType, _
    'int', $cxDesired, _
    'int', $cyDesired, _
    'uint', $fuLoad)
    Return $aRes[0]

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

    EndFunc

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

    Func MAKEINTRESOURCE($i)
    Return Ptr ($i)
    EndFunc
    ;

    [/autoit]


    EDIT: Mal wieder das Wichtigste vergessen, Code korrigiert.


    Gruß
    Greenhorn

  • Deutsche Hilfe - was gibts zu optimieren?

    • Greenhorn
    • 7. September 2009 um 19:24
    Zitat von Ashpool

    Zum Thema Eltern-/Kindelement oder Haupt-/Unterelement: Ich würde Ersteres favorisieren, weil es den Objektansatz besser wiedergibt, außerdem kommen in einigen Texten auch Subitems vor, die ja dann mit Unterelement übersetzt werden können. Ich weiß jetzt aber gerade nicht, ob Child- und Subitem im selben Kontext vorkommen oder nicht.


    Parent & Child wird bei Fenstern und Prozessen verwendet und ist deshalb im Englischen so genannt worden, weil es hier auch um Vererbungsgeschichten (z.B. von Rechten) geht.
    Wohingegen Elemente einfach nur Teile von einem Steuerelement z.B. sind. Dabei würde ich das lateinische "Sub" dem deutschen "Unter" den Vorzug geben, also Subelement statt Unterelement.


    Gruß
    Greenhorn

  • Deutsche Hilfe - was gibts zu optimieren?

    • Greenhorn
    • 5. September 2009 um 21:36

    Man könnte auch beides innerhalb der jeweiligen Beschreibung auftauchen lassen, so wie wir es bisher machen ...
    "Erzeugt ein Kontrollkästchen (CheckBox) ..."


    Gruß
    Greenhorn

  • Deutsche Hilfe - was gibts zu optimieren?

    • Greenhorn
    • 5. September 2009 um 18:15

    Ich bin der Meinung, daß man schon die deutschen Entsprechungen benutzen sollte, wenn es sie gibt.

    Wenn die Funktion GUICtrlCreateCheckBox heißt und in der Zeile darunter steht in der Beschreibung:
    "Erzeugt ein Kontrollkästchen ...", dann muss man nicht Sherlock Holmes oder Dr. Watson heißen um zu kombinieren was das wohl bedeuten mag.

    Wie bereits erwähnt, es ist manchmal durchaus sinnvoll das englische Wort einzusetzen ...
    Das muss der Übersetzer selbst entscheiden, wie er den Text "verdeutschen" will.

    Und wenn als Argument gebracht wird, daß man eh' englisch können muss, wenn man programmieren möchte, dann hätten wir uns die Arbeit sparen können. ;)


    Gruß
    Greenhorn

    p.s. Alina: Mainboard = Hauptplatine :)

  • Tab in Tab

    • Greenhorn
    • 5. September 2009 um 02:46

    Moin,

    so in etwa ???

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GuiConstantsEx.au3>
    #include <GuiTab.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    $Debug_TAB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

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

    Global $hTab
    Global $hTab2

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

    _Main()

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

    Func _Main()
    Local $hGUI

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

    ; Create GUI
    $hGUI = GUICreate("(UDF Created) Tab Control Create", 400, 300)
    $hTab = _GUICtrlTab_Create($hGUI, 2, 2, 396, 22)
    $hTab2 = _GUICtrlTab_Create($hGUI, 4, 25, 390, 246)
    ControlHide ($hGUI, 0, GetDlgCtrlID ($hTab2))
    GUISetState()

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

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    ; Add tabs
    _GUICtrlTab_InsertItem($hTab, 0, "Tab 1")
    _GUICtrlTab_InsertItem($hTab, 1, "Tab 2")
    _GUICtrlTab_InsertItem($hTab, 2, "Tab 3")

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

    ; Add tabs
    _GUICtrlTab_InsertItem($hTab2, 0, "Tab 1")
    _GUICtrlTab_InsertItem($hTab2, 1, "Tab 2")
    _GUICtrlTab_InsertItem($hTab2, 2, "Tab 3")
    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTab, $hWndTab2
    $hWndTab = $hTab
    If Not IsHWnd($hTab) Then $hWndTab = GUICtrlGetHandle($hTab)
    $hWndTab2 = $hTab2
    If Not IsHWnd($hTab2) Then $hWndTab2 = GUICtrlGetHandle($hTab2)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch ($hWndFrom)
    Case $hWndTab
    Switch ($iCode)
    Case $TCN_SELCHANGE
    Switch (_GUICtrlTab_GetCurSel ($hWndTab))
    Case 0
    ControlHide ($hWnd, 0, GetDlgCtrlID ($hWndTab2))
    Case 1
    ControlShow ($hWnd, 0, GetDlgCtrlID ($hWndTab2))
    Case 2
    ControlHide ($hWnd, 0, GetDlgCtrlID ($hWndTab2))
    EndSwitch
    EndSwitch

    Case $hWndTab2
    Switch $iCode
    Case $NM_CLICK ; The user has clicked the left mouse button within the control
    _DebugPrint("$NM_CLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode)

    ; The return value is ignored by the tab control
    Case $NM_DBLCLK ; The user has double-clicked the left mouse button within the control
    _DebugPrint("$NM_DBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode)
    ;~ Return 1 ; nonzero to not allow the default processing
    Return 0 ; zero to allow the default processing
    Case $NM_RCLICK ; The user has clicked the right mouse button within the control
    _DebugPrint("$NM_RCLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode)
    ;~ Return 1 ; nonzero to not allow the default processing
    Return 0 ; zero to allow the default processing
    Case $NM_RDBLCLK ; The user has clicked the right mouse button within the control
    _DebugPrint("$NM_RDBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode)
    ;~ Return 1 ; nonzero to not allow the default processing
    Return 0 ; zero to allow the default processing
    Case $NM_RELEASEDCAPTURE ; control is releasing mouse capture
    _DebugPrint("$NM_RELEASEDCAPTURE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode)
    ; No return value
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func GetDlgCtrlID ($hwndCtl)

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

    Local $aRes = DllCall ("user32.dll", 'int', 'GetDlgCtrlID', _
    'hwnd', $hwndCtl)
    Return $aRes[0]

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

    EndFunc

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

    Func _DebugPrint($s_text, $line = @ScriptLineNumber)
    ConsoleWrite( _
    "!===========================================================" & @LF & _
    "+======================================================" & @LF & _
    "-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _
    "+======================================================" & @LF)
    EndFunc ;==>_DebugPrint

    [/autoit]


    Gruß
    Greenhorn

  • Bild als Butten benutzen in kompilierter Version

    • Greenhorn
    • 5. September 2009 um 01:06
    Zitat von NoName

    Müsste schon eine einfachere Methode sein =)


    ?(

    Was ist denn einfacher als ein #include "EzBmpButton.au3" und ein ein CreateEzBmpButton ???


    Gruß
    Greenhorn

  • Bild als Butten benutzen in kompilierter Version

    • Greenhorn
    • 4. September 2009 um 23:27

    Moin,

    EzBmpButton


    Gruß
    Greenhorn

  • Deutsche Hilfe - was gibts zu optimieren?

    • Greenhorn
    • 4. September 2009 um 23:04

    Hi,

    im Großen und Ganzen stimme ich mit dir überein, jedoch macht es in Ausnahmen durchaus Sinn das englische Wort zu benutzen.

    WM_NOTIFY event Handler >>> WM_NOTIFY Ereignis-Handler würde ich sagen ...

    Weitere Vorschläge:
    Tree View >>> Baumdiagramm
    List View >>> Listenansicht
    ListBox >>> Listenfeld
    Edit / InputBox >>> Eingabefeld (mehrzeilig / einzeilig)
    ComboBox >>> Kombinationsfeld
    Tab >>> Registerkarte
    Statusbar >>> Statusleiste
    Scrollbar >>> Bildlaufleiste


    Gruß
    Greenhorn

  • DllCall und Array als Parameter

    • Greenhorn
    • 4. September 2009 um 01:10

    Ich habe ein wenig getestet, aber ich komme da auch nicht weiter.

    Es wird kein Fehler zurückgegeben, egal was ich anstelle ... :huh:


    Gruß
    Greenhorn

  • DllCall und Array als Parameter

    • Greenhorn
    • 3. September 2009 um 19:16

    Moin,

    ich kann es ebensowenig testen, aber es sollte in etwa so aussehen:

    Spoiler anzeigen
    [autoit]

    ;
    Global Const $ADDPROP_KEY = 0x00000008

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

    Global Const $SMSRsGendll = DllOpen("SMSRsGen.dll")
    ; For SMS 2003, this value cannot be greater than 900 characters.
    ; For SMS 2.0, this value cannot be greater than 255 characters.

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

    $MAX_STRING = 255 ; hier die max. Stringlänge

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

    $sGroupName = "System Group Name"

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

    Global $arrGroups = DllStructCreate ("char ["&$MAX_STRING&"];"& _
    "char ["&$MAX_STRING&"];")

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

    DllStructSetData ($arrGroups, 1, "GROUP1")
    DllStructSetData ($arrGroups, 2, "GROUP2")

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

    If (not DDRAddStringArray ( _
    $sGroupName, _
    DllStructGetPtr ($arrGroups), _
    2, _
    $MAX_STRING, $ADDPROP_KEY) ) Then

    ConsoleWrite ("!> DDRAddStringArray returns: S_FALSE" & @crlf)
    Else
    ConsoleWrite ("+> DDRAddStringArray returns: S_OK" & @crlf)
    EndIf

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

    DllClose($SMSRsGendll)

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

    Func DDRAddStringArray ($sName, $sArray, $nArraySize, $nSQLWidth, $dwFlags)

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

    Local $aRes = DllCall($SMSRsGendll, "int", "DDRAddStringArray", _
    "str", $sName, _
    "ptr", $sArray, _
    "int", $nArraySize, _
    "int", $nSQLWidth, _
    "dword", $dwFlags)
    Return $aRes[0]

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

    EndFunc
    ;

    [/autoit]


    EDIT: Sorry, habe mal wieder die Hälfte vergessen, Beitrag ist korrigiert !


    Gruß
    Greenhorn

  • Beta Tester gesucht

    • Greenhorn
    • 3. September 2009 um 15:39

    Moin Gun-Food,

    ich kenne Trial nur mit Motorrädern/Mopeds, daß es das auch mit Fahrrad (Mountain-Bike ?) gibt, wusste ich noch gar nicht.

    Ich wohne zwar nicht in Berlin, aber wenn ich irgendwie helfen kann, dann lass' es mich wissen. ;)


    Gruß
    Greenhorn

  • Mathematisches Problem IParam-Speicherung

    • Greenhorn
    • 2. September 2009 um 21:32

    Bis dahin kannst Du den Typ "casten", indem Du Ptr (integer) benutzt wenn Du den lParam abrufst, das sollte auch funktionieren. ;)


    Gruß
    Greenhorn

  • Drucker mit Strg+p aufrufen

    • Greenhorn
    • 2. September 2009 um 21:26

    http://www.autoit.de/dokumentation_…uSelectItem.htm

  • Mathematisches Problem IParam-Speicherung

    • Greenhorn
    • 2. September 2009 um 13:50
    Zitat von Andy

    Mal ganz doof gefragt, würde es helfen, Iparam als Zeiger (Pointer) auf einen wie auch immer großen Speicherbereich zu behandeln? Die "Zustände" würden dann nicht in IParam "gespeichert", sondern an der Position auf die der Pointer zeigt. Also gewissermaßen doch ein Array^^


    Das ist auch die normale Vorgehensweise ... ;)


    Gruß
    Greenhorn

  • wie kann ich eine dateiendung meinem programm zuweisen?

    • Greenhorn
    • 2. September 2009 um 12:51

    Hat geklappt ? Prima, bitte schön und gern geschehen. :)


    Gruß
    Greenhorn

  • Abfangen der Enter-Taste beim Input-Control

    • Greenhorn
    • 2. September 2009 um 11:42

    Moin nuts,

    Spoiler anzeigen
    [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16)
    ConsoleWrite("iIParam=" & $hWndFrom & @CRLF)
    ConsoleWrite("iIDForm=" & $iIDFrom & @CRLF)
    ConsoleWrite("icode=" & $iCode & @CRLF)
    Switch $iIDFrom
    Case $Input1
    Switch $iCode
    Case 0 ; $icode für Enter? Ja!!! ;)
    MsgBox(1, "Input1", "WM_Command")
    EndSwitch
    case $Input2
    Switch $iCode
    Case 0 ; $icode für Enter? Ja !!! ;)
    MsgBox(1, "Input2", "WM_Command")
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

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

    ... oder einfacher ...

    Spoiler anzeigen
    [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)

    Switch (LOWORD($iwParam))

    Case $Input1
    Switch (HIWORD($iwParam))
    Case 0 ; $icode für Enter? Ja !!! ;)
    MsgBox(1, "Input1", "WM_Command")
    EndSwitch

    Case $Input2
    Switch (HIWORD($iwParam))
    Case 0 ; $icode für Enter? Ja !!! ;)
    MsgBox(1, "Input2", "WM_Command")
    EndSwitch
    EndSwitch

    Return $GUI_RUNDEFMSG

    EndFunc ;==>WM_COMMAND

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

    Func LOWORD($DWORD)
    Return BitAND($DWORD, 0xFFFF)
    EndFunc

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

    Func HIWORD($DWORD)
    Return BitShift($DWORD, 16)
    EndFunc

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

    ...oder noch einfacher ...

    Spoiler anzeigen
    [autoit]

    While (TRUE)

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

    Switch (GUIGetMsg(FALSE))
    Case $Input1
    ContinueCase
    Case $Input2
    MsgBox(1, "Input", "Enter!")
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]


    EDIT: Sorry, habe mich im ersten Bsp. vertan, ist natürlich beides richtig!


    Gruß
    Greenhorn

  • wie kann ich eine dateiendung meinem programm zuweisen?

    • Greenhorn
    • 2. September 2009 um 10:17

    Vielleicht mit RunAs ...


    Gruß

  • wie kann ich eine dateiendung meinem programm zuweisen?

    • Greenhorn
    • 2. September 2009 um 09:16
    Zitat von gabischatz

    Mein Betriebssystem ist Vista Home B..


    Das wird es sein, denke ich ...

    Probiere einmal das Script mit Admin-Rechten auszuführen.

    [autoit]

    ; Script benötigt Administrator-Rechte
    #RequireAdmin
    ; Kontextmenü 'In Ordner kopieren' und ' In Ordner verschieben' hinzufügen.
    RegWrite('HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\In Ordner kopieren', _
    '', 'REG_SZ', '{C2FBB630-2971-11D1-A18C-00C04FD75D13}')
    RegWrite('HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\In Ordner verschieben', _
    '', 'REG_SZ', '{C2FBB631-2971-11D1-A18C-00C04FD75D13}')

    [/autoit]

    AutoIt unter Vista


    Gruß
    Greenhorn

  • wie kann ich eine dateiendung meinem programm zuweisen?

    • Greenhorn
    • 2. September 2009 um 00:59

    Bei mir schon. Hast Du in Regedit auch die Ansicht aktualisiert oder dir das Kontextmenü des Explorers angesehen, wenn Du auf eine Datei klickst ?


    Gruß
    Greenhorn

  • AutoIt und 64bit

    • Greenhorn
    • 29. August 2009 um 17:43

    Ehrlich gesagt: Keine Ahnung. :S

    Aber ich denke schon. Ich habe noch gar kein x64 System getestet, weder Win noch Lin ...

    Du könntest ein AutoIt "nativ" nutzen und vllt noch eine "portable" für 32bit ...
    Oder Du fragst mal Jon im "Developer Chat"-Forum.


    Gruß

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™