Komisch

  • Also ich habe ein Script, das zwar grob funktioniert, aber vom Aussehen her nicht.

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

    #include <GUIConstants.au3>

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

    $inp_pw = InputBox("Passworteingabe", "Bitte Passwort eingeben:", "*********", "")

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

    While 1
    Select
    Case $inp_pw = "Passwort"
    MsgBox(0, "", "Passwort okay ") ; hier das Script wenn okay
    Sleep(2000) ; zum testen

    Case $inp_pw <> "Passwort" ; hier das Script wenn NICHT okay

    $gui1 = GUICreate("", 200, 200, -1, -1, $WS_POPUP)

    WinSetTrans($gui1 , "", 225) ; Win Semitrasparent
    GuiCtrlCreatePic(@ScriptDir & '\sbgif.gif', 0, 0, 200, 200)
    GUICtrlCreateLabel("Bitte Klein- und Großschrift beachten.", 50, 50, 100, 100)
    GUISetState(@SW_SHOW)
    Sleep(3000)
    GUISetState(@SW_HIDE)
    ExitLoop

    EndSelect
    WEnd

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

    Wenn das Passwort falsch ist, soll das GUIangezeigt werden und zwar so, das sich dabei auch die Möglichkeit ergibt, wieder das Passwort und die Spitze von der Sprachblase soll etwas in das Eingabefenmster gehen oder ganz leicht da drunter.

    Freue mich schon auf Hilfe, denn das ganze sollte doch machbar sein.

    Ich weiß, das ich noch nicht so weit bin, aber ich habe fast 3 Stunden nach einer Lsg. gesucht und nichts gefunden.

    Danke für die Hilfe. Werde gleich wieder sehen, das ich mein Bein hoch bekomme und schaue später wieder rein.

    LG, Lina.

    Unbenannt.bmp

    Für die, die wissen wollen, warum bein hoch: naja, frische OP-Narben / Wunden schwellen an und müssen hochlagernd gekühlt werden. Nur ich kann mein Po nicht so lange im Bett lassen. ;)

    Edit BugFix: Spoiler richtig gesetzt ;)

    Bilder

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von BugFix (28. Dezember 2007 um 18:18)

  • Hi (A)lina,

    bei richtiger Pin Eingabe kommt es immer wieder zur Ausgabe: „PW ok“. ?(
    Vorschlag, währe ein If -Then vielleicht besser ?

    Spoiler anzeigen
    [autoit]


    Dim $_PinNummer
    $_PinNummer = InputBox(" PIN - Nummer", " Bitte Ihre PIN eingeben: ", " - Hier Ihre Eingabe bitte ! - ", "", 1, 1, -1, -1)
    If $_PinNummer = 1234 Then
    MsgBox(0," RR04 PIN", " Ihre PIN - Nummer ist richtig ! ")
    Else
    MsgBox(48," RR04 PIN", " Ihre PIN - Nummer ist falsch , " & @LF & " probieren Sie mal die 1234 ! ")
    EndIf

    [/autoit]

    Schöne Feiertage und weiterhin
    viel Erfolg !

    Man liest sich...
    Euer Ritzelrocker04

  • @Ritzelrocker04

    Erst einmal Danke, auch wenn es das eigentliche Problem, nämlich das mit dem GUI, nicht gelöst hat.

    Die If/Then Variante habe ich ja bereits erfolgreich gespeichert. Es geht hier darum, das ich das GUI einblenden möchte. Besonderes Problem ist bei Passwörtern bekanntlich ja, das sich die Anwender diese nicht merken oder aber die Klein- und Großschrift nicht beachten. Alzheimer ist ein med. Problem, die Beachtung der Klein- und Großschrift eine Programmsache. Deshalb doch ein freundlicher Hinweis mit einer schönen WinDoof-Sprachblase. Ist auch gar nicht einmal meine Idee, aber ich habe ja schon mal die Sprachblase und das lauffähige Script. Nur bei der Anzeige, da ist noch das Problem.

    Aktueller Stand (hier das "PW ok" versucht zu berichtigen)

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

    #include

    $inp_pw = InputBox("Passworteingabe", "Bitte Passwort eingeben:", "*********", "")

    While 1
    Select
    Case $inp_pw = "Passwort"
    MsgBox(0, "", "Passwort okay ") ; hier das Script wenn okay
    Sleep(2000) ; zum testen
    ExitLoop

    Case $inp_pw <> "Passwort" ; hier das Script wenn NICHT okay

    $gui1 = GUICreate("", 200, 200, -1, -1, $WS_POPUP)
    $inp_pw = InputBox("Passworteing abe", "Bitte Passwort eingeben:", "*********", "")
    WinSetTrans($gui1 , "", 225) ; Win Semitrasparent
    GuiCtrlCreatePic(@ScriptDir & '\sbgif.gif', 0, 0, 200, 200)
    GUICtrlCreateLabel("Bitte Klein- und Großschrift beachten.", 50, 50, 100, 100)
    GUISetState(@SW_SHOW)
    Sleep(3000)
    GUISetState(@SW_HIDE)

    EndSelect
    WEnd

    MsgBox(0, "", "Ab hier geht es dann richtig los") ; Programmstart

    [/autoit]
    [autoit][/autoit]

    @Ritzelrocker04
    Wegen des "PW ok", dieses ist schon gelößt. Statt des Msg beim richtigen Passwort kommt dann ein Aufruf einer Funktion und dann ein ExitLoop. Sollte funktionieren. Oder Schleifer erst verlassen und dann direkt weiter machen und gar nicht in der Schleife mit der Funktionsausführung arbeiten.undefined Naja, muß ich drüber nach denken. Bekomme hier schon wieder Streß. Weil mit Bettruhe schon wieder am PC. Nehme gleich mein Laptop mit ins Bett. ^^

    So, ganz liebe Grüße und seit brav. Geknallt wird erst am 31.12. ;-)</GUIConstants.au3></GUIConstants.au3>

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    2 Mal editiert, zuletzt von Alina (28. Dezember 2007 um 18:44)

  • @(A)lina,

    so richtig will es noch gar nicht ! ?(
    Zu dem Problem:
    Das Fenster verhält sich bei mir wie ein normales. Für Ihre Zwecke sollte es doch zusammen mit der Passwort abfrage aufgehen. Ein Kind bzw. Child-Fenster vielleicht und die Koordinaten (Fensterposition) kann man dann eingeben.

    Spoiler anzeigen
    [autoit]


    While 1
    $msg = GUIGetMsg(1)
    Select
    Case $msg[0] = $GUI_EVENT_CLOSE
    If $msg[1] = $ChildWin Then
    MsgBox(64, "Test", "Child GUI will now close.")
    GUISwitch($ChildWin)
    GUIDelete()
    ElseIf $msg[1] = $ParentWin Then
    MsgBox(64, "Test", "Parent GUI will now close.")
    GUISwitch($ParentWin)
    GUIDelete()
    Exit
    EndIf
    EndSelect
    WEnd

    [/autoit]

    Schöne Feiertage und weiterhin
    viel Erfolg !

    Man liest sich...
    Euer Ritzelrocker04

  • Ja, schaut interessant aus.

    Ob ich das so "zusammenkleben" kann, da schaue ich mal. Irgendwie fehlt mir da derzeitig aber der Durchblick.


    Danke und Dir auch schöne Feiertag.

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • @(A)lina,

    ein weiteres Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    $gui1 = GUICreate('GUI 1', 800, 600, -1, -1)
    $button1 = GUICtrlCreateButton('Aufruf GUI 2', 20, 20, 100, 21)

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

    $gui2 = GUICreate('GUI 2', 300, 200, -1, -1)
    $button2 = GUICtrlCreateButton('Zurück zu GUI 1', 20, 20, 100, 21)

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

    GUISetState(@SW_SHOW, $gui1)

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

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[1] ; window-handle
    Case $gui1
    Switch $msg[0] ; event/control-handle
    Case $button1
    GUISetState(@SW_HIDE, $gui1)
    GUISetState(@SW_SHOW, $gui2)
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    Case $gui2
    Switch $msg[0]
    Case $button2
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2)
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

    Man liest sich...
    Euer Ritzelrocker04

  • Ja, Danke, danke !!!

    Ich werde mal versuchen durchzublicken.

    "Merci": für die Fahnen. Aber wieso die Sternenfahne? ;) Wenn ich mal wieder etwas besser sitzen kann, mache ich wohl mal ein Profilbild draus.

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hi Lina,

    ich hoffe Du hattest ein paar schöne und stressfreie Feiertage ... ;)

    probiere es mal so ... (dein überarbeites Bild ist im Anhang)

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>

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

    Dim $Pw = 'Dänemark'

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

    $inp_pw = InputBox("Passworteingabe", "Bitte Passwort eingeben:", "*********", "*", 250, 130)
    If @error = 1 Then Exit ; Abbrechen ...

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

    While 1
    Select
    Case StringCompare($Pw, $inp_pw, 1) = 0 ; Strings sind gleich ...
    MsgBox(0, "", "Passwort okay ", 2) ; hier das Script wenn okay
    ExitLoop
    Case Else
    ; hier das Script wenn NICHT okay
    $gui1 = GUICreate("", 240, 400, (@DesktopWidth / 2) - 180, (@DesktopHeight / 2) + 30, $WS_POPUP, $WS_EX_TOPMOST + $WS_EX_LAYERED)

    GuiCtrlCreatePic(@ScriptDir & '\Images\sbgif.gif', 0, 0, 240, 400)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateLabel("Bitte Klein- und Großschrift beachten.", 50, 50, 150, 200)
    GUICtrlSetColor(-1, 0xff0000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 12, 800, 6,'Comic Sans MS')
    GUISetState(@SW_SHOW)
    $inp_pw = InputBox("Passworteingabe", "Bitte Passwort eingeben:", "*********", "*", 250, 130)
    If @error = 1 Then ExitLoop ; Abbrechen ...
    GUIDelete()
    If StringCompare($Pw, $inp_pw, 1) = 0 Then ; Strings sind gleich ...
    MsgBox(0, "", "Passwort okay ", 2)
    ExitLoop
    EndIf
    EndSelect
    WEnd

    [/autoit]


    Allerdings musst Du WinSetTrans weglassen, sonst funzt die Transparenz des gifs nicht !
    Lies dir in der Hilfe bitte GuiCtrlCreatePic() genau durch und sieh dir das Bsp. mit dem Merlin.gif an ... ;)

    [Blockierte Grafik: http://xs122.xs.to/xs122/07526/trulli.png]

    Lieben Gruß
    Greenhorn
    logo-autoit2.png

  • Vielen Dank,

    die Lsg. ist genau das was ich mir gewünscht habe.

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Freut mich, dass es dir gefällt :D

    Jedoch ist es nicht ganz das was Du möchtest, glaube ich ...

    Wenn die Sprechblase nur für ein paar Sekunden zu sehen sein soll, dann musst Du statt der InputBox eine kleine Gui erstellen, da das Script bei der inputBox pausiert und somit die Sprechblase erst nach der Eingebe - also wenn das Script weiterläuft - ausgeblendet/zerstört werden kann ... ;)


    Gruß
    Greenhorn

    Edit: Oder: Sprechblase in eine Func packen und dann mit AdlibEnable ...


  • :P Ich hab gestern auch mal an so was rumgebastelt:

    Spoiler anzeigen
    [autoit]

    #Include <GUIConstants.au3>
    #include <A3LGDIPlus.au3>

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

    If Not IsDeclared("AC_SRC_ALPHA") Then Global Const $AC_SRC_ALPHA = 1
    If Not IsDeclared("ULW_ALPHA") Then Global Const $ULW_ALPHA = 2
    Dim $ar[2][2] = [["test","du"],["hi","er"]]
    If _ViPasswordDialog($ar) Then MsgBox(0, '', "ja")

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

    ;===============================================================================
    ;
    ; Function Name: _ViPasswordDialog($ArUserwithPW)
    ; Description:: Öffnet einen Vista-ähnlichen Logon-Dialog
    ; Parameter(s): $ArUserwithPW - 3 Möglichkeiten:
    ; 1) Ein Passwort
    ; 2) Ein Eindimensionales Array mit mehreren Passwörtern.
    ; 3) Ein Zweidimensionales Array:
    ; Array[$i][0] -> Passwort
    ; Array[$i][1] -> Benutzername
    ; Requirement(s): <A3LGDIPlus.au3> -> Au3Lib
    ; Return Value(s): Erfolg: 1, Fehler: 0
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;

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

    Func _ViPasswordDialog($ArUserwithPW)
    $height = @DesktopHeight
    $width = @DesktopWidth
    ;$height = 500
    $PWGUI = GUICreate("Password Dialog",$width,$height,0,0,$WS_POPUP+$DS_SETFOREGROUND,$WS_EX_TOPMOST)
    GUICtrlCreatePic(@ScriptDir &"\login.jpg",-(1759-$width)/2,-(1419-$height)/2,1759,1419)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $lOK = GUICtrlCreateLabel("",$width/2+170,$height/2+78,40,40)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetCursor(-1,0)
    $lSwitch = GUICtrlCreateLabel("",$width/2-85,$height/2+228,180,35,$ES_CENTER)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetCursor(-1,0)
    $lClose = GUICtrlCreatePic(@ScriptDir & "\close.jpg",$width-90,$height-50,80,40)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetCursor(-1,0)
    $lName= GUICtrlCreateLabel("LogIn",$width/2-159,$height/2+42,310,30,$ES_CENTER)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1,14,900,-1,"Arial")
    GUICtrlSetColor(-1,0xDDDDFF)
    $aNameIn = GUICtrlCreateInput("",$width/2-159,$height/2+42,310,30,$ES_CENTER)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1,14,900,-1,"Arial")
    GUICtrlSetState(-1,$GUI_HIDE)
    $apw = GUICtrlCreateInput("",$width/2-159,$height/2+82,310,30,$ES_PASSWORD+$ES_CENTER)
    GUICtrlSetFont(-1,12,700)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $lClose
    GUIDelete($PWGUI)
    Return 0
    Case ($msg = $lOK) ;Or ($msg = $apw)
    If _Check(GUICtrlRead($apw),GUICtrlRead($lName),$ArUserwithPW) Then
    GUIDelete($PWGUI)
    Return 1
    Else
    _Balloon($width/2+180,$height/2+88)
    EndIf
    Case $msg = $lSwitch
    If BitAND(GUICtrlGetState($aNameIn), $GUI_HIDE) Then
    GUICtrlSetState($aNameIn,$GUI_SHOW+$GUI_FOCUS)
    GUICtrlSetState($lName,$GUI_HIDE)
    Else
    GUICtrlSetData($lName,GUICtrlRead($aNameIn))
    GUICtrlSetState($lName,$GUI_SHOW)
    GUICtrlSetState($aNameIn,$GUI_HIDE)
    GUICtrlSetState($apw,$GUI_FOCUS)
    EndIf
    EndSelect
    WEnd
    EndFunc

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

    Func _Check($pw,$user,$ArUserwithPW)
    If IsArray($ArUserwithPW) Then
    For $i = 0 To UBound($ArUserwithPW)-1
    If UBound($ArUserwithPW,2) = 2 Then
    MsgBox(0, '', "")
    If $ArUserwithPW[$i][0] = $user And $ArUserwithPW[$i][1] = $pw Then Return 1
    ElseIf UBound($ArUserwithPW,2) = 0 Then
    If $ArUserwithPW[$i] = $pw Then Return 1
    EndIf
    Next
    Else
    If $ArUserwithPW = $pw Then Return 1
    EndIf
    Return 0
    EndFunc

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

    Func _Balloon($iLeft = -1, $iTop = -1)
    $cur = _CreateCursor($iLeft-15,$iTop,@ScriptDir&"\balloon.png")

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

    While 1
    If Not WinActive($cur[0]) Then
    _DeleteCursor($cur)
    ExitLoop
    EndIf
    $temp = GUIGetMsg(1)
    If $temp[1] <> $cur[0] Then ContinueLoop
    $temp = $temp[0]
    If $temp = $GUI_EVENT_PRIMARYDOWN Or $temp = $GUI_EVENT_SECONDARYDOWN Then
    _DeleteCursor($cur)
    ExitLoop
    EndIf
    WEnd
    EndFunc

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

    Func _CreateCursor($iLeft = -1, $iTop = -1,$img = -1)
    Local $width, $pngSrc, $height, $hImage, $aRet[2], $CursorGUI

    _GDIP_Startup()
    If FileExists($img) Then
    $pngSrc = $img
    Else
    $pngSrc = @ScriptDir&"\balloon.png"
    EndIf
    $hImage = _GDIP_ImageLoadFromFile($pngSrc)

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


    $width = _GDIP_ImageGetWidth($hImage)
    $height = _GDIP_ImageGetHeight($hImage)

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


    $CursorGUI = GUICreate("Cur", $width, $height, $iLeft, $iTop, $WS_POPUP, $WS_EX_LAYERED+$WS_EX_TOOLWINDOW)
    SetBitmap($CursorGUI, $hImage, 0)
    $btn =GUICtrlCreateLabel("highghghg",20,60,40,20)
    GUISetState()
    WinSetOnTop($CursorGUI, "", 1)
    For $i = 0 To 255
    SetBitmap($CursorGUI, $hImage, $i)
    Next
    $aRet[0] = $CursorGUI
    $aRet[1] = $hImage
    Return $aRet
    EndFunc

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

    Func _MoveCursor($ahCur, $iLeft, $iTop)
    WinMove($ahCur[0], "", $iLeft, $iTop)
    EndFunc

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

    Func _DeleteCursor($ahCursor)

    For $i = 255 To 0 Step - 10
    SetBitmap($ahCursor[0], $ahCursor[1], $i)
    Next

    _GDIP_ImageDispose($ahCursor[1])
    GUIDelete($ahCursor[0])
    EndFunc

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

    Func OnAutoItExit()
    _GDIP_Shutdown()
    FileDelete(@TempDir&"\snw~.png")
    EndFunc

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

    Func SetBitmap($hGUI, $hImage, $iOpacity)
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend

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

    $hScrDC = _API_GetDC(0)
    $hMemDC = _API_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIP_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _API_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", _GDIP_ImageGetWidth($hImage))
    DllStructSetData($tSize, "Y", _GDIP_ImageGetHeight($hImage))
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", $iOpacity)
    DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
    _API_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _API_ReleaseDC(0, $hScrDC)
    _API_SelectObject($hMemDC, $hOld)
    _API_DeleteObject($hBitmap)
    _API_DeleteDC($hMemDC)
    EndFunc

    [/autoit]
  • Hallo.

    @progandy leider bekomme ich cirka 550 Fehlermeldung wenn ich das Script testen möchte. Welche Version von AutoIt verwendest Du. Die Includes sind alle oben angegeben (Habe ja das cool Tool das es prüft ;) ).

    Was mache ich also falsch?

    Denkt drann, morgen ist der letzte Tag. Von diesem Jahr. *fg* Die einzigen Schneeflocken sind jedoch leider nur auf dem Monitor zu sehen. Das macht einen schon traurig. Mal aus dem Fenster schauen und dann weißen Schnee sehen, das würde jetzt der Seele aber mal gut tun. ;)

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hab's dir mal 'übersetzt', die AU3Lib wurde in die 3.2.1.10 fast komplett includiert.
    Dabei haben sich die Funktionsnamen leicht geändert ... ;)

    Sieht übrigens sehr gut aus, gute Arbeit, propagandy ! :D

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>
    #include <GDIPlus.au3>
    #include <WinApi.au3>

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

    If Not IsDeclared("AC_SRC_ALPHA") Then Global Const $AC_SRC_ALPHA = 1
    If Not IsDeclared("ULW_ALPHA") Then Global Const $ULW_ALPHA = 2
    Dim $ar = 'jodeldiplom';[2][2] = [["test","du"],["hi","er"]]
    If _ViPasswordDialog($ar) Then MsgBox(0, '', "ja")

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

    ;===============================================================================
    ;
    ; Function Name: _ViPasswordDialog($ArUserwithPW)
    ; Description:: Öffnet einen Vista-ähnlichen Logon-Dialog
    ; Parameter(s): $ArUserwithPW - 3 Möglichkeiten:
    ; 1) Ein Passwort
    ; 2) Ein Eindimensionales Array mit mehreren Passwörtern.
    ; 3) Ein Zweidimensionales Array:
    ; Array[$i][0] -> Passwort
    ; Array[$i][1] -> Benutzername
    ; Requirement(s): <A3LGDIPlus.au3> -> Au3Lib
    ; Return Value(s): Erfolg: 1, Fehler: 0
    ; Author(s): Prog@ndy
    ;
    ;===============================================================================
    ;

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

    Func _ViPasswordDialog($ArUserwithPW)
    $height = @DesktopHeight
    $width = @DesktopWidth
    ;$height = 500
    $PWGUI = GUICreate("Password Dialog",$width,$height,0,0,$WS_POPUP+$DS_SETFOREGROUND,$WS_EX_TOPMOST)
    GUICtrlCreatePic(@ScriptDir &"\login.jpg",-(1759-$width)/2,-(1419-$height)/2,1759,1419)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $lOK = GUICtrlCreateLabel("",$width/2+170,$height/2+78,40,40)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetCursor(-1,0)
    $lSwitch = GUICtrlCreateLabel("",$width/2-85,$height/2+228,180,35,$ES_CENTER)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetCursor(-1,0)
    $lClose = GUICtrlCreatePic(@ScriptDir & "\close.jpg",$width-90,$height-50,80,40)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetCursor(-1,0)
    $lName= GUICtrlCreateLabel("LogIn",$width/2-159,$height/2+42,310,30,$ES_CENTER)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1,14,900,-1,"Arial")
    GUICtrlSetColor(-1,0xDDDDFF)
    $aNameIn = GUICtrlCreateInput("",$width/2-159,$height/2+42,310,30,$ES_CENTER)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1,14,900,-1,"Arial")
    GUICtrlSetState(-1,$GUI_HIDE)
    $apw = GUICtrlCreateInput("",$width/2-159,$height/2+82,310,30,$ES_PASSWORD+$ES_CENTER)
    GUICtrlSetFont(-1,12,700)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $lClose
    GUIDelete($PWGUI)
    Return 0
    Case ($msg = $lOK) ;Or ($msg = $apw)
    If _Check(GUICtrlRead($apw),GUICtrlRead($lName),$ArUserwithPW) Then
    GUIDelete($PWGUI)
    Return 1
    Else
    _Balloon($width/2+180,$height/2+88)
    EndIf
    Case $msg = $lSwitch
    If BitAND(GUICtrlGetState($aNameIn), $GUI_HIDE) Then
    GUICtrlSetState($aNameIn,$GUI_SHOW+$GUI_FOCUS)
    GUICtrlSetState($lName,$GUI_HIDE)
    Else
    GUICtrlSetData($lName,GUICtrlRead($aNameIn))
    GUICtrlSetState($lName,$GUI_SHOW)
    GUICtrlSetState($aNameIn,$GUI_HIDE)
    GUICtrlSetState($apw,$GUI_FOCUS)
    EndIf
    EndSelect
    WEnd
    EndFunc

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

    Func _Check($pw,$user,$ArUserwithPW)
    If IsArray($ArUserwithPW) Then
    For $i = 0 To UBound($ArUserwithPW)-1
    If UBound($ArUserwithPW,2) = 2 Then
    MsgBox(0, '', "")
    If $ArUserwithPW[$i][0] = $user And $ArUserwithPW[$i][1] = $pw Then Return 1
    ElseIf UBound($ArUserwithPW,2) = 0 Then
    If $ArUserwithPW[$i] = $pw Then Return 1
    EndIf
    Next
    Else
    If $ArUserwithPW = $pw Then Return 1
    EndIf
    Return 0
    EndFunc

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

    Func _Balloon($iLeft = -1, $iTop = -1)
    $cur = _CreateCursor($iLeft-15,$iTop,@ScriptDir&"\balloon.png")

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

    While 1
    If Not WinActive($cur[0]) Then
    _DeleteCursor($cur)
    ExitLoop
    EndIf
    $temp = GUIGetMsg(1)
    If $temp[1] <> $cur[0] Then ContinueLoop
    $temp = $temp[0]
    If $temp = $GUI_EVENT_PRIMARYDOWN Or $temp = $GUI_EVENT_SECONDARYDOWN Then
    _DeleteCursor($cur)
    ExitLoop
    EndIf
    WEnd
    EndFunc

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

    Func _CreateCursor($iLeft = -1, $iTop = -1,$img = -1)
    Local $width, $pngSrc, $height, $hImage, $aRet[2], $CursorGUI

    _GDIPlus_Startup()
    If FileExists($img) Then
    $pngSrc = $img
    Else
    $pngSrc = @ScriptDir&"\balloon.png"
    EndIf
    $hImage = _GDIPlus_ImageLoadFromFile($pngSrc)

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


    $width = _GDIPlus_ImageGetWidth($hImage)
    $height = _GDIPlus_ImageGetHeight($hImage)

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


    $CursorGUI = GUICreate("Cur", $width, $height, $iLeft, $iTop, $WS_POPUP, $WS_EX_LAYERED+$WS_EX_TOOLWINDOW)
    SetBitmap($CursorGUI, $hImage, 0)
    $btn =GUICtrlCreateLabel("highghghg",20,60,40,20)
    GUISetState()
    WinSetOnTop($CursorGUI, "", 1)
    For $i = 0 To 255
    SetBitmap($CursorGUI, $hImage, $i)
    Next
    $aRet[0] = $CursorGUI
    $aRet[1] = $hImage
    Return $aRet
    EndFunc

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

    Func _MoveCursor($ahCur, $iLeft, $iTop)
    WinMove($ahCur[0], "", $iLeft, $iTop)
    EndFunc

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

    Func _DeleteCursor($ahCursor)

    For $i = 255 To 0 Step - 10
    SetBitmap($ahCursor[0], $ahCursor[1], $i)
    Next

    _GDIPlus_ImageDispose($ahCursor[1])
    GUIDelete($ahCursor[0])
    EndFunc

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

    Func OnAutoItExit()
    _GDIPlus_Shutdown()
    FileDelete(@TempDir&"\snw~.png")
    EndFunc

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

    Func SetBitmap($hGUI, $hImage, $iOpacity)
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend

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

    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
    DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", $iOpacity)
    DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
    EndFunc

    [/autoit]

    Gruß
    Greenhorn

    p.s.: Du brauchst natürlich noch die Bilder aus seiner zip Datei ...


  • Greenhorn

    So, jetzt funktioniert es auch bei mir.

    Habe die Au3Lib, wie durch Greenhorn geschrieben einfach mal deinstalliert.

    DANKE und GUTEN RUTSCH !!!

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl