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

  • FileWrite() schreibt nicht ..

    • BugFix
    • 14. September 2008 um 19:37

    Ohne deinen Code zu kennen ist da schwer was zu sagen. ;)
    Wenn du z.B. erst beim Schließen der Datei tatsächlich in die Datei schreibst und vorher nur die Daten zusammenstellst, dann findet natürlich beim Abschießen über den TaskManager kein Schreibvorgang statt.

  • ListView - Editieren von N SubItems in N ListViews

    • BugFix
    • 14. September 2008 um 18:24

    Hallo teh_hahn,
    die Lösung liegt, wie meist, ganz in der Nähe. Wenn du außerhalb des existierenden Listviewbereiches klickst wird Index -1 zurückgegeben. Das Abfragen und schon klappts:

    Spoiler anzeigen
    [autoit]

    Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
    #forceref $hWnd, $Msg, $wParam

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

    Local Const $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    Local Const $hWndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    Local Const $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    Local Const $iCode = DllStructGetData($tNMHDR, "Code")

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

    Local $hWndListView = 0
    For $i = 0 To UBound($ah_lviews) - 1
    $hWndListView = $ah_lviews[$i]
    If Not IsHWnd($hWndListView) Then $hWndListView = GUICtrlGetHandle($hWndListView)
    If $hWndFrom = $hWndListView Then
    Switch $iCode
    Case $NM_CLICK ;~ Single click
    Case $NM_DBLCLK ;~ Double click
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $lParam)
    $i_idfrom = $iIDFrom ;~ ToDo: Global variable!
    $i_index = DllStructGetData($tInfo, "Index") ;~ ToDo: Global variable!
    $i_subitem = DllStructGetData($tInfo, "SubItem") ;~ ToDo: Global variable!
    If $i_index < 0 Then Return ; ####### Das ist die Lösung #############################
    Return _GUICtrlListView_EditShow($hWndListView, $i_idfrom, $i_index, $i_subitem)
    EndSwitch
    EndIf
    Next

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

    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]
  • Funktionen des jeweiligen Objektes rausfinden?

    • BugFix
    • 14. September 2008 um 11:15

    Die Methoden eines Objektes kannst du nicht abfragen - die mußt du kennen/suchen (MSDN).
    Für Arbeit mit dem IE findest du in der Hilfe ausreichend Material: Hilfedatei ==> UDF ==> IE Management ;)

  • Kopieren/Verschieben mit Statusbar-Anzeige?

    • BugFix
    • 14. September 2008 um 11:11

    Ich sehe grad, du möchtest, dass der Status(Progressbar) sich auf alle Dateien bezieht. Da weiß ich nicht ob das möglich ist.
    Ansonsten Array mit den Quelldateien übergeben und einzeln ausführen. Aber das kannst du auch außerhalb der Funktion machen und diese, wie schon erwähnt, in einer Schleife aufrufen.

  • send(rctrl) verursacht probs mit tastatur eingabe

    • BugFix
    • 13. September 2008 um 21:18

    Dann mußt du natürlich CTRL gedrückt halten:

    [autoit]

    Send("{CTRLDOWN}" & $buff1_playernr & "{CTRLUP}")

    [/autoit]
  • Kopieren/Verschieben mit Statusbar-Anzeige?

    • BugFix
    • 13. September 2008 um 20:23

    Dann mußt du die Funktion umschreiben und statt einer Datei, ein Array mit Dateien übergeben.

  • Lob

    • BugFix
    • 13. September 2008 um 17:31

    Jetzt weiß ich endlich, warum es in AutoIt keine Konventionen gibt: Das würde nur noch mehr Verwirrung stiften. :rofl:

  • Lob

    • BugFix
    • 13. September 2008 um 15:09
    Zitat von Tom99

    mir ist nur aufgefallen das du bei Boolen Parametern immer zb. $bHide benutz, was aber für Binary steht.


    Ich antworte einfach mal dazu ;)
    Da es in Autoit nur die Typen Variabel, Bool oder Array (oops - Object fast vergessen) - gibt, ist die Kennzeichnung einer Boolschen Variable mit b eigentlich durchaus sinnvoll. Ich handhabe das ebenso.

  • _GUICtrlListView_EditLabel Beispiel aus Hilfe, wie zeite Spalte wählen.

    • BugFix
    • 13. September 2008 um 14:48

    Ist schon ziemlich weit gediehen. Wenn du das bisherige Produkt mal sehen möchtest, melde dich per PN - publikationsreif ist es noch nicht :D

  • Den Computer Sprechen lassen - _Speech, Update II

    • BugFix
    • 13. September 2008 um 13:04

    @Tom99
    Nicht direkt zum Thema, mehr allgemein: Du verwendest gerne Leerzeilen ? :D Ich persönlich finde es dann mühseliger Code zu lesen, weil dadurch etwas die Blockstruktur zerfledert wird. Aber unabhängig davon muß man dann hier immer scrollen um den Code zu überblicken. ;)

  • Text während For-Schleife aus Fenster lesen?

    • BugFix
    • 13. September 2008 um 12:49

    Du kannst beim Lesen auf Fehler prüfen und dann die Abfrageschleife verlassen.
    Oder verwende eine Objektfunktion von hier: Registry-Funktionen per Objekt

  • _GUICtrlListView_EditLabel Beispiel aus Hilfe, wie zeite Spalte wählen.

    • BugFix
    • 13. September 2008 um 12:03

    Damit kannst du nur die erste Spalte bearbeiten.
    Aber hier eine Version von mir, da kannst du jede Spalte editieren in einem über die Spalte gelegten Bearbeitungsfenster (in der Größe des Eintrages).
    - Zum Editieren Doppelklick auf Eintrag
    - wenn editiert, mit ENTER Eintrag übernehmen und Edit-Fenster schließen
    - wenn nichts geändert wurde, mit ESC schließen

    Spoiler anzeigen
    [autoit]

    #include<StaticConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<ListViewConstants.au3>
    #include<StructureConstants.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    Opt("GUIOnEventMode", 1)
    Global $currentItem[2], $title

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

    $gui = GUICreate('test')
    GUISetOnEvent($GUI_EVENT_CLOSE, '_ende')
    $hListView = GUICtrlCreateListView('Spalte1|Spalte2|Spalte3', 10, 10, 300, 200, $LVS_REPORT)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 70)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 60)
    _GUICtrlListView_SetColumnWidth($hListView, 2, $LVSCW_AUTOSIZE_USEHEADER )
    For $i = 1 To 9
    GUICtrlCreateListViewItem('Z. ' & $i & ' - Sp. 1|Z. ' & $i & ' - Sp. 2|Z. ' & $i & ' - Sp. 3', $hListView)
    Next

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

    $EditBox = GUICreate('', 200, 30, -1, -1, BitOR($WS_POPUP,$WS_BORDER), $WS_EX_TOPMOST)
    $edit = GUICtrlCreateInput('', 5, 5, 190, 20, $SS_CENTER)
    GUICtrlSetOnEvent(-1, '_EditEnter')
    HotKeySet('{ESC}', '_escEdit')

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

    GUISetState(@SW_SHOW, $gui)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    While True
    Sleep(100)
    WEnd

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

    Func _LeftDblClick($Info)
    If $Info[3] = -1 Then Return
    _GUICtrlListView_SetSelectedColumn($Info[1], $Info[4])
    $title = WinGetTitle($gui)
    Local $mouse = MouseGetPos(), $wndEdit = WinGetPos($EditBox)
    Local $wndGUI = WinGetPos($gui), $wndLV = ControlGetPos($gui, '', $hListView)
    Local $colInfo = _GUICtrlListView_GetColumn($Info[1], $Info[4]), $sumWidth = 0, $tmp
    WinSetTitle($gui, '', 'Editiere: Zeile ' & $Info[3]+1 & ', ' & $colInfo[5])
    For $i = 0 To $Info[4]
    $tmp = _GUICtrlListView_GetColumn($Info[1], $i)
    $sumWidth += $tmp[4]
    Next
    $sumWidth -= $colInfo[4]
    Local $xPos = $wndGUI[0]+$wndLV[0]+$sumWidth
    If $xPos+$colInfo[4]+10 > @DesktopWidth Then $xPos = @DesktopWidth - ($colInfo[4] + 10)
    If $xPos < 0 Then $xPos = 0
    WinMove($EditBox, '', $xPos, $mouse[1]-$wndEdit[3], $colInfo[4]+10)
    GUICtrlSetData($edit, _GUICtrlListView_GetItemText($Info[1], $Info[3], $Info[4]))
    $currentItem[0] = $Info[3]
    $currentItem[1] = $Info[4]
    GUISetState(@SW_SHOW, $EditBox)
    EndFunc

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

    Func _escEdit()
    WinSetTitle($gui, '', $title)
    GUISetState(@SW_HIDE, $EditBox)
    EndFunc

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

    Func _EditEnter()
    WinSetTitle($gui, '', $title)
    _GUICtrlListView_SetItemText($hListView, $currentItem[0], GUICtrlRead($edit), $currentItem[1])
    GUISetState(@SW_HIDE, $EditBox)
    EndFunc

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

    Func _ende()
    Exit
    EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[5] = [$hWndFrom, $iIDFrom, $iCode, DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem")]
    _LeftDblClick($aInfo)
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]
  • _IsPressed() - KeyListe

    • BugFix
    • 13. September 2008 um 11:55
    Zitat von Betonamujin

    hey ich hab jetzt letzens mit dieser keyliste einen keylogger programmiert.
    bei mir ist das Problem das oft beim aufzeichnen wenn ich z.B. HalloWelt schreibe
    zeichnet er folgendes in die log.txt
    haallowwlt
    es tauchen also Wörter doppelt auf und einige gar nicht?
    wie kann man sowas verhindern?


    Also
    A) einen Keylogger zu programmieren und dazu Hilfe zu wollen - gibt es bei uns nicht
    B) _IsPressed ist eh nicht sonderlich dafür geeignet

  • Hallo an alle

    • BugFix
    • 13. September 2008 um 09:44

    Hallo und Willkommen.
    Ich denke, du wirst dich wohl fühlen bei uns. Lies am Anfang mal die gepinnten Beiträge im Hilfe-Forum - das spart eine Menge Fragen und Sucharbeit ;)
    Übrigens:
    Bei Bildschirmschonern stört mich hauptsächlich, dass sie existieren :D . Warum - und was man dagegen machen kann - s. hier: Bildschirmschoner entfernen

  • Mit autoit cmd befehle "auslesen"

    • BugFix
    • 12. September 2008 um 18:57
    Zitat von Stilgar

    Systeminfo gibts nur in XP Professional.


    :P Brauch ich nicht - ich hab doch "msinfo32" ;)

  • Mit autoit cmd befehle "auslesen"

    • BugFix
    • 12. September 2008 um 18:41

    Aber wenn ich Win Prof hätte (damit wird es gehen) würde ich es so machen:

    [autoit]

    #include <Constants.au3>

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

    Local $foo = Run(@ComSpec & ' /c systeminfo | find "Systemstartzeit"', @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    Local $line
    While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDOUT read:", $line)
    Wend

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

    While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR read:", $line)
    Wend

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

    MsgBox(0, "Debug", "Exiting...")

    [/autoit]
  • GUICtrlCreatePic zeigt kein bild an :'(

    • BugFix
    • 12. September 2008 um 18:39
    Zitat von Darknoop

    Was mache ich falsch? Oder was fehlt?

    Eine GUI? - und der richtige Bildtyp ;)

  • Mit autoit cmd befehle "auslesen"

    • BugFix
    • 12. September 2008 um 18:31
    Zitat von ragefire

    'systeminfo | find "Systemstartzeit"'

    In was für einem Windows soll es diesen Befehl geben? - Meines (XP Home) kennt das nicht. :whistling:

  • Probleme mit ICQ-Bot

    • BugFix
    • 12. September 2008 um 18:09
    Zitat von Michi26206

    Aso^^

    konnte damit nix anfangen^^. Könnt mir das evtl. einer erklären blick da noch net so durch ;)

    Michi26206

    Ich habe mich damit nicht weiter beschäftigt - ICQ ist mir den Aufwand nicht wert. :P
    Das gesamte OSCAR-Protokoll wird dir sicher keiner erklären (wollen) - ist etwas zu umfangreich :D . Aber die Funktionen aus dem Link sind doch eindeutig - damit kannst du doch deinen Bot erstellen. Lies dich ein - stell erst mal das Grundgerüst zusammen (Verbindung aufbauen, Nachricht senden, Nachricht empfangen...). Alles Schritt für Schritt. Und wenn dabei Fragen auftauchen: Code posten und Problem angeben. ;)

  • Lehrer/ Trainerkonsole

    • BugFix
    • 12. September 2008 um 17:59

    OK - so sollte es klappen:

    Spoiler anzeigen
    [autoit]

    Case $btn_raum_laden
    ;hier sollte meiner meinung nach die list "geleert" werden, da ich sonst mehrfache einträge bekomme
    ; JA - muß geleert werden:
    _GUICtrlListBox_ResetContent($list_clients) ; leert Liste
    $raum_read = GUICtrlRead($cmb_raum)
    ;~ Global $data_raum ==> Deklaration am Skriptanfang, hier nur:
    $data_raum = ''
    $raumfile = ("z:\"& $raum_read & ".txt")
    ;~ MsgBox(0,"",$raumfile)
    $raumfile= FileOpen ($raumfile,0)
    $zeile = 1
    While 1
    $read = FileReadLine($raumfile, $zeile)
    If $read = "" Then ExitLoop
    $data_raum = $data_raum & $read & "|"
    $zeile += 1
    ;~ MsgBox(0,"",$data_raum)
    WEnd
    GUICtrlSetData($list_clients, $data_raum)

    [/autoit]

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™