Real Dektop Tools [Leute gesucht & in bearbeitung]

  • Schön :thumbup:

    Überschrift geändert in [Leute gesucht & in bearbeitung]

    Super das so viele Mitmachen.
    Ich hoffe das auch jeder sich einem Problem/Teil des Scripts annimmt ^^

    mfg Ubuntu

  • Ich versuche eine YouTube/Google-Suche, einen Shutdown-Controller und ein TV-Tool(kleine Fernsehzeitschrift)

    Werd heut mal paar Vorbereitungen treffen und morgen anfangen ...

    Musst ja nicht genau mit der Desktop UDF sein oder?

  • Nein ;)
    Natürlich nicht.
    Ich wollte nur schon eine grundlage für dieses Projekt machen aber wenn es interaktiv sein soll, dann kann es ja gar nicht auf dem Desktop in diesem Sinne sein.

    mfg Ubuntu

    Edit: To Do aktualisiert

  • Ok auch ein virtueller dektop wäre cool

    ich werde mich da mal dransetzen ich hoffe es passt dazu =)

    wenn jemand dagegen ist , dann einfach hier melden,dann lasse ich es weg


    Mfg.Simon

  • @simon .. wie meinst du das mit virtueller Desktop?

    Meinst du es so, dass man 4 Desktops hat oder wie?

  • Ich meine als Virtueller Desktop einen virtuelen bildschrim, d.h. dort werden nur eingestellte programme angezeigt
    und auf den anderen die restilichen, und dann gibt es da was zum umschalten
    bei maComfort ist das dabei, fals es jemand kennt

  • Wenn ihr noch irgendwas frei habt, helfe ich gerne :rolleyes:

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Meine erste Verison
    funktioniert noch nicht ganz ist auch nur die gui

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIListBox.au3>

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

    Dim $Desktop2[1]
    $Desktop2[0] = 0

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

    $Form1 = GUICreate("Virtuell Desktop", 495, 320)

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

    $List1 = GUICtrlCreateList("", 8, 56, 193, 253)

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

    $Label1 = GUICtrlCreateLabel("Desktop1:", 8, 32, 53, 17)
    $Move_To_Desktop_2 = GUICtrlCreateButton(">", 208, 96, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("<", 208, 128, 75, 25, $WS_GROUP)

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

    $List2 = GUICtrlCreateList("", 293, 56, 193, 253)

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

    $Label2 = GUICtrlCreateLabel("Desktop 2:", 296, 32, 56, 17)
    $Label3 = GUICtrlCreateLabel("Hier können sie ihre virtuellen Desktops verwalten:", 8, 8, 294, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)

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

    _SetWinList1($List1)

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

    While 1

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Move_To_Desktop_2
    $read_to_move = GUICtrlRead($List1)
    GUICtrlSetData($List2, $read_to_move)
    $Desktop2[0] = $Desktop2[0] + 1
    ReDim $Desktop2[$Desktop2[0] + 1]
    $Desktop2[$Desktop2[0]] = $read_to_move
    _UpdateList1()
    EndSwitch
    WEnd

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

    Func _UpdateList1()
    $handle = GUICtrlGetHandle($List1)
    If Not @error Then
    _GUICtrlListBox_Destroy($handle)
    EndIf
    $List1 = GUICtrlCreateList("", 8, 56, 193, 253)
    _SetWinList1($List1)
    EndFunc ;==>_UpdateList1

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

    Func _SetWinList1($List)
    $winList = WinList()
    For $i = 1 To $winList[0][0]
    If $winList[$i][0] <> "" And IsVisible($winList[$i][1]) And IsDesktop2($winList[$i][0]) Then
    If $winList[$i][0] <> "Desktop Tools" Then
    If $winList[$i][0] <> "Start" Then
    If $winList[$i][0] <> "Program Manager" Then
    If $winList[$i][0] <> "Virtuell Desktop" Then
    GUICtrlSetData($List, $winList[$i][0])
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    Next
    EndFunc ;==>_SetWinList1

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

    Func IsVisible($handle)
    If BitAND(WinGetState($handle), 2) And BitAND(WinGetState($handle), 4) And BitAND(WinGetState($handle), 1) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>IsVisible

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

    Func IsDesktop2($win)
    If $win <> "" Then
    For $i = 0 To $Desktop2[0]
    If $win = $Desktop2[$i] Then
    Return 1
    Else
    Return 0
    EndIf
    Next
    EndIf
    EndFunc ;==>IsDesktop2

    [/autoit]

    Das Problem ist , dass die Fenster nach dem refreshen nicht mehr in der ersten liste angezeigt werden
    jemand eine lösung ?

  • Wenn ihr noch irgendwas frei habt, helfe ich gerne :rolleyes:

    Es fehlt noch ziemlich viel ^^
    z.B. CPU auslastung, Wetter, und andere Tools die ihr für nützlich haltet.
    Und das platzieren von Elementen per "lösen und verankern" (wär denke ich keine grosse Sache) (lässt sich nicht so gut in wenigen Worten beschreiben)

    oetzn: Ich suche mal...

    @simon:
    Gute Idee :thumbup:

    Ich werde jetzt mal eine Sidebar schreiben, auf grund der Sidebar von black Scorpi.

    mfg Ubuntu

  • So neue version
    wieder nur gui jetzt wird wieder eine listbox angezeigt

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIListBox.au3>

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

    Dim $Desktop2[1]
    $Desktop2[0] = 0

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

    $Form1 = GUICreate("Virtuell Desktop", 495, 320)

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

    $List1 = GUICtrlCreateList("", 8, 56, 193, 253)

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

    $Label1 = GUICtrlCreateLabel("Desktop1:", 8, 32, 53, 17)
    $Move_To_Desktop_2 = GUICtrlCreateButton(">", 208, 96, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("<", 208, 128, 75, 25, $WS_GROUP)

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

    $List2 = GUICtrlCreateList("", 293, 56, 193, 253)

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

    $Label2 = GUICtrlCreateLabel("Desktop 2:", 296, 32, 56, 17)
    $Label3 = GUICtrlCreateLabel("Hier können sie ihre virtuellen Desktops verwalten:", 8, 8, 294, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)

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

    _SetWinList1($List1)

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

    While 1

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Move_To_Desktop_2
    $read_to_move = GUICtrlRead($List1)
    GUICtrlSetData($List2, $read_to_move)
    $Desktop2[0] = $Desktop2[0] + 1
    ReDim $Desktop2[$Desktop2[0] + 1]
    $Desktop2[$Desktop2[0]] = $read_to_move
    _UpdateList1()
    EndSwitch
    WEnd

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

    Func _UpdateList1()
    $handle = GUICtrlGetHandle($List1)
    If Not @error Then
    _GUICtrlListBox_Destroy($handle)
    $List1 = GUICtrlCreateList("", 8, 56, 193, 253)
    _SetWinList1($List1)
    EndIf
    EndFunc ;==>_UpdateList1

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

    Func _SetWinList1($List)
    $winList = WinList()
    For $i = 1 To $winList[0][0]
    If $winList[$i][0] <> "" And IsVisible($winList[$i][1]) And IsDesktop2($winList[$i][0]) Then
    If $winList[$i][0] <> "Desktop Tools" Then
    If $winList[$i][0] <> "Start" Then
    If $winList[$i][0] <> "Program Manager" Then
    If $winList[$i][0] <> "Virtuell Desktop" Then
    GUICtrlSetData($List, $winList[$i][0])
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    Next
    EndFunc ;==>_SetWinList1

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

    Func IsVisible($handle)
    If BitAND(WinGetState($handle), 2) And BitAND(WinGetState($handle), 4) And BitAND(WinGetState($handle), 1) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>IsVisible

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

    Func IsDesktop2($win)
    If ($Desktop2[0] > 0) Then
    For $i = 1 To $Desktop2[0]
    If $win = $Desktop2[$i] Then
    return 0
    else
    return 1
    Endif
    Next
    else
    return 1
    Endif
    EndFunc ;==>IsDesktop2

    [/autoit]

    Mfg.simon

  • Schön :thumbup:
    Vielleicht solltest du einfach einen verschieben Button machen, denn wenn man eträge von der rechten Seite nach noch weiter rechts verschieben will verschwinden sie.

    mfg Ubuntu

  • Haste recht aber ein anderer bug ist auch, dass wenn man auf der ersten seite auf eines klickt und dann auf rüberschieben also auf > und da funktioniert auch
    aber wenn ich jetzt ein zweites auf desktop2 schieben will, dann kommt es auch auf desktop 2 , aber bleibt auf desktop 1 auch
    ich hoffe ihr könnt mir da helfen

  • Danke an name22, er hat dieses Tool geschrieben und es läuft ohne Probleme ;)

    Hat jemand schon vor ein Tool zu schreiben, um Informationen von einem PC auszulesen und durch GDI+ zu zeichnen:
    Hier hab ich ein Theme:

    [Blockierte Grafik: http://www.imagebanana.com/img/xoz5x8rs/pc_infos.png]

    Einfach auf ein Fenster und die jeweiligen Infos in die richtige Position durch GDI+ zeichnen.

    Einmal editiert, zuletzt von tince (22. Mai 2010 um 19:16)

  • Was haltet ihr hiervon?
    Mein kleines MouseMeter müsste ich allerdings noch auf GDI+ umschreiben was kein Problem sein dürfte ;).
    Einstellungen könnt ihr per Rechtsklick vornehmen, welche dann in einer ini gespeichert werden.
    Besonders gefällt mir die Fensterverschiebung (einfach mal ins Fenster klicken und die Maus bewegen) 8) .

    Spoiler anzeigen
    [autoit]

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

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

    $iGUIWidth = 165
    $iGUIHeight = 290

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

    $iDeskDiag = IniRead("Data.ini", "Const", "DeskDiagInch", -1)
    If $iDeskDiag = -1 Then
    $iDeskDiag = InputBox("Bildschirmdiagonale", "Länge der Bildschirmdiagonale in Zoll: ", "17")
    If StringReplace($iDeskDiag, " ", "") = "" Then Exit
    IniWrite("Data.ini", "Const", "DeskDiagInch", $iDeskDiag)
    EndIf

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

    $iTrans = IniRead("Data.ini", "Options", "Trans", -1)
    If $iTrans = -1 Then
    $iTrans = 200
    IniWrite("Data.ini", "Options", "Trans", $iTrans)
    EndIf

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

    $sPos = IniRead("Data.ini", "Options", "WinPos", -1)
    If $sPos = -1 Then
    $sPos = @DesktopWidth - $iGUIWidth & ";" & @DesktopHeight - $iGUIHeight
    $iX = @DesktopWidth - $iGUIWidth
    $iY = @DesktopHeight - $iGUIHeight
    IniWrite("Data.ini", "Options", "WinPos", $sPos)
    Else
    $aPosTmp = StringSplit($sPos, ";", 2)
    $iX = $aPosTmp[0]
    $iY = $aPosTmp[1]
    EndIf

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

    $iColorRGB = IniRead("Data.ini", "Options", "Color", -1)
    If $iColorRGB = -1 Then
    $iColorRGB = 0x545454
    IniWrite("Data.ini", "Options", "Color", $iColorRGB)
    EndIf

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

    $PPI = Sqrt(@DesktopWidth ^ 2 + @DesktopHeight ^ 2) / $iDeskDiag
    $PPCm = Sqrt(@DesktopWidth ^ 2 + @DesktopHeight ^ 2) / ($iDeskDiag * 2.54)

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

    $hWnd = GUICreate("MouseMeter", $iGUIWidth, $iGUIHeight, $iX, $iY, $WS_POPUP, $WS_EX_TOPMOST)
    $cMenu = GUICtrlCreateContextMenu()
    $cColorChoose = GUICtrlCreateMenuItem("Farbe...", $cMenu)
    $cTransparency = GUICtrlCreateMenuItem("Transparenz...", $cMenu)
    GUISetBkColor($iColorRGB, $hWnd)
    $Label1 = GUICtrlCreateLabel("Zurückgelegte Strecke:", 10, 10, 155)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("Zentimeter:", 10, 40)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label3 = GUICtrlCreateLabel("0", 10, 55, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label4 = GUICtrlCreateLabel("Meter:", 10, 75)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label5 = GUICtrlCreateLabel("0", 10, 90, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label6 = GUICtrlCreateLabel("Inch:", 10, 110)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label7 = GUICtrlCreateLabel("0", 10, 125, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label8 = GUICtrlCreateLabel("Pixel:", 10, 145)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label9 = GUICtrlCreateLabel("0", 10, 160, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label10 = GUICtrlCreateLabel("Geschwindigkeit:", 10, 180, 155)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetFont(-1, 10)
    $Label11 = GUICtrlCreateLabel("Meter/Sekunde:", 10, 205)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label12 = GUICtrlCreateLabel("0", 10, 220, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label13 = GUICtrlCreateLabel("Meter/Sekunde (Durchschnitt):", 10, 235, 100, 50)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label14 = GUICtrlCreateLabel("0", 10, 265, 70)
    GUICtrlSetFont(-1, 10)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Reset = GUICtrlCreateButton("Zurücksetzen", 90, 75, 70, 25)
    $Exit = GUICtrlCreateButton("Beenden", 90, 105, 70, 25)
    WinSetTrans($hWnd, "", $iTrans)
    GUISetState()

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

    $hWnd_Slider = GUICreate("Transparenz", 200, 50)
    $cSlider = GUICtrlCreateSlider(5, 5, 190, 40)
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetData($cSlider, $iTrans)

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

    $aPosOld = MouseGetPos()
    $iDistance = 0

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

    $iTime = TimerInit()
    AdlibRegister("_Update", 30)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE, $Exit
    IniWrite("Data.ini", "Options", "WinPos", $iX & ";" & $iY)
    Exit
    Case $Reset
    $iTime = TimerInit()
    $iDistance = 0
    _Update()
    Case $GUI_EVENT_PRIMARYDOWN
    _SetPos()
    Case $cColorChoose
    $iColorRGB_Tmp = _ChooseColor(2)
    If $iColorRGB_Tmp <> -1 Then GUISetBkColor($iColorRGB_Tmp, $hWnd)
    IniWrite("Data.ini", "Options", "Color", $iColorRGB_Tmp)
    Case $cTransparency
    GUISetState(@SW_DISABLE, $hWnd)
    GUISetState(@SW_SHOW, $hWnd_Slider)
    Do
    WinSetTrans($hWnd, "", GUICtrlRead($cSlider))
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    IniWrite("Data.ini", "Options", "Trans", GUICtrlRead($cSlider))
    GUISetState(@SW_ENABLE, $hWnd)
    GUISetState(@SW_HIDE, $hWnd_Slider)
    EndSwitch
    WEnd

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

    Func _Update()
    $iTime2 = TimerInit()
    $aPosNew = MouseGetPos()
    $iDiff = _GetPointsDistance($aPosOld[0], $aPosOld[1], $aPosNew[0], $aPosNew[1])
    $iDistance += $iDiff
    GUICtrlSetData($Label3, Floor($iDistance / $PPCm))
    GUICtrlSetData($Label5, Floor($iDistance / $PPCm / 100))
    GUICtrlSetData($Label7, Floor($iDistance / $PPI))
    GUICtrlSetData($Label9, Floor($iDistance))
    GUICtrlSetData($Label12, Round(($iDiff / $PPCm / 100) / (TimerDiff($iTime2) / 1000), 4))
    GUICtrlSetData($Label14, Round(($iDistance / $PPCm / 100) / (TimerDiff($iTime) / 1000), 4))
    $aPosOld[0] = $aPosNew[0]
    $aPosOld[1] = $aPosNew[1]
    EndFunc ;==>_Update

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

    Func _SetPos()
    Sleep(200)
    $aPosMouse = MouseGetPos()
    $iDistanceX = $iX - $aPosMouse[0]
    $iDistanceY = $iY - $aPosMouse[1]
    While _IsPressed("01")
    $aPosMouse = MouseGetPos()

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

    $iDiffX = $aPosMouse[0] - $iX + $iDistanceX
    $iDiffY = $aPosMouse[1] - $iY + $iDistanceY

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

    $iSpeedX = $iDiffX / 10
    $iSpeedY = $iDiffY / 10

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

    $iX += $iSpeedX
    $iY += $iSpeedY

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

    WinMove($hWnd, "", $iX, $iY)
    Sleep(30)
    WEnd
    EndFunc ;==>_SetPos

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

    Func _GetPointsDistance($iPointX1, $iPointY1, $iPointX2, $iPointY2)
    Return Sqrt(($iPointX1 - $iPointX2) ^ 2 + ($iPointY1 - $iPointY2) ^ 2)
    EndFunc ;==>_GetPointsDistance

    [/autoit]


    Ich würde das gerne so anpassen, dass es zu euren anderen Tools passt, aber ich wollte vorher noch schauen ob ihr das überhaupt gebrauchen könnt. :D

    Edit: @tince Möchtest du das machen oder wolltest du nur deine Idee bereitstellen und fragen wer Lust hat das zu umzusetzen? :D