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

Beiträge von BlackDragon

  • Image verschwindet nicht aus erster Listview Spalte

    • BlackDragon
    • 1. Dezember 2013 um 14:35

    Hallo zusammen,

    Folgendes Problem.. ich will NUR in der dritten Spalte Icons oder Bilder anzeigen.. aber egal was ich mache in der ersten Spalte bleibt immer das Bild "0" aus der ImageList oder wie in meinem Projekt ein Platzhalter mit den Maßen.. kennt einer von euch den Grund oder ein Workaround?


    hier mal ein ein etwas abgeändertes Script aus der Hilfe:

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

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GuiImageList.au3>

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

    $Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()
    Local $hImage, $hListView

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

    ; Create GUI
    GUICreate("ListView Set Extended Style", 400, 300)
    $hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
    _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
    GUISetState()

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

    ; Load images
    $hImage = _GUIImageList_Create()
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x00FF00, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x0000FF, 16, 16))
    _GUICtrlListView_SetImageList($hListView, $hImage, 1)

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

    ; Add columns
    _GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 180)
    _GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 110)
    _GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 150)

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

    ; Add items
    _GUICtrlListView_AddItem($hListView, "Row 1: Col 1", 1)
    _GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 2", 1)
    _GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 3", 2, 2)
    _GUICtrlListView_AddItem($hListView, "Row 2: Col 1")
    _GUICtrlListView_AddSubItem($hListView, 1, "Row 2: Col 2", 1, -1)
    _GUICtrlListView_AddItem($hListView, "<- geht nicht weg")
    _GUICtrlListView_AddSubItem($hListView, 2, "<- ist weg mit -1", 1, -1)
    _GUICtrlListView_AddSubItem($hListView, 2, "<- ist weg", 2)

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

    _GUICtrlListView_AddItem($hListView, "<- geht nicht weg mit -1", -1)

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

    [/autoit]




    edit: omg was ist denn hier los.. wo sind die Zeilenumbrüche hin :D ich versuch das mal zu lösen..
    edit.. so besser..


    da hätte ich auch früher drauf kommen können ->
    Spalte 0 auf breite 0 stellen und dann einfach nicht von 0 an zählen sondern von 1

  • Bildschirm während das script läuft ausschalten

    • BlackDragon
    • 5. Oktober 2008 um 14:47
    [autoit]

    #include <SendMessage.au3>

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

    _Main()

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

    Func _Main()
    Local Const $Off = 2, $On = -1

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

    Opt("WinTitleMatchMode", 4)
    $hwnd = WinGetHandle('classname=Progman')
    BlockInput(1)
    _ToggleMonitor($hWnd, $Off) ;schaltet den monitor aus oder?
    Sleep(1000)

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

    ;hier startet mein script
    Run("C:\Programme\Mozilla Firefox\firefox.exe")

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

    Winwaitactive("Google - Mozilla Firefox")
    sleep(1000)
    send("^l")
    sleep(500)
    send("http://www.adresse.de")
    Send("{ENTER}")

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

    Sleep(3000)

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

    WinMove("Adresse - Mozilla Firefox", "", 0, 0, 625, 335)

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

    Sleep(1000)

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

    MouseClick("left", 310, 205, 2)

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

    ;usw.. dann kommt nurnoch Send Mouseklick und Sleep..

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

    Sleep(1000)
    _ToggleMonitor($hWnd, $On);schaltet den monitor wieder an..
    BlockInput(0)
    EndFunc

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

    Func _ToggleMonitor($hwnd, $OnOff)
    Local Const $WM_SYSCOMMAND = 274
    Local Const $SC_MONITORPOWER = 61808
    _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, $OnOff)
    If @error Then
    MsgBox(0,"_ToggleMonitor", "_SendMessage Error: " & @error)
    Exit
    EndIf
    EndFunc

    [/autoit]


    der monitor soll also am anfang vom script ausgeschaltet werden und am ende wieder an.. oder er bleibt halt aus problem ist immernoch das wenn autoit mousemove macht der bildschirm wieder sichtbar ist X( blockinput hilft gegen das bewegen von der manuellen maus.. wenn ich jetzt aber mousemove blocke dann klickt das script nichtmehr :3

  • Bildschirm während das script läuft ausschalten

    • BlackDragon
    • 5. Oktober 2008 um 09:32

    ja da gibts aber leider das selbe problem wenn ich die maus beweg geht der bildschirmwieder an..

    könnte den monitor aber aus halten wenn ich's so mache.. könnte man dann einfach neben dem script laufen lassen.. funz auch super mit sachen eingeben und maus bewegen..

    [autoit]

    While 1
    $hwnd = WinGetHandle('classname=Progman')
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', 2)
    sleep(100)
    WEnd

    [/autoit]
  • Bildschirm während das script läuft ausschalten

    • BlackDragon
    • 4. Oktober 2008 um 22:52

    hehe.. keine panik sobald mir wer nen begriff vorwirft geb ich ihn bei der hilfe ein xD hab auch BlockInput(0) ans ende von nem sleep gesetzt funzt ganz gut bis auf atrg+alt+entf wird alles geblockt ^^
    thx schonmal dafür hat schonmal ein problem gelöst..

    jetzt brauch ich nurnoch etwas um den bildschirm dauerhaft auszuschalten.. mir ist grad ne idee gekommen als ich ich was von verdunkeln gelesen hab.. man könnte ja eigentlich den bildschirm so sehr verdunkeln das er schwarz ist und das man nix mehr sieht aber die aktionen weiterhin ausgeführt werden.. und am ende wird er einfach wieder aufgehellt.. oder halt anders rum.. man macht mit WinSetTrans das fenster unsichtbar.. dann sieht man auch nixmehr.. doof währ dann halt nur wenn der cursor rumhüpft.. kann man den auch irgendwie unsichtbar machen? ^^ wenns nicht geht kann man doch sicher notfalls noch nen selbstgemachten cursor über windows laden oder? müsste dann halt nur nen 1pixel cursor machen.. was auch kein problem sein sollte..

  • Bildschirm während das script läuft ausschalten

    • BlackDragon
    • 4. Oktober 2008 um 21:52

    hi..

    ich hab ein kleines script das mir alle paar stunden paar klicks macht (kein bot für irgendwelche browsergames oder ähnliches.. einfach nur faulheit :D) naja und auf jeden fall will ich wenn das script läuft das der monitor ausgeschaltet wird (oder auch bleibt wenn er schon von windows nach ner zeit ausgeschaltet wurde)

    dazu hab ich hier schon was recht interresantes gefunden..

    Spoiler anzeigen
    [autoit]

    ;MsgBox(0, "Started", @ScriptName & " has started.... F11 = Monitor off, F10 = Monitor on, Esc = Exit Program.")
    #NoTrayIcon

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

    Opt("TrayMenuMode",1)
    Opt ("WinTitleMatchMode", 4)
    HotKeySet("{F11}", "MonOff")
    HotKeySet("{F10}", "MonOn")
    HotKeySet("{Esc}", "Close")

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

    MonOff()
    BlockInput(1)
    Sleep(10000)
    BlockInput(0)
    MonOn()

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

    While 1
    Sleep(0x7fffffff)
    WEnd

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

    Func Close()
    $hwnd = WinGetHandle('classname=Progman')
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', -1)
    MsgBox(0, "Closing...", "Closing program.....")
    Exit
    EndFunc;==>Close

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

    Func MonOn()
    $hwnd = WinGetHandle('classname=Progman')
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', -1)
    EndFunc;==>MonOn
    Func MonOff()
    $hwnd = WinGetHandle('classname=Progman')
    Sleep(500)
    DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', $hwnd, 'int', 274, 'int', 61808, 'int', 2)
    EndFunc;==>MonOff

    [/autoit]

    habs zwar noch nicht in mein script eingbaut aber sollte ja nicht so schwer sein..

    problem: wenn ich oder autoit mit mousemove die maus bewegt dann ist der bildschirm wieder an..

    naja.. und wenn ich das problem gelöst habe hab ich gleich das nächste.. wenn der bildschirm aus ist und das script die maus bewegt und dann irgendwer an mein pc geht und an der maus rumfummelt klickt das script nicht dahin wo es soll.. kann man also irgendwie solange das script läuft die manuelle maus abstellen? xD

    hab hier auch schon was über ne schwarze GUI die komplett übern bildschirm geht was gelesen.. so würde es rein theoretisch auch gehen aber wenn ich dann rumklicke klicke ich doch auf die gui und nicht auf die fenster auf die ich klicken will.. ^^

    kurz gesagt: wenn das script läuft soll keiner darauf einfluss haben und keiner sehen was es macht :D

    hoffe mal einer von euch kann mir da helfen xD

  • besonderen string suchen und ersetzen

    • BlackDragon
    • 16. März 2008 um 14:49

    ne das funzt auch nicht.. stellt nur noch ne datei her die genauso wie die alte ist..
    und wie die dateien formatiert sind das weiß ich leider auch nicht o.o
    aber vielleicht helfen euch ein paar test datein ^^
    http://www.uploadarea.de/files/8fths7ddow1cp9xiw58qlhgpf.rar

    danke schonmal das ihr euch so mühen macht =)

    E: bei denen muss man nach ÷ðå Þæ« ÀÖ– š~ •g ]rQ @T; )8% suchen
    und z.b. mit ÷ðå ÿáÏ ÿƲ ö®Ÿ Ü„ ½sk žVR ‚?; ersetzen ^^

  • besonderen string suchen und ersetzen

    • BlackDragon
    • 16. März 2008 um 13:42

    hat den selben effekt wie mein script weiter oben.. da kommt wieder nur ne datei mit "ÈøÓ" raus q.q

    als ich aber mal
    "ÿÿÿ" mit "abc" ersetzt hab ging es..

    liegt es vielleicht an den zeichen?

  • besonderen string suchen und ersetzen

    • BlackDragon
    • 16. März 2008 um 12:44

    ok.. also ich habs jetzt geschaft das in der datei "Line1" steht ohne das sich der rest der datei geändert hat.. problem ist jetzt aber Stringreplace o.o

    [autoit]

    $text = StringReplace("÷ðå ÿáÏ ÿƲ ö®Ÿ Ü„ ½sk žVR ‚?;", "÷ðå ÿáÏ ÿƲ ö®Ÿ Ü„ ½sk žVR ‚?;", "êºä ̓Š»€³ ªn¢ ˜\‘ ‡J€ v7n e%]")
    MsgBox(0, "New string is", $text)

    [/autoit]


    wenn ich das so dastehn hab dann zeigt er mir den neuen string an aber.. wie bekomm ich jetzt $text an die stelle wo vorher "÷ðå ÿáÏ ÿƲ ö®Ÿ Ü„ ½sk žVR ‚?;" stand?

  • besonderen string suchen und ersetzen

    • BlackDragon
    • 16. März 2008 um 11:49

    huhu ^^
    also ich bin noch ziemlich neu und deswegen hab ich natürlich sogut wie keinen plan xD naja was ich vor hab.. ich will mit autoit so um die 4000 dateien verändern.. da jedes normale tool das ich aus google hab versagt hat muss ichs halt selbst in die hand nehmen..

    zuerst hab ichs damit versucht.. was auch ziemlich gut ging find ich.. problem ist nur bei 4000 dateien dauert das 5 stunden xD

    Spoiler anzeigen
    [autoit]

    WinActivate("test.pal - Editor", "") ;wechselt zur .pal datei die schon mit dem editor geöffnet wurde
    Send("^a")
    sleep(50)
    Send("^c")
    sleep(50);und kopiert die ganze kacke da drin

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

    $i = 0
    While $i <= 4000
    WinActivate("fertig", "");aktiviert den ordner "fertig"
    sleep(5)
    send("{SPACE}")
    Sleep(5)
    send("{ENTER}") ;öffnet die markierte datei und wartet bis der editor kommt..
    WinWaitActive("[CLASS:Notepad]", "")
    Sleep(5)

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

    Send("^f") ;suche aktivieren
    Sleep(5)
    Send("^v") ;string mit strg+v einfügen und auf enter..
    send("{ENTER}")
    Sleep(5)

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

    send("!{F4}") ;suchen fenster schliesen

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

    Sleep(5)
    send("÷êºä ̓Š»€³ ªn¢ ˜\‘ ‡J€ v7n e%]") ;dann wird automatisch das von suche markierte mit dem string hier überschrieben
    Sleep(5)
    Send("^s") ;speichern nicht vergessen

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

    send("!{F4}") ;fenster schliesen
    send("{DOWN}") ;pfeiltaste runter um die nächste datei auszuwählen.. und das ganze von vorn

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

    $i = $i + 1

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

    WEnd
    Exit

    [/autoit]

    also die variante oben ist so als wenn man alles per hand öffnet uns speichert.. dauert deswegen ewig..

    dann hab ich bischen rumgesucht.. und bin auf _ReplaceStringInFile gestoßen..
    naja gut.. ich mach ein test.txt file mit nem kleinen text drin und ersetz es dann mit nem andern.. hat alles super geklappt :D

    jetzt versuch ich das mit meiner .pal datei und knapp 95% des inhaltes wird gelöscht X( aber wieso? o.o

    hier mal der code..

    Spoiler anzeigen
    [autoit]

    #include <File.au3>

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

    $find = "ÿÿÿ"
    $replace = "abc"

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

    $filename = "C:\Kopie von palette_001.pal"

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


    $retval = _ReplaceStringInFile($filename,$find,$replace)
    if $retval = -1 then
    msgbox(0, "ERROR", "The pattern could not be replaced in file: " & $filename & " Error: " & @error)
    exit

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

    endif

    [/autoit]

    ausgangsdatei sah so aus:

    Spoiler anzeigen

    ÈøÓ ÿÿÿ ÿô¼ ÿá¶ èÇ¥ Ѱ” º™ƒ £q –of ‚SS ííÿ ÎÌà ¯§Á •‹§ zoŒ d^w GCY )'; ÿÞÄ ú»« ô˜’ é~z Ëbf ²FQ Œ5> u(0 ÿÿÀ Þæ« ÀÖ– ›µ~ ~”f _tQ @T; )7% ÿûÈ ýã² ûËœ î³… Ú—s Åz` «iW ‘QN ÿðå ìÊÆ ئ¢ ÈŽŒ ¸t| ž\f ~AQ \%; ÿå£ ûÅ‹ ÷¥r ò…Y ídG ¾C0 " a ÿÞÄ ú»« ô˜’ é~z Ëbf ²FQ Œ5> u(0 ÿóë îß× ÜËà ʷ¯ ¸£› ©‹ ™{{ ‰gk ÷ðå ÿáÏ ÿƲ ö®Ÿ Ü„ ½sk žVR ‚?; Ö𵠸إ š¿” €£‡ f†t Lhd 1JT +C n%- ÿåµ óÈž 檆 ÓŒn ³rY ž^I zA2 U% ÿÞ¿ ëĨ ת‘ Ãz ®vb Ž^K nF4 N. ðÑÜ Ö¸Ç ½Ÿ° £‡™ ˆo‚ nWj S?S 8'; ÿÿË ÿÞ¬ ÿÀŒ ë¡q Ï…\ ²iG N9 g4) ÿÿÞ çæÈ Ï̲ ·²œ Ÿ˜… „}q ib] MFH ÿ ÿ ÿÿÿ

    und danach blieb nurnoch das hier: ÈøÓ

    naja.. später will ich das jede datei in einem ordner mit der endung .pal nach dem string "÷ðå ÿáÏ ÿƲ ö®Ÿ Ü„ ½sk žVR ‚?;" durchsucht wird und durch den hier "êºä ̓Š»€³ ªn¢ ˜\‘ ‡J€ v7n e%]" ersetzt wird ^^

    hoffe hier kann mir wer helfen =)

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™