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

Beiträge von Andy

  • Aufruf von Autoit-Hilfe in Scite führt zu Scriptstart?!

    • Andy
    • 8. August 2009 um 16:46

    Hi,
    Kann man dieses Verhalten irgendwo abstellen?
    Problem: In Scite mit F5 ein Script starten, dann im Quellcode den Cursor auf einen AutoIt-Befehl setzen und F1 (für Hilfe) drücken.
    Es erscheint die AutoIt-Hilfe zum Befehl und kurz darauf ein weitere Instanz des gestarteten Scrips. Seltsamerweise klappt F5 zum mehrmaligen Starten von Scripten nicht...
    ciao
    Andy

  • Array vorher Löschen ??

    • Andy
    • 7. August 2009 um 15:22

    funktioniert das?

    [autoit]

    _FileReadToArray($ListViewText[1] & '.log', $aIn)

    If @error = 0 Then ;kein fehler
    _ArrayDisplay($aIn)
    For $i = 1 To $aIn[0]
    $aIn[$i] = StringReplace(StringStripWS($aIn[$i], 7), " ", "|", 5)
    Next
    For $i = 2 To $aIn[0] ; bei Index 2 starten, dann ist die erste Zeile weg
    $item1 = GUICtrlCreateListViewItem($ListViewText[1] & '|' & $aIn[$i], $ListView2)
    Next
    Else
    MsgBox(0, "Fehler!", "Fehler beim Öffnen der Datei " & $ListViewText[1] & '.log')
    EndIf

    [/autoit]
  • Array vorher Löschen ??

    • Andy
    • 7. August 2009 um 13:56

    Also wenn es jetzt klappt, ist es ja schön^^
    Änderungsvorschlag:
    Wenn CHECK aufgerufen wird, bevor ein User aus der Liste ausgewählt ist, tritt ein Fehler auf, das könntest du in der case CHECK() bei zeile 60 abfangen

  • Array vorher Löschen ??

    • Andy
    • 7. August 2009 um 13:31

    Ich kanns nicht nachvollziehen...
    Mach mal in die case-Anweisung (zeile 60 um die dreh) NACH dem _check()-Aufruf eine Messagebox, um das Script dort zu stoppen und schau die Liste an.
    Dann beschreib GENAU was du tust und wie die Liste aussieht!

    Also ich gehe so vor:
    - prog starten
    - Host laden
    - Host in liste auswählen
    - CHECK-Button drücken
    - Liste ist OK
    - CHECK-Button drücken
    - Liste ist OK
    - CHECK-Button drücken
    - Liste ist OK
    - anderen Host laden
    - CHECK-Button drücken
    - Liste ist OK
    - CHECK-Button drücken
    - Liste ist OK
    uswusf

  • Array vorher Löschen ??

    • Andy
    • 7. August 2009 um 13:21
    [autoit]

    $TSUSER = RunWait(@ComSpec & " /c " & @SystemDir & '\query.exe user /server:' & $ListViewText[1] & " > " & @SystemDir & '\ts.log', "", @SW_HIDE)
    ConsoleWrite(@SystemDir & '\query.exe user /server:' & $ListViewText[1] & " > " & @SystemDir & '\ts.log' & @crlf)
    ;also wenn HIER ein exit steht und dann die Logfiles in Ordnung sind muss der Fehler ja später auftauchen
    _FileReadToArray(@SystemDir & '\ts.log', $aIn) ;definitiv wird $aIn gelöscht und NUR mit den Daten des logs gefüllt, das habe ich geprüft
    _arraydisplay($ain) ;stimmt hier noch alles?

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

    For $i = 1 To $aIn[0]
    $aIn[$i] = StringReplace(StringStripWs($aIn[$i],7)," ","|",5)
    Next

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

    For $i = 2 To $aIn[0] ; bei Index 2 starten, dann ist die erste Zeile weg
    $item1 = GUICtrlCreateListViewItem($ListViewText[1] & '|' & $aIn[$i], $listview2)
    _ArrayEmpty($aIn[0]) ;du löschst das array nach der Liste , kannst du weglassen imho
    Next

    [/autoit]
  • Alle möglichkeiten zwischen 2 werten prüfen

    • Andy
    • 7. August 2009 um 12:41
    Zitat

    Und mit der Antwort von Andy werden zwei Werte ausgeschlossen: 4900 und 5100, da größer und kleiner statt größergleich und kleinergleich in der Abfrage stehen.

    Ja, und das ist auch richtig, wenn ZWISCHEN zwei Werten gesucht werden soll, dann sind diese beiden Werte ausgeschlossen. Genau das steht im Script ;)
    Oder glaubst du, ich liefere ausschließlich Steilvorlagen für copy/paste ?

    Ausserdem hat lemoniscool das hier

    Zitat

    also es soll geprüft werden ob X irgendeiner der werte zwischen Y-Z und Y+Z ist

    vorgegeben....

  • Alle möglichkeiten zwischen 2 werten prüfen

    • Andy
    • 7. August 2009 um 12:20

    Hi,
    auf die schnelle...

    [autoit]

    $y=5000
    $z=100

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

    $x=number(inputbox("test","Geben sie eine Zahl ein:"))

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

    if $x>$y-$z and $x<$y+$z Then
    $not=""
    Else
    $not="nicht"
    endif
    msgbox(0,0,$x &" befindet sich "&$not&" zwischen "&$y-$z&" und " &$y+$z)

    [/autoit]
  • Array vorher Löschen ??

    • Andy
    • 7. August 2009 um 12:11

    Hallo,
    kann dein Problem nicht nachvollziehen, bei mir funktioniert es ohne Duplikate. Habe keinen TS am laufen aber query.exe bastelt eine Datei mit mir als User auf der Console.
    Füge mal direkt nach dem runwait() ein EXIT ein und prüfe dann die Logdatei. Kann es sein, daß andere Programme diese Logs verwenden?

    Ausserdem solltest du dir in einer ruhigen Minute mit einer Kanne Kaffee (eine Tasse wird nicht reichen^^) mal diesen Thread verinnerlichen Tutorial zur Fehlersuche

    ciao
    Andy

  • Buttondruck überprüfen möglich?

    • Andy
    • 7. August 2009 um 11:09

    Hallo,

    Zitat

    Ist es möglich in einem Fenster zu überprüfen ob eine ganz bestimmte Schaltfläche gedrück wurde?

    So wie ich das verstehe, soll erst eine eigene Funktion, danach dann die ursprüngliche Funktion des Buttons abgearbeitet werden. Geht es um eine Gui in einem eigenen Script? Höchstwahrscheinlich nicht...
    Also müsste man den Buttonklick abfangen, das funktioniert, indem man die Windows-Messages auswertet und beim Ereignis "Klick auf diesen Button" die eigene Funktion einfügt.
    In der Hilfe gibt es dazu einige Beispielscripte.
    ciao
    Andy

    Edit: schau mal in der Hilfe das Beispiel zu _GUICtrlButton_SetDontClick, da werden buttonklicks abgefangen

  • Array vorher Löschen ??

    • Andy
    • 7. August 2009 um 09:41

    Hallo,
    sehr schönes Script!!!
    Die "doppelten" Einträge kommen nicht vom Array sondern von deiner Log-Datei. Das kommt daher, daß mit dem ">" das Ergebnis von Query.exe immer an die Logdatei hintendran gehängt wird. Kann das leider zzt nicht testen, daher mal ein Schuss ins blaue^^
    Lösche diese Datei ( sollte Listviewtext[1]&".log" sein) bevor du query.exe aufrufst. Zeile 137
    ciao
    Andy

    Edit.: Sorry, war quatsch. "Normalerweise" wird mit einer Ausgabeumleitung per ">" die Datei überschrieben, ">>" hängt an.....hmmmm

    Edit2: habe dein Script jetzt zum laufen bekommen, statt der Logdatei benutze ich die von dir angegebene serverts.txt, damit klappts einwandfrei, also check mal die Logdatei, die von query.exe erstellt wird

  • Mikrofonaufnahme geht nicht

    • Andy
    • 7. August 2009 um 00:35

    Hi

    Zitat

    Hast Du mal unter "Systemsteuerung" --> "Sounds und Audiogeräte" --> "Audio" --> "Soundaufnahme" nachgeschaut?

    Zitat

    Alina: Natürlich.

    Was natürlich? Nur dort nachgeschaut, oder auch die richtigen Einstellungen vorgenommen? Wenn ja, welche?

    Schau mal bei Systemsteuerung/System/Hardware/Audio-Video- und Gamecontroller ist dort der richtige Treiber eingetragen (Chipsatz steht im Handbuch des Mainboards, ggf Kiste aufschrauben und nachsehen!) bzw gibt es Konflikte?

    Weiterhin bei Lautstärkeregelung/Optionen/Erweiterte Einstellungen anhaken, nochmal Optionen, dann auf auf Eigenschaften klicken. Dort im "Mixer" muss dasselbe Device ausgewählt sein wie im Treiber. Radiobutton "Aufnahme" anwählen.Lautstärkeregler für Mikrofon anhaken. OK drücken.
    Im Fenster "Aufnahme" nun den Haken unter Mikrofon anhaken. Wenn vorhanden, dort den Button "Erweitert" anklicken und ggf die 20dB-Verstärkung anwählen.
    Reboot^^

    ciao
    Andy

    Edit: Ich sehe grade, meine Tochter hat auch den realtech888 Audiochip in ihrem Rechner, morgen kann ich dann direkt "am Objekt" kämpfen^^

  • Array weiter verarbeiten ? lösungsansätze ?

    • Andy
    • 7. August 2009 um 00:09

    Sorry, aber ich blicke nicht mehr durch....
    Was heißt denn statisch bzw dynamisch?
    Ist mittels einer for/to-Schleife ein Array auslesen "dynamisch"?

    [autoit]

    #include <String.au3>
    #include <array.au3>

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

    Dim $aArray[3] = [2, '<id serialno="A5BS11982" friendly="Alice5-A5BS11982" os="linux" soft="1.3.5" hostname="Alice5-A5BS11982" /><ip_list><ip_device name="eth0" ip="192.168.10.11" mask="255.255.255.0" up="1" macid="00:04:5F:86:7E:63" gateway="" /><ip_device name="eth1" ip="" mask="" up="0" macid="00:04:5F:86:7E:64" gateway="" /><ip_device name="irda0" ip="" mask="" up="1" macid="34:20:a3:6f " gateway="" /><ip_device name="ppp0" ip="" mask="" up="0" macid="" gateway="" /></ip_list>', '<id serialno="102" friendly="SleepwareHost" os="win32" soft="2.7.65" hostname="Alice1" />']
    dim $testarray[ubound($aArray)]

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

    for $i=0 to ubound ($aArray)-1
    $testarray[$i]=_stringbetween($aArray[$i],'"','"')
    _ArrayDisplay($testarray[$i])
    next

    [/autoit]
  • Array weiter verarbeiten ? lösungsansätze ?

    • Andy
    • 6. August 2009 um 22:23

    Hallo,

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <array.au3>

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

    Dim $aArray[3] = [2, '<id serialno="A5BS11982" friendly="Alice5-A5BS11982" os="linux" soft="1.3.5" hostname="Alice5-A5BS11982" /><ip_list><ip_device name="eth0" ip="192.168.10.11" mask="255.255.255.0" up="1" macid="00:04:5F:86:7E:63" gateway="" /><ip_device name="eth1" ip="" mask="" up="0" macid="00:04:5F:86:7E:64" gateway="" /><ip_device name="irda0" ip="" mask="" up="1" macid="34:20:a3:6f " gateway="" /><ip_device name="ppp0" ip="" mask="" up="0" macid="" gateway="" /></ip_list>', '<id serialno="102" friendly="SleepwareHost" os="win32" soft="2.7.65" hostname="Alice1" />']

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

    _ArrayDisplay($aArray)

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

    $test=_stringbetween($aArray[1],'"','"')
    _ArrayDisplay($test)

    [/autoit]


    so?
    ciao
    Andy

  • Array vorher Löschen ??

    • Andy
    • 6. August 2009 um 21:57

    Hi subzero,
    hab mich mal durch dein Schript gekämpft.
    Ich glaube, wir hätten dein Problem schon vor 3 Tagen komplett gelöst, wenn du dir nicht immer die Würmer aus der Nase ziehen lassen würdest.
    Diese mit Verlaub gesamte Listview-sch*** zieht sich nun schon durch mehrere Threads. Kotz dich aus und dir wird geholfen! Aber ich und auch andere hier brauchen dazu eine KLARE ANSAGE!
    D.h. Beschreibung von dem was du hast (serverts-files, logfiles, einfach alles was du hast) und auch sehr wichtig, wo du AM ENDE hinwillst! Beschreib einfach mal in 5-10 Sätzen, was mit den Daten in den Logs im Endeffekt passieren soll. Sonst drehen wir uns weitere 3 Tage im Kreis^^
    ciao
    Andy

  • AutoIt in der C´t

    • Andy
    • 6. August 2009 um 21:23

    Hi,
    als Abonnent der c´t seit Gründungszeiten weiß ich, daß so gut wie alle Artikel aus den Sonderheften "Recyclingmaterial" sind. Ich finde da auch nichts verwerflich dran, denn Sinn und Zweck einer Sonderausgabe ist es doch, ein Heft zu einem bestimmten Themengebiet zusammenzustellen. Komprimierte (wenn auch schon bekante) Info! Noch ne CD/DVD mit Software dabei, fettich...

    Daß dieses Forum früher oder später zwangsläufig erwähnt wird, liegt in der Natur der Sache. Daß der Redakteur mit Verweisen auf aktuell "beliebte" Foren vorsichtig ist, aber genauso. Ich kann mich noch an das Geschrei eines Kumpels erinnern, der die Server einer kleineren Firma betreute, welche mit einem kurzen Nebensatz und Link in der c´t lobend erwähnt wurde. Schon am Tag nach dem erscheinen des Heftes ging aufgrund Überlastung garnichts mehr, und als nach 3 Tagen die IT-Infrastruktur auf den Ansturm angepasst war, quollen die Foren- und Mailserver vor Spam und Beschwerden über.....Nach 2 Wochen (exakt zum Zeitpunkt der nächsten Ausgabe der c´t^^ ) waren die "Heuschrecken" dann weitergezogen.

    Wer AutoIt kennenlernen möchte (die c´t macht eigentlich Werbung dafür mit ihrem ActiveAid ) findet zwangsläufig bei der Suche nach Informationen im deutschsprachigen Netz dieses Forum schon allein wegen fehlender Alternativen. Aktuell Platz 4 in der Google-Trefferliste nach Eingabe von "AutoIt". Ein Platz hinter dem Link zum Wikipedia-Artikel, da würden andere Millionen dafür zahlen^^

    Und ich bin sicher, daß dieses Forum bereits von c´t-lern "unterwandert" ist. Man kann Qualität auch einfach nur genießen, ohne sie laut rauszuschreien.

    ciao
    Andy

  • RegExp Pattern???

    • Andy
    • 6. August 2009 um 20:23

    Hallo Alina,

    Zitat

    kopiert er nicht eine Datei

    Ja, die MsgBox war auch nur als Info gemeint. Ich hatte angenommen, daß du die eine Zeile mit dem

    [autoit]

    filecopy()

    [/autoit]

    alleine hinbekommst :P
    ciao
    Andy

  • RegExp Pattern???

    • Andy
    • 6. August 2009 um 14:23

    Hallo Alina,

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <ListBoxConstants.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global $aIn[1]

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

    Local $iExWindowStyle = BitOR($WS_EX_DLGMODALFRAME, $WS_EX_CLIENTEDGE, $LBS_EXTENDEDSEL)
    Local $iExListViewStyle = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_CHECKBOXES, $LVS_EX_DOUBLEBUFFER, $LVS_EX_TRACKSELECT)

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

    _FileReadToArray("inhalt2.txt", $aIn) ; hier angepsst
    For $i = 1 To $aIn[0]
    $aIn[$i] = StringReplace(StringStripWS($aIn[$i], 7), "|", "|", 5) ; hier angepsst
    Next
    _FileWriteFromArray("inhalt2_out.txt", $aIn, 2) ; hier angepsst

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

    GUICreate("listview items", 1250, 530, 10, 10, -1) ; hier angepsst

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

    $listview = GUICtrlCreateListView($aIn[1], 10, 10, 1230, 510, $iExWindowStyle, $iExListViewStyle) ; hier angepsst
    _GUICtrlListView_SetExtendedListViewStyle($listview, $iExListViewStyle)

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

    $context = GUICtrlCreateContextMenu($listview) ;contextmenu, rechtsklick zum kopieren
    $item1 = GUICtrlCreateMenuItem("Kopieren nach...", $context)
    $item2 = GUICtrlCreateMenuItem("Markierte Titel aus der Liste löschen", $context)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIClose")
    GUICtrlSetOnEvent($item2, "_Delete")
    GUICtrlSetOnEvent($item1, "_kopieren")
    GUICtrlSetOnEvent($listview, "List1Click")
    _GUICtrlListView_RegisterSortCallBack($listview, True, True) ;sortierfunktion einschalten

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

    For $i = 2 To $aIn[0] ; bei Index 2 starten, dann ist die erste Zeile weg
    $item1 = GUICtrlCreateListViewItem($aIn[$i], $listview)
    Next
    GUISetState()

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

    While 1
    Sleep(50)
    WEnd

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

    Func _kopieren()
    For $iIndex = 0 To _GUICtrlListView_GetItemCount($listview) ;nacheinander die listenitems aufrufen
    If _GUICtrlListView_GetItemChecked($listview, $iIndex) Or _GUICtrlListView_GetItemSelected($listview, $iIndex) Then ;wenn angehakt,dann kopieren
    $titel = _GUICtrlListView_GetItem($listview, $iIndex, 1) ;schau mal in die Hilfe....
    $pfad = _GUICtrlListView_GetItem($listview, $iIndex, 8) ;schau mal in die Hilfe....
    ;_arraydisplay($titel)
    MsgBox(0, "Kopieren: " & $titel[3], $pfad[3])
    EndIf
    Next
    EndFunc ;==>_kopieren

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

    Func List1Click()
    _GUICtrlListView_SortItems(GUICtrlGetHandle($listview), GUICtrlGetState($listview))
    EndFunc ;==>List1Click

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

    Func _bearbeiten()
    _GUICtrlListView_BeginUpdate($listview)
    _GUICtrlListView_EndUpdate($listview)
    EndFunc ;==>_bearbeiten

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

    Func _delete() ;zeilen in der liste löschen
    If MsgBox(262144 + 32 + 4, "", "Markierte bzw. angehakte Zeilen aus der Liste löschen? ") = 6 Then
    _GUICtrlListView_DeleteItemsSelected(GUICtrlGetHandle($listview))
    EndIf
    EndFunc ;==>_delete

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

    Func _GUIClose()
    _GUICtrlListView_UnRegisterSortCallBack($listview)
    Exit
    EndFunc ;==>_GUIClose

    [/autoit]


    du kannst mit Klick auf die Spaltenköpfe sortieren.
    Items markieren (entweder anhaken, oder mit der Maus bzw. den shift- alt oder ctrl-Tasten aus der Liste selektieren) und nach einem RECHTSKLICK aus dem Menü eine Aktion wählen
    ciao
    Andy

  • MausPosition bei ComboListe

    • Andy
    • 6. August 2009 um 13:16

    Hallo,

    Zitat

    komm her lass dich knutschen


    habe die besten Erfahrungen mit Beerware gemacht, würde aber mittlerweile das Lizenzmodell "Spätleseware" definitiv vorziehen^^
    ciao
    Andy

  • ListviewItem an run Übergeben

    • Andy
    • 6. August 2009 um 12:57

    Hi,
    du hattest den handle falsch,

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <GuiConstantsEx.au3>

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

    GUICreate('ListView Get Item Text', 400, 300)
    $hListView = GUICtrlCreateListView('Hostname|BENUTZERNAME|SITZUNGSNAME', 2, 2, 394, 268, BitOR($LVS_REPORT, $LVS_SINGLESEL));hier erstellst du die Listview
    GUISetState()
    For $i = 0 To 9
    GUICtrlCreateListViewItem(Random(100, 999, 1) & '|' & Random(1000, 9999, 1) & '|' & Random(10000, 99999, 1), $hListView);hier die einträge
    Next
    $hButton = GUICtrlCreateButton('Alle SITZUNGSNAMEN anzeigen', 100, 275, 220, 22);Button ist klar
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hButton
    For $i = 0 To _GUICtrlListView_GetItemCount($hListview) -1;hier zählst du die einträge
    ; MsgBox(0, 'Item ' & $i, _GUICtrlListView_GetItemText($hListView, $i, 0 & 2));MSG boX
    $ListViewText = _GUICtrlListView_GetItemTextArray($hListView)
    $var1 = _GUICtrlListView_GetItemText($hlistview, $i, 0);MSG boX
    $var2 = _GUICtrlListView_GetItemText($hlistview, $i, 2);MSG boX
    MsgBox(0, "", $var1 & @crlf & $var2)

    ;woher weiss er das er die sitzung rausgeben soll?????
    Next
    EndSwitch
    WEnd

    [/autoit]
    Zitat

    ;woher weiss er das er die sitzung rausgeben soll?????


    Der erste Parameter von _GUICtrlListView_GetItemText() ist der handle der Liste, der 2. Parameter ist die Listen-Zeile, 0=zeile 1, 1=zeile 2 usw. nullbasierend!
    Der 3. Parameter ist die "Spaltenposition" an der du das Item findest, 0=1.spalte, 1= 2.Spalte usw....

  • MausPosition bei ComboListe

    • Andy
    • 6. August 2009 um 12:45

    FireFlyer
    Das Problem ist, daß gewisse Controls die Daten nicht so einfach rausrücken.z.B gibt guigetcursorinfo() nur die ID vom eigentlichen Combo-Control aber nicht von der Liste darunter! Habe mir zu diesem Thema auch schon eins abgebrochen^^

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™