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

  • Suchen im 2D Array

    • BugFix
    • 31. März 2010 um 09:21

    Wie wärs denn mit: _ArraySearch()

    Oder such doch direkt in deinem Excel:

    Spoiler anzeigen
    [autoit]

    Local $sFilePath = 'Pfad.xls'
    Local $sSuchbegriff = 'Suche'

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

    Local $oExcel = ObjCreate("Excel.Application")
    $oExcel.Visible = 0
    Local $oBook = $oExcel.Workbooks.Open($sFilePath)
    Local $oSheet = $oBook.Sheets(1)

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

    Local $Zelle, $Address = 0
    $Zelle = $oSheet.UsedRange.Find($sSuchbegriff)
    If $Zelle <> '' Then $Address = $Zelle.Address

    [/autoit]
  • Process Abschießen unmöglich machen

    • BugFix
    • 31. März 2010 um 08:55

    Laß dein Programm als Dienst laufen. Wenn du es als Systemdienst einstufst, kann es auch nicht in der Dienstverwaltung beendet werden (Aber läuft dann immer! - Soll das gewollt sein?). Für "Eigenes Skript als Dienst" einfach die SuFu nutzen. Hier oder im EN-Forum wirst du fündig.

  • Mouse Icon

    • BugFix
    • 31. März 2010 um 00:04

    _WinAPI_SetCursor() sollte dich zum Ziel bringen. Mit _WinAPI_LoadImage() kannst du das Bild für den Cursor laden.

  • Mal wieder ListView Probleme

    • BugFix
    • 30. März 2010 um 23:51
    Zitat von MrB

    Gibt mir immer den Inhalt der ersten Spalte aus. Wie kann ich das auf die dritte Spalte ändern

    Das beachtet?

    Zitat von BugFix

    Ganz wichtig: Unbedingt Ex-Style "$LVS_EX_FULLROWSELECT" für das Listview, sonst erhältst du keine Item-Notifikation beim Klick auf ein SubItem!

  • String Fragen

    • BugFix
    • 30. März 2010 um 23:26
    [autoit]

    $str = "11 2222 abcd efgh 4 6 dada"
    $str = StringRegExpReplace($str, '\s+', '/')
    ConsoleWrite('Ersetzungen: ' & @extended & @CRLF)
    ConsoleWrite($str & @CRLF)

    [/autoit]
  • memory enträge am Beispiel Teamspeak2

    • BugFix
    • 30. März 2010 um 22:10
    Zitat von chrisbyRRC

    Da ist es sogar schon verboten ne andere AutoIt Seite zu nennen.


    Ja, und was stört dich dadran? Wir haben nunmal Regeln. Und diese sind nicht grundlos erstellt worden.
    Dein Wunsch zu Helfen in allen Ehren, aber auch das im Rahmen unserer Regeln. ;)

  • String Fragen

    • BugFix
    • 30. März 2010 um 21:00

    @black_scorpi: Dein Bsp. ist zwar simpel aber berücksicht auch nur einen ganz spezifischen Fall. Der benannte String war nur ein Bsp. Es ging um allgemeingültige Lösungen. Das geht mit deiner Variante nicht.

  • DllCall will nicht so richtig

    • BugFix
    • 30. März 2010 um 20:48

    Ich werds mal testen.

    Edit.
    Ah, falscher Returntyp im DllCall. Nicht 'char', sondern 'long' oder 'int'.

    [autoit]

    $aReturn = DllCall("User32", 'long', "LoadKeyboardLayout", "ptr", DllStructGetPtr($Buffer_Struct), "uint", $KLF_ACTIVATE)

    [/autoit]
  • String Fragen

    • BugFix
    • 30. März 2010 um 20:45

    Mach aus deinem ""/D" ein "\D". :P

  • DllCall will nicht so richtig

    • BugFix
    • 30. März 2010 um 20:37

    Ich glaub, die Layoutkennung muß mit Nullstring abgeschlossen werden und natürlich verlangt der letzte Parameter auch ein uint.:

    [autoit]

    Func _LoadKeyboardLayout($HKL)
    $KLF_ACTIVATE = 0x1
    $Buffer_Struct = DllStructCreate("char[10];")
    DllStructSetData($Buffer_Struct, 1, $HKL & Chr(0))
    $pBuffer_Struct = DllStructGetPtr($Buffer_Struct)
    $aReturn = DllCall("User32", "char", "LoadKeyboardLayout", "ptr", $pBuffer_Struct, "uint", $KLF_ACTIVATE)
    Return SetError($aReturn, 0, $aReturn)
    EndFunc

    [/autoit]
  • Ini mit richtiger Codierung öffnen

    • BugFix
    • 30. März 2010 um 20:09

    Umformatieren kannst du mit _WinAPI_WideCharToMultiByte(), geht aber sich auch nicht kürzer als die aufgezeigte Lösung.

  • Problem mit _ExcelWriteArray

    • BugFix
    • 30. März 2010 um 13:25

    Schnitzel, du hast völlig recht. Das ist wieder ein typisches Bsp., wie man eine UDF nicht schreiben sollte. An eine Tabelle (2D-Array) kann nur ein 1D-Array übergeben werden. Oh, wie sinnvoll... :S
    Diese Funktion ermöglicht also nur Zeilen oder Spalten Inhalte in einem Array zu übergeben. Sicher ist das auch nützlich, aber geht weit vorbei an einer sinnvollen, komplexen Funktion. :thumbdown:

    Zitat

    Write an array to a row or column on the active worksheet of the specified Excel object.

  • memory enträge am Beispiel Teamspeak2

    • BugFix
    • 30. März 2010 um 12:18
    Zitat von Darter

    sonst einer ne gute andresse wo ich nachlesen kann?

    Wenn du sowieso mit CheatEngine hantierst, dann gib einfach mal den Begriff in Google ein. Da findest du ganz konkrete Tuts.
    Hier sicher nicht.
    Die Überwachung des eigenen TS-Servers ist völlig legitim, nur leider wird die Arbeit mit Memory zu sehr zweckentfremdet genutzt und deshalb halten wir uns hier mit Support dafür sehr zurück.

  • Excel Zeilen einlesen und auf Array speichern

    • BugFix
    • 30. März 2010 um 11:46
    Zitat von autoitinstallermaker

    Und wo muss ich das einfügen?


    Du hast die aktuelle Version, somit mußt du nichts weiter ändern. Weshalb der Fehler weiterhin auftaucht ist mir im Moment unklar.

  • Mal wieder ListView Probleme

    • BugFix
    • 30. März 2010 um 11:41

    So kannst du den Inhalt ausgeben:

    Spoiler anzeigen
    [autoit]

    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIListView.au3>

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

    $gui = GUICreate('test')
    $hListView = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200, -1, BitOR($LVS_EX_TRACKSELECT,$LVS_EX_FULLROWSELECT))
    _GUICtrlListView_SetColumnWidth($hListView, 0, 146)
    _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE_USEHEADER)
    For $i = 1 To 10
    GUICtrlCreateListViewItem('Zeile ' & $i & ' Spalte 1|Zeile ' & $i & ' Spalte 2', $hListView)
    Next
    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

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

    Func _LeftDblClick($Info)
    MsgBox(0, 'Text in Spalte', _GUICtrlListView_GetItemText($Info[0], $Info[1], $Info[2]) )
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/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")
    If $hWndFrom = $hWndListView And $iCode = $NM_DBLCLK Then
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[3] = [$hWndFrom,DllStructGetData($tInfo, "Index"),DllStructGetData($tInfo, "SubItem")]
    _LeftDblClick($aInfo)
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Ganz wichtig: Unbedingt Ex-Style "$LVS_EX_FULLROWSELECT" für das Listview, sonst erhältst du keine Item-Notifikation beim Klick auf ein SubItem!

  • ListView, Ausgewähltes Element ausgeben

    • BugFix
    • 29. März 2010 um 23:02
    Zitat von tkausl

    Ich nehme an, die Subitems fangen nicht bei 0 an...


    Jein. SubItem 0 wäre die erste Spalte und somit das Item. Alle Indexe sind 0-basiert.

    - _GUICtrlListView_GetSelectedIndices gibt den Index der markierten Zeile zurück
    - _GUICtrlListView_GetItemText gibt dir den Text des Item/SubItem zurück

  • ListView, Ausgewähltes Element ausgeben

    • BugFix
    • 29. März 2010 um 22:33
    Zitat von tkausl

    die möglichkeit, nur den inhalt einer bestimmten spalte auszulesen gibt es nicht zufällig, oder?


    Doch, du brauchst den Index der Zeile (ItemIndex) und den Index der Spalte (SubItemIndex). Damit kannst du direkt drauf zugreifen. Schau mal die Funktionen der Listview-UDF an.

  • TTT - Techmix' Tausch Thread

    • BugFix
    • 29. März 2010 um 20:59

    Also CPU > 1GHz hab ich leider nicht. Ich habe einige Boards inkl. CPU von Dell-Desktops - aber die haben alle einen Defekt auf dem Board und aufgrund der Dell-Politik gibt es keine Ersatzboards (Standardboards passen da ja nicht rein).

    Weshalb ich eigentlich mich zu Wort melde:
    Ich werfe jedes Jahr an die 50 Stück Kaltgerätestecker 2-polig und nochmal ca. 20 Stck. 3-polig über Bord, da sich dieses Zeug sinnlos ansammelt.
    Weiterhin verschrotte ich ständig Geräte mit LCD-Displays. Eigentlich viel zu schade zum Wegwerfen, aber ich komm eh nicht mehr zum Basteln.
    Falls also jemand Interesse an solchen Dingen hat, mal melden - dann gibt es irgendwann ein Carepaket. :D

  • Context Menu

    • BugFix
    • 29. März 2010 um 18:04
    Zitat von Bakku

    Geht das??


    Nicht wirklich, es heißt nicht umsonst Kontextmenü - d.h. es besteht immer ein Kontext (Zusammenhang) zu einem anderen Element.

  • Excel Zeilen einlesen und auf Array speichern

    • BugFix
    • 29. März 2010 um 16:42

    In der Funktion passiert folgendes:

    [autoit]

    If $iRowCnt = 0 Then $iRowCnt = $iLastRow - $iStartRow + 1

    [/autoit]


    Du übergibst keinen Wert für $iRowCnt, somit ist dieser standardmäßig = 0 und die obige If-Abfrage greift.
    Laut deiner Fehlermeldung enthält dein Array nicht das Element mit dem Index: $iRowCnt + 1
    Deine Tabelle ist also kleiner als dieser Wert. Anders ist das aus meiner sicht nicht erklärbar.

    Edit:

    ODER - Du hast noch eine ältere Version der UDF. Da mußt du noch zusätzlich folgende Änderung vornehmen.:

    [autoit]

    ; Extract integer last row and col
    Local $iLastRow = StringInStr($sLastCell, "Z");"R")
    Local $iLastColumn = StringInStr($sLastCell, "S");"C")

    [/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™