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

  • Unterschiedlicher Button Style

    • Greenhorn
    • 20. März 2012 um 23:22

    Hi,

    wenn Du (D)einer Schaltfläche ein Bitmap als Hintergrund zuweist, dann setzt AutoIt für diese Schaltfläche das Ownerdraw-Style-Flag ($BS_OWNERDRAW) und somit wird die Schaltfläche von AutoIt gezeichnet.

    Kurz gesagt, ohne mehr oder weniger großen Aufwand geht es nicht anders.

    Du könntest natürlich versuchen mit GIMP Deine Bitmap entsprechend dem 3D-Stil der Standard-Schaltflächen anzupassen ...


    Gruß
    Greenhorn

  • GUI position user abhängig speichern

    • Greenhorn
    • 20. März 2012 um 22:44

    Allerdings wirst Du mit WinGetPos Dein blaues Wunder erleben, wenn der Benutzer das Fenster im minimierten Status schliesst.

    Besser ist es, wenn Du/Ihr es so implementier(s)t:

    Spoiler anzeigen
    [autoit]


    ; --- RECT
    Global Const $_RECT = _
    "LONG left;" & _
    "LONG top;" & _
    "LONG right;" & _
    "LONG bottom;"

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

    ; --- $WINDOWPLACEMENT
    Global Const $WINDOWPLACEMENT = _
    "UINT length;"& _
    "UINT flags;"& _
    "UINT showCmd;"& _
    "LONG ptMinPosition[2];"& _
    "LONG ptMaxPosition[2];"& _
    "LONG rcNormalPosition[4];"

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

    ; ...

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

    ; Beim Schliessen des Fensters aufgerufen
    Func SaveSettings ($hwnd)

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

    Local $rcWnd
    Local $wp = DllStructCreate ($WINDOWPLACEMENT)

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

    ; Fensterposition speichern

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

    GetWindowPlacement ($hwnd, DllStructGetPtr ($wp))

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

    $rcWnd = DllStructCreate ($_RECT, DllStructGetPtr ($wp, "rcNormalPosition"))

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

    $nLeft = DllStructGetData ($rcWnd, "left")
    $nTop = DllStructGetData ($rcWnd, "top")
    $nRight = DllStructGetData ($rcWnd, "right")
    $nBottom = DllStructGetData ($rcWnd, "bottom")

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

    IniWrite ($g_sAppCfg, "Settings", "WinPos", _
    StringFormat ("%d,%d,%d,%d", _
    $nLeft, _
    $nTop, _
    $nRight - $nLeft, _
    $nBottom - $nTop _
    ) _
    )

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

    EndFunc

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

    Func GetWindowPlacement ($hWnd, $lpwndpl)

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

    Local $aRes = DllCall ("user32.dll", "BOOL", "GetWindowPlacement", _
    "HWND", $hWnd, _
    "PTR", $lpwndpl)
    Return $aRes[0]

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

    EndFunc

    [/autoit]

    Gruß
    Greenhorn

  • MsgBox wird nicht refreshed

    • Greenhorn
    • 19. März 2012 um 17:47

    Hm, bei mir keine Probleme. Egal wie oft und welche Fenster ich (teilweise) über die MsgBox lege ...
    Getestet unter Win7 x64 mit aktiviertem Aero.

    Einfache Problemlösung: Die MsgBox über alle anderen Fenster legen.

    [autoit]

    #include <Constants.au3>
    TraySetState(2)

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

    Global Const $MB_SETFOREGROUND = 0x00010000
    MsgBox (BitOR($MB_TOPMOST, $MB_SETFOREGROUND), "Sicherheitsupdate", "Auf Ihrem System wurde ein automatisches Sicherheitsupdate gestartet." & @LF & "Bitte führen Sie, so lange die Installation läuft, keinen Neustart durch." & @LF & "Sie können jedoch am System wie gewohnt weiter arbeiten.")

    [/autoit]

    Gruß
    Greenhorn

  • MsgBox wird nicht refreshed

    • Greenhorn
    • 19. März 2012 um 15:07

    Moin,

    das Problem ist mir nicht bekannt.
    Kannst Du ein Skript zur Verfügung stellen, um den Fehler zu reproduzieren ?


    Gruß
    Greenhorn

  • Dateien speichern Binär oder wie?

    • Greenhorn
    • 18. März 2012 um 21:07

    Also grundsätzlich sind ALLE Dateien binär. Aber das nur so am Rande erwähnt. ;)

    Gruß
    Greenhorn

  • DTX Daten als Bild in GUI anzeigen

    • Greenhorn
    • 18. März 2012 um 21:05

    Andy, Du bist wirklich ein begnadeter Hacker ! :thumbup:

    Gruß
    Greenhorn

  • ComboBox in Schleife auslesen

    • Greenhorn
    • 18. März 2012 um 18:39

    Ich meinte so:

    [autoit]

    $hwnd = GUICreate ("Test")
    $combo = GUICtrlCreateCombo ("item1", 10, 10)
    GUICtrlSetData(-1, "item2|item3", "item3")

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

    GUISetState (@SW_SHOW, $hwnd)

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

    While (TRUE)

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

    Switch (GUIGetMsg ( ))
    case $combo
    MsgBox (0, "ComboBox", GUICtrlRead ($combo))
    EndSwitch
    WEnd

    [/autoit]


    Gruß
    Greenhorn

  • ComboBox in Schleife auslesen

    • Greenhorn
    • 18. März 2012 um 17:43

    Moin,

    auch wenn Du diesen Part herausnimmst ?

    Spoiler anzeigen
    [autoit]

    If _GUICtrlComboBox_GetDroppedState($combo) Then
    $read_combo = GUICtrlRead($combo)
    if $aktText <> $read_combo Then
    If $read_combo = "Kontaktliste" Then
    _KONTAKTLISTE()
    ElseIf $read_combo = "Linkliste" Then
    _LINKLISTE()
    ElseIf $read_combo = "FSM 7.15" Then
    _FSM()
    ElseIf $read_combo = "GSMW v2/3/4" Then
    _GSMW()
    ElseIf $read_combo = "CT Knowlegde" Then
    _CTKNOWLEDGE()
    EndIf
    $aktText = $read_combo
    EndIf
    EndIf

    [/autoit]


    Gruß
    Greenhorn

  • Movement ohne Flackern

    • Greenhorn
    • 14. März 2012 um 16:55

    Hi,

    so besser ?

    Spoiler anzeigen
    [autoit]


    ; Dem Hauptfenster diesen erweiterten Style mitgeben
    GUICreate ("Hauptfenster", [...], $WS_EX_COMPOSITED)

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

    Func walk_right($uidPlayer)

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

    If $action = False Then
    $action = True
    GUICtrlSetState ($uidPlayer, $GUI_ONTOP)
    GUICtrlSetImage ($uidPlayer, "./poses/walk_right_right.gif")
    For $i = 1 To 10
    $p_x += $i
    GUICtrlSetPos ($uidPlayer, $p_x, $p_y, 24, 62)
    Sleep(10)
    Next
    GUICtrlSetImage ($uidPlayer, "./poses/walk_right_left.gif")
    For $i = 1 To 10
    $p_x += $i
    GUICtrlSetPos ($uidPlayer, $p_x, $p_y, 24, 62)
    Sleep(10)
    Next
    GUICtrlSetImage ($uidPlayer, "./poses/stand_right.gif")
    $stand = "right"
    $action = False
    Else
    Return
    EndIf
    EndFunc

    [/autoit]

    Gruß
    Greenhorn

  • Style umschalten

    • Greenhorn
    • 12. März 2012 um 16:23

    Hi,

    Spoiler anzeigen
    [autoit]

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

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

    $hGui = GUICreate("Gui", 260, 100, -1, -1, $WS_POPUP)
    $hShow = GUICtrlCreateButton("einblenden", 45, 50, 150, 20)
    GUISetState()

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

    While 1
    $Msg = GUIGetMsg()

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

    Switch $Msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hShow
    GUISetStyle($GUI_SS_DEFAULT_GUI)

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

    SetWindowPos ( _
    $hGui, 0, _
    0, 0, 0, 0, _
    BitOR ($SWP_NOMOVE, $SWP_NOSIZE, $SWP_NOZORDER, $SWP_FRAMECHANGED) _
    )

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

    EndSwitch
    WEnd

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

    Func SetWindowPos ($hWnd, $hWndInsertAfter, $X, $Y, $cx, $cy, $uFlags)

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

    Local $aRes = DllCall ("user32.dll", "BOOL", "SetWindowPos", _
    "HWND", $hWnd, _
    "HWND", $hWndInsertAfter, _
    "INT", $X, _
    "INT", $Y, _
    "INT", $cx, _
    "INT", $cy, _
    "UINT", $uFlags)
    Return $aRes[0]

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

    EndFunc

    [/autoit]


    Gruß
    Greenhorn

  • GDI + viel zu langsam ..

    • Greenhorn
    • 10. März 2012 um 17:22

    Hi,

    Du solltest nur den Bereich neu zeichnen, der auch wirklich nur neu gezeichnet werden muss.
    In Deiner Schleife fängst Du immer wieder bei x=0 an, das ist unnötig und macht es so langsam.

    Und halte Dich an die Dokumentation der Funktionen, bzgl. der Ressourcen.
    Also immer schön wieder freigeben was angefordert wurde, wenn Du es nicht mehr brauchst, so wie name22 es schon angedeutet hat.
    Verlasse Dich nicht auf AutoIt oder das OS, wegen der Aufräumarbeiten.


    Gruß
    Greenhorn

  • Label auf GDI+ Background

    • Greenhorn
    • 10. März 2012 um 15:57
    Zitat von Freaky

    Func _GuiCreateLabel ($iHwnd, $iText, $iX, $iY, $iW, $iH)
    $iGui = GUICreate ("",$iW, $iH, $iX, $iY,BitOR($WS_POPUP, $WS_VISIBLE), BitOR ($WS_EX_MDICHILD,$WS_EX_LAYERED), $iHwnd)
    GUICtrlCreateLabel ($iText,2,0,$iW,$iH,-1,$GUI_WS_EX_PARENTDRAG )
    GUICtrlSetColor (-1,0xff0000)
    GUICtrlSetFont (-1,10,400,0,"Arial", 4) ;teste auch mal 5 anstatt 4
    GUISetBkColor(0x010000, $iGui)
    _WinAPI_SetLayeredWindowAttributes($iGui, 0x010000, 255)
    EndFunc

    Alles anzeigen
    Zitat von Freaky

    Gruß,
    UEZ
    Wenn ich ein andere Hintergrundfarbe auswähle, wird diese nicht nicht stark schöner. Gibt es da keine andere lösung die mich zum Ziehl führt? Vielleicht mit der WinApi draufzeichenen?
    Sorry kenne mich da nicht so aus.
    Und aus der 4 zu 5 ändern, bringt nicht viel, da man dann den Hintergrund sieht.
    mfg Freaky


    Ich wette mit Dir, wenn Du _WinAPI_SetLayeredWindowAttributes in der Funktion weglässt, dann ist die Schrift wieder normal.

    Du kannst natürlich auch versuchen mit der WinAPI den Text zu zeichnen.

    Sieh Dir mal _WinAPI_DrawText dazu an ...


    Gruß
    Greenhorn

  • Bild in GUI in guter Qualität einbinden

    • Greenhorn
    • 10. März 2012 um 15:41

    Hi,

    nimm Bitmaps und behalte die Originalgröße bei ... ;)

    Gruß
    Greenhorn

  • Bild als Progressbar benutzen?

    • Greenhorn
    • 10. März 2012 um 15:39
    Zitat von Julien

    Weiß keiner?


    Hi,

    wenn Du die Forensuche bemühst, dann wirst Du erschlagen von Fortschrittsanzeigen aller Art. ;)


    Gruß
    Greenhorn

  • PenGuin ist 18!

    • Greenhorn
    • 10. März 2012 um 15:36

    Herzlichen Glückwunsch zum 18. Geburtstag, PenGuin ! :)

    Feiere schön und lass die Sau raus !

    [Blockierte Grafik: http://www10.pic-upload.de/17.02.12/2xeusp3i6po.gif]

    Gruß
    Greenhorn

  • Label auf GDI+ Background

    • Greenhorn
    • 9. März 2012 um 18:44
    Zitat von Freaky

    Hey,
    danke. Es funktioniert jetzt. Leider sieht es nun etwas nicht so schön aus in meiner Form.
    [Blockierte Grafik: http://s3.imgimg.de/uploads/ladeb072a407png.png]
    Oben wie es aussehen soll, unten wie es aussieht.
    Gibt es eine Möglichkeit die Qualität vom Label zu verbessern, sodass es wie auf dem Bild aussieht?


    Dieses Problem hatte ich auch schon einmal, als ich in einem Speicher-Gerätekontext einen Text gezeichnet habe und dann den Mem-DC in den originalen Speicherkontext geblittet habe. Ich nehme an hier wird es sich ähnlich oder genauso verhalten.
    Eine Lösung habe ich dafür bisher allerdings nicht gefunden, leider.

    Versuche es doch einmal so herum (nicht getestet):

    [autoit]

    ; ...
    SetTransparentBitmap($hWnd, $hImage) ; Zuerst "SetTransparentBitmap",
    $iLabel = _GuiCreateLabel ($hWnd, "test", 0,0,100,20) ; und dann "_GuiCreateLabel" aufrufen.

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

    GUISetState(@SW_SHOW, $hWnd)
    ; ...

    [/autoit]


    Gruß
    Greenhorn

  • Pointer

    • Greenhorn
    • 9. März 2012 um 09:35
    Zitat von Sprenger120

    Hi,


    währe es nicht an 0x12345679 ?


    Das ist natürlich vollkommen richtig. ;)
    Speicheradressen sind in Bytes und nicht in Bits.
    Jetzte komme ich auch schon durcheinander ...
    (Wenn die Tabletten nicht wären, hätte ich jetzt sagen können: Das war wohl ein "Bit" zuviel gestern abend ... :D )


    Gruß
    Greenhorn

  • Pointer

    • Greenhorn
    • 8. März 2012 um 17:02
    Zitat von gem

    oder verwechsle ich hier grade was?

    Ja. ;)

    Dein 8bit char befindet sich, sagen wir an der Speicheradresse 0x12345678 (32bit OS), ist aber nur 8 bit breit (ein Byte).
    Bei einer Zeichenkette wäre der nächste char an der Adresse 0x12345686 (0x12345678 + 8 ) 0x12345679 (0x12345678 + 1).
    (Ein short wäre 16 bit breit und ein int wäre 32 bit breit.)
    Die Adresse ist aber wie gesagt IMMER 32 bit bei einem 32bit OS und 64 bit bei einem 64 bit OS.

    EDIT:
    Anbindung des Arbeitsspeichers


    Gruß

  • Pointer

    • Greenhorn
    • 8. März 2012 um 16:46
    Zitat von gem

    Ich habe mal zwei Fragen zu Pointer.

    1. Woher weiß die CPU wo sich der Inhalt eines Pointers im RAM befindet?
    2. Wie groß kann der Inhalt eines Pointers sein.

    Währe nett wenn mich aufklären könntet.


    Zu 1.
    Weil der Inhalt der Zeigervariablen die Speicheradresse enthält.

    Zu 2.
    Auf 32bit Systemen sind es immer 32bit, auf 64bit Systemen 64bit.


    Gruß
    Greenhorn

  • Zugriff Dateisystem

    • Greenhorn
    • 8. März 2012 um 16:43

    Hi Anna,

    das geht leider nicht über Windows.
    Das hat auch nichts mit der Programmiersprache zu tun.
    Dafür bräuchtest Du einen Treiber, so wie es ihn z.B. für den Zugriff auf ext3 gibt.
    Für xfs gibt es keinen, soweit ich weiß.

    Du wirst wohl ein installiertes oder ein Live-Linux benötigen um darauf zuzugreifen.


    Gruß
    Greenhorn

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™