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

  • Lupenfunktion ohne Flimmern?

    • Greenhorn
    • 31. Dezember 2007 um 00:07

    Hi Tweaky,

    ich habe mal ein wenig herumprobiert ...
    SplashTextOn ist in zu vielen Schleifen und wird jedesmal neu gezeichnet.
    Ich habe das Flimmern etwas herausbekommen, zumindest bei der Lupe ... ;)

    Spoiler anzeigen
    [autoit]

    ;*********************************************
    ; Auswahlbereich anzuzeigen *
    ;*********************************************

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

    Func draw_label()
    Local $User1DLL = DllOpen("user32.dll")
    Local $MouseCoordMode, $Start_Pos1, $Ausschnitt, $Mouse_Pos
    $Ausschnitt = GUICtrlCreateLabel('', 0, 0, 1, 1, $SS_SUNKEN)
    GUICtrlSetBkColor($Ausschnitt, 0)

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

    $MouseCoordMode = Opt('MouseCoordMode', 2)
    $Start_Pos1 = MouseGetPos()
    Local $Pos_Lupe = MouseGetPos()
    Local $Pos_Screen = ToolTip("X-Pos.: " & $Pos_Lupe[0] & @LF & "Y-Pos.: " & $Pos_Lupe[1] & @LF & "Breite: " & $Pos_Lupe[0] - $Start_Pos1[0] & @LF & "Höhe: " & $Pos_Lupe[1] - $Start_Pos1[1], $Pos_Lupe[0] + 20, $Pos_Lupe[1] + 120)
    Local $Lupe = SplashTextOn("Lupe", "", 100, 100, $Pos_Lupe[0] + 20, $Pos_Lupe[1] + 20, 1)
    Global $MyhWnd = WinGetHandle("Lupe")
    While 1

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

    While _IsPressed("01", $User1DLL)
    $Mouse_Pos = MouseGetPos()
    $Pos_Lupe = MouseGetPos()
    Lupe()

    ;links oben nach rechts unten:
    If $Mouse_Pos[1] > $Start_Pos1[1] And $Mouse_Pos[0] > $Start_Pos1[0] Then
    GUICtrlSetPos($Ausschnitt, $Start_Pos1[0], $Start_Pos1[1], $Mouse_Pos[0] - $Start_Pos1[0], $Mouse_Pos[1] - $Start_Pos1[1])
    Sleep(10)
    EndIf
    ;links unten nach rechts oben:
    If $Mouse_Pos[1] < $Start_Pos1[1] And $Mouse_Pos[0] > $Start_Pos1[0] Then
    GUICtrlSetPos($Ausschnitt, $Start_Pos1[0], $Mouse_Pos[1], $Mouse_Pos[0] - $Start_Pos1[0], $Start_Pos1[1] - $Mouse_Pos[1])
    Sleep(10)
    EndIf
    ;rechts oben nach links unten:
    If $Mouse_Pos[1] > $Start_Pos1[1] And $Mouse_Pos[0] < $Start_Pos1[0] Then
    GUICtrlSetPos($Ausschnitt, $Mouse_Pos[0], $Start_Pos1[1], $Start_Pos1[0] - $Mouse_Pos[0], $Mouse_Pos[1] - $Start_Pos1[1])
    Sleep(10)
    EndIf
    ;rechts unten nach links oben:
    If $Mouse_Pos[1] < $Start_Pos1[1] And $Mouse_Pos[0] < $Start_Pos1[0] Then
    GUICtrlSetPos($Ausschnitt, $Mouse_Pos[0], $Mouse_Pos[1], $Start_Pos1[0] - $Mouse_Pos[0], $Start_Pos1[1] - $Mouse_Pos[1])
    Sleep(10)
    EndIf
    WEnd

    Opt('MouseCoordMode', $MouseCoordMode)
    Return $Ausschnitt
    Sleep(10)
    WEnd
    DllClose($User1DLL)
    EndFunc ;==>draw_label()

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

    Gruß
    Greenhorn

  • Komisch

    • Greenhorn
    • 30. Dezember 2007 um 23:13

    Hast Du die Au3Lib installiert ?
    Deinstalliere die Au3Lib, die brauchst Du eigentlich nicht mehr ...
    http://www.autoitscript.com/forum/index.php?s=&showtopic=59070&view=findpost&p=445347


    Gruß
    Greenhorn

  • True Transparency

    • Greenhorn
    • 30. Dezember 2007 um 22:55

    @Gta
    Ich habe keine Unschärfe ..., glasklar.;)

    @Bug
    Selbstverständlich ist das nur Kitsch. Aber so für zwischendurch mal ... :D


    Gruß
    Greenhorn

  • True Transparency

    • Greenhorn
    • 30. Dezember 2007 um 08:13

    Vista Aero Glass Style für euren Desktop !

    Läuft bei mir sehr Resourcenschonend und so gut wie ruckelfrei ;)
    Windows Blinds ist kein Muss mehr !

    Für xp:
    http://www.crystalxp.net/galerie/en.id.…lorer-tools.htm

    Für Gnome/KDE:
    http://www.kde-look.org/content/show.p…y?content=71808

    [Blockierte Grafik: http://www.crystalxp.net/galerie/img/im…efreut-5139.jpg]

    Gruß
    Greenhorn

    Edit: Der 'Schnee' hier im Board lässt meine CPU zwischen 30 und 60 % ackern ... ;)

  • Komisch

    • Greenhorn
    • 30. Dezember 2007 um 02:59

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

  • FtpPutFile - Wie viel ist bereits hochgeladen ?

    • Greenhorn
    • 29. Dezember 2007 um 20:20

    Bitte sehr ...

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ;
    ; Function Name: _FTPGetFileSize()
    ; Description: Gets filesize of a file on the FTP server.
    ; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
    ; $s_FileName - The file name.
    ; Requirement(s): DllCall, wininet.dll
    ; Return Value(s): On Success - 1
    ; On Failure - 0
    ; Author(s): J.o.a.c.h.i.m. d.e. K.o.n.i.n.g.
    ;
    ;===============================================================================

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

    Func _FTPGetFileSize($l_FTPSession, $s_FileName)

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

    Local $ai_FTPGetSizeHandle = DllCall('wininet.dll', 'int', 'FtpOpenFile', 'long', $l_FTPSession, 'str', $s_FileName, 'long', 0x80000000, 'long', 0x04000002, 'long', 0)
    If @error OR $ai_FTPGetSizeHandle[0] = 0 Then
    MsgBox(16,"Error", "FTPOpenFile Failed; Handle = " & $ai_FTPGetSizeHandle[0])
    SetError(-1)
    Return 0
    EndIf
    Local $ai_FTPGetFileSize = DllCall('wininet.dll', 'int', 'FtpGetFileSize', 'long', $ai_FTPGetSizeHandle[0])
    If @error OR $ai_FTPGetFileSize[0] = 0 Then
    MsgBox(16,"Error", "FTPGetFileSize Failed; Handle = " & $ai_FTPGetFileSize[0])
    SetError(-1)
    Return 0
    EndIf
    DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'str', $ai_FTPGetSizeHandle)

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

    Return $ai_FTPGetFileSize[0]

    EndFunc;==> _FTPGetFileSize()

    [/autoit]

    Gruß
    Greenhorn

    Edit: Zeige doch bitte mal den ganzen Code für die Upload-Geschichte.
    Vielleicht liegt der Fehler ja woanders. Probiere doch mal das Upload Tool ..., wenn es funzt, dann weisst Du, dass es mit InetGetSize geht .... ;)

  • Komisch

    • Greenhorn
    • 29. Dezember 2007 um 15:01

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

  • FtpPutFile - Wie viel ist bereits hochgeladen ?

    • Greenhorn
    • 29. Dezember 2007 um 14:50

    Hmmm, hast Du dir das hier mal angesehen ?

    FTP-Uploader

    Wenn ich mir das Beispielbild ansehe, beinhaltet es genau das wonach Du suchst, oder ?
    [Blockierte Grafik: http://xs122.xs.to/xs122/07526/ftpuploader.jpg]

    [autoit]

    $DestFileSize = 1
    While $DestFileSize < $size_upload_file
    Sleep(100)
    $DestFileSize = InetGetSize($path_to_uploaded_file)
    $Percent = round(($DestFileSize/$size_upload_file )*100,0)
    GUICtrlSetData($progress_single_file,$Percent)
    GUICtrlSetData($progress_state_single_file,$Percent & "% done")
    WEnd

    [/autoit]


    Gruß
    Greenhorn

  • Komisch

    • Greenhorn
    • 28. Dezember 2007 um 22:08

    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

    Bilder

    • blase.gif
      • 1,84 kB
      • 240 × 400
  • StderrRead Problem !

    • Greenhorn
    • 23. Dezember 2007 um 21:52

    Habe das Problem anderweitig gelöst.

    Wenn ich bei einem Pw geschütztem Archiv 'UnRAR.exe' mit dem Parameter '-p""'(ohne Pw) aufrufe fragt es nach dem Pw und erwartet eine Eingabe.
    Nehme ich stattdessen den Parameter '-p-' (keine Pw Abfrage) beendet sich UnRAR.exe und mein Script läuft weiter.

    Die Antwort auf meine Frage ist es aber nicht !


    Gruzß
    Greenhorn

  • Variablen zusammensetzen?

    • Greenhorn
    • 23. Dezember 2007 um 09:47
    [autoit]

    Func save()

    auslesen()
    For $i = 1 To 2
    $Key = Eval('mkloginverz_' & $i)
    $ValueX = Eval('mklogin' & $i & 'x')
    $ValueY = Eval('mklogin' & $i & 'y')
    IniWrite(@ScriptDir & '\save.ini', $Key, $ValueX)
    IniWrite(@ScriptDir & '\save.ini', $Key, $ValueX)
    Next
    For $i = 1 To 5
    $Key = Eval('linky_verz' & $i)
    $ValueX = Eval('linky' & $i & 'x')
    $ValueY = Eval('linky' & $i & 'y')
    IniWrite(@ScriptDir & '\save.ini', $Key, $ValueX)
    IniWrite(@ScriptDir & '\save.ini', $Key, $ValueX)
    Next

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

    EndFunc

    [/autoit]
  • Variablen zusammensetzen?

    • Greenhorn
    • 23. Dezember 2007 um 08:17

    Also wenn ich dich richtig verstehe sind "x" & "y" die eigentlichen Variablen, oder !?
    Es wäre von Vorteil, wenn Du deine Funktion "auslesen()" mal postest, damit man weiss was da überhaupt zurückgegeben wird ...
    Deine For-Schleife macht keinen Sinn, wenn Du nur zwei Werte hast.
    Und wenn Du sie unbedingt nutzen willst, dann gleich mit $i und nicht mit $r und dann $i inkrementieren. ;)

    Spoiler anzeigen
    [autoit]

    Func auslesen()

    $x = 'Variable_X'
    $y = 'Variable_Y'

    EndFunc

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

    Func save()

    auslesen()
    IniWrite(@ScriptDir & "/save.ini", "mk_login","mklogin1" & $x, "mklogin1" & $x)
    IniWrite(@ScriptDir & "/save.ini", "mk_login","mklogin2" & $y, "mklogin2" & $y)

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

    EndFunc

    [/autoit]


    Oder:

    [autoit]

    Func save()

    auslesen()
    For $i = 1 To 2
    IniWrite(@ScriptDir & "/save.ini", "mk_login","mklogin" & $i & $x, "mklogin" & $i & $x)
    Next

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

    EndFunc

    [/autoit]

    Gruß
    Greenhorn

  • StderrRead Problem !

    • Greenhorn
    • 23. Dezember 2007 um 05:24

    Moin,

    bitte entschuldigt den Doppelpost, aber ich glaube im englischsprachigen Forum versteht man nicht worauf ich hinaus will ...

    Also, ich möchte ein externes Tool starten und StderrREad & StdoutRead benutzen um die Ausgaben zu verwerten.

    Wenn ich es als Script laufen lasse funktioniert es komischerweise einwandfrei, aber wenn ich es kompiliere, dann bleibt es hängen !

    Der Fehler ist, wenn StderrRead keine Message erhält, dann pausiert das Script !
    Das soll es aber nicht !!!
    Ich habe in der Hilfe etwas über das "peek" Argument gelesen, aber verstehe nicht so recht wie ich den nutzen kann, bzw. ob es überhaupt die Lösung des Problems ist.

    Spoiler anzeigen
    [autoit]

    Func _UnRAR_Archive($sArchiveDir, $sArchive, $sPassword = '', $sDirectory = '')

    If FileExists($sArchiveDir & '\' & $sArchive) Then
    Select
    Case $sPassword = '' And $sDirectory = ''
    $pidUnRAR = Run(@ScriptDir & '\UnRAR.exe x -o+ "' & $sArchiveDir & '\' & $sArchive & '"', $sArchiveDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    _Stream_Read($pidUnRAR)
    If @error = 3 Then Return SetError(1) ; Password required.
    Case $sPassword = '' And $sDirectory <> ''
    $pidUnRAR = Run(@ScriptDir & '\UnRAR.exe x -o+ "' & $sArchiveDir & '\' & $sArchive & '" "' & $sDirectory & '"', $sArchiveDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    _Stream_Read($pidUnRAR)
    If @error = 3 Then Return SetError(1) ; Password required.
    Case $sPassword <> '' And $sDirectory = ''
    $pidUnRAR = Run(@ScriptDir & '\UnRAR.exe x -o+ -p"' & $sPassword & '" "' & $sArchiveDir & '\' & $sArchive & '"', $sArchiveDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    _Stream_Read($pidUnRAR)
    If @error = 2 Then Return SetError(2) ; Password incorrect.
    Case $sPassword <> '' And $sDirectory <> ''
    $pidUnRAR = Run(@ScriptDir & '\UnRAR.exe x -o+ -p"' & $sPassword & '" "' & $sArchiveDir & '\' & $sArchive & '" "' & $sDirectory & '"', $sArchiveDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    _Stream_Read($pidUnRAR)
    If @error = 2 Then Return SetError(2) ; Password incorrect.
    EndSelect
    EndIf

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

    EndFunc ;==>_UnRAR_Archive

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

    Func _Stream_Read($PID)

    While 1
    $line = StdoutRead($PID)
    If @error Then
    ExitLoop
    ElseIf StringInStr($line, 'No files to extract') Then
    ;Return SetError(1)
    ElseIf StringInStr($line, 'All OK') Then
    Return
    EndIf
    WEnd

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

    While 1
    $line = StderrRead($PID)
    If @error Then
    ExitLoop
    ElseIf StringInStr($line, 'password incorrect') And Not StringInStr($line, 'Enter password (will not be echoed)') Then
    Return SetError(2)
    ElseIf StringInStr($line, 'Enter password (will not be echoed)') Then
    Return SetError(3)
    EndIf
    WEnd

    EndFunc ;==>_Stream_Read

    [/autoit]

    Gruß
    Greenhorn

  • Plattform-Entwicklung

    • Greenhorn
    • 23. Dezember 2007 um 04:31

    Hi,

    ich könnte und würde gern helfen !

    Sagt mir bitte was, wie wo !!!


    Greenhorn

  • Hauptbutton festlegen

    • Greenhorn
    • 8. Dezember 2007 um 19:10

    Da mir viele Teile des Scripts fehlen, kann iches nur beschränkt testen ...

    Das mit dem Add-Button macht eigentlich wenig Sinn, besser wäre es so in der Art ...

    Spoiler anzeigen
    [autoit]


    While 1

    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $urlinput
    GUICtrlSetData($urllist, GUICtrlRead($urlinput))
    GUICtrlSetData($urlinput, "www.")
    Case $urllist
    GUICtrlSetStyle($ok2, $BS_DEFPUSHBUTTON)
    EndSwitch
    WEnd

    [/autoit]


    Gruß
    Greenhorn

    @Admins
    Ich bitte nochmals um Korrektur der AutoIt Code Darstellung, die Tababstände werden hier irgendwie doppelt so groß dargestellt, wie in Scite.
    Wenn ich hier die Tab Abstände auf 2 Leerzeichen kürze sieht's normal aus ! (s.o.)
    Danke

  • Verschachtelung von Whileschleifen

    • Greenhorn
    • 6. Dezember 2007 um 14:22

    Versuche es mal so ...

    Spoiler anzeigen
    [autoit]

    #include <user_gui.au3>
    #include <Process.au3>
    #include <GUIComboBox.au3>

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

    While 1
    $msg = GUIGetMsg()

    Select
    Case $msg = $GUI_event_close Then
    Exit
    Case $msg = $CANCEL
    _RunDos("net use z: /delete ")
    Exit
    Case $msg = $SAVE
    Case $msg = $STATUS
    Case $msg = $LADEN
    Laden()
    EndSelect
    Wend

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

    Func Laden()

    ; Add files
    _GUICtrlComboBox_BeginUpdate ($Combo)
    _GUICtrlComboBox_AddDir ($Combo, $PFADAKTUELL & "n2nSA\db\*",$DDL_DIRECTORY, True)
    _GUICtrlComboBox_EndUpdate ($Combo)


    $SERVER = GUICreate("SERVER", 223, 61, 193, 115)
    $STOK = GUICtrlCreateButton("OK", 144, 32, 75, 25, 0)
    $Combo = GUICtrlCreateCombo("", 8, 8, 209, 100)

    GUISetState(@SW_SHOW, $SERVER)

    While 1

    $srvMsg = GUIGetMsg()

    Switch $srvMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($SERVER)
    ExitLoop
    Case $STOK
    MsgBox(0,"","test " & _GUICtrlComboBox_GetEditText ($Combo))
    EndSwitch

    WEnd
    GUIDelete($SERVER)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • array an func übergeben

    • Greenhorn
    • 6. Dezember 2007 um 13:15
    Zitat von BugFix

    Greenhorn:
    Deine Lösung funktioniert zwar, aber es ist wenig vorteilhaft für evtl. ..zig Einträge einzeln die ID zu speichern und das dann auch noch einzeln in einer Case-Struktur auszuwerten.
    Hier empfiehlt sich immer ein Array.

    Sollte ja auch nur zur Demonstration sein ... ;)


    Gruß
    Greenhorn

  • array an func übergeben

    • Greenhorn
    • 6. Dezember 2007 um 02:11

    Irgendwie scheint der Editor zu spinnen ..., beim Editieren wird der geänderte AutoIt Code nicht mehr angezeigt ... 8|

    Egal ..., hier nochmal die editierte Version von mir ...

    Spoiler anzeigen
    Code
    #include <GuiConstants.au3>
    
    
    Opt('GUIOnEventMode', 1)
    
    
    Dim $my_array[8]
    $my_array[0] = 'eins'
    $my_array[1] = 'zwei'
    $my_array[2] = 'drei'
    $my_array[3] = 'vier'
    $my_array[4] = 'fünf'
    $my_array[5] = 'sechs'
    $my_array[6] = 'sieben'
    $my_array[7] = 'acht'
    
    
    GUICreate('test')
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    $menue_punkte=GUICtrlCreateContextMenu()
    GUISetState()
    
    
    For $i = 0 To UBound($my_array) -1
    Switch $i
    Case 0
    $hItem1 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 1
    $hItem2 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 2
    $hItem3 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 3
    $hItem4 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 4
    $hItem5 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 5
    $hItem6 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 6
    $hItem7 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 7
    $hItem8 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    EndSwitch
    
    
    Next
    
    
    
    
    While 1
    Sleep(10)
    Wend
    
    
    
    
    
    
    Func machwas()
    
    
    $idItemX = @GUI_CTRLID
    
    
    Switch $idItemX
    Case 4
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "eins" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 5
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "zwei" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 6
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "drei" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 7
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "vier" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 8
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "fünf" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 9
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "sechs" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 10
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "sieben" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 11
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "acht" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    EndSwitch
    
    
    EndFunc
    
    
    Func _End()
    
    
    Exit
    
    
    EndFunc
    Alles anzeigen
  • array an func übergeben

    • Greenhorn
    • 6. Dezember 2007 um 00:32

    Vielleicht so etwas in der Art ...

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>

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

    Opt('GUIOnEventMode', 1)

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

    Dim $my_array[8]
    $my_array[0] = 'eins'
    $my_array[1] = 'zwei'
    $my_array[2] = 'drei'
    $my_array[3] = 'vier'
    $my_array[4] = 'fünf'
    $my_array[5] = 'sechs'
    $my_array[6] = 'sieben'
    $my_array[7] = 'acht'

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

    GUICreate('test')
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    $menue_punkte=GUICtrlCreateContextMenu()
    GUISetState()

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

    For $i = 0 To UBound($my_array) -1
    Switch $i
    Case 0
    $hItem1 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 1
    $hItem2 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 2
    $hItem3 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 3
    $hItem4 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 4
    $hItem5 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 5
    $hItem6 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 6
    $hItem7 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    Case 7
    $hItem8 = GUICtrlCreateMenuitem ($my_array[$i],$menue_punkte)
    GUICtrlSetOnEvent (-1,'machwas')
    EndSwitch

    Next


    While 1
    Sleep(10)
    Wend

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

    Func machwas()

    $idItemX = @GUI_CTRLID

    Switch $idItemX
    Case 4
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "eins" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 5
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "zwei" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 6
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "drei" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 7
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "vier" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 8
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "fünf" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 9
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "sechs" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 10
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "sieben" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    Case 11
    MsgBox(64, 'Menuitem clicked ...', 'Menuitem "acht" wurde angeklickt !' & @CRLF & 'Control ID = ' & $idItemX)
    EndSwitch

    EndFunc

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

    Func _End()

    Exit

    EndFunc

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


    Gruß
    Greenhorn

    Edit: Die Anzeige des Quellcodes ist komisch formatiert, seit dem neuen Board ... Ich meine die Abstände der Tabs.

  • 1 hotkeyset soll 2 verschiedene dinge tun wenn man ihn drückt...

    • Greenhorn
    • 4. Dezember 2007 um 00:21

    ... ungetestet, aber sollte gehen ... ;)

    Spoiler anzeigen
    [autoit]

    Dim $hidden = 0
    HotKeySet("!A", "_vis")

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

    While 1
    Sleep(250)
    WEnd

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

    Func _vis()

    If $hidden = 0 Then ;Alle Files und Ordner einblenden
    RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced', 'Hidden', 'REG_DWORD', '00000001')
    $hidden = 1
    Else
    RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced', 'Hidden', 'REG_DWORD', '00000002')
    $hidden = 0
    EndIf

    EndFunc

    [/autoit]


    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™