Hilfe zu GUI

  • So, da ich nichts zu dem Thema finden konnte
    frage ich mal hier ;)

    Bin noch neu im "Auto-It Land" und arbeite im Moment
    an einer "Toolbar". Mein Problem ist folgendes:

    Ich will eine GUI mit eigenem Design und ohne die Standart Windows Fenster drum rum.
    Praktisch eine GUI ohne Fenster.

    Wenn ich nun zum Beispiel ein Button in dieser GUI erstelle
    sollte am ende nur der Button auf dem Desktop erscheinen,
    nicht das Fenster.

    Ist dies möglich? :P

    Einmal editiert, zuletzt von Sen (30. April 2009 um 09:21)

  • Hallo Sen,

    dazu gibt es viele Skripte in diesem Forum, z.B. Digitaluhr von Oscar, und vieles andere Stichwort Transparen(z) t

    Que te vaya muy bien. (Auto)Bert

  • Hab grad mal ne Stunde investiert um mich durch
    die Suchfunktion und einige Scripts zu wühlen.

    Verstehe das ganze aber noch nicht ganz ;)

    Gibt es nicht eine möglichkeit das Hauptfenster
    Bsp:

    [autoit]

    $Form1 = GUICreate("FormBeispiel1", 640, 480, 192, 132)

    [/autoit]

    Transparent zu setzen ohne das die Buttons etc mit verschwinden?

    Stichwort

    [autoit]

    GUISetState(@SW_SHOW)

    [/autoit]
  • zB: https://autoit.de/index.php?page=Thread&threadid=2845 mit Text, aber auch mit Buttons umsetzbar

    Also so einfach wie du dir das vorstellst wird das nicht werden...

    //Edit: die wichtigste funktion für dich hierbei ist dieser hier:

    [autoit]


    Func SetWindowRgn($h_win, $rgn)
    DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $rgn, "int", 1)
    EndFunc

    [/autoit]

    http://msdn.microsoft.com/en-us/library/3w631dxe(VS.80).aspx

    Einmal editiert, zuletzt von oliverh (30. April 2009 um 07:31)

  • Du kannst es auch viel einfacher machen ;)

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>

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

    Opt('GUIOnEventMode', 1)
    HotKeySet('{Esc}', '_Ende')

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

    GUICreate("Button1", 100, 30, -1, 100, $WS_POPUP, $WS_EX_TOPMOST)
    GUICtrlCreateButton("Button1", 0, 0, 100, 30)
    GUICtrlSetOnEvent(-1, '_Button')

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

    GUISetState()

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

    GUICreate("Button2", 100, 30, -1, 200, $WS_POPUP, $WS_EX_TOPMOST)
    GUICtrlCreateButton("Button2", 0, 0, 100, 30)
    GUICtrlSetOnEvent(-1, '_Button')

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

    GUISetState()

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

    While 1
    Sleep(10000)
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

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

    Func _Button()
    MsgBox(64, "Button", "Du hast "&GUICtrlRead(@GUI_CtrlId)&" gedrückt")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • dann muss er aber für jeden button ne eigene gui machen?! naja für anfänger sicherlich einfacher als dll calls *michgeschlagengeb*

  • Danke funkey,
    da ich für das was ich umsetzen will nur maximal 10 Buttons brauche
    wirds wohl reichen ;)

    Edit:
    Funktioniert soweit klasse ;)
    EIne Frage noch, ist es möglich über eine GUI den aktuellen Standartbrowser zu öffnen? (embed)

    Einmal editiert, zuletzt von Sen (30. April 2009 um 08:40)

  • Zuerst Standardbrowser über Registry ermitteln:

    Code
    [HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Rai\:DEFBROWSER]
     "0"="Opera Browser"
     "1"="\"\Windows\OperaL.exe\""
     "2"=dword:00000001
     "3"=dword:00000000

    (im Beispiel Opera)

    danach kannst du entweder über

    [autoit]


    #include <IE.au3>
    _IECreateEmbedded ( )

    [/autoit]

    oder die Firefox UDF (mehr wird derzeit soweit ich weiß noch nicht von Autoit unterstüzt) dein entsprechendes Embedded Objekt generieren und in dein GUI einbinden. Gibts auch schon einige Beispiele im Forum.