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

Beiträge von BugFix

  • Laufwerks buchstaben ändern

    • BugFix
    • 26. Dezember 2008 um 10:26

    Dieser Code wird NUR von Windows 2003 Server unterstützt (evtl. auch höhere Serverversion), aber nicht von 2K, XP etc.

  • Welche Lösung nehmen???

    • BugFix
    • 26. Dezember 2008 um 10:12

    Falls ich mit GUIGetMsg arbeite, bevorzuge ich eine fußgesteuerte Schleife, denn ein Schleifeneintritt ist ja erwünscht/notwendig um überhaupt den Wert für die Abbruchbedingung erhalten zu können.

    [autoit]

    Do
    $msg = GUIGetMsg()
    Switch $msg
    Case $ctrl
    ; ...
    ;..
    EndSwitch
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]
  • UDF: Timestamp2array

    • BugFix
    • 26. Dezember 2008 um 09:51

    Hatte mal etwas ähnliches erstellt: extended TimerDiff()

  • "Schwebende" Button - Skriptbeispiel

    • BugFix
    • 25. Dezember 2008 um 13:23

    Raupi : Du hast völlig recht - die Zeilen kannst du streichen, das hatte ich vergessen. Sie werden nur benötigt, wenn man Titelleiste und äußere Region in der GUI hat. Da das hier nicht der Fall ist, können sie entfernt werden.

  • "Schwebende" Button - Skriptbeispiel

    • BugFix
    • 24. Dezember 2008 um 18:34

    Hi,
    ich hab gerade die neue Version 3.3.0.0 angeschaut und fand ein Winapi-Skript ganz interessant. Ich habe das Bsp. mal etwas entschlackt und leicht verändert.
    Ergebnis ist eine nicht sichbare GUI - nur die Button werden angezeigt. Das Skript ist jetzt für GUI mit POPUP-Style angepaßt. Soll die Titelleiste angezeigt werden, müssen die Parts für die Systemmetrics wieder integriert werden (s. Bsp. bei _WinAPI_CreateRoundRectRgn).

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <WinAPI.au3>

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

    Global $aButton[5]

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

    $gui = GUICreate("Test Windows regions", 150, 150, @DesktopWidth-170, -1, $WS_POPUP, $WS_EX_TOPMOST)
    $aButton[0] = GUICtrlCreateButton("Button 1", 0, 0, 150)
    $aButton[1] = GUICtrlCreateButton("Button 2", 0, 30, 150)
    $aButton[2] = GUICtrlCreateButton("Button 3", 0, 60, 150)
    $aButton[3] = GUICtrlCreateButton("Button 4", 0, 90, 150)
    $aButton[4] = GUICtrlCreateButton("Exit", 0, 120, 150)
    GUISetState(@SW_SHOW)

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

    $pos = WinGetPos($gui)
    _GuiHole($gui, 0, 0, 150, 150)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $aButton[4]
    ExitLoop
    Case $aButton[0]
    MsgBox(0, '', 'Button1 geklickt')
    Case $aButton[1]
    MsgBox(0, '', 'Button2 geklickt')
    Case $aButton[2]
    MsgBox(0, '', 'Button3 geklickt')
    Case $aButton[3]
    MsgBox(0, '', 'Button4 geklickt')
    EndSwitch
    WEnd

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

    Func _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh)
    Local $outer_rgn, $inner_rgn, $combined_rgn
    $combined_rgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
    _WinAPI_DeleteObject($outer_rgn)
    _WinAPI_DeleteObject($inner_rgn)
    _AddCtrlRegion($combined_rgn, $aButton)
    _WinAPI_SetWindowRgn($h_win, $combined_rgn)
    EndFunc ;==>_GuiHole

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

    Func _AddCtrlRegion($full_rgn, $ctrl_id)
    Local $ctrl_pos, $ctrl_rgn
    If IsArray($ctrl_id) Then
    For $i = 0 To UBound($ctrl_id) -1
    $ctrl_pos = ControlGetPos($gui, "", $ctrl_id[$i])
    $ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
    _WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
    _WinAPI_DeleteObject($ctrl_rgn)
    Next
    Else
    $ctrl_pos = ControlGetPos($gui, "", $ctrl_id)
    $ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
    _WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
    _WinAPI_DeleteObject($ctrl_rgn)
    EndIf
    EndFunc ;==>_AddCtrlRegion

    [/autoit]
  • dllcall

    • BugFix
    • 21. Dezember 2008 um 18:52

    Hab ich dir doch reinkopiert.

  • dllcall

    • BugFix
    • 21. Dezember 2008 um 18:17

    Falsche und ungenügende Parameter:

    Zitat

    Declare Function LockFile Lib "kernel32.dll" Alias "LockFile" (ByVal hFile As DWord, ByVal dwFileOffsetLow As DWord, ByVal dwFileOffsetHigh As DWord, ByVal nNumberOfBytesToLockLow As Long, ByVal nNumberOfBytesToLockHigh As Long) As Long

  • Aktuellen Cursor rausfinden...

    • BugFix
    • 21. Dezember 2008 um 17:37

    Das geht dann so:

    [autoit]

    $hWaitCurs = _LoadCursorFromFile(@WindowsDir & "\cursors\cross.cur")
    If _SetSystemCursor($hWaitCurs, $OCR_IBEAM) Then MsgBox(0, '', 'Cursor gesetzt')

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

    Func _SetSystemCursor($hCur, $id)
    Local $ret = DllCall("user32.dll", "int" ,"SetSystemCursor","int",$hCur,"int",$id)
    Return $ret[0]
    EndFunc

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

    Func _LoadCursorFromFile($lpFileName)
    Local $ret = DllCall("user32", 'long', "LoadCursorFromFileA", 'str', $lpFileName)
    Return $ret[0]
    EndFunc

    [/autoit]
  • Aktuellen Cursor rausfinden...

    • BugFix
    • 21. Dezember 2008 um 14:24

    Ich hab grad nochmal deinen ersten Post gelesen - ist das Tool, von dem du sprichst, ein Autoitskript? Dann kannst du natürlich viel einfacher den Cursor setzen mit GUISetCursor und GUICtrlSetCursor

  • Aktuellen Cursor rausfinden...

    • BugFix
    • 21. Dezember 2008 um 13:59

    Du mußt den Cursorpfad angeben

    [autoit]

    @WindowsDir & '\Cursors\cross.cur'

    [/autoit]


    Und Kombinationen von Parametern immer mit BitOr($par1,$par2) und nicht $par1+$par2.

    Weiterhin solltest du das Handle des alten Cursors auffangen um ihn zurücksetzen zu können.

    [autoit]

    $hOldCursor = _WinAPI_SetCursor($cur)

    [/autoit]
  • Aktuellen Cursor rausfinden...

    • BugFix
    • 21. Dezember 2008 um 12:24

    Schau dir mal diese Funktionen an:

    [autoit]

    #Include <WinAPI.au3>
    _WinAPI_GetCursorInfo()
    _WinAPI_SetCursor($hCursor)

    [/autoit]
  • Programm unter WIndows öffnen c:/programme/... ? ShellExecute

    • BugFix
    • 21. Dezember 2008 um 10:40

    Wenn es Systemprogramme sind benötigst du keine Pfadangabe, für alle anderen schon. Existieren zum Programm z.B. INI-Dateien(od. andere Daten auf die das Prog zugreifen will) im Programmpfad, so ist auch das Arbeitsverzeichnis anzugeben.

    [autoit]

    ShellExecute ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag]]]] )

    [/autoit]
  • Wenn man einen Button in der MsgBox drückt

    • BugFix
    • 21. Dezember 2008 um 10:35

    Eine angenehme Hilfe zur MsgBox findest du in Scite mit <Alt+W> oder auch hier: MsgBox - alle Parameter auf einen Blick

  • X/Y Koordinaten in Send Befehle

    • BugFix
    • 20. Dezember 2008 um 21:23
    Zitat von Keyle

    Was meinst du mit linear und nichtlinear ich kann mir darunter jetzt nichts vorstellen


    Linear heißt: 1 Pixel des Desktop entspricht zum Bsp. dem Wert 25 der von deinem Pad kommt, 2=50, 3=75, 4=100 etc.
    Nicht-Linear: 1=25, 2=70, 3=130 etc.

  • X/Y Koordinaten in Send Befehle

    • BugFix
    • 20. Dezember 2008 um 20:20

    Wie anno2008 schon richtig sagte sind mehr Koordinaten und vor allem deren Entsprechung auf dem Desktop notwendig.
    Es kann sein, dass deine Parameter linear oder auch nichtlinear sind. Du brauchst also auf jeden Fall Basiswerte für alle Desktopecken und die Mittelposition. Dann kann man erkennen, wie die Werte sich verhalten.

  • datei details

    • BugFix
    • 19. Dezember 2008 um 20:26

    Vielleicht hilft dir ja das: Erweiterte Dateiinfo (eine Datei od. alle eines Ordners)

  • Task auf Server startet nicht

    • BugFix
    • 17. Dezember 2008 um 20:08
    Zitat von bernd670


    Was für eine IE-Version läuft den auf dem Server?


    Ich glaube, ich habe inzwischen IE 6 aufgespielt, bin mir aber nicht ganz sicher. Da der Server ausschließlich im Intranet läuft, ist die Konfiguration der Internetkomponenten absolut nebensächlich.

  • IS-Net Checker

    • BugFix
    • 17. Dezember 2008 um 15:33

    Habs jetzt noch nicht getestet, aber mal ein Tipp:
    Du kannst deine Case-Abfrage zum Speed vereinfachen.

    [autoit]

    ; statt:
    Case $in > 1023 And $in< 1048575

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

    ; reicht völlig:
    Case $in< 1048575
    ; denn falls $in < 1024, wird ja schon der Code im vorhergehenden
    ; Case-Zweig (Case $in < 1024) ausgeführt
    ; dasselbe bei $out

    [/autoit]
  • IS-Net Checker

    • BugFix
    • 17. Dezember 2008 um 09:56

    Hi,
    da du noch neu bei uns bist, ein Hinweis: Exe-Dateien wird sich wohl kaum jemand herunterladen. Oder führst du einfach so fremde exe aus? 8|
    Und der Sinn dieses Forums liegt u.a. darin, die Lösungswege aufzuzeigen - sein Skript also in der Source zu posten.

  • dll load geht nicht

    • BugFix
    • 16. Dezember 2008 um 23:34
    Zitat

    Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

    Zitat

    fWinIni Erwartet "0" für keine Aktion oder eine der "fWinIni"-Konstanten, die den Vorgang beschreiben.

    Ich vermute, da liegt der Hund begraben - du übergibst 0 ==> keine Aktion.

    Edit: Ich glaube, dass wars wohl doch nicht, die fWinIni-Parameter sind absolut uninteressant.

    Zitat

    Const SPIF_SENDWININICHANGE = &H2 'Benachrichtet alle TopLevel Fenster über die Änderung und der Änderung in der Win.ini
    Const SPIF_UPDATEINIFILE = &H1 'Speichert die Änderung der Win.ini, ändernungen werden sind so nach einem Neustart immer noch wirksam

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™