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
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Forum
  3. AutoIt 3
  4. Skripte

Windowtool

  • Nathax
  • 4. Januar 2010 um 16:54
  • Nathax
    ehemals retrokid
    Beiträge
    373
    • 4. Januar 2010 um 16:54
    • #1

    Hi ich habe ein kleines aber nützliches skript geschrieben, das das arbeiten auf windows vista oder älter erleichtern soll. Soweit ich weiß gibt es so ein ähnliches tool ja nur in windows 7, welches bei der installation dabei ist, deshalb habe ich es so ähnlich nachgebaut um es auch leuten möglich zu machen die kein windows 7 haben.

    Hier der Code:

    Spoiler anzeigen
    [autoit]

    Hotkeyset("!{esc}", "ende")
    Hotkeyset("!{space}", "allemini")
    Hotkeyset("!m", "mini")
    Hotkeyset("!y", "transan")
    Hotkeyset("!x", "transaus")
    Hotkeyset("!k", "kill")
    Hotkeyset("!{left}", "links")
    Hotkeyset("!{right}", "rechts")
    Hotkeyset("!{up}", "hoch")
    Hotkeyset("!{down}", "runter")
    Hotkeyset("!1", "hochlinks")
    Hotkeyset("!2", "hochrechts")
    Hotkeyset("!3", "runterlinks")
    Hotkeyset("!4", "runterrechts")

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

    While 1
    Sleep(50)
    WEnd

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

    Func transan()
    WinSetTrans("[active]", "", 170)
    Endfunc

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

    Func transaus()
    WinSetTrans("[active]", "", 255)
    Endfunc

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

    Func allemini()
    WinMinimizeAll()
    Endfunc

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

    Func mini()
    WinSetState( "[active]", "", @SW_MINIMIZE)
    Endfunc

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

    Func kill()
    WinKill("[active]")
    EndFunc

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

    Func links()
    WinMove("[active]", "", 0, 0, @DesktopWidth/2-30, @DesktopHeight)
    Endfunc

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

    Func rechts()
    WinMove("[active]", "", @DesktopWidth/2-30, 0, @DesktopWidth/2+30, @DesktopHeight)
    Endfunc

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

    Func hoch()
    WinMove("[active]", "", 0, 0, @DesktopWidth, @DesktopHeight/2-30)
    Endfunc

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

    Func runter()
    WinMove("[active]", "", 0, @DesktopHeight/2-30, @DesktopWidth, @DesktopHeight)
    Endfunc

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

    Func hochlinks()
    WinMove("[active]", "", 0, 0, @DesktopWidth/2-30, @DesktopHeight/2-30)
    Endfunc

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

    Func hochrechts()
    WinMove("[active]", "", @DesktopWidth/2-30, 0, @DesktopWidth/2+30, @DesktopHeight/2-30)
    Endfunc

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

    Func runterlinks()
    WinMove("[active]", "", 0, @DesktopHeight/2-30, @DesktopWidth/2-30, @DesktopHeight/2)
    Endfunc

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

    Func runterrechts()
    WinMove("[active]", "", @DesktopWidth/2-30, @DesktopHeight/2-30, @DesktopWidth/2+30, @DesktopHeight/2)
    Endfunc

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

    Func ende()
    Exit
    EndFunc

    [/autoit]
    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

    Einmal editiert, zuletzt von retrokid (4. Januar 2010 um 17:05)

  • Schnitzel
    Poweruser
    Beiträge
    3.529
    • 4. Januar 2010 um 17:04
    • #2

    ganz nett....

    ganz grob finde ich aber:

    [autoit]

    While 1
    WEnd

    [/autoit]

    da muss unbedingt n sleep rein, sonst verbrätst du soooo unnötig prozessorlast

    Ein Kezboard/Treiber ist v;llig [berfl[ssig

    Autoit-Tutorials
    Tutorials für den Einstieg in Autoit


    Deutsche Hilfedatei mit Beispiel für jeden Befehl
    AutoIt-Wiki
    Richtig Debuggen (Fehler selbst suchen/finden)
    FAQ
    AutoIt Buch von peethebee

    Tutorials für speziellere Themen


    Videos von McPoldy
    Array Tutorial von BugFix
    Bit Tutorial von BugFix
    Dll Tutorial von BugFix
    RegEx Tutorial von BugFix
    Login + Registrierung über eine MySql-DB [+ Hilfedateien]
    AutoIt und Assembler UPDATE 09.September 2010 AssembleIt
    StringRegExp Tutorial / Reguläre Ausdrücke in AutoIt
    GDI+

  • Nathax
    ehemals retrokid
    Beiträge
    373
    • 4. Januar 2010 um 17:05
    • #3

    ok verbessere ich mal

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • automan
    Beiträge
    139
    • 4. Januar 2010 um 17:12
    • #4

    Is ja ganz nett aber
    des tool gibt es schon.
    Aes heißt Aero Snap und lässt sich HIER runter laden
    Auch für XP und Vista User

    [Blockierte Grafik: http://valid.canardpc.com/cache/banner/1572868.png]

  • nuts
    Reaktionen
    1
    Beiträge
    1.695
    • 4. Januar 2010 um 17:13
    • #5

    Naja für die meisten Skripte gibt es schon andere Umsetzungen.
    Kein Grund es nicht in Autoit zu versuchen und hier zu posten ;)

  • automan
    Beiträge
    139
    • 4. Januar 2010 um 17:16
    • #6

    Ich weiß doch
    Damit kann man sich ja auch selbst herausfordern wenn man was nachscripten will
    Mach ich doch auch manchmal ;)

    [Blockierte Grafik: http://valid.canardpc.com/cache/banner/1572868.png]

  • Nathax
    ehemals retrokid
    Beiträge
    373
    • 4. Januar 2010 um 17:17
    • #7

    ich hab ja gesagt das es das schon gibt, aber ich fand es lustig mal mit autoit nachzubaun :)
    ist doch eigentlich auch ganz gut gelungen oder?

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • Schnitzel
    Poweruser
    Beiträge
    3.529
    • 4. Januar 2010 um 17:19
    • #8
    Zitat von automan

    des tool gibt es schon.

    das gilt für 98% aller tools glaube ich.

    @retrokid: ne funktion zum maximieren wäre noch nicht schlecht. da mit den hotkeys:

    [autoit]

    Hotkeyset("!q", "hochlinks")
    Hotkeyset("!w", "hochrechts")
    Hotkeyset("!e", "runterlinks")
    Hotkeyset("!r", "runterrechts")

    [/autoit]

    das fenster ja auf viertelte größe verändert wird.

    ein kleines trayinfo das die hotkeys anzeigt wäre auch praktisch

    oder für ne sehr professionelle edition könntest du den user noch hotkey festlegen lassen können. mir wäre für x zum beispiel maximieren lieber
    (so wie es bei windows halt standard ist mit alt+space+x)

    Ein Kezboard/Treiber ist v;llig [berfl[ssig

    Autoit-Tutorials
    Tutorials für den Einstieg in Autoit


    Deutsche Hilfedatei mit Beispiel für jeden Befehl
    AutoIt-Wiki
    Richtig Debuggen (Fehler selbst suchen/finden)
    FAQ
    AutoIt Buch von peethebee

    Tutorials für speziellere Themen


    Videos von McPoldy
    Array Tutorial von BugFix
    Bit Tutorial von BugFix
    Dll Tutorial von BugFix
    RegEx Tutorial von BugFix
    Login + Registrierung über eine MySql-DB [+ Hilfedateien]
    AutoIt und Assembler UPDATE 09.September 2010 AssembleIt
    StringRegExp Tutorial / Reguläre Ausdrücke in AutoIt
    GDI+

  • automan
    Beiträge
    139
    • 4. Januar 2010 um 17:22
    • #9

    Is ja gut jetzt
    Des klang iwie dämlich ich weiß
    Ich habs aba nich so gemeint als wäre es doof
    Und Ja ich find des fürs erste auch nich schlecht
    Aber ich finds n bisschen umständlich mit den Tasten
    Iwie is des mit an den Bildschirmrand ziehen Praktischer

    [Blockierte Grafik: http://valid.canardpc.com/cache/banner/1572868.png]

  • Nathax
    ehemals retrokid
    Beiträge
    373
    • 4. Januar 2010 um 17:23
    • #10

    ne funktion zum maximieren gibt es soweit ich weiß ja nicht nur diese minimizeallundo oder so aber die klappt ja nur ,wenn man vorher eins minimert hat mit winminimize
    zu der idee mit den hotkeys eigentlich ist das ja gar nicht so schwer man kann es ja ganz einfach machen das am anfang ein paar inputboxen erscheinen und dann die hotkeys für ein nächstes mal in eine ini geschrieben werden :)

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • nuts
    Reaktionen
    1
    Beiträge
    1.695
    • 4. Januar 2010 um 17:27
    • #11

    WinSetState & WinList könnte dir beim Maximieren helfen.

  • Nathax
    ehemals retrokid
    Beiträge
    373
    • 4. Januar 2010 um 17:30
    • #12

    winsetstate ist aber leider nur für das aktive fenster und nicht für alle
    winlist guck ich mir mal an bb muss of ^^

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • Schnitzel
    Poweruser
    Beiträge
    3.529
    • 4. Januar 2010 um 17:36
    • #13
    Zitat von retrokid

    winsetstate ist aber leider nur für das aktive fenster und nicht für alle

    deswegen ja auch winlist :D

    mit winlist bekommste alle fenster. mit ner for schleife kannste die einzelnen durchgehen und mit winsetstate auf maximiert setzten. ;)

    Ein Kezboard/Treiber ist v;llig [berfl[ssig

    Autoit-Tutorials
    Tutorials für den Einstieg in Autoit


    Deutsche Hilfedatei mit Beispiel für jeden Befehl
    AutoIt-Wiki
    Richtig Debuggen (Fehler selbst suchen/finden)
    FAQ
    AutoIt Buch von peethebee

    Tutorials für speziellere Themen


    Videos von McPoldy
    Array Tutorial von BugFix
    Bit Tutorial von BugFix
    Dll Tutorial von BugFix
    RegEx Tutorial von BugFix
    Login + Registrierung über eine MySql-DB [+ Hilfedateien]
    AutoIt und Assembler UPDATE 09.September 2010 AssembleIt
    StringRegExp Tutorial / Reguläre Ausdrücke in AutoIt
    GDI+

  • Nathax
    ehemals retrokid
    Beiträge
    373
    • 4. Januar 2010 um 19:52
    • #14

    achso werde es mal versuchen

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • Nathax
    ehemals retrokid
    Beiträge
    373
    • 5. Januar 2010 um 09:42
    • #15

    zu der idee mit der for schleife
    könntest du mir mal ein beispiel geben ich habe das so geschrieben aber es klappt nicht:

    [autoit]

    Func allemaxi()
    $winlist = WinList( )
    For $a = 1 To $winlist[0][0]
    WinSetState($winlist[$a][0], "", @SW_MAXIMIZE)
    $a += 1
    Next
    Sleep(50)
    EndFunc ;==>allemaxi

    [/autoit]
    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • Schnitzel
    Poweruser
    Beiträge
    3.529
    • 5. Januar 2010 um 10:09
    • #16
    [autoit]

    $a += 1

    [/autoit]

    in ner for schleife brauchste das nicht, es wird standartmäßig um 1 hochgezählt.

    außerdem würde ich nicht die komplette winlist nehmen da dort seehr viele fenster enthalten sind (solche die gerade auf invisible gesetzt wurden usw.)

    ich hatte da mal ne funktion die alle sichtbaren fenster zurückgibt. ich such sie dir mal raus ;)

    Ein Kezboard/Treiber ist v;llig [berfl[ssig

    Autoit-Tutorials
    Tutorials für den Einstieg in Autoit


    Deutsche Hilfedatei mit Beispiel für jeden Befehl
    AutoIt-Wiki
    Richtig Debuggen (Fehler selbst suchen/finden)
    FAQ
    AutoIt Buch von peethebee

    Tutorials für speziellere Themen


    Videos von McPoldy
    Array Tutorial von BugFix
    Bit Tutorial von BugFix
    Dll Tutorial von BugFix
    RegEx Tutorial von BugFix
    Login + Registrierung über eine MySql-DB [+ Hilfedateien]
    AutoIt und Assembler UPDATE 09.September 2010 AssembleIt
    StringRegExp Tutorial / Reguläre Ausdrücke in AutoIt
    GDI+

  • nuts
    Reaktionen
    1
    Beiträge
    1.695
    • 5. Januar 2010 um 10:09
    • #17

    Die Zeile $a +=1 muss/kann raus.
    In der Form hat dein Skript aber fatale Auswirkungen, da auch unsichtbare Fenster geändert werden (und davon gibts ne ganze Menge).
    Schau dir dazu mal das Array an:

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


    #include <array.au3>

    allemaxi()

    Func allemaxi()
    $winlist = WinList()
    _ArrayDisplay($winlist)
    For $a = 1 To $winlist[0][0]
    ;WinSetState($winlist[$a][0], "", @SW_MAXIMIZE)
    ;$a += 1
    Next
    Sleep(50)
    EndFunc ;==>allemaxi

    [/autoit]
    [autoit][/autoit]


    In der Hilfe zu Winlist findet sich ein besseres Beispiel.

  • Schnitzel
    Poweruser
    Beiträge
    3.529
    • 5. Januar 2010 um 10:16
    • #18

    finde leider die funktion nicht. hab sie dir aber neu geschrieben ;)

    is zwar jetz recht einfach, sollte aber funktionieren:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    $Win = _WinGetVis()
    _ArrayDisplay($Win)

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

    Func _WinGetVis()
    Dim $Winvisible[1]
    $Winlist = WinList()
    For $i = 1 To $Winlist[0][0]
    If StringStripCR($Winlist[$i][0]) <> "" And BitAND(WinGetState($Winlist[$i][1]), 2) Then
    _ArrayAdd($Winvisible, $Winlist[$i][0])
    $Winvisible[0] = UBound($Winvisible) - 1
    EndIf
    Next
    Return $Winvisible
    EndFunc

    [/autoit]

    Ein Kezboard/Treiber ist v;llig [berfl[ssig

    Autoit-Tutorials
    Tutorials für den Einstieg in Autoit


    Deutsche Hilfedatei mit Beispiel für jeden Befehl
    AutoIt-Wiki
    Richtig Debuggen (Fehler selbst suchen/finden)
    FAQ
    AutoIt Buch von peethebee

    Tutorials für speziellere Themen


    Videos von McPoldy
    Array Tutorial von BugFix
    Bit Tutorial von BugFix
    Dll Tutorial von BugFix
    RegEx Tutorial von BugFix
    Login + Registrierung über eine MySql-DB [+ Hilfedateien]
    AutoIt und Assembler UPDATE 09.September 2010 AssembleIt
    StringRegExp Tutorial / Reguläre Ausdrücke in AutoIt
    GDI+

  • Answer
    Gast
    • 5. Januar 2010 um 10:38
    • #19

    In Win7 tut man aber das Fenster ganz nach links/rechts/oben an die Wand schieben und dann passt es sich an. Wenn du das schaffst währe es klasse. Ich würds gern mal probieren, bin blos grad nich in Windows (Mac Rockt!! :rock: ).

  • Nathax
    ehemals retrokid
    Beiträge
    373
    • 5. Januar 2010 um 15:09
    • #20

    das könnte ich ja noch mit einbaun aber erstmal löse ich die anderen probleme und vielen dank schnitzel ;)

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™