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

Beiträge von McPoldy

  • Brauche hilfe für mein Relloger progi

    • McPoldy
    • 9. Februar 2008 um 09:13

    Bitte lesen

  • Minimiertes Fenster als TryIcon

    • McPoldy
    • 8. Februar 2008 um 21:30

    Glaube er meint allgemein minimierte Fenster (andere Anwendungen)

  • Verzeichnisstruktur in Array einlesen

    • McPoldy
    • 8. Februar 2008 um 21:22

    Oscar , da stimme ich dir zu aber bei einem Unterschied von 14,5 Sekunden kann man glaube ich davon ausgehen das deines schneller ist :) , zudem habe ich beide Scripte jeweils 5x laufen lassen und immer den letzten Wert genommen ;)

  • Taskmanager

    • McPoldy
    • 8. Februar 2008 um 13:24

    :rofl: 7x gepackt aber nettes bildchen

  • Pixelsearch nuancen Frage

    • McPoldy
    • 8. Februar 2008 um 13:07

    Tach

    Zitat

    dass heisst wenn ich eine Rot-ähnliche farbe habe und setzte die variation auf 1 is dass eine fast genau übereinstimmung richtig?!


    Jau

    Zitat

    welche Farbe wirds wenn ich bis auf 200 hnoch gehe? wirds dann vielleciht blau`???


    Nö, da ein unterschied bei Rot von 200, Grün von 200 und Blau von 200 sein darf (so habe ich das zumindest verstanden)

    [autoit]


    $coords = pixelSearch ( left, top, right, bottom, color ,0 )
    If @error Then $coords = pixelSearch ( left, top, right, bottom, color , 20 )
    If @error Then $coords = pixelSearch ( left, top, right, bottom, color , 25 )
    If @error Then $coords = pixelSearch ( left, top, right, bottom, color , 40 )
    if @error Then MsgBox(48,"Farbsuche","Farbhe nicht gefunden.")

    [/autoit]

    Würde er schauen ob eine eine 100% Übereinstimmung da ist, sonst eine bis 20 Abweichung, 25 Abweichung,.....

  • Verzeichnisstruktur in Array einlesen

    • McPoldy
    • 8. Februar 2008 um 11:41

    Ich glaube Oscar ist nicht zu toppen :)
    Oscar / 36633 Dateien = 16,497 Sek.
    Oscar / 13378 Dateien = 2,919 Sek.
    progandy / 13378 Dateien = 17,16 Sek.

  • Autoklick

    • McPoldy
    • 8. Februar 2008 um 11:08

    Vielleicht so?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <ie.au3>

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

    $oIE = _IECreateEmbedded()

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

    GUICreate("",800,600) ;Einfenster erstellen
    if not IsObj($oIE) then Exit 1 ;wenn es kein Objekt ist ENDE
    GUICtrlCreateObj($oIE,0,0,800,600);Ist WICHTIG!

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

    GUISetState() ;Musst du auch nicht zeigen, dass wichtige ist nur, dass GuiCtrlCreateObj angewendet wird!
    If _IENavigate($oIE,"www.google.de",1) <> -1 then EXIT;Dem Objekt die URL übergeben und warten bis geladen...
    If _IELinkClickByText($oIE, "News",0,1) <> -1 then EXIT ;Auf einen Link klicken und warten bis geladen.....
    AdlibEnable("NeuLaden",10000) ;alle 10 Sek. refresh
    ;~ AdlibEnable("NeuLaden",360000) ;alle 6 Min. refresh

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    AdlibDisable()
    Exit
    EndSwitch
    WEnd

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

    Func NeuLaden()
    _IEAction($oIE,"refresh")
    EndFunc

    [/autoit]

    GtaSpider bei deinem Script hab ich nur Fehler bekommen 8|?(

  • Es funktioniert nicht auf allen PCs...

    • McPoldy
    • 8. Februar 2008 um 10:12

    Oder
    Opt("WinTitleMatchMode", 2) = Substring Übereinstimmung
    WinWaitActive("###IntranetApp-Name### - Login")

  • Es funktioniert nicht auf allen PCs...

    • McPoldy
    • 8. Februar 2008 um 09:50

    Moin,

    ich glaube kaum das es ein AutoIT Problem ist. Du hast geschrieben, das die PC`s nahezu identisch installiert sind, daher gehe ich mal davon aus das der liebe User was installiert hat, was das Skript stört (könnte ich gewesen sein, man kennt ja Entwickler und ihren Hang zu "nützlichen" Tools :rolleyes: )

    Man kann jetzt eigentlich verschieden vorgehen:
    1. Möglichkeit
    Mal als anderer User an dem PC anmelden, damit man mit einen leeren Profil arbeitet und alle evtl. vom User automatisch gestarteten Programme nicht laufen. Läuft das Script, war es der User mit irgend einem Programm.

    2. Möglichkeit
    Man könnte es über ControlClick und ControlSend machen, hab da mal nen kleines Testscript gebastelt:

    Spoiler anzeigen
    [autoit]

    ;Include
    #include <winapi.au3>

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

    ;Optionen
    Opt("WinTitleMatchMode", 2)
    Opt("SendKeyDelay", 100)

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

    ;Testdatei erstellen
    Dim $fso = FileOpen(@ScriptDir & "\test.html",2)
    FileWriteLine($fso,"<html><head><title></title></head><body><form name='test' id='testid' title='testtitel' method='get' target='_self'><input type='text' name='txt' tabindex='1'><br><input type='text' name='txt2' tabindex='2'><br><button type='submit' id='cmdsubmit' name='buttonsubmit' tabindex='3'>Dr&uuml;ck mich...</button></form></body></html>")
    FileClose($fso)

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

    ;IE starten mit Testdatei
    $ie = Run("C:\Programme\Internet Explorer\IEXPLORE.EXE " & @ScriptDir & "\test.html")

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

    ;Auf IE warten....
    WinWaitActive("test.html")
    Sleep(2000)

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

    ;Klick und Text setzen.....
    ControlClick("test.html","","")
    ControlSend("test.html","","","{tab 1}")
    ControlSend("test.html","","","Hallo")
    ControlSend("test.html","","","{tab 1}")
    ControlSend("test.html","","","klappt....")
    ControlSend("test.html","","","{tab 1}")
    ControlSend("test.html","","","{Enter}")

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

    ; 5 Sekunden warten und dann den IE schliessen
    Sleep(5000)
    If ProcessExists($ie) Then ProcessClose($ie,1)
    ;Warte bis IE geschlossen wird
    ProcessWaitClose($ie)
    ;Testdatei löschen
    FileDelete(@ScriptDir & "\test.html")

    [/autoit]
  • Programme verstecken

    • McPoldy
    • 8. Februar 2008 um 08:46

    Mhh, das ist ja wirklich doof :)

    Das mit den Panik Köpfen ist eine feine Sache, aber habe mal das verstecken der Taskleiste raus genommen ( Zeile78 ).

    Spoiler anzeigen
    [autoit]


    ; Optionen
    Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.

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

    ; Include
    #include <array.au3>
    #Include <WinAPI.au3>

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

    ; Hotkey
    HotKeySet("^!v","AddWindow")
    HotKeySet("^!t","Panic")
    HotKeySet("^!p","Panic2")

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

    ; Tray Menü
    $restore = TrayCreateMenu("Programme anzeigen") ;Hilfe anzeigen
    $helpitem = TrayCreateItem("Hilfe") ;Hilfe anzeigen
    $aboutitem = TrayCreateItem("Über") ;Über... anzeigen
    $exititem = TrayCreateItem("Exit") ;Programm beenden
    TraySetState()

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

    ; Variablen
    Dim $arrhWnd[1]
    Dim $arrControl[1]
    Dim $anzahl = 0

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

    ; Warteschleife
    While 1
    $msg = TrayGetMsg()
    Select
    Case $msg = 0
    ContinueLoop
    Case $msg = $aboutitem
    Msgbox(64,"Über:","Erstellt von J. Kröger")
    ContinueLoop
    Case $msg = $exititem
    If $anzahl > 0 Then
    For $x = 1 to $anzahl
    _WinAPI_ShowWindow($arrhWnd[$x],1)
    Next
    EndIf
    Exit 0
    ContinueLoop
    Case $msg = $helpitem
    Msgbox(64,"Hilfe","Zum verstecken Strg+Alt+v drücken." & @CRLF & "Taskleiste anzeigen mit [Strg]+[Alt]+[t]."& @CRLF & "Panic beenden mit [Strg]+[Alt]+[p].")
    ContinueLoop
    Case Else
    If $msg <> $exititem AND $msg > 0 Then
    $id = _ArraySearch($arrControl,$msg,1,0,1)
    $hWnd = $arrhWnd[$id]
    _WinAPI_ShowWindow($hWnd,1)
    TrayItemDelete($msg)
    _ArrayDelete($arrhWnd,$id)
    _ArrayDelete($arrControl,$id)
    $anzahl -= 1
    EndIf
    EndSelect
    WEnd

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

    Func Panic()
    $hWnd = WinGetHandle("[CLASS:Shell_TrayWnd]")
    $id = _ArraySearch($arrhWnd,$hWnd,1,0,1)
    $hWnd = $arrhWnd[$id]
    _WinAPI_ShowWindow($hWnd,1)
    TrayItemDelete($arrControl[$id])
    _ArrayDelete($arrhWnd,$id)
    _ArrayDelete($arrControl,$id)
    $anzahl -= 1
    EndFunc
    Func Panic2()
    If $anzahl > 0 Then
    For $x = 1 to $anzahl
    _WinAPI_ShowWindow($arrhWnd[$x],1)
    Next
    EndIf
    Exit 0
    EndFunc
    Func AddWindow()
    $hWnd = WinGetHandle("")
    If $hWnd = WinGetHandle("[CLASS:Shell_TrayWnd]") Then Return -1 ;Tray-Bar kann nicht versteckt werden
    if _ArraySearch($arrhWnd,$hWnd,1,0,1) = -1 Then
    $titel = _WinAPI_GetWindowText($hWnd)
    $newcontrol = TrayCreateItem($titel,$restore)
    _ArrayAdd($arrhWnd,$hWnd)
    _ArrayAdd($arrControl,$newcontrol)
    _WinAPI_ShowWindow($hWnd,0)
    $anzahl += 1
    EndIf
    EndFunc

    [/autoit]
  • Wie Verzeichnis wechseln

    • McPoldy
    • 7. Februar 2008 um 14:50

    Wenn du in das ursprüngliche WorkingDir zurück willst solltest du dir das in einer Variablen speichern.

    Spoiler anzeigen
    [autoit]


    $OriginalWorkingDir = @WorkingDir
    MsgBox(0,"",@WorkingDir)
    FileChangeDir ( "..")
    MsgBox(0,"",@WorkingDir)
    FileChangeDir ($OriginalWorkingDir)
    MsgBox(0,"",@WorkingDir)

    [/autoit]
  • Brauche Hilfe bin totaler Anfänger (hab Gesten erst mit Autoit angefangen)

    • McPoldy
    • 6. Februar 2008 um 20:43

    Hi, du meinst vermutlich das es ungefähr so aussehen soll:

    Spoiler anzeigen
    [autoit]


    ;Include
    ;Include
    #include <GUIConstants.au3>

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

    ;GUI erstellen
    $Form1 = GUICreate("Form1", 448, 266, 196, 125)
    GUISetBkColor(0xA6CAF0)
    $Label1 = GUICtrlCreateLabel("V.: 1.2", 408, 248, 35, 17)
    $Label2 = GUICtrlCreateLabel("by. Denis ", 0, 248, 106, 17)
    $Button1 = GUICtrlCreateButton("CS:S", 8, 40, 97, 25, 0)
    $Button2 = GUICtrlCreateButton("Silkroad Online", 8, 72, 97, 25, 0)
    $Button3 = GUICtrlCreateButton("Portal", 8, 104, 97, 25, 0)
    $Button4 = GUICtrlCreateButton("Half-Life", 8, 136, 97, 25, 0)
    $Label3 = GUICtrlCreateLabel("Spiele:", 24, 8, 53, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Festplattenpfad (z.B. D,E)", 112, 8, 180, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $pfad1 = GUICtrlCreateInput("", 112, 40, 40, 21)
    $pfad2 = GUICtrlCreateInput("", 112, 72, 40, 21)
    $pfad3 = GUICtrlCreateInput("", 112, 104, 40, 21)
    $pfad4 = GUICtrlCreateInput("", 112, 136, 40, 21)

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

    ;GJI anzeigen
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Run (GUICtrlRead($pfad1) & ":\Programme\Steam\Steam.exe -applaunch 240")
    Exit
    Case $Button2
    Run (GUICtrlRead($pfad2) & ":\Programme\Silkroad\silkroad.exe")
    Exit
    Case $Button3
    Run (GUICtrlRead($pfad3) & ":\Programme\OrangeBox\RUN_PORTAL.exe")
    Exit
    Case $Button4
    Run (GUICtrlRead($pfad4) &":\Programme\OrangeBox\RUN_EP2.exe")
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Noch ein paar allgemeine Dinge :) nur so als Hinweis
    1. Wenn du Quellcode hast,, rücke ihn ein, so kann man ihn besser lesen (fällt mir nach 9 Jahren immer noch schwer)
    2. Wenn du einen Post machst, oben gibt es Buttons:
    a. SP = Spoiler, damit wird alles was dazwischen steht zusammen geklappt
    b. AutoIT Zeichen = Damit wir der Quellcode gleich richtig angezeigt.

  • CSV anhand eines Feldwertes sortieren

    • McPoldy
    • 6. Februar 2008 um 20:27

    Mir war grade langweilig :) man kann es sich ja an seine Gegebenheiten anpassen.

    Quell-Datei (testdaten.txt)


    ID;Artikelnummer;Datum;Eingang;Ausgang;Saldo
    1;0125531;23.12.2010;BLA;BLUB;0,74
    2;1531541;05.03.2010;BLA;BLUB;0,74
    3;215812F;05.05.2010;BLA;BLUB;0,74
    4;F135323;06.09.2010;BLA;BLUB;0,74
    5;BGB2322;13.11.2010;BLA;BLUB;0,74
    6;VB01253;04.10.2014;BLA;BLUB;0,74
    7;BCV2123;23.01.2010;BLA;BLUB;0,74
    8;2CV1B2C;21.08.2010;BLA;BLUB;0,74
    9;23C1VB2;15.12.2019;BLA;BLUB;0,74
    10;2C1V21C;14.11.2010;BLA;BLUB;0,74
    11;C2V1B2C;15.02.2010;BLA;BLUB;0,74
    12;DFG5153;19.10.2012;BLA;BLUB;0,74
    13;2DFG313;09.09.2010;BLA;ALUB;0,74
    14;2D1F3G2;10.07.2010;ALA;BLUB;0,74

    Script zum sorteiren nach Datum
    [autoit]


    #include <file.au3>
    #include <array.au3>
    Dim $aRecords
    Dim $Feldanzahl = 6

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

    If Not _FileReadToArray("testdaten.txt",$aRecords) Then
    MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf
    Dim $arr[$aRecords[0]-1] [$Feldanzahl]

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

    For $x = 2 to $aRecords[0]
    $i = $x - 2
    $splittxt = StringSplit($aRecords[$x],";")

    $arr[$i][0] = $splittxt[1];ID
    $arr[$i][1] = $splittxt[2];Artikelnummer
    $datum = StringSplit($splittxt[3],".");Datum
    $arr[$i][2] = $datum[3]&$datum[2]&$datum[1]
    $arr[$i][3] = $splittxt[4];Eingang
    $arr[$i][4] = $splittxt[5];Ausgang
    $arr[$i][5] = $splittxt[6];Saldo
    Next

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

    _ArraySort($arr,0,0,0,6,2)

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

    $fso = FileOpen("output.txt",2)

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

    FileWriteLine($fso,$aRecords[1])

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

    For $x = 0 To UBound($arr) -1
    $i = 2
    $datum = $arr[$x][2]
    $datum = StringMid($datum,7,2) & "." & StringMid($datum,5,2) & "." & StringMid($datum,1,4)
    $result = $arr[$x][0] & ";" & $arr[$x][1] & ";" & $datum & ";" & $arr[$x][3] & ";" & $arr[$x][4] & ";" & $arr[$x][5]
    FileWriteLine($fso,$result)
    Next

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

    FileClose($fso)

    [/autoit]
    Ausgabe-Datei (output.txt)


    ID;Artikelnummer;Datum;Eingang;Ausgang;Saldo
    7;BCV2123;23.01.2010;BLA;BLUB;0,74
    11;C2V1B2C;15.02.2010;BLA;BLUB;0,74
    2;1531541;05.03.2010;BLA;BLUB;0,74
    3;215812F;05.05.2010;BLA;BLUB;0,74
    14;2D1F3G2;10.07.2010;ALA;BLUB;0,74
    8;2CV1B2C;21.08.2010;BLA;BLUB;0,74
    4;F135323;06.09.2010;BLA;BLUB;0,74
    13;2DFG313;09.09.2010;BLA;ALUB;0,74
    5;BGB2322;13.11.2010;BLA;BLUB;0,74
    10;2C1V21C;14.11.2010;BLA;BLUB;0,74
    1;0125531;23.12.2010;BLA;BLUB;0,74
    12;DFG5153;19.10.2012;BLA;BLUB;0,74
    6;VB01253;04.10.2014;BLA;BLUB;0,74
    9;23C1VB2;15.12.2019;BLA;BLUB;0,74

  • Programme verstecken

    • McPoldy
    • 6. Februar 2008 um 19:21

    [Blockierte Grafik: http://www.imagesharer.de/upload/1202252400/c574ef4a6f90efb58125c1548db77db8.jpg]

    Macht er doch ?(

  • PixelGetColor vom gesamten Bildschirm

    • McPoldy
    • 6. Februar 2008 um 15:51

    Ich habe das auch mal probiert, aber bei 300x300 braucht er schon 1 Sekunde zum einlesen und 8 zum zeichnen.

    Das Handel habe ich per Hand eingetragen, habe mir das mal in ein Notepad malen lassen, aber nicht grade farbecht oder :)

    Bild

    [Blockierte Grafik: http://www.imagesharer.de/upload/1202252400/5f537d5d76ea518d60cf7a566dd56598.jpg]

    Testcode
    [autoit]


    #include <array.au3>
    #include <Date.au3>
    #Include <WinAPI.au3>

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

    $dheight = 300 ; @DesktopHeight
    $dwidth = 300 ; @DesktopWidth

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

    $arrcount = $dheight * $dwidth

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

    Dim $arr[$arrcount]
    $pos = 0
    $StartTicks = _TimeToTicks(@HOUR,@MIN,@SEC)

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

    For $x = 1 to $dheight
    For $y = 1 To $dwidth
    $arr[$pos] = PixelGetColor($x,$y)
    $pos += 1
    Next
    Next

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

    $pos = 0

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

    ;!!!!! Handel manuell eingetragen!!!!!!!
    $hWnd = "0x0044063A"

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

    ;_ArrayReverse($arr)
    For $x = 1 to $dheight
    For $y = 1 To $dwidth
    SetPixel($hWnd,$x,$y,$arr[$pos])
    $pos += 1
    Next
    Next
    $EndTicks = (_TimeToTicks(@HOUR,@MIN,@SEC) - $StartTicks) / 1000
    MsgBox(262144,'' , 'Dauer:' & $EndTicks & " Sekunden")

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

    Func SetPixel ($handle, $x, $y, $color)
    $dc= DllCall ("user32.dll", "int", "GetDC", "hwnd", $handle)
    DllCall ("gdi32.dll", "long", "SetPixel", "long", $dc[0], "long", $x, "long", $y, "long", $color)
    DllCall ("user32.dll", "int", "ReleaseDC", "hwnd", 0, "int", $dc[0])
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • Regeln

    • McPoldy
    • 6. Februar 2008 um 14:21
    Zitat

    Schön und gut, dass es das ganze hier gibt, aber nicht, dass irgendwann die Hilfeleistung auch noch was kostet :P
    Greetz

    Glaub ich nicht das es soweit kommt ;), ich dachte mir nur, wenn doch was hängen bleibt, könnte man das für das Board nutzen. Zum Beispiel für die laufenden Unkosten, oder für Erweiterungen. Ich persönlich möchte nix haben, aber für so ein Board wäre es ne prima Sache, würde mich freuen wenn es angenommen wird.

  • Programme verstecken

    • McPoldy
    • 6. Februar 2008 um 12:00

    Würde ich machen, wenn ich welchen hätte, bin noch nicht dazu gekommen seit gestern Abend was dran zu machen :)

    14:08
    Nachtrag, hab noch in der Pause mal schnell ein neues geschrieben bzw. ein etwas anderes, weniger Code und keine Gui mehr, zum verstecken Strg+Alt+v drücken. Die Liste ist jetzt beim Icon unten untergebracht.

    Einträge bei TrayIcon Version
    [autoit]

    ; Optionen
    Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.

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

    ; Include
    #include <array.au3>
    #Include <WinAPI.au3>

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

    ; Hotkey
    HotKeySet("^!v","AddWindow")

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

    ; Tray Menü
    $restore = TrayCreateMenu("Programme anzeigen") ;Hilfe anzeigen
    $helpitem = TrayCreateItem("Hilfe") ;Hilfe anzeigen
    $aboutitem = TrayCreateItem("Über") ;Über... anzeigen
    $exititem = TrayCreateItem("Exit") ;Programm beenden
    TraySetState()

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

    ; Variablen
    Dim $arrhWnd[1]
    Dim $arrControl[1]
    Dim $anzahl = 0

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

    ; Warteschleife
    While 1
    $msg = TrayGetMsg()
    Select
    Case $msg = 0
    ContinueLoop
    Case $msg = $aboutitem
    Msgbox(64,"Über:","Erstellt von J. Kröger")
    ContinueLoop
    Case $msg = $exititem
    If $anzahl > 0 Then
    For $x = 1 to $anzahl
    _WinAPI_ShowWindow($arrhWnd[$x],1)
    Next
    EndIf
    Exit 0
    ContinueLoop
    Case $msg = $helpitem
    Msgbox(64,"Hilfe","Zum verstecken Strg+Alt+v drücken.")
    ContinueLoop
    Case Else
    If $msg <> $exititem AND $msg > 0 Then
    $id = _ArraySearch($arrControl,$msg,1,0,1)
    $hWnd = $arrhWnd[$id]
    _WinAPI_ShowWindow($hWnd,1)
    TrayItemDelete($msg)
    _ArrayDelete($arrhWnd,$id)
    _ArrayDelete($arrControl,$id)
    $anzahl -= 1
    EndIf
    EndSelect
    WEnd

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

    Func AddWindow()
    $hWnd = WinGetHandle("")
    if _ArraySearch($arrhWnd,$hWnd,1,0,1) = -1 Then
    $titel = _WinAPI_GetWindowText($hWnd)
    $newcontrol = TrayCreateItem($titel,$restore)
    _ArrayAdd($arrhWnd,$hWnd)
    _ArrayAdd($arrControl,$newcontrol)
    _WinAPI_ShowWindow($hWnd,0)
    $anzahl += 1
    EndIf
    EndFunc

    [/autoit]
  • Programme verstecken

    • McPoldy
    • 6. Februar 2008 um 11:05

    Nun gefällt mir auch gut, aber es war für mich eine schöne Fingerübung und in dem Tool sind ja auch einige Funktionen mehr drinnen :) was sich dann auch in der Entwicklungszeit niederschlägt 23 Monate zu 90 Minuten :)
    Leider startet ModernMenu bei mir nicht :(

  • GuiCtrtlSetImage verändert Position nach Resizing

    • McPoldy
    • 6. Februar 2008 um 09:03

    Echt übel, das einzige was dazu einfällt, ist das man bevor man das neue Icon setzt die Position abfragt wo es grade ist und nach dem neusetzen das neue Icon auf die Position schiebt. Es scheint so zu sein, das bei dem Resizing immer der Wert von dem Zeitpunkt genommen wird wo das Control erstellt wurde :(

    Vorschlag
    [autoit]


    GUICreate("Test",100,100,100,100)
    $But=GUICtrlCreateIcon("",-1,4,60,32,32)
    GUICtrlSetResizing($But,832)
    GUICtrlSetImage($But,@SystemDir & "\shell32.dll", 30)
    GUISetState();das icon ist unten links
    MsgBox(0,"Größe","Größe wird auf 170,170 geändert")
    $pos = ControlGetPos ("", "",$But)
    MsgBox(64,"",$pos[0] & "," & $pos[1])
    WinMove("Test","",100,100,170,170,100) ;das icon ist nach wie vor unten links, wie es lt. setresizing auch sein soll...

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

    Sleep(1000)
    MsgBox(0,"Info","Noch das alte Icon")

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

    $pos = ControlGetPos ("", "",$But)
    GUICtrlSetImage($But,@SystemDir & "\shell32.dll", 31)
    ControlMove ("","",$But,$pos[0],$pos[1])

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

    Sleep(1000)
    MsgBox(0,"Info","Das neue Icon")

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

    MsgBox(0,"Größe","Größe wird auf 270,270 geändert")
    WinMove("Test","",100,100,270,270,100) ;das icon ist nach wie vor unten links, wie es lt. setresizing auch sein soll...

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

    Sleep(1000)
    MsgBox(0,"Info","Fertig.....")

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Programme verstecken

    • McPoldy
    • 6. Februar 2008 um 07:51

    @oliverh, danke für den Tip.

    War ich auch erst am überlegen, bis mit zwei Sachen eingefallen sind :)
    1. Dann hab ich das TrayMenü voll mit Icons, also eigentlich nur die Flut von Müll von links nach rechts verschoben
    2. Es gibt solche Programme schon, mir fällt jetzt grade nur MinimizerXP ein

    Ich hab mit das Script gestern Abend auch nur in einer ruhigen Stunde zusammen gekleistert, aber vielleicht hab ich oder ein anderer ja Lust das als Zusatz mit einzubauen :)

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™