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

  • Fragen und Programmierer gesucht falls möglich!

    • Andy
    • 18. März 2014 um 20:59

    Hi,
    wenn man die Mails nicht unbedingt vom Server lesen muss, kann man auch auf die Archive des lokalen Mail-Clients zugreifen bzw. "direkt" den Client anzapfen.
    Und die die Daten in ein anderes Programm eintragen...hey, das ist AutoIt, gibts dafür etwas besseres/einfacheres?

  • Inputbox nach Eintrag weiter

    • Andy
    • 18. März 2014 um 15:53

    Ilse,
    ich zitiere dich mal, um es dir deutlich zu machen, worum es uns geht!

    Zitat von Threadtitel

    Inputbox nach Eintrag weiter

    Zitat von erste Zeile nach: Hallo

    ich möchte einen Inputbox Code

    Zitat von zwei Zeilen weiter

    Im Prinzip 2 oder mehrere Inputboxen.

    Zitat von noch ne Zeile weiter

    Wie kann ich bei den Inputboxen einbauen,

    -bla
    -blub


    In deinem Startpost gehts nur um eins! INPUTBOXEN!
    Nur geht´s mit Sicherheit garnicht um Inputboxen, sondern um irgendwelche Eingaben/Antworten für ein Quiz (zeitabhängig). Vermute ich mal...
    Problem erkannt?
    Völlig falscher Threadtitel mit völlig irreführendem Inhalt!
    Auch die 2 Sekunden geben nicht mal ansatzweise etwas her, denn soll diese Zeit ab Erscheinen deiner "Inputbox" ablaufen, oder soll die Eingabe nachdem 2 Sekunden lang kein weiterer Text eingegeben wurde, "Automatisch OK gedrückt" werden? ( was übrigens programmiertechnisch gesehen der größte Humbug ist, denn es wird lediglich eine Funktion beendet....auf OK drückt hier niemand!)
    Nach 3 1/2 Jahren hier im Forum sollte man nach über 1000 geschriebenen Postings in der Lage sein, ein Problem so formulieren zu können, dass die Helfer auch ohne zig Nachfragen erkennen können, um was es überhaupt geht!
    Oder man ignoriert solche Threads in Zukunft....wundert dich das?

  • Inputbox nach Eintrag weiter

    • Andy
    • 18. März 2014 um 14:59

    Hi,

    Zitat von BugFix

    und hast bis heute ausser der Bedienung von Koda nix gelernt!

    Um mal in diese Kerbe zu schlagen ist schon die Frage

    Zitat von ilse

    aber wie gesagt, es soll automatisch weitergehen, sobald ein Eintrag erfolgt ist!

    reichlich Überflüssig, denn wer in der Hilfe zur InputBox() nachliest, findet den Parameter "timeout" den man ohne weiteres auf 2 Sekunden einstellen kann.
    .
    Wobei jedem, der jemals eine GUI erstellt/benutzt hat unklar ist, wieso das nächste Eingabefeld nicht einfach per Enter/Tab angewählt wird....

  • Win32_PerfRawData_Tcpip_NetworkInterface - Windows 7 Alternative

    • Andy
    • 17. März 2014 um 16:27

    Das gepostete Script läuft nicht, da die Forensoftware die Backslashes "frisst"!
    s.EDIT in Post #5

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Andy
    • 12. März 2014 um 12:51

    Hi,
    jaja, mach uns nur die Nase lang mit deinem Equipment :D

    Zitat

    Aber eins muß ich noch Fragen, ich weiß das der OCL-Kernel zur Laufzeit Kompiliert wird, wird dieser jetzt Zentral 'verwaltet' oder bekommt jede 'Recheneinheit' seinen eigenen Kernel zugewiesen - oder sogar individuell kompilierte Kernel???

    Der genau gleiche Kernel wird von ALLEN an der Berechnung beteiligten Workunits GLEICHZEITIG ausgeführt!
    Daher muss man, wenn man fortgeschritten genug ist ^^, zusehen, dass möglichst viele Workunits "load" haben!

    Zitat

    Deswegen hatte ich auch gefragt ob CPU & GPU in OCL auch gemeinsam Arbeiten können (ALL), aber ist es auch möglich mehrere OCL-Kernel gleichzeitig laufen zu lassen?

    ja, man kann auf jedem der Devices unabhängig voneinander gleichzeitig verschiedene Kernel laufen lassen, oder aber auch OpenCL anweisen, einen Kernel auf alle Devices zu verteilen.

    In den Beispieldateien vom SDK sind viele Anwendungen, ich habe aber versucht, mit einer handvoll gewrapperten AutoIt-Funktionen auszukommen. Ehrlich gesagt frage ich mich was einen C(++)-Programmierer dazu bringt, sein Hirn soweit abzuschalten, jedes Mal hunderte Zeilen fast identischen Code reinzukloppen. Aber scheinbar werden die Programmierer für die SDK-Beispiele nach Zeilen bezahlt^^

    Da du Interesse hast und AutoIt sich imho sehr gut eignet, OpenCL-Funktionen zu wrappern, würde ich mich jedenfalls freuen, wenn du Ideen beisteuern könntest. Dann könnte man ggf. auch mal über eine UDF nachdenken^^

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Andy
    • 11. März 2014 um 20:58

    Hi,

    Zitat von minx

    Seit neustem sind bei mir zwei Radeons im Crossfire verbaut. Die Performance mit OpenCL skaliert sich wunderbar

    BS, OpenCL-Version, Hardware?

    Techmix,
    mit einem "gut parallelisierbaren Algorithmus" gabe ich natürlich den Algorithmus an sich gemeint. LZW ist schlecht zu parallelisieren, trotzdem kann man, wie du es gemacht hast, das "Problem" einfach in Teile zerschneiden und dieses dieser Teile dann mit dem "nicht gut parallelisierbaren Algorithmus" berechnen und danach zusammenfügen. Da würde natürlich auch per OpenCL funktionieren!

    Zitat

    Gibt es eigentlich unterschiede zwischen den CPU und der GraKa innerhalb der Berechnungen? Ich meine jetzt ob z.B die CPU Stringopperationen grundsätzlich schneller als die GPU ausführt. Weil eine GPU ist ja eigenlich eher für Mathematische Opperationen gebaut...

    Die GPU liegt bei den Float-Berechnungen vorne, die CPU bei "großen" Datenmengen im Speicher (Cache haut dann massiv rein, wenn intelligent eingesetzt, siehe Array of Structures / Structures of Arrays) und viel Speichergeschiebe.

    Die GPU legt dann massiv zu, wenn die 16KB (für jedes Workitem innerhalb der Workgroup) als lokaler, von allen Workitems benutzbarer Speicherbereich, verwendet werden kann.
    Dieses "tuning" ist teilweise hardwareabhängig, und wenn clever gemacht, geht die Performance nahe an die theoretischen Möglichkeiten!
    Etwas, das "Multi/Hyper-usw.-Threading" durch den Overhead des BS und dessen dazwischengefunke niemals hinbekommen. Da skaliert der Overhead nämlich doppelt und dreifach^^

    Techmix,
    wenn du also die Daten von deinem Kompressionsalgorithmus in 16KB große "Häppchen" zerlegst, diese in den lokalen Speicher der Workgroups packst und dann dort noch Teilaufgaben auf die einzelnen Workitems verteilen kannst, hast du gute Chancen, auf einer mittelmäßigen GPU auch eine "fette" CPU zu schlagen!

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Andy
    • 11. März 2014 um 13:30

    Hi,

    Zitat

    Aber zu dem Source, ich hatte damit einige Experimente gemacht und bei der Verwendung von '_CL_GetDevice()' ist es irritierend das die Angabe 'ALL' die nächst erreichbare Hardware darstellt - und eben nicht die gesammte Hardware.

    Ab OpebCL 1.2 sollte es möglich sein, die komplette Hardware (GPU und CPU) gleichzeitig an einem Kernel rechnen zu lassen. Ich hänge mich da mal dran...

    Zitat

    Und wie verhällt sich OpenCL bei einem SLI-System? Werden überhaupt beide Karten angesprochen, oder nur eine davon??

    Gute Frage ^^, sollte sich bei Khronos im Forum klären lassen.

    Zitat

    Wenn ich mir den Mandelbrotflug in OpenCL (über Gfx) anschaue - und anschliessend den Flug in AU3... Das ist so ein gewaltiger Unterschied! Wow!!
    Aber ich habe grad mal vielleicht 20% der Kernel (und dessen Befehle) verstanden... Das soll doch C sein - oder nicht?!? (Ahhhh, sind doch SDK-Befhele...) Da muss man sich wirklich einlesen...

    Den Kernel für den Mandelbrotflug habe ich einfach mal kopiert, um zu zeigen, dass auch ohne Änderung des Kernels ein AutoIt-Script problemlos davon profitieren kann.
    In der Devices64 verwende ich einen eigenen Mandelbrot-Kernel, der besteht nur aus einigen Zeilen ^^

    Zitat

    So wie ich das sehe sollte es doch auch möglich sein den 7zip Algorythmus nach OpenCL zu portieren, dieser Funktioniert eh schon mit Multi-Threading. In OpenCL könnte das doch auch von der GraKa erledigt werden, oder??

    Es lassen sich alle gut parallelisierbaren Algorithmen durch OpenCL beschleunigen. Leider trifft das für die Mehrzahl der Packer nicht zu :huh: Deren Algorithmen sind eben nicht gut parallelisierbar...

    Zitat

    Mir fiel grade auf das die GraKa von Blume (Geforce 9800 GTX+) einen Speed von 621 hat, meine GTX 460 AMP (toppt eine GTX 470) bekommt nur einen Speed von knapp 300 Punken... Meine Karte ist doch deutlich Leistungsfähiger, ist der Punktevorsprung tatsächlich NUR durch die 'Compute Units' begründet (seine hat 16, meine nur 7)?!?

    Ja, so sieht es aus. Nvidia sieht generell bei OpenCL gegenüber AMD-GPU´s nicht gut aus, das wird umso schlimmer, je weniger Compute-Units verwendet werden.
    Aber Nvidia holt auf^^
    Apple pusht zzt. OpenCL, kein Wunder, die wollen ja auch ihre Mac-Pro´s mit den teuren Grakas verkaufen...

  • Win32_PerfRawData_Tcpip_NetworkInterface - Windows 7 Alternative

    • Andy
    • 8. März 2014 um 17:23

    Interessant, denn Scriptomatic sammelt ja die nur die aus der Windows-eigenen Datenbank möglichen Classes für den Namespace.
    Vista....ggf. kann das mal ein anderer Vista-User verifizieren?

    Zitat

    Kann man da was falsch machen (weis doofe Frage, ich schaff aber so manches)?

    Nein, ich glaube nicht, dass man da etwas falsch machen kann...so wie deine Fehlermeldung aussieht, wird schon die Anfrage an die Datenbank verhindert.
    Ggf. ein Rechte-Problem? Hast du es mal als Administrator versucht?

    //EDIT poste mal bitte die beiden Scripte, einmal das vom Orginal erstellte, und das mit dem Filter erstellte

  • Win32_PerfRawData_Tcpip_NetworkInterface - Windows 7 Alternative

    • Andy
    • 8. März 2014 um 11:40
    Zitat

    "C:\Users\viso\Desktop\ISN AutoIt Studio\Projects\

    Ich benutze Scite ohne Fehlermeldung....Win7/64 und XP/32
    So wie du das schreibst, tritt der Fehler nur beim von mir geposteten Script auf, und nicht bei dem im Link geposteten Orginalcode?

  • Zahl aus einer htm-Datei auslesen

    • Andy
    • 8. März 2014 um 10:56

    Hi,
    so?

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    $line='<tr><td class="value"><strong>PassMark Rating</strong></td><td class="maxvalue">683.8</td></tr>'

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

    $value=_stringbetween($line,'<td class="maxvalue">','</td></tr>')

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

    msgbox (0,0,$value[0])

    [/autoit]


    Du musst nicht mal die Zeile finden, nimm einfach

    [autoit]

    $line=fileread("test.htm")

    [/autoit]
  • Win32_PerfRawData_Tcpip_NetworkInterface - Windows 7 Alternative

    • Andy
    • 8. März 2014 um 10:48

    Wie kommst du darauf, dass das eine Fehlermeldung ist?

  • Win32_PerfRawData_Tcpip_NetworkInterface - Windows 7 Alternative

    • Andy
    • 8. März 2014 um 08:39

    Hi,

    LINK Scriptomatic

    Ich mache das sonst nicht, aber hier der von mir modifizierte Code von Scriptomatic. Ich habe einen Filter eingebaut, welcher innerhalb der WMI-Class nach dem eingegebenen Begriff filtert.
    Will ich nur die Netzwerk-Classes, gebe ich in der Inputbox net ein, und in der Auswahl erscheinen nur Classes, welche diesen Begriff im Namen haben.
    Beim Start braucht Scriptomatic etwas Zeit, um sämtliche registrierten Classes zu laden.

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=scriptomatic.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    ; AutoIt ScriptOMatic
    ; -------------------
    ;
    ; AutoIt's counterpart of Microsoft's Scriptomatic
    ;
    ; Author: SvenP
    ; Date/version: 2005-04-17
    ; See also: http://www.microsoft.com/technet/script…s/scripto2.mspx
    ; Requires: AutoIt beta version 3.1.1.8 or higher (COM support!!)
    ;
    ; GUI generated by AutoBuilder 0.5 Prototype

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

    ;************************
    ;* Global State Variables
    ;************************
    $g_strCurrentNamespace = "\root\CIMV2"
    $g_iCurrentNamespaceIndex = 0
    $g_strWMISource = "localhost"
    $g_strOutputFormat = "Dialog"
    Global $objClassDictionary
    ;************************
    ;* Main GUI
    ;************************

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

    GuiCreate("AutoIt Scriptomatic Tool", 684, 561,(@DesktopWidth-684)/2, (@DesktopHeight-561)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)

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

    $GUI_AST_MainGroup = GuiCtrlCreateGroup("", 10, 10,660,530)
    $GUI_WMI_NamespaceLabel = GuiCtrlCreateLabel("WMI Namespace", 20, 30,150, 20)
    $GUI_WMI_Namespace = GuiCtrlCreateCombo("WMI_Namespaces", 20, 50,280, 80)
    $GUI_WMI_ClassLabel = GuiCtrlCreateLabel("WMI Class", 320, 30,80, 20)
    $GUI_WMI_Classes = GuiCtrlCreateCombo("WMI_Classes", 320, 50,340, 80)
    $GUI_WMI_Filter = GUICtrlCreateButton("Filter",450,25,70,20)

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

    $GUI_AST_ButtonGroup = GuiCtrlCreateGroup("", 10, 80,660, 50)
    $GUI_AST_Run = GuiCtrlCreateButton("Run", 20,100, 50, 20)
    $GUI_AST_CIMv2 = GuiCtrlCreateButton("CIMv2", 80,100, 50, 20)
    $GUI_AST_WMISource = GuiCtrlCreateButton("WMISource", 140,100, 70, 20)
    $GUI_AST_Open = GuiCtrlCreateButton("Open", 220,100, 60, 20)
    $GUI_AST_Save = GuiCtrlCreateButton("Save", 290,100, 60, 20)
    $GUI_AST_Quit = GuiCtrlCreateButton("Quit", 360,100, 60, 20)
    $GUI_AST_OptionGroup = GuiCtrlCreateGroup("Output", 430, 80,240, 50)
    $GUI_AST_RadioDialog = GuiCtrlCreateRadio("Dialog", 440,100, 50, 20)
    $GUI_AST_RadioText = GuiCtrlCreateRadio("Text", 510,100, 50, 20)
    $GUI_AST_RadioHTML = GuiCtrlCreateRadio("HTML", 570,100, 50, 20)
    $GUI_AST_ScriptCode = GuiCtrlCreateEdit("One moment...", 20,140,640,390)

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

    GuiSetState()

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

    ; Initial GUI Settings
    GUICtrlSetState($GUI_AST_RUN, $GUI_DISABLE)
    GUICtrlSetState($GUI_AST_SAVE, $GUI_DISABLE)
    GUICtrlSetState($GUI_AST_RadioDialog,$GUI_CHECKED)

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

    GUICtrlSetState($GUI_WMI_Filter, $GUI_DISABLE)

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

    ; Fill the WMI_Namespaces Combobox
    LoadWMINamespaces()

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

    ; Fill the WMI_Classes Combobox
    HandleNamespaceChange()
    GUICtrlSetState($GUI_WMI_Filter, $GUI_ENABLE)

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

    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $GUI_AST_QUIT
    ExitLoop
    Case $msg = $GUI_WMI_Filter
    filter()
    Case $msg = $GUI_WMI_Namespace
    HandleNameSpaceChange()
    Case $msg = $GUI_WMI_Classes
    ComposeCode()
    Case $msg = $GUI_AST_Run
    RunScript()
    Case $msg = $GUI_AST_Save
    SaveScript()
    Case $msg = $GUI_AST_Open
    OpenScript()
    Case $msg = $GUI_AST_CIMv2
    SetNamespaceToCIMV2()
    Case $msg = $GUI_AST_WMISource
    SetWMIRepository()
    Case $msg = $GUI_AST_RadioDialog or _
    $msg = $GUI_AST_RadioText or _
    $msg = $GUI_AST_RadioHTML
    HandleOutputChange()
    EndSelect
    WEnd

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

    GUIDelete()

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

    Exit

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

    ;********************************************************************
    ;* LoadWMINamespaces
    ;********************************************************************
    Func LoadWMINamespaces()
    $strCsvListOfNamespaces = ""
    $strNameSpacesCombo=""

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

    $strWaitNamespaces="Please wait, Loading WMI Namespaces"
    GUICtrlSetData($GUI_WMI_Namespace,$strWaitNamespaces,$strWaitNamespaces)

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

    EnumNameSpaces("root", $strCsvListOfNamespaces)

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

    $arrNamespaces = StringSplit($strCsvListOfNamespaces, ",")

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

    For $strNamespace in $arrNamespaces
    $strNameSpacesCombo = $strNameSpacesCombo & "|" & $strNamespace
    Next

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

    GUICtrlSetData($GUI_WMI_Namespace,$strNameSpacesCombo,"ROOT\CIMV2")

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

    EndFunc

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

    ;********************************************************************
    ;* EnumNamespaces
    ;********************************************************************
    Func EnumNamespaces($strNamespace, ByRef $tmpCsvListOfNamespaces)

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

    If $tmpCsvListOfNamespaces = "" Then
    $tmpCsvListOfNamespaces = $strNamespace
    Else
    $tmpCsvListOfNamespaces = $tmpCsvListOfNamespaces & "," & $strNamespace
    EndIf

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

    $strComputer = $g_strWMISource
    $objWMIService = ObjGet("winmgmts:" & $g_strWMISource & "" & $strNameSpace)

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

    If not @error Then

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

    $colNameSpaces = $objWMIService.InstancesOf("__NAMESPACE")

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

    For $objNameSpace In $colNameSpaces
    EnumNamespaces($strNameSpace & "" & $objNameSpace.Name, $tmpCsvListOfNamespaces)
    Next
    Else
    $tmpCsvListOfNamespaces=""
    EndIf

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

    EndFunc

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

    ;********************************************************************
    ;* HandleNamespaceChange
    ;********************************************************************
    Func HandleNamespaceChange()

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

    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Clear the WMI classes pulldown location.
    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    $strSelectedNamespace = GUICtrlRead ( $GUI_WMI_Namespace )

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

    ; Disable the namespace combobox until class load has been completed
    GUICtrlSetState($GUI_WMI_Namespace, $GUI_DISABLE)

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

    $strWMIWaitMsg = "Please wait, trying to load WMI Classes in namespace " & $strSelectedNamespace
    GUICtrlSetData($GUI_WMI_Classes, $strWMIWaitMsg, $strWMIWaitMsg)
    GUICtrlSetData($GUI_AST_ScriptCode,"One moment...","")

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

    LoadWMIClasses()
    $g_strCurrentNamespace = "" & $strSelectedNamespace

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

    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Clear the code textarea and disable run and save.
    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    GUICtrlSetData($GUI_AST_ScriptCode,"","")

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

    GUICtrlSetState($GUI_WMI_Namespace, $GUI_ENABLE)
    GUICtrlSetState($GUI_AST_RUN, $GUI_DISABLE)
    GUICtrlSetState($GUI_AST_SAVE, $GUI_DISABLE)

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

    EndFunc

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

    ;********************************************************************
    ;* LoadWMIClasses
    ;*
    ;* Fetch all the classes in the currently selected namespace, and
    ;* populate the keys of a dictionary object with the names of all
    ;* dynamic (non-association) classes. Then we transfer the keys to
    ;* an array, sort the array, and finally use the sorted array to
    ;* populate the WMI classes pulldown.
    ;********************************************************************
    Func LoadWMIClasses()

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

    Const $SORT_KEYS = 1
    Const $SORT_ITEMS = 2

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

    $objClassDictionary = ObjCreate("Scripting.Dictionary")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $objClassDictionary = ' & $objClassDictionary & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $objQualifierDictionary = ObjCreate("Scripting.Dictionary")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $objQualifierDictionary = ' & $objQualifierDictionary & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

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

    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:" & $strComputer & $g_strCurrentNamespace)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $objWMIService = ' & $objWMIService & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

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

    If not @error Then

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

    For $objClass in $objWMIService.SubclassesOf()

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

    For $objQualifier In $objClass.Qualifiers_() ; Dummy (), because it ends with an underscore !
    $objQualifierDictionary.Add(StringLower($objQualifier.Name), "")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : StringLower($objQualifier.Name) = ' & StringLower($objQualifier.Name) & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    Next

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

    If $objQualifierDictionary.Exists("dynamic") Then

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

    ;$TempVar = $objClass.Path_.Class
    ;$objClassDictionary.Add($TempVar, "") ; Can't use object in arguments ?!!

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

    $objClassDictionary.Add($objClass.Path_.Class, "")

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

    EndIf

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

    $objQualifierDictionary.RemoveAll

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

    Next

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

    $objQualifierDictionary = ""

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

    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; If the current namespace contains dynamic classes...
    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    If $objClassDictionary.Count Then

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

    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Sort the dictionary.
    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    SortDictionary($objClassDictionary, $SORT_KEYS)

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

    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Populate the WMI classes pulldown with the sorted dictionary.
    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

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

    $strClassesCombo="|Select a WMI class"

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

    For $strWMIClass in $objClassDictionary ; method .Keys is not an object ??

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

    $strClassesCombo = $strClassesCombo & "|" & $strWMIClass

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

    Next

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

    GUICtrlSetData($GUI_WMI_Classes,$strClassesCombo,"Select a WMI class")

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

    EndIf
    EndIf

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

    If @error Or $objClassDictionary.Count = 0 Then
    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; And if the current namespace doesn't contain dynamic classes.
    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    GUICtrlSetData($GUI_WMI_Classes,"|No dynamic classes found in current namespace.|Select a different namespace","")

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

    EndIf

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

    ;$objClassDictionary = ""

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

    EndFunc

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

    ;********************************************************************
    ;* SortDictionary
    ;*
    ;* Shell sort based on:
    ;* http://support.microsoft.com/support/kb/articles/q246/0/67.asp
    ;********************************************************************
    Func SortDictionary(ByRef $objDict, $intSort)

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

    Const $dictKey = 1
    Const $dictItem = 2

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

    Dim $strDict[1][3]

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

    $intCount = $objDict.Count

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

    If $intCount > 1 Then

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

    ReDim $strDict[$intCount][3]

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

    $i = 0
    For $objKey In $objDict

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

    $strDict[$i][$dictKey] = String($objKey)
    $strDict[$i][$dictItem] = String($objDict($objKey))

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

    $i = $i + 1
    Next

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

    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Perform a shell sort of the 2D string array
    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    For $i = 0 To ($intCount - 2)
    For $j = $i To ($intCount - 1)
    If $strDict[$i][$intSort] > $strDict[$j][$intSort] Then
    $strKey = $strDict[$i][$dictKey]
    $strItem = $strDict[$i][$dictItem]
    $strDict[$i][$dictKey] = $strDict[$j][$dictKey]
    $strDict[$i][$dictItem] = $strDict[$j][$dictItem]
    $strDict[$j][$dictKey] = $strKey
    $strDict[$j][$dictItem] = $strItem
    EndIf
    Next
    Next

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

    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Erase the contents of the dictionary object
    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    $objDict.RemoveAll

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

    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Repopulate the dictionary with the sorted information
    ;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    For $i = 0 To ($intCount - 1)
    $objDict.Add($strDict[$i][$dictKey], $strDict[$i][$dictItem])
    Next

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

    EndIf

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

    EndFunc

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

    ;********************************************************************
    ;* ComposeCode
    ;********************************************************************
    Func ComposeCode()

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

    $objClass=""

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

    $strSelectedClass = GUICtrlRead ( $GUI_WMI_Classes )
    ; Check if a valid class has been selected
    If stringinstr($strSelectedClass,"Select a WMI class")=0 Then

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

    $bHasDates = false ; Flag: output has date fields
    $strHeaderStart=Chr(34)
    $strRowStart=Chr(34)
    $strColumnSeparator=": "
    $strRowEnd=" & @CRLF"

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

    $strComputerCommand = "$strComputer = " & Chr(34) & $g_strWMISource & Chr(34)

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

    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!" & @COMPUTERNAME & $g_strCurrentNamespace)
    $objClass = $objWMIService.Get($strSelectedClass)

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

    If IsObj($objClass) Then

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

    $strScriptCode = ""
    $strScriptCode = $strScriptCode & "; Generated by AutoIt Scriptomatic" & @CRLF & @CRLF
    $strScriptCode = $strScriptCode & "$wbemFlagReturnImmediately = 0x10" & @CRLF
    $strScriptCode = $strScriptCode & "$wbemFlagForwardOnly = 0x20" & @CRLF
    $strScriptCode = $strScriptCode & '$colItems = ""' & @CRLF
    $strScriptCode = $strScriptCode & $strComputerCommand & @CRLF & @CRLF
    $strScriptCode = $strScriptCode & '$Output=""' & @CRLF

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

    If $g_strOutputFormat = "HTML" then
    $strScriptCode = $strScriptCode & "$Output = $Output & '<html><head><title>Scriptomatic HTML Output</title></head><body> " & _
    "<style>table {font-size: 10pt; font-family: arial;} th {background-color: buttonface; font-decoration: bold;} " & _
    "</style><table BORDER=" & Chr(34) & "1" & Chr(34) & "><tr><th>Property</th><th>Value</th></tr>'" & @CRLF
    $strRowStart = Chr(34) & "<tr><td>"
    $strHeaderStart = "'<tr bgcolor=" & Chr(34) & "yellow" & Chr(34) & "><td>' & " & Chr(34)
    $strColumnSeparator = "</td><td>&nbsp;"
    $strRowEnd = " & " & Chr(34) & "</td></tr>" & Chr(34) & " & @CRLF"
    EndIf

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

    $strScriptCode = $strScriptCode & "$Output = $Output & " & $strHeaderStart & "Computer" & $strColumnSeparator & Chr(34) & " & $strComputer " & $strRowEnd & @CRLF

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

    If $g_strOutputFormat = "Dialog" then
    $strScriptCode = $strScriptCode & "$Output = $Output & " & Chr(34) & "==========================================" & Chr(34) & $strRowEnd & @CRLF
    EndIf

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

    $strScriptCode = $strScriptCode & "$objWMIService = ObjGet(" & Chr(34) & "winmgmts:" & Chr(34) & " & $strComputer & " & Chr(34) & $g_strCurrentNamespace & Chr(34) & ")" & @CRLF
    $strScriptCode = $strScriptCode & "$colItems = $objWMIService.ExecQuery(" & Chr(34) & "SELECT * FROM " & $strSelectedClass & Chr(34) & ", " & Chr(34) & "WQL" & Chr(34) & ", _" & @CRLF
    $strScriptCode = $strScriptCode & " $wbemFlagReturnImmediately + $wbemFlagForwardOnly)" & @CRLF & @CRLF
    $strScriptCode = $strScriptCode & "If IsObj($colItems) then" & @CRLF
    $strScriptCode = $strScriptCode & " For $objItem In $colItems" & @CRLF

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

    For $objProperty in $objClass.Properties_() ; Must use (), because method ends with an underscore

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

    If $objProperty.IsArray = True Then
    $strScriptCode = $strScriptCode & " $str" & $objProperty.Name & " = $objItem." & $objProperty.Name & "(0)" & @CRLF
    $strScriptCode = $strScriptCode & " $Output = $Output & " & $strRowStart & $objProperty.Name & $strColumnSeparator & Chr(34) & " & $str" & $objProperty.Name & $strRowEnd & @CRLF
    ElseIf $objProperty.CIMTYPE = 101 Then
    $bHasDates = True
    $strScriptCode = $strScriptCode & " $Output = $Output & " & $strRowStart & $objProperty.Name & $strColumnSeparator & Chr(34) & " & WMIDateStringToDate($objItem." & $objProperty.Name & ")" & $strRowEnd & @CRLF
    Else
    $strScriptCode = $strScriptCode & " $Output = $Output & " & $strRowStart & $objProperty.Name & $strColumnSeparator & Chr(34) & " & $objItem." & $objProperty.Name & $strRowEnd & @CRLF
    EndIf
    Next

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

    If $g_strOutputFormat = "Dialog" then
    $strScriptCode = $strScriptCode & ' if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop' & @CRLF
    $strScriptCode = $strScriptCode & ' $Output=""' & @CRLF
    Endif
    $strScriptCode = $strScriptCode & " Next" & @CRLF

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

    if $g_strOutputFormat = "Text" then
    $strScriptCode = $strScriptCode & ' ConsoleWrite($Output)' & @CRLF
    $strScriptCode = $strScriptCode & ' FileWrite(@TempDir & "\' & $strSelectedClass & '.TXT", $Output )' & @CRLF
    $strScriptCode = $strScriptCode & ' Run(@Comspec & " /c start " & @TempDir & "\' & $strSelectedClass & '.TXT" )' & @CRLF
    Elseif $g_strOutputFormat = "HTML" then
    $strScriptCode = $strScriptCode & ' FileWrite(@TempDir & "\' & $strSelectedClass & '.HTML", $Output )' & @CRLF
    $strScriptCode = $strScriptCode & ' Run(@Comspec & " /c start " & @TempDir & "\' & $strSelectedClass & '.HTML" )' & @CRLF
    Endif

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

    $strScriptCode = $strScriptCode & "Else" & @CRLF
    $strScriptCode = $strScriptCode & ' Msgbox(0,"WMI Output","No WMI Objects Found for class: " & ' & Chr(34) & $strSelectedClass & Chr(34) & ' )' & @CRLF

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

    $strScriptCode = $strScriptCode & "Endif" & @CRLF
    $strScriptCode = $strScriptCode & @CRLF & @CRLF

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

    If $bHasDates Then
    $strScriptCode = $strScriptCode & "Func WMIDateStringToDate($dtmDate)" & @CRLF
    $strScriptCode = $strScriptCode & @CRLF
    $strScriptCode = $strScriptCode & Chr(9) & "Return (StringMid($dtmDate, 5, 2) & ""/"" & _" & @CRLF
    $strScriptCode = $strScriptCode & Chr(9) & "StringMid($dtmDate, 7, 2) & ""/"" & StringLeft($dtmDate, 4) _" & @CRLF
    $strScriptCode = $strScriptCode & Chr(9) & "& "" "" & StringMid($dtmDate, 9, 2) & "":"" & StringMid($dtmDate, 11, 2) & "":"" & StringMid($dtmDate,13, 2))" & @CRLF
    $strScriptCode = $strScriptCode & "EndFunc"
    EndIf
    Else
    $strScriptCode = "Error: No Class properties found for " & $g_strCurrentNamespace & "" & $strSelectedClass
    EndIf

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

    GUICtrlSetData($GUI_AST_ScriptCode,$strScriptCode)

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

    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Once the code is successfully composed and put into the
    ; textarea, ensure that the run and save buttons are enabled.
    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    GUICtrlSetState($GUI_AST_RUN, $GUI_ENABLE)
    GUICtrlSetState($GUI_AST_SAVE, $GUI_ENABLE)

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

    Else
    ; Disable Run and Save buttons, because no valid code has been generated
    GUICtrlSetState($GUI_AST_RUN, $GUI_DISABLE)
    GUICtrlSetState($GUI_AST_SAVE, $GUI_DISABLE)
    EndIf

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

    EndFunc

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

    ;********************************************************************
    ;* RunScript
    ;********************************************************************
    Func RunScript()

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

    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Create a temporary script file named "temp_script.au3".
    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

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

    $strTmpName = @TempDir & "\temp_script.au3"

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

    if FileExists($strTmpName) then FileDelete($strTmpName)

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

    FileWrite($strTmpName,GUICtrlRead($GUI_AST_Scriptcode))

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

    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ; Start constructing the command line that will run the script...
    ;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    $strCmdLine = "c:\programme\autoit3\autoit3.exe" & " " & $strTmpName

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

    RunWait($strCmdLine)

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

    FileDelete($strTmpName)

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

    EndFunc

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

    ;********************************************************************
    ;* SaveScript
    ;********************************************************************
    Func SaveScript()

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

    $strTmpName=FileSaveDialog("Save Script",@DesktopDir,"AutoIt3 Scripts (*.au3)",16, GUICtrlRead ( $GUI_WMI_Classes ))

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

    if not @error and $strTmpName <> "" then
    if StringRight($strTmpName,4) <> ".AU3" then $strTmpName=$strTmpName & ".AU3"
    if FileExists($strTmpName) then FileDelete($strTmpName)
    FileWrite($strTmpName,GUICtrlRead($GUI_AST_Scriptcode))
    EndIf

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

    EndFunc

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

    ;********************************************************************
    ;* OpenScript
    ;********************************************************************

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

    Func OpenScript()

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

    $strTmpName=FileOpenDialog("Open Script",@DesktopDir,"AutoIt3 Scripts (*.au3)")

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

    If not @error and $strTmpName <> "" then
    If FileExists($strTmpName) then
    GUICtrlSetData($GUI_AST_ScriptCode,FileRead($strTmpName,FileGetSize($strTmpName)))
    EndIf
    EndIf

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

    EndFunc

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

    ;****************************************************************************
    ;* SetNamespaceToCIMV2
    ;****************************************************************************
    Func SetNamespaceToCIMV2()
    If StringUpper(GUICtrlRead($GUI_WMI_Namespace)) <> "ROOT\CIMV2" Then
    GUICtrlSetData($GUI_WMI_Namespace,"ROOT\CIMV2","ROOT\CIMV2")
    HandleNamespaceChange()
    EndIf
    EndFunc

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

    ;****************************************************************************
    ;* SetWMIRepository
    ;****************************************************************************
    Func SetWMIRepository()

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

    $strWMISourceName = InputBox("Set WMI Repository Source", _
    "Please enter the computer whose WMI repository you want to read from: ", _
    $g_strWMISource)
    If $strWMISourceName <> "" Then

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

    $g_strWMISource = StringStripWS($strWMISourceName,1+2)
    ;target_computers.Value = $g_strWMISource
    LoadWMINamespaces()
    Endif
    EndFunc

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

    ;****************************************************************************
    ;* HandleOutputChange
    ;****************************************************************************
    Func HandleOutputChange()

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

    $ChosenFormat = $g_strOutputFormat
    if GUICtrlRead($GUI_AST_RadioDialog)=$GUI_CHECKED then $ChosenFormat="Dialog"
    if GUICtrlRead($GUI_AST_RadioText)=$GUI_CHECKED then $ChosenFormat="Text"
    if GUICtrlRead($GUI_AST_RadioHTML)=$GUI_CHECKED then $ChosenFormat="HTML"
    if $ChosenFormat <> $g_strOutputFormat Then
    $g_strOutputFormat = $ChosenFormat
    ComposeCode()
    EndIf
    EndFunc

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

    Func Filter()
    $filter =InputBox("Class Filter","Filter","","",200,150)
    if @error then
    msgbox(0,"Error in Function Filter","Filter Error or no Filter selected",2)
    else
    $strClassesCombo="|Select a WMI class filtered with "&$filter
    For $strWMIClass in $objClassDictionary ; method .Keys is not an object ??
    if $filter="" or stringinstr($strWMIClass,$filter) then
    $strClassesCombo = $strClassesCombo & "|" & $strWMIClass
    EndIf
    Next
    endif
    if $filter="" then
    GUICtrlSetData($GUI_WMI_Classes,$strClassesCombo,"Select a WMI class")
    Else
    GUICtrlSetData($GUI_WMI_Classes,$strClassesCombo,"Select a WMI class filtered with "&$filter)
    endif
    endfunc

    [/autoit]

    //EDIT
    Durch die Forensoftware werden in den Scripten Backslashes "gefressen". Diese gehören zu

    Code
    winmgmts://
  • Win32_PerfRawData_Tcpip_NetworkInterface - Windows 7 Alternative

    • Andy
    • 7. März 2014 um 13:23

    Hi,
    eben per AutoIt Scriptomatic folgendes Script erstellen lassen

    Spoiler anzeigen
    [autoit]

    ; Generated by AutoIt Scriptomatic

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

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"

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

    $Output=""
    $Output = $Output & "Computer: " & $strComputer & @CRLF
    $Output = $Output & "==========================================" & @CRLF
    $objWMIService = ObjGet("winmgmts:\" & $strComputer & "")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PerfRawData_Tcpip_NetworkInterface", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

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

    If IsObj($colItems) then
    For $objItem In $colItems
    $Output = $Output & "BytesReceivedPersec: " & $objItem.BytesReceivedPersec & @CRLF
    $Output = $Output & "BytesSentPersec: " & $objItem.BytesSentPersec & @CRLF
    $Output = $Output & "BytesTotalPersec: " & $objItem.BytesTotalPersec & @CRLF
    $Output = $Output & "Caption: " & $objItem.Caption & @CRLF
    $Output = $Output & "CurrentBandwidth: " & $objItem.CurrentBandwidth & @CRLF
    $Output = $Output & "Description: " & $objItem.Description & @CRLF
    $Output = $Output & "Frequency_Object: " & $objItem.Frequency_Object & @CRLF
    $Output = $Output & "Frequency_PerfTime: " & $objItem.Frequency_PerfTime & @CRLF
    $Output = $Output & "Frequency_Sys100NS: " & $objItem.Frequency_Sys100NS & @CRLF
    $Output = $Output & "Name: " & $objItem.Name & @CRLF
    $Output = $Output & "OffloadedConnections: " & $objItem.OffloadedConnections & @CRLF
    $Output = $Output & "OutputQueueLength: " & $objItem.OutputQueueLength & @CRLF
    $Output = $Output & "PacketsOutboundDiscarded: " & $objItem.PacketsOutboundDiscarded & @CRLF
    $Output = $Output & "PacketsOutboundErrors: " & $objItem.PacketsOutboundErrors & @CRLF
    $Output = $Output & "PacketsPersec: " & $objItem.PacketsPersec & @CRLF
    $Output = $Output & "PacketsReceivedDiscarded: " & $objItem.PacketsReceivedDiscarded & @CRLF
    $Output = $Output & "PacketsReceivedErrors: " & $objItem.PacketsReceivedErrors & @CRLF
    $Output = $Output & "PacketsReceivedNonUnicastPersec: " & $objItem.PacketsReceivedNonUnicastPersec & @CRLF
    $Output = $Output & "PacketsReceivedPersec: " & $objItem.PacketsReceivedPersec & @CRLF
    $Output = $Output & "PacketsReceivedUnicastPersec: " & $objItem.PacketsReceivedUnicastPersec & @CRLF
    $Output = $Output & "PacketsReceivedUnknown: " & $objItem.PacketsReceivedUnknown & @CRLF
    $Output = $Output & "PacketsSentNonUnicastPersec: " & $objItem.PacketsSentNonUnicastPersec & @CRLF
    $Output = $Output & "PacketsSentPersec: " & $objItem.PacketsSentPersec & @CRLF
    $Output = $Output & "PacketsSentUnicastPersec: " & $objItem.PacketsSentUnicastPersec & @CRLF
    $Output = $Output & "Timestamp_Object: " & $objItem.Timestamp_Object & @CRLF
    $Output = $Output & "Timestamp_PerfTime: " & $objItem.Timestamp_PerfTime & @CRLF
    $Output = $Output & "Timestamp_Sys100NS: " & $objItem.Timestamp_Sys100NS & @CRLF
    if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
    $Output=""
    Next
    Else
    Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_PerfRawData_Tcpip_NetworkInterface" )
    Endif

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

    funktioniert bei mir Win7/64 einwandfrei

  • rekusive Dateiliste plus Dateigrösse ermitteln und im Array anzeiegn

    • Andy
    • 6. März 2014 um 16:06

    Hi,
    man sollte an filegetsize() den gesamten Pfad übergeben und nicht nur den Dateinamen.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>

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

    $pfad = "c:\windows\system32"
    $a = _GetFilesFolder_Rekursiv($pfad, '*', 0)
    ;_ArrayDisplay($a)

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

    Local $a2[Ubound($a)][2] = [[$a[0], '']]
    For $i = 1 To $a[0]
    $a2[$i][0] = $a[$i]
    $iSize = FileGetSize($a[$i])/1028
    If @error Then ConsoleWrite("Fehler bei Datei: " & $a[$i] & @LF)
    $a2[$i][1] = Round($iSize) & " kB"
    Next
    $a = ''
    _ArrayDisplay($a2)

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

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]
  • AutoIT berechnung

    • Andy
    • 6. März 2014 um 12:59

    Hi,
    man kann dein Problem im von dir dargestellten Kontext sehr schlecht verstehen, daher zeige bitte dein komplettes bisheriges Script!

  • Happy Birthday GDI+ Meister

    • Andy
    • 4. März 2014 um 13:11

    Glücklichen Herzwunsch und alles Gute!!!

  • Spritz, Spreeder und Co - extrem schnell lesen

    • Andy
    • 2. März 2014 um 12:58
    Zitat

    Aha, also 1ms für ein Wort

    yepp, und wenn es 3wps oder 8000wps oder 3.1415E1337wps wären, würde es an der Aussage bzw. deren Inhalt etwas ändern? ;)

    Da Lesen, wie BugFix bereits ausgeführt hat, sehr individuell ausgeprägt ist, würde mich immens interessieren, wann die ebook-Reader von Spritz/Spreeder-Apps für Smartphones abgelöst werden. Wenn fest steht, dass Texte mittels Spritz/Spreeder-ähnlicher Applikationen schneller ERFASST werden, dann ist im Endeffekt JEDE Textansammlung als Spritz/Spreeder-Anwendung möglich. Ein herkömmlicher ebook-Reader also obsolet!

    Was den Kreis zu BugFixens Zeitung im Zug schliesst.
    Das arme Schwein, welches zzt. die Zeitung LANGSAM liest, sucht später nun anhand konzentrierter Stichwörter bestimmte Artikel aus einer "komprimierten Liste" aus....mal angenommen, er würde wirklich schneller lesen (können), anhand welcher Information würde er die für ihn relevanten Artikel nach seinem Gusto sortieren? Artikellänge? Bild dabei? Größe der Überschrift ( :rofl: ) ?
    Oder könnte man jetzt sagen, der Leser könnte auch den für ihn völlig uninteressanten Inhalt ALLER Artikel in einer Zeitung lesen, da er nun in der Lage ist, schneller zu lesen?
    Zuende gesponnen, wieviel Zeit könnte man beim Lesen einer Zeitung sparen, wenn der unwichtige Kram erst garnicht geschrieben würde?
    Und wieso werden dann im Gegenzug mit SMS/FB/Whatssapp usw., welche nur im Promillebereich "wichtige" Informationen verbreiten, Milliarden verdient?

    Wurden also Spritz/Spreeder-Anwendungen entwickelt, damit man die Zeit, die man mit dem Verbreiten von SMS/FB/blablub vertan hat, wieder "reinholen" kann? ?(

  • Alternativ zu Figlet, basiert auf LED Laufschrift ?

    • Andy
    • 2. März 2014 um 11:44

    Hi,
    so "ganz genau" weiss ich nicht worauf du hinaus willst, aber zu

    Zitat

    eigentlich versuche ich durchzuschauen wie man von Font bis bit-array komme

    habe ich etwas für dich^^
    Die dort von mir gepostete "Anzeige" einer Digitaluhr nutzt exzessiv den Minimalismus Font/Bitarray. Der angehängte Text beschreibt den WEG vom Font zum Bitarray und wieder zurück...
    Wie gesagt, das ist exzessiver Minimalismus unter Anwendung programmiertechnischer Tricks und Kniffe! 8o
    Aber die Methode an sich ist gängig...

  • Spritz, Spreeder und Co - extrem schnell lesen

    • Andy
    • 2. März 2014 um 11:15
    Zitat

    und schnell verschlingt man ganze Artikel ohne den Verlust von Infos

    Zitat

    Das Wichtige ist in so einem Fall der Inhalt, und den erfasse ich bei 600 (oder 1000) wpm natürlich schneller als bei 200

    wzbw 8o

    Zitat

    die Anwendung iReadFast geladen. Sie arbeitet eher wie Spreeder als wie Spritz, passt aber das Timing der Wörter individuell an

    made my day :rofl: ...eine Anwendung die MIR als User vorgibt, in welcher Geschwindigkeit ich etwas zu kapieren habe oder aber auch nicht?

    Zitat

    Wenn so ein Kuddelmuddel über den Bildschirm gejagt wird, dann gute Nacht.... Da muss man sich das Ganze dreimal angucken, bis man es verstanden hat, und letztendlich wärst du wohl schneller, wenn du die Nachricht normal gelesen hättest.

    Reingefallen! 8o
    SMS war und ist, genau wie sämtliche andere der Kurznachricht-Apps bzw. Anwendungen, die LANGSAMSTE Form der Kommunikation überhaupt.
    Ein schon in der Anlage völlig langsamne Art der Kommunikation um 0.2% zu beschleunigen, ist genau so, wie eine absolut gesehen langsame Implementation eines Algorithmus in einem Programm auf einem schnelleren Prozessor auszuführen...
    Murks wird auch nicht besser, wenn er schneller ausgeführt wird :P
    Das was meine Tochter in Highspeed per SMS mit ihren Freundinnen in einer Stunde simst, erledigen meine Frau und ich per Gespräch in nicht mal 5 Minuten.

    Stell dir einfach mal vor, du zockst in einem MMORPG/Shooter und willst dort irgendwelchen Progamern erzählen, es wäre besser und auch schneller, den Chat anstatt das TS/Ventrilo/Skype zu nutzen, da man in der Lage ist, 1000wps LESEN zu können!


    Ich könnte mir allerdings eine Anwendung wie bspw. für Google Glass vorstellen, die auf "Knopfdruck" KURZE Informationen zu im Blickfeld befindlichen Objekten per Spritz/Spreed-Technik einblendet/ggf. in die eigene Sprache übersetzt. Das wäre sicherlich cool, besonders im Hinblick auf Personen 8)

  • Kombinationen ermitteln

    • Andy
    • 2. März 2014 um 09:28

    Hi,
    schau dir mal die Verfahren zur Optimierung, bspw. Zuschnittoptimierung von Stangen oder Platten an. Also n verschiedene Längen/Flächen, die möglichst ohne (oder minimalem) Rest aus vorhandenen Stangen/Platten herausgeschnitten werden sollen.
    Da wird nicht mit n-dimensionalen Array´s gearbeitet, das würde den Speicher komplett sprengen :P
    Viel eher werden Sortierverfahren genutzt. Man nimmt die größten Teilstücke und fügt sie so lange aneinander, bis das vorgegebene Limit erreicht (dann Ende) oder überschritten wird. Dann geht man einen Schritt zurück und nimmt das nächste kleinere Teilstück uswusf, bis entweder die genaue Länge/Fläche (bei dir die Summe) erreicht ist, oder (bei einer Zuschnittoptimierung) das Reststück möglichst klein ist.
    Bei einer Zuschnittoptimierung wäre hier Schluss, da das "Optimum" erreicht wurde.
    In deinem Fall beendet man den Algorithmus aber nicht, sondern lässt ihn so lange weiterlaufen, bis die Summe ausschliesslich von den kleinsten "Teilstücken" erreicht wurde. Das ist die letzte aller möglichen Lösungen und das Abbruchkriterium wurde erreicht.

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™