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

Beiträge von Sen

  • Halo1 3D Models animieren/verwenden...?

    • Sen
    • 18. Dezember 2010 um 11:39

    Ich tippe mal auf Animation Files (anm) die in der Engine abgerufen werden.
    Habs Game grad nicht hier, kann also nicht nachgucken.

    Aber guck dich mal nach den ANM Datein um, bzw ob du welche findest.

  • Programm Updater

    • Sen
    • 14. Dezember 2010 um 17:13

    Selbst schreiben?

    Auf dem FTP ein Archiv mit dem programm angelegen ala'

    Programm_v0001
    Programm_v0002
    Programm_v0120

    etc.

    Dann einfach das Archiv auslesen, mit StringRight und 4 als Parameter
    in einen Array lesen. Das höchste abfragen & gucken ob die Version die auf dem
    PC vorhanden ist unter der auf dem FTP liegt. Wenn ja InetGet + InetGetInfo und
    eine GUI zum laden + selfdelete. (und evtl noch Run auf die neue Version)

    Warum so umständlich?
    So lässt sich zusätzlich (bzw optional) noch die Möglichkeit einbauen
    eine bestimmte version zu installieren (Array in eine Combo Box z.b.)
    oder einfach anzeigen zu lassen welche Versionen vorhanden sind.

    Sollte keine 200 zeilen Code benötigen.

  • Zip Datei extrahieren & sofort löschen

    • Sen
    • 13. Dezember 2010 um 13:05

    Das Topic sollte hier richtig sein, da ichs gern mit AutoIt umsetzen würde. :P

    Folgendes würde ich gern erreichen:

    • User (doppel-)klickt auf eine ganz normale .zip/rar/7zip Datei
    • 7zip extrahiert diese Datei in einen Ordner mit dem gleichen Namen
    • AutoIt löscht das original Archiv

    7zip kann man ohne Probleme über die Eingabeaufforderung steuern, das sollte
    also nicht das Problem sein. Nur wie schaffe ich es das er beim Doppelklick nicht die
    Datei mit 7zip öffnet, sondern mit dem AutoIt Script? Und dann den Dateipfad auch mitgibt?
    Wenn nötig könnte das ganze auch über 7zip Portabel + das AutoIt Script laufen.

    Wäre für jede/n Idee/Lösung/Denkanstoß dankbar. :P

  • SB Sprüche

    • Sen
    • 12. Dezember 2010 um 19:00

    Wie 90% meiner Einträge entweder sexuell, oder nerd-like sind. x'D

  • Wie aknn ich in Autoit CMD befehle ausführen lassen?

    • Sen
    • 28. November 2010 um 18:34
    [autoit]

    $IP = InputBox("Titel", "Nachricht")
    If @error Or $IP = "" Then ;Falls keine IP angegeben wurde
    Exit
    Else
    MsgBox(0, "Ping", "Dein Ping: " & Ping($IP))
    EndIf

    [/autoit]

    Und bitte, tuh uns allen den Gefallen & guck dir die Hilfe an.
    Deine letzten Threads & auch diesen kann man mit dem lesen von 1-2 Seiten
    in der Hilfe selbst beantworten.

  • Task_Manager v0.1

    • Sen
    • 28. November 2010 um 15:48

    Langsam ist der Code nicht wirklich, wenn du mal genau siehst was alles abgefragt
    wird. Was Geschwindigkeit angeht kann man da mit AutoIt nicht mehr viel rausholen.
    Das flackern kommt nur durch die aktualisierungen der ListView's, das werde ich auch noch
    beheben :P (Es flackern auch nur die ListView's, nicht die Form o_O)

    Würdest du ihn genau durchgelesen haben wären dir Funktionen aufgefallen
    die auch in einem Taskmanager einen Platz finden könnten.

    Gerade _ProcessSuspend() & _ProcessResume() sind genial wenn es um das
    testen von Fenstern geht die nichtmehr reagieren wie es im anderen Thread gerade
    besprochen wird, bzw allgemein um schädliche Prozesse lahm zu legen ;)

  • Task_Manager v0.1

    • Sen
    • 27. November 2010 um 14:45

    Vlt ganz gut falls du dir was abgucken willst.
    Sind noch ein paar praktische/mächtige Funktionen drin:

    Spoiler anzeigen
    [autoit]

    ;==============================================================
    ; AskSystem
    ;==============================================================
    ; Author: Sen
    $Version = "1.8 Beta"
    $Date = "1.10.2010"
    ;==============================================================
    ; Credits:
    ; Oscar - System Info Functions
    ; GTA-Spider - ProcessPath / Hwnd Function
    ; SEuBo - Assemble AskSystem with Oscar's Functions
    ; Xenobiologist - _DecodeProduktKey
    ; Prog@ndy - Dll Call for reading GetLocaleInfo
    ;==============================================================
    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    #include <Date.au3>
    #include <Inet.au3>
    #include <Constants.au3>
    #include <StaticConstants.au3>
    #include <GuiStatusBar.au3>
    #include <WindowsConstants.au3>
    #include <TabConstants.au3>

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

    Dim $Tab[17]
    Dim $List[17]
    Local $Load

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

    If @OSType <> 'WIN32_NT' Then
    MsgBox(48, "AskSystem - Error", "AskSystem funktioniert erst ab Windows 2000")
    Exit
    EndIf

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

    #region GUI
    $Main = GUICreate("AskSystem", 600, 400, -1, -1, $WS_THICKFRAME)

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

    ;Tab Menü
    $Tab[0] = GUICtrlCreateTab(0, 0, 600, 400)
    GUICtrlSetResizing($Tab[0], $GUI_DOCKAUTO)
    $Tab_Con = GUICtrlCreateContextMenu($Tab[0])
    $Con_Refresh = GUICtrlCreateMenuItem("Refresh All", $Tab_Con)
    $Con_LogAll = GUICtrlCreateMenuItem("Log all", $Tab_Con)

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

    #region Tab - Manager
    $Tab[1] = GUICtrlCreateTabItem("Manager")

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

    ;ProzessListe - Process
    $List[0] = GUICtrlCreateListView("Process|PID|Path|Title|Hwnd|Read|Write|Transfer|I/O", 0, 25, 600, 240)
    _GUICtrlListView_RegisterSortCallBack($List[0])
    _GUICtrlListView_SetColumnWidth($List[0], 0, 150)
    _GUICtrlListView_SetColumnWidth($List[0], 1, 50)
    _GUICtrlListView_SetColumnWidth($List[0], 2, 150)
    _GUICtrlListView_SetColumnWidth($List[0], 3, 100)
    _GUICtrlListView_SetColumnWidth($List[0], 4, 100)
    _GUICtrlListView_SetColumnWidth($List[0], 5, 100)

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

    ;ProzessListe - Drives
    $List[1] = GUICtrlCreateListView("Label|System|Serial|Type|Free|Total", 0, 265, 600, 135)
    _GUICtrlListView_RegisterSortCallBack($List[1])
    _GUICtrlListView_SetColumnWidth($List[1], 0, 120)
    _GUICtrlListView_SetColumnWidth($List[1], 1, 70)
    _GUICtrlListView_SetColumnWidth($List[1], 2, 100)
    _GUICtrlListView_SetColumnWidth($List[1], 3, 80)
    _GUICtrlListView_SetColumnWidth($List[1], 4, 100)
    _GUICtrlListView_SetColumnWidth($List[1], 5, 100)

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

    ;Context Menü Process
    $ContextP = GUICtrlCreateContextMenu($List[0])
    $ProcessKill = GUICtrlCreateMenuItem("Kill Process", $ContextP)
    $ProcessFreeze = GUICtrlCreateMenuItem("Suspend Process", $ContextP)
    $ProcessUnFreeze = GUICtrlCreateMenuItem("Resume Process", $ContextP)
    $RefreshP = GUICtrlCreateMenuItem("Refresh", $ContextP)
    $CopyInfoP = GUICtrlCreateMenuItem("Copy to Clipboard", $ContextP)
    $SaveLogP = GUICtrlCreateMenuItem("Save Process Log", $ContextP)

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

    ;Context Menü Drives
    $ContextD = GUICtrlCreateContextMenu($List[1])
    $RefreshD = GUICtrlCreateMenuItem("Refresh", $ContextD)
    $CopyInfoD = GUICtrlCreateMenuItem("Copy to Clipboard", $ContextD)
    $SaveLogD = GUICtrlCreateMenuItem("Save Drive Log", $ContextD)
    #endregion Tab - Manager

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

    #region Tab - Windows
    $Tab[2] = GUICtrlCreateTabItem("Windows")
    $List[2] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Windows

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

    #region Tab - Drives
    $Tab[3] = GUICtrlCreateTabItem("Drives")
    $List[3] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Drives

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

    #region Tab - Harddisks
    $Tab[4] = GUICtrlCreateTabItem("Harddisks")
    $List[4] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Harddisks

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

    #region Tab - Cd-Rom
    $Tab[5] = GUICtrlCreateTabItem("Cd-Rom")
    $List[5] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Cd-Rom

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

    #region Tab - Network
    $Tab[6] = GUICtrlCreateTabItem("Network")
    $List[6] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Network

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

    #region Tab - Networkadapter
    $Tab[7] = GUICtrlCreateTabItem("NetworkAdapter")
    $List[7] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Networkadapter

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

    #region Tab - Processor
    $Tab[8] = GUICtrlCreateTabItem("CPU")
    $List[8] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Processor

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

    #region Tab - RAM
    $Tab[9] = GUICtrlCreateTabItem("RAM")
    $List[9] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - RAM

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

    #region Tab - Graphiccard
    $Tab[10] = GUICtrlCreateTabItem("Graphiccard")
    $List[10] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Graphiccard

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

    #region Tab - Monitor
    $Tab[11] = GUICtrlCreateTabItem("Monitor")
    $List[11] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Monitor

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

    #region Tab - Printer
    $Tab[12] = GUICtrlCreateTabItem("Printer")
    $List[12] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Printer

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

    #region Tab - Soundcard
    $Tab[13] = GUICtrlCreateTabItem("Soundcard")
    $List[13] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Soundcard

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

    #region Tab - Mainboard
    $Tab[14] = GUICtrlCreateTabItem("Mainboard")
    $List[14] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Mainboard

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

    #region Tab - Sockets
    $Tab[15] = GUICtrlCreateTabItem("Sockets")
    $List[15] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    #endregion Tab - Sockets

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

    #region Tab - Info
    $Tab[16] = GUICtrlCreateTabItem("Info")
    $List[16] = GUICtrlCreateListView("||", 0, 25, 600, 375)
    _GUICtrlListView_SetColumnWidth($List[16], 0, 160)
    _GUICtrlListView_SetColumnWidth($List[16], 1, 440)
    _FillInfo()
    #endregion Tab - Info

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

    ;GUI Settings
    WinRunTrans($Main, "Show")
    #endregion GUI

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

    #region StartUp
    TrayTip("AskSystem", "System is loading..", 1)
    FillProcess()
    FillDrives()
    FillTabs()
    TrayTip("AskSystem", "Loading done.", 1)
    #endregion StartUp

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

    #region Case's
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Con_Refresh
    TrayTip("AskSystem", "Starting update..", 1)
    For $i = "3" To "15"
    _GUICtrlListView_DeleteAllItems($List[$i])
    Next
    FillTabs()
    TrayTip("AskSystem", "Update done.", 1)
    Case $Con_LogAll
    TrayTip("AskSystem", "Creating Logfile..", 1)
    AllLog()
    TrayTip("AskSystem", "Logfile done.", 1)
    Case $RefreshP
    FillProcess()
    Case $RefreshD
    FillDrives()
    Case $SaveLogP
    ProcessLog()
    Case $SaveLogD
    DriveLog()
    Case $CopyInfoP
    CopyToClipBoardP()
    Case $CopyInfoD
    CopyToClipBoardD()
    Case $List[0]
    _GUICtrlListView_SortItems($List[0], GUICtrlGetState($List[0]))
    Case $List[1]
    _GUICtrlListView_SortItems($List[1], GUICtrlGetState($List[1]))
    Case $ProcessKill
    KillProcess()
    Case $ProcessFreeze
    FreezeProcess()
    Case $ProcessUnFreeze
    UnFreezeProcess()
    EndSwitch
    WEnd
    #endregion Case's

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

    #region Func's
    Func OnAutoItExit()
    WinRunTrans($Main, "Hide")
    _GUICtrlListView_UnRegisterSortCallBack($List[0])
    _GUICtrlListView_UnRegisterSortCallBack($List[1])
    EndFunc ;==>OnAutoItExit

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

    Func _FillInfo()
    GUICtrlCreateListViewItem("Programm Name:|AskSystem", $List[16])
    GUICtrlCreateListViewItem("Version:|" & $Version, $List[16])
    GUICtrlCreateListViewItem("Date:|" & $Date, $List[16])
    GUICtrlCreateListViewItem("|", $List[16])
    GUICtrlCreateListViewItem("Coder:|Sen (Christopher Klay)", $List[16])
    GUICtrlCreateListViewItem("|", $List[16])
    GUICtrlCreateListViewItem("Credits:|Xenobiologist (Thorsten Meger) - _DecodeProduktKey Function", $List[16])
    GUICtrlCreateListViewItem("|Prog@ndy - Dll Call for reading GetLocaleInfo", $List[16])
    GUICtrlCreateListViewItem("|SEuBo - Assemble AskSystem 1.6 with the new Func's from Oscar ", $List[16])
    GUICtrlCreateListViewItem("|Oscar - System Info Functions", $List[16])
    GUICtrlCreateListViewItem("|GTASpider - ProcessPath & Hwnd Info Function", $List[16])
    GUICtrlCreateListViewItem("|", $List[16])
    GUICtrlCreateListViewItem("|Thanks to everyone for testing, bug reporting", $List[16])
    GUICtrlCreateListViewItem("|and good criticism.", $List[16])
    GUICtrlCreateListViewItem("|", $List[16])
    GUICtrlCreateListViewItem("Changelog:|- 1.8 Beta -", $List[16])
    GUICtrlCreateListViewItem("|- Can now suspend/resume process's", $List[16])
    GUICtrlCreateListViewItem("|- Changed 2 small Bugs", $List[16])
    EndFunc ;==>_FillInfo

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

    Func KillProcess()
    $ClickedItem = GUICtrlRead($List[0])
    If $ClickedItem > 0 Then
    $Read = GUICtrlRead($ClickedItem)
    $Read = StringSplit($Read, "|")
    If ProcessExists($Read[1]) <> "0" Then
    Do
    ProcessClose($Read[1])
    Until ProcessExists($Read[1]) = "0"
    _GUICtrlListView_DeleteItemsSelected($List[0])
    FillProcess()
    EndIf
    EndIf
    EndFunc ;==>KillProcess

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

    Func FreezeProcess()
    $ClickedItem = GUICtrlRead($List[0])
    If $ClickedItem > 0 Then
    $Read = GUICtrlRead($ClickedItem)
    $Read = StringSplit($Read, "|")
    If ProcessExists($Read[1]) <> "0" Then
    _ProcessSuspend($Read[1])
    EndIf
    EndIf
    EndFunc ;==>FreezeProcess

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

    Func UnFreezeProcess()
    $ClickedItem = GUICtrlRead($List[0])
    If $ClickedItem > 0 Then
    $Read = GUICtrlRead($ClickedItem)
    $Read = StringSplit($Read, "|")
    If ProcessExists($Read[1]) <> "0" Then
    _ProcessResume($Read[1])
    EndIf
    EndIf
    EndFunc ;==>UnFreezeProcess

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

    Func CopyToClipBoardP()
    $ClickedItem = GUICtrlRead($List[0])
    If $ClickedItem > 0 Then
    $Read = GUICtrlRead($ClickedItem)
    ClipPut($Read)
    EndIf
    EndFunc ;==>CopyToClipBoardP

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

    Func CopyToClipBoardD()
    $ClickedItem = GUICtrlRead($List[1])
    If $ClickedItem > 0 Then
    $Read = GUICtrlRead($ClickedItem)
    ClipPut($Read)
    EndIf
    EndFunc ;==>CopyToClipBoardD

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

    Func ProcessLog()
    _GUICtrlListView_BeginUpdate($List[0])
    If FileExists(@DesktopCommonDir & "/AskProcess - Process.txt") = "0" Then
    FileWrite(@DesktopCommonDir & "/AskProcess - Process.txt", "")
    EndIf
    $ListLines = _GUICtrlListView_GetItemCount($List[0])
    $LogFile = FileOpen(@DesktopCommonDir & "/AskProcess - Process.txt", 2)
    If $LogFile <> -1 Then
    For $i = 0 To $ListLines
    $LogLine = _GUICtrlListView_GetItemTextString($List[0], $i)
    FileWriteLine(@DesktopCommonDir & "/AskProcess - Process.txt", $LogLine)
    Next
    EndIf
    FileClose(@DesktopCommonDir & "/AskProcess - Process.txt")
    _GUICtrlListView_EndUpdate($List[0])
    EndFunc ;==>ProcessLog

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

    Func DriveLog()
    _GUICtrlListView_BeginUpdate($List[1])
    If FileExists(@DesktopCommonDir & "/AskProcess - Drives.txt") = "0" Then
    FileWrite(@DesktopCommonDir & "/AskProcess - Drives.txt", "")
    EndIf
    $ListLines = _GUICtrlListView_GetItemCount($List[1])
    $LogFile = FileOpen(@DesktopCommonDir & "/AskProcess - Drives.txt", 2)
    If $LogFile <> -1 Then
    For $i = 0 To $ListLines
    $LogLine = _GUICtrlListView_GetItemTextString($List[1], $i)
    FileWriteLine(@DesktopCommonDir & "/AskProcess - Drives.txt", $LogLine)
    Next
    EndIf
    FileClose(@DesktopCommonDir & "/AskProcess - Drives.txt")
    _GUICtrlListView_EndUpdate($List[1])
    EndFunc ;==>DriveLog

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

    Func AllLog()
    For $i = "0" To "15"
    _GUICtrlListView_BeginUpdate($List[$i])
    Next
    If FileExists(@DesktopCommonDir & "/AskProcess - Complete Log.txt") = "0" Then
    FileWrite(@DesktopCommonDir & "/AskProcess - Complete Log.txt", "")
    EndIf

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

    $LogFile = FileOpen(@DesktopCommonDir & "/AskProcess - Complete Log.txt", 2)

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

    For $l = "0" To "15"
    $ListLines = _GUICtrlListView_GetItemCount($List[$l])
    If $LogFile <> -1 Then
    For $i = 0 To $ListLines
    $LogLine = _GUICtrlListView_GetItemTextString($List[$l], $i)
    $LogLine = StringReplace($LogLine, "|", " ")
    FileWriteLine(@DesktopCommonDir & "/AskProcess - Complete Log.txt", $LogLine)
    Next
    EndIf

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

    FileClose(@DesktopCommonDir & "/AskProcess - Complete Log.txt")

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

    For $i = "0" To "15"
    _GUICtrlListView_EndUpdate($List[$l])
    Next
    Next
    EndFunc ;==>AllLog

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

    Func FillDrives()
    _GUICtrlListView_BeginUpdate($List[1])
    _GUICtrlListView_DeleteAllItems($List[1])
    $Drives = DriveGetDrive("ALL")
    For $i = "1" To $Drives[0]
    $Name = DriveGetLabel($Drives[$i])
    $Type = DriveGetType($Drives[$i])
    $Serial = DriveGetSerial($Drives[$i])
    $System = DriveGetFileSystem($Drives[$i])
    $Free = Round(DriveSpaceFree($Drives[$i]) / 1000, 2) & "Gb"
    $Total = Round(DriveSpaceTotal($Drives[$i]) / 1000, 2) & "Gb"
    GUICtrlCreateListViewItem($Name & "|" & $System & "|" & $Serial & "|" & $Type & "|" & $Free & "|" & $Total, $List[1])
    Next
    _GUICtrlListView_EndUpdate($List[1])
    EndFunc ;==>FillDrives

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

    Func FillProcess()
    _GUICtrlListView_BeginUpdate($List[0])
    _GUICtrlListView_DeleteAllItems($List[0])
    $Process_List = ProcessList()
    $ReadAll = "0"
    $WriteAll = "0"
    For $i = 2 To $Process_List[0][0]
    $Stats = ProcessGetStats($Process_List[$i][0], 1)
    $Path = _PidGetPath($Process_List[$i][1])
    If IsArray($Stats) Then
    $ReadAll = $ReadAll + $Stats[3]
    $WriteAll = $WriteAll + $Stats[4]
    EndIf
    If $Path = "0" Then
    $Path = "-"
    EndIf
    $Title = _WinGetInfoByPID($Process_List[$i][1])
    If IsArray($Title) Then
    If IsArray($Stats) Then
    GUICtrlCreateListViewItem($Process_List[$i][0] & "|" & $Process_List[$i][1] & "|" & $Path & "|" & $Title[1][1] & "|" & $Title[1][2] & "|" & $Stats[3] * 1000 & "|" & $Stats[4] * 1000 & "|" & $Stats[5] * 1000 & "|" & $Stats[2], $List[0])
    Else
    GUICtrlCreateListViewItem($Process_List[$i][0] & "|" & $Process_List[$i][1] & "|" & $Path & "|" & $Title[1][1] & "|" & $Title[1][2] & "|-|-|-|-", $List[0])
    EndIf
    Else
    If IsArray($Stats) Then
    GUICtrlCreateListViewItem($Process_List[$i][0] & "|" & $Process_List[$i][1] & "|" & $Path & "|-|-|" & $Stats[3] * 1000 & "|" & $Stats[4] * 1000 & "|" & $Stats[5] * 1000 & "|" & $Stats[2], $List[0])
    Else
    GUICtrlCreateListViewItem($Process_List[$i][0] & "|" & $Process_List[$i][1] & "|" & $Path & "|-|-|-|-|-|-|-", $List[0])
    EndIf
    EndIf
    Next
    _GUICtrlListView_EndUpdate($List[0])
    EndFunc ;==>FillProcess

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

    Func FillTabs()
    ; Windows
    $aWMIINfo = _CI_GetWindowsInfo()
    $hLVHandle = GUICtrlGetHandle($List[2])
    _ArrayUmdrehen($aWMIINfo)
    For $i = 0 To UBound($aWMIINfo) - 1
    GUICtrlCreateListViewItem($aWMIINfo[$i][0] & "|" & $aWMIINfo[$i][1], $List[2])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ; Drives
    $aWMIINfo = _CI_GetLogicalDisk()
    $hLVHandle = GUICtrlGetHandle($List[3])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[3])
    Next
    GUICtrlCreateListViewItem("|", $List[3])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;Harddrives
    $aWMIINfo = _CI_GetHarddrives()
    $hLVHandle = GUICtrlGetHandle($List[4])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[4])
    Next
    GUICtrlCreateListViewItem("|", $List[4])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;Cd-Rom
    $aWMIINfo = _CI_GetCDROM()
    $hLVHandle = GUICtrlGetHandle($List[5])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[5])
    Next
    GUICtrlCreateListViewItem("|", $List[5])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;Network
    $aWMIINfo = _CI_GetNetwork()
    $hLVHandle = GUICtrlGetHandle($List[6])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[6])
    Next
    GUICtrlCreateListViewItem("|", $List[6])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;NetworkAdapter
    $aWMIINfo = _CI_GetNetworkAdapter()
    $hLVHandle = GUICtrlGetHandle($List[7])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[7])
    Next
    GUICtrlCreateListViewItem("|", $List[7])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;CPU
    $aWMIINfo = _CI_GetCPU()
    $hLVHandle = GUICtrlGetHandle($List[8])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[8])
    Next
    GUICtrlCreateListViewItem("|", $List[8])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;RAM
    $aWMIINfo = _CI_GetRAM()
    $hLVHandle = GUICtrlGetHandle($List[9])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[9])
    Next
    GUICtrlCreateListViewItem("|", $List[9])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;Graphiccard
    $aWMIINfo = _CI_GetVideoController()
    $hLVHandle = GUICtrlGetHandle($List[10])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[10])
    Next
    GUICtrlCreateListViewItem("|", $List[10])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;Monitor
    $aWMIINfo = _CI_GetMonitor()
    $hLVHandle = GUICtrlGetHandle($List[11])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[11])
    Next
    GUICtrlCreateListViewItem("|", $List[11])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;Printer
    $aWMIINfo = _CI_GetPrinter()
    $hLVHandle = GUICtrlGetHandle($List[12])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[12])
    Next
    GUICtrlCreateListViewItem("|", $List[12])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;Soundcard
    $aWMIINfo = _CI_GetSoundDevice()
    $hLVHandle = GUICtrlGetHandle($List[13])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[13])
    Next
    GUICtrlCreateListViewItem("|", $List[13])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;Mainboard
    $aWMIINfo = _CI_GetMainBoard()
    $hLVHandle = GUICtrlGetHandle($List[14])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[14])
    Next
    GUICtrlCreateListViewItem("|", $List[14])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)

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

    ;Sockel
    $aWMIINfo = _CI_GetSystemSlot()
    $hLVHandle = GUICtrlGetHandle($List[15])
    ;~ _ArrayUmdrehen($aWinInfo)
    For $x = 1 To UBound($aWMIINfo) - 1
    For $i = 0 To UBound($aWMIINfo, 2) - 1
    GUICtrlCreateListViewItem($aWMIINfo[0][$i] & "|" & $aWMIINfo[$x][$i], $List[15])
    Next
    GUICtrlCreateListViewItem("|", $List[15])
    Next
    _GUICtrlListView_SetColumnWidth($hLVHandle, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hLVHandle, 1, $LVSCW_AUTOSIZE)
    EndFunc ;==>FillTabs

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

    Func _PidGetPath($pid = "", $strComputer = 'localhost')
    If $pid = "" Then $pid = WinGetProcess(WinGetTitle(""))
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId = " & $pid, "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) Then
    For $objItem In $colItems
    If $objItem.ExecutablePath Then Return $objItem.ExecutablePath
    Next
    EndIf
    EndFunc ;==>_PidGetPath

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

    Func _CI_SerialToString($sSerial)
    Local $sOut = ''
    For $i = 1 To StringLen($sSerial) Step 2
    $sOut &= Chr(Dec(StringMid($sSerial, $i, 2)))
    Next
    Return $sOut
    EndFunc ;==>_CI_SerialToString

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

    Func _WinGetInfoByPID($sPID)
    Local $aPList = ProcessList(), $iPID
    For $iiCount = 1 To $aPList[0][0]
    If $aPList[$iiCount][1] = $sPID Then
    If $sPID = 0 Then Return 0
    $iPID &= $aPList[$iiCount][1] & Chr(01)
    EndIf
    Next
    $iPID = StringSplit($iPID, Chr(01))
    If $iPID = 0 Then Return SetError(1, 0, 0)
    Local $aStoreHwndAndText[2][9], $nCount = 1
    $OptWSC = Opt('WinSearchChildren', 1)
    $OptWDHT = Opt('WinDetectHiddenText', 1)
    Local $aWinList = WinList()
    For $iCount = 1 To $aWinList[0][0]
    For $xCount = 1 To $iPID[0]
    If WinGetProcess($aWinList[$iCount][1]) = $iPID[$xCount] And _
    $aWinList[$iCount][0] <> '' Then
    Local $aWinPos = WinGetPos($aWinList[$iCount][1])
    Local $aWinClient = WinGetClientSize($aWinList[$iCount][1])
    $nCount += 1
    ReDim $aStoreHwndAndText[$nCount][9]
    $aStoreHwndAndText[$nCount - 1][1] = $aWinList[$iCount][0]
    $aStoreHwndAndText[$nCount - 1][2] = $aWinList[$iCount][1]
    $aStoreHwndAndText[$nCount - 1][3] = WinGetText($aWinList[$iCount][1])
    $aStoreHwndAndText[$nCount - 1][4] = $aWinPos[0]
    $aStoreHwndAndText[$nCount - 1][5] = $aWinPos[1]
    $aStoreHwndAndText[$nCount - 1][6] = $aWinClient[0]
    $aStoreHwndAndText[$nCount - 1][7] = $aWinClient[1]
    $aStoreHwndAndText[$nCount - 1][8] = WinGetClassList($aWinList[$iCount][1])
    EndIf
    Next
    Next
    Opt('WinSearchChildren', $OptWSC)
    Opt('WinDetectHiddenText', $OptWDHT)
    If $nCount = 1 Then Return SetError(2, 0, 0)
    Return $aStoreHwndAndText
    EndFunc ;==>_WinGetInfoByPID

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

    Func _CI_GetWindowsInfo($strComputer = '.')
    Local $aReturn[2][17] = [[ _
    'Betriebssystem:', 'Version:', 'Sprachversion:', 'Tastatur:', 'Boot-Laufwerk:', 'Windows-Verzeichnis:', _
    'Speicherplatz:', 'Hauptspeicher:', 'Auslagerungsdatei:', 'Installationsdatum:', 'Zuletzt gestartet:', _
    'Heutiges Datum:', 'Benutzername:', 'Benutzerverzeichnis:', 'Produktkey:', 'Hintergrundbild:', 'Bildschirmschoner:']]
    Local $aTmp, $sOSLang = @OSLang, $sKBLayout = @KBLayout, $sDigitalProductID, $sWallpaper = 'Nicht vorhanden', $sScreenSaver = 'Nicht vorhanden'
    Local $x = 0, $objWMIService, $colItems, $aMemory = MemGetStats(), $sX64 = ''
    $aTmp = DllCall('kernel32.dll', 'int', 'GetLocaleInfo', 'dword', '0x' & $sOSLang, 'dword', BitOR(0x2, 0x80000000), 'str', '', 'int', 85)
    If IsArray($aTmp) Then $sOSLang = $aTmp[3]
    $aTmp = DllCall('kernel32.dll', 'int', 'GetLocaleInfo', 'dword', '0x' & $sKBLayout, 'dword', BitOR(0x2, 0x80000000), 'str', '', 'int', 85)
    If IsArray($aTmp) Then $sKBLayout = $aTmp[3]
    If @OSArch <> 'X86' Then $sX64 = '64'
    $sDigitalProductID = RegRead('HKEY_LOCAL_MACHINE' & $sX64 & '\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'DigitalProductID')
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_Desktop', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    If StringInStr($objItem.Name, @UserName) Then
    If $objItem.Wallpaper <> '' Then $sWallpaper = $objItem.Wallpaper
    If $objItem.ScreenSaverExecutable <> '' Then $sScreenSaver = $objItem.ScreenSaverExecutable
    EndIf
    Next
    EndIf
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_OperatingSystem', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $aReturn[1][0] = $objItem.Caption & ' (' & @OSArch & ')'
    $aReturn[1][1] = $objItem.Version
    $aReturn[1][2] = $sOSLang
    $aReturn[1][3] = $sKBLayout
    $aReturn[1][4] = $objItem.BootDevice
    $aReturn[1][5] = $objItem.WindowsDirectory
    $aReturn[1][6] = 'Laufwerk "' & $objItem.SystemDrive & '\" ' & _ByteAutoSize(DriveSpaceTotal($objItem.SystemDrive) * 2 ^ 20)
    $aReturn[1][6] &= ' (' & _ByteAutoSize(DriveSpaceFree($objItem.SystemDrive) * 2 ^ 20) & ' frei)'
    $aReturn[1][7] = _ByteAutoSize($aMemory[1] * 1024, 0, 3)
    $aReturn[1][8] = _ByteAutoSize($objItem.SizeStoredInPagingFiles * 1024, 0, 3)
    $aReturn[1][9] = _WMIDateStringToDate($objItem.InstallDate)
    $aReturn[1][10] = _WMIDateStringToDate($objItem.LastBootUpTime)
    $aReturn[1][11] = _NowCalc()
    $aReturn[1][12] = @UserName
    $aReturn[1][13] = @UserProfileDir
    $aReturn[1][14] = _DecodeProductKey($sDigitalProductID)
    $aReturn[1][15] = $sWallpaper
    $aReturn[1][16] = $sScreenSaver
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetWindowsInfo

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

    Func _CI_GetHarddrives($strComputer = '.')
    Local $aReturn[1][8] = [[ _
    'Bezeichnung:', 'Größe:', 'Anschluss:', 'Bytes/Sektor:', 'Anzahl der Sektoren:', _
    'PNPDeviceID:', 'Status:', 'Seriennr. (Hardware):']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][8]
    $aReturn[$x][0] = $objItem.Model
    $aReturn[$x][1] = _ByteAutoSize($objItem.Size)
    $aReturn[$x][2] = $objItem.InterfaceType
    $aReturn[$x][3] = $objItem.BytesPerSector
    $aReturn[$x][4] = $objItem.TotalSectors
    $aReturn[$x][5] = $objItem.PNPDeviceID
    $aReturn[$x][6] = $objItem.Status
    Switch @OSVersion
    Case 'WIN_VISTA', 'WIN_7'
    If Number($objItem.SerialNumber) > 0 Then
    $aReturn[$x][7] = $objItem.SerialNumber & ' ("' & _CI_SerialToString($objItem.SerialNumber) & '")'
    Else
    $aReturn[$x][7] = 'nicht vorhanden'
    EndIf
    Case Else
    $aReturn[$x][7] = 'Wird von ' & @OSVersion & ' nicht unterstützt!'
    EndSwitch
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetHarddrives

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

    Func _CI_GetLogicalDisk($strComputer = '.')
    Local $aReturn[1][9] = [[ _
    'Laufwerk:', 'Beschreibung:', 'Netzwerkpfad:', 'Zugriff:', 'Größe:', 'Freier Speicher:', _
    'Dateisystem:', 'Datenträgername:', 'Seriennr. (Datenträger):']]
    Local $x = 0, $objWMIService, $colItems, $aAccess[2] = ['R/W', 'R']
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_LogicalDisk', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][9]
    $aReturn[$x][0] = $objItem.Name
    $aReturn[$x][1] = $objItem.Description
    If $objItem.Description = 'Netzwerkverbindung' Then
    $aReturn[$x][2] = $objItem.ProviderName
    Else
    $aReturn[$x][2] = '---'
    EndIf
    If String($objItem.FileSystem) <> '' Then
    If String($objItem.Access) <> '' Then
    $aReturn[$x][3] = $aAccess[Number($objItem.Access)]
    Else
    $aReturn[$x][3] = 'nicht verfügbar'
    EndIf
    $aReturn[$x][4] = _ByteAutoSize($objItem.Size)
    $aReturn[$x][5] = _ByteAutoSize($objItem.FreeSpace)
    $aReturn[$x][6] = $objItem.FileSystem
    $aReturn[$x][7] = '"' & $objItem.VolumeName & '"'
    $aReturn[$x][8] = $objItem.VolumeSerialNumber
    EndIf
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetLogicalDisk

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

    Func _CI_GetCDROM($strComputer = '.')
    Local $aReturn[1][9] = [[ _
    'Laufwerk:', 'Bezeichnung:', 'Typ:', 'PNPDeviceID:', 'Laufwerk-Status:', _
    'Disc-Status:', 'Disc-Name:', 'Disc-Größe:', 'Seriennr. (Disc):']]
    Local $x = 0, $objWMIService, $colItems, $aMedia[2] = ['keine Disc eingelegt', 'Disc eingelegt']
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_CDROMDrive', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][9]
    $aReturn[$x][0] = $objItem.Drive
    $aReturn[$x][1] = $objItem.Name
    $aReturn[$x][2] = $objItem.MediaType
    $aReturn[$x][3] = $objItem.PNPDeviceID
    $aReturn[$x][4] = $objItem.Status
    $aReturn[$x][5] = $aMedia[Abs($objItem.MediaLoaded)]
    If Abs($objItem.MediaLoaded) Then
    $aReturn[$x][6] = '"' & $objItem.VolumeName & '"'
    $aReturn[$x][7] = _ByteAutoSize($objItem.Size)
    $aReturn[$x][8] = $objItem.VolumeSerialNumber
    EndIf
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetCDROM

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

    Func _CI_GetNetwork($strComputer = '.')
    Local $aReturn[2][10] = [[ _
    'Benutzername:', 'Computername:', 'LAN-IP-Adresse:', 'DNS-Server:', 'Arbeitsgruppe:', _
    'WAN-IP-Adresse:', 'Ping-Zeiten:', ' google.de', ' heise.de', ' t-online.de']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $aReturn[1][0] = @UserName
    $aReturn[1][1] = @ComputerName
    $aReturn[1][2] = _CI_GetLANIP()
    $aReturn[1][3] = _CI_GetDNS()
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_ComputerSystem', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $aReturn[1][4] = $objItem.Domain
    $aReturn[1][5] = _GetIP()
    Next
    EndIf
    $aReturn[1][7] = _CI_PingCheck('google.de')
    $aReturn[1][8] = _CI_PingCheck('heise.de')
    $aReturn[1][9] = _CI_PingCheck('t-online.de')
    Return $aReturn
    EndFunc ;==>_CI_GetNetwork

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

    Func _CI_GetLANIP()
    Local $sPID = Run(@ComSpec & " /c ping -4 -n 1 " & @ComputerName, @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    Local $sOut = ''
    While 1
    $sOut &= StdoutRead($sPID)
    If @error Then ExitLoop
    WEnd
    Return StringRegExpReplace($sOut, '(?s).+\[(.+)\].+', '$1')
    EndFunc ;==>_CI_GetLANIP

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

    Func _CI_GetDNS()
    Local $sPID = Run(@ComSpec & " /c nslookup " & @ComputerName, @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    Local $sOut = ''
    While 1
    $sOut &= StdoutRead($sPID)
    If @error Then ExitLoop
    WEnd
    Return StringRegExpReplace($sOut, '(?s)Server:\h+(\S+).*?Address:\h+(\S+).*', '$2 ("$1")')
    EndFunc ;==>_CI_GetDNS

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

    Func _CI_PingCheck($sURL)
    Local $iRet, $aError[5] = ['', 'Computer ist offline', 'Computer ist nicht erreichbar', 'Falsche Adresse', 'Anderer Fehler']
    $iRet = Ping($sURL, 1000)
    If Not @error Then Return '~ ' & $iRet & ' ms'
    Return $aError[@error]
    EndFunc ;==>_CI_PingCheck

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

    Func _CI_GetNetworkAdapter($strComputer = '.')
    Local $aReturn[1][12] = [[ _
    'Hersteller:', 'Name:', 'Adapter-Typ:', 'Kennung:', _
    'MAC-Adresse:', 'IP-Adresse:', 'IP-Subnetzmaske:', 'Adresstyp:', _
    'DHCP-Server:', 'IP erhalten:', 'IP läuft ab:', 'Standardgateway:']]
    Local $x = 0, $objWMIService, $colItems, $colItems2
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter WHERE Netconnectionstatus > 0', 'WQL', 0x30)
    If Not IsObj($colItems) Then Return SetError(2, 0, 0)
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][12]
    $aReturn[$x][0] = $objItem.Manufacturer
    $aReturn[$x][1] = $objItem.Name
    $aReturn[$x][2] = $objItem.AdapterType
    $aReturn[$x][3] = $objItem.NetConnectionID
    $aReturn[$x][4] = $objItem.MACAddress
    $colItems2 = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration', 'WQL', 0x30)
    If IsObj($colItems2) Then
    For $objItem2 In $colItems2
    If $objItem.Caption = $objItem2.Caption Then
    If $objItem2.IPEnabled = -1 Then
    $aReturn[$x][5] = $objItem2.IPAddress(0)
    $aReturn[$x][6] = $objItem2.IPSubnet(0)
    If $objItem2.DHCPEnabled = -1 Then
    $aReturn[$x][7] = 'von DHCP zugewiesen'
    $aReturn[$x][8] = $objItem2.DHCPServer
    $aReturn[$x][9] = _WMIDateStringToDate($objItem2.DHCPLeaseObtained)
    $aReturn[$x][10] = _WMIDateStringToDate($objItem2.DHCPLeaseExpires)
    Else
    $aReturn[$x][7] = 'Manuell konfiguriert'
    EndIf
    $aReturn[$x][11] = $objItem2.DefaultIPGateway(0)
    EndIf
    EndIf
    Next
    EndIf
    Next
    Return $aReturn
    EndFunc ;==>_CI_GetNetworkAdapter

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

    Func _CI_GetCPU($strComputer = '.')
    Local $aReturn[2][12] = [[ _
    'Prozessor:', 'Name:', 'Beschreibung:', 'Sockel:', 'Taktfrequenz:', 'Ext. Taktfrequenz:', 'Spannung:', _
    'Adress-Bitbreite:', 'Daten-Bitbreite:', 'Prozessor-ID:', '', '']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_Processor', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][12]
    $aReturn[$x][0] = $objItem.DeviceID
    $aReturn[$x][1] = $objItem.Name
    $aReturn[$x][2] = $objItem.Description
    $aReturn[$x][3] = $objItem.SocketDesignation
    $aReturn[$x][4] = $objItem.CurrentClockSpeed & ' MHz (max. ' & $objItem.MaxClockSpeed & ' MHz)'
    $aReturn[$x][5] = $objItem.ExtClock & ' MHz'
    $aReturn[$x][6] = Round($objItem.CurrentVoltage / 10, 1) & ' V'
    $aReturn[$x][7] = $objItem.AddressWidth & ' Bit'
    $aReturn[$x][8] = $objItem.DataWidth & ' Bit'
    $aReturn[$x][9] = $objItem.ProcessorId
    Switch @OSVersion
    Case 'WIN_VISTA', 'WIN_7'
    $aReturn[0][10] = 'Prozessorkerne:'
    $aReturn[0][11] = 'logische Prozessoren:'
    $aReturn[$x][10] = $objItem.NumberOfCores
    $aReturn[$x][11] = $objItem.NumberOfLogicalProcessors
    EndSwitch
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetCPU

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

    Func _CI_GetRAM($strComputer = '.')
    Local $aMemType[22] = ['Unbekannt', 'Anderes', 'DRAM', 'Sync DRAM', 'Cache DRAM', _
    'EDO', 'EDRAM', 'VRAM', 'SRAM', 'RAM', 'ROM', _
    'Flash', 'EEPROM', 'FEPROM', 'EPROM', 'CDRAM', '3DRAM', _
    'SDRAM', 'SGRAM', 'RDRAM', 'DDR', 'DDR-2']
    Local $aFormFactor[24] = ['Unbekannt', 'Andere', 'SIP', 'DIP', 'ZIP', 'SOJ', _
    'Proprietär', 'SIMM', 'DIMM', 'TSOP', 'PGA', 'RIMM', _
    'SODIMM', 'SRIMM', 'SMD', 'SSMP', 'QFP', 'TQFP', _
    'SOIC', 'LCC', 'PLCC', 'BGA', 'FPBGA', 'LGA']
    Local $aErrCorr[8] = ['Reserviert', 'Andere', 'Unbekannt', 'Keine', 'Parity', 'Single-bit ECC', 'Multi-bit ECC', 'CRC']
    Local $aReturn[2][8] = [[ _
    'Belegung:', 'Kapazität:', 'Daten-Bitbreite:', 'Steckplatz:', _
    'Typ:', 'Format:', 'Fehlerkorrektur:', 'Bezeichnung:']]
    Local $x = 0, $objWMIService, $colItems, $iMemDev, $iMaxCap, $iErrCorr
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_PhysicalMemoryArray', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $iMemDev = $objItem.MemoryDevices
    $iMaxCap = _ByteAutoSize($objItem.MaxCapacity * 1024, 0, 3)
    $iErrCorr = Number($objItem.MemoryErrorCorrection)
    Next
    EndIf
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_PhysicalMemory', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][8]
    $aReturn[$x][0] = $objItem.BankLabel
    $aReturn[$x][1] = _ByteAutoSize($objItem.Capacity, 0, 3) & ' (max. ' & $iMaxCap & ')'
    $aReturn[$x][2] = $objItem.TotalWidth & ' Bit'
    $aReturn[$x][3] = $objItem.DeviceLocator & ' (max. ' & $iMemDev & ' Steckplätze)'
    $aReturn[$x][4] = $aMemType[Number($objItem.MemoryType)]
    $aReturn[$x][5] = $aFormFactor[Number($objItem.FormFactor)]
    $aReturn[$x][6] = $aErrCorr[$iErrCorr]
    $aReturn[$x][7] = $objItem.PartNumber
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetRAM

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

    Func _CI_GetVideoController($strComputer = '.')
    Local $aReturn[2][12] = [[ _
    'Hersteller:', 'Beschreibung:', 'RAMDAC:', 'Grafikkarten-RAM:', _
    'RAM-Typ:', 'Horiz. Auflösung:', 'Vertik. Auflösung:', 'Bits/Pixel:', _
    'Anzahl der Farben:', 'Bildwiederholfrequenz:', 'Treiberversion:', 'Treiberdatum:']]
    Local $aRAMType[14] = ['', 'Anderer', 'Unbekannt', 'VRAM', 'DRAM', 'SRAM', 'WRAM', 'EDO RAM', _
    'Burst Sync DRAM', 'Pipelined Burst SRAM', 'CDRAM', '3DRAM', 'SDRAM', 'SGRAM']
    Local $x = 0, $objWMIService, $colItems, $Output
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_VideoController', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][12]
    $aReturn[$x][0] = $objItem.AdapterCompatibility
    $aReturn[$x][1] = $objItem.Description
    $aReturn[$x][2] = $objItem.AdapterDACType
    $aReturn[$x][3] = _ByteAutoSize($objItem.AdapterRAM, 0, 3)
    $aReturn[$x][4] = $aRAMType[Number($objItem.VideoMemoryType)]
    $aReturn[$x][5] = $objItem.CurrentHorizontalResolution
    $aReturn[$x][6] = $objItem.CurrentVerticalResolution
    $aReturn[$x][7] = $objItem.CurrentBitsPerPixel
    $aReturn[$x][8] = _StringAddThousandsSep($objItem.CurrentNumberOfColors, '.', ',')
    $aReturn[$x][9] = $objItem.CurrentRefreshRate & ' Hz'
    $aReturn[$x][10] = $objItem.DriverVersion
    $aReturn[$x][11] = _WMIDateStringToDate($objItem.DriverDate)
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetVideoController

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

    Func _CI_GetMonitor($strComputer = '.')
    Local $aReturn[2][8] = [[ _
    'Hersteller:', 'Modell:', 'Breite (Pixel):', 'Höhe (Pixel):', _
    'Pixel pro Inch (X):', 'Pixel pro Inch (Y):', 'Monitorgröße (ca.):', 'PNPDeviceID:']]
    Local $x = 0, $objWMIService, $colItems, $Output
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DesktopMonitor', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][8]
    $aReturn[$x][0] = $objItem.MonitorManufacturer
    $aReturn[$x][1] = $objItem.Name
    $aReturn[$x][2] = $objItem.ScreenWidth
    $aReturn[$x][3] = $objItem.ScreenHeight
    $aReturn[$x][4] = $objItem.PixelsPerXLogicalInch
    $aReturn[$x][5] = $objItem.PixelsPerYLogicalInch
    $aReturn[$x][6] = Round($objItem.ScreenWidth / ($objItem.PixelsPerXLogicalInch / 2.54), 2) & _
    ' x ' & Round($objItem.ScreenHeight / ($objItem.PixelsPerYLogicalInch / 2.54), 2) & ' cm²'
    $aReturn[$x][7] = $objItem.PNPDeviceID
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetMonitor

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

    Func _CI_GetPrinter($strComputer = '.')
    Local $aReturn[2][5] = [['Name:', 'Treibername:', 'Anschluss:', 'Horiz. Auflösung:', 'Vertik. Auflösung:']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_Printer', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][5]
    $aReturn[$x][0] = $objItem.Name
    $aReturn[$x][1] = $objItem.DriverName
    $aReturn[$x][2] = $objItem.PortName
    $aReturn[$x][3] = $objItem.HorizontalResolution
    $aReturn[$x][4] = $objItem.VerticalResolution
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetPrinter

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

    Func _CI_GetSoundDevice($strComputer = '.')
    Local $aReturn[2][3] = [['Hersteller:', 'Name:', 'PNPDeviceID:']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_SoundDevice', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][3]
    $aReturn[$x][0] = $objItem.Manufacturer
    $aReturn[$x][1] = $objItem.Name
    $aReturn[$x][2] = $objItem.PNPDeviceID
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetSoundDevice

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

    Func _CI_GetMainBoard($strComputer = '.')
    Local $aReturn[2][12] = [[ _
    'Hersteller:', 'Produkt:', 'Version:', 'Seriennummer:', 'Ext. Anschlüsse:', _
    'Int. Anschlüsse:', '', 'BIOS-Hersteller:', 'Name:', 'Version:', 'Datum:', 'Seriennummer:']]
    Local $x = 1, $objWMIService, $colItems, $sExtConnector = '', $sIntConnector = '', $sTmp
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_PortConnector', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $sTmp = $objItem.ExternalReferenceDesignator
    If StringLen($sTmp) > 1 Then
    $sExtConnector &= $sTmp & ' ** '
    ContinueLoop
    EndIf
    $sTmp = $objItem.InternalReferenceDesignator
    If StringLen($sTmp) > 1 Then $sIntConnector &= $sTmp & ' ** '
    Next
    EndIf
    $sExtConnector = StringTrimRight($sExtConnector, 4)
    $sIntConnector = StringTrimRight($sIntConnector, 4)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_BaseBoard', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $aReturn[$x][0] = $objItem.Manufacturer
    $aReturn[$x][1] = $objItem.Product
    $aReturn[$x][2] = $objItem.Version
    $aReturn[$x][3] = $objItem.SerialNumber
    $aReturn[$x][4] = $sExtConnector
    $aReturn[$x][5] = $sIntConnector
    Next
    EndIf
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_BIOS', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $aReturn[$x][7] = $objItem.Manufacturer
    $aReturn[$x][8] = $objItem.Name
    $aReturn[$x][9] = $objItem.BIOSVersion(0)
    $aReturn[$x][10] = _WMIDateStringToDate($objItem.ReleaseDate)
    $aReturn[$x][11] = $objItem.SerialNumber
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetMainBoard

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

    Func _CI_GetSystemSlot($strComputer = '.')
    Local $aReturn[2][3] = [['Bezeichnung:', 'Steckplatz belegt:', 'max. Datenbreite:']]
    Local $aUsage[5] = ['Reserviert', 'Anderer', 'Unbekannt', 'Nein', 'Ja']
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_SystemSlot', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $x += 1
    ReDim $aReturn[$x + 1][3]
    $aReturn[$x][0] = $objItem.SlotDesignation
    $aReturn[$x][1] = $aUsage[$objItem.CurrentUsage]
    $aReturn[$x][2] = 2 ^ ($objItem.MaxDataWidth + 3) & ' Bits'
    Next
    EndIf
    Return $aReturn
    EndFunc ;==>_CI_GetSystemSlot

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

    Func _ByteAutoSize($iSize, $iRound = 2, $iFormat = 0, $bThousands = True)
    Local $aSize[4] = [' Byte', ' KByte', ' MByte', ' GByte'], $sReturn
    If $iFormat < 0 Or $iFormat > 4 Then $iFormat = 0
    If $iRound < 0 Or $iRound > 8 Then $iRound = 2
    If Not IsBool($bThousands) Then $bThousands = False
    $iSize = Abs($iSize)
    If $iFormat = 0 Then
    For $i = 30 To 0 Step -10
    If $iSize > (2 ^ $i) Then
    $iFormat = $i / 10 + 1
    ExitLoop
    EndIf
    Next
    EndIf
    If $iFormat = 0 Then $iFormat = 1
    $sReturn = StringFormat('%.' & $iRound & 'f', Round($iSize / (2 ^ (($iFormat - 1) * 10)), $iRound))
    If $bThousands Then $sReturn = _StringAddThousandsSep($sReturn, '.', ',')
    Return $sReturn & $aSize[$iFormat - 1]
    EndFunc ;==>_ByteAutoSize

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

    Func _WMIDateStringToDate($dtmDate)
    Return (StringLeft($dtmDate, 4) & '/' & StringMid($dtmDate, 5, 2) & '/' & StringMid($dtmDate, 7, 2) _
    & ' ' & StringMid($dtmDate, 9, 2) & ':' & StringMid($dtmDate, 11, 2) & ':' & StringMid($dtmDate, 13, 2))
    EndFunc ;==>_WMIDateStringToDate

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

    Func _DecodeProductKey($BinaryDPID)
    If IsBinary($BinaryDPID) Then $BinaryDPID = StringMid($BinaryDPID, 3) ; Changed because Beta 3.2.13.2
    Local $bKey[15]
    Local $sKey[29]
    Local $Digits[24]
    Local $Value = 0
    Local $hi = 0
    Local $n = 0
    Local $i = 0
    Local $dlen = 29
    Local $slen = 15
    Local $Result
    $Digits = StringSplit('BCDFGHJKMPQRTVWXY2346789', '')
    $BinaryDPID = StringMid($BinaryDPID, 105, 30)
    For $i = 1 To 29 Step 2
    $bKey[Int($i / 2)] = Dec(StringMid($BinaryDPID, $i, 2))
    Next
    For $i = $dlen - 1 To 0 Step -1
    If Mod(($i + 1), 6) = 0 Then
    $sKey[$i] = '-'
    Else
    $hi = 0
    For $n = $slen - 1 To 0 Step -1
    $Value = BitOR(BitShift($hi, -8), $bKey[$n])
    $bKey[$n] = Int($Value / 24)
    $hi = Mod($Value, 24)
    Next
    $sKey[$i] = $Digits[$hi + 1]
    EndIf
    Next
    For $i = 0 To 28
    $Result = $Result & $sKey[$i]
    Next
    Return $Result
    EndFunc ;==>_DecodeProductKey

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

    Func _StringAddThousandsSep($sString, $sThousands = -1, $sDecimal = -1)
    Local $sResult = "" ; Force string
    Local $rKey = "HKCU\Control Panel\International"
    If $sDecimal = -1 Then $sDecimal = RegRead($rKey, "sDecimal")
    If $sThousands = -1 Then $sThousands = RegRead($rKey, "sThousand")
    Local $aNumber = StringRegExp($sString, "(\D?\d+)\D?(\d*)", 1) ; This one works for negatives.
    If UBound($aNumber) = 2 Then
    Local $sLeft = $aNumber[0]
    While StringLen($sLeft)
    $sResult = $sThousands & StringRight($sLeft, 3) & $sResult
    $sLeft = StringTrimRight($sLeft, 3)
    WEnd
    $sResult = StringTrimLeft($sResult, StringLen($sThousands)) ; Strip leading thousands separator
    If $aNumber[1] <> "" Then $sResult &= $sDecimal & $aNumber[1]
    EndIf
    Return $sResult
    EndFunc ;==>_StringAddThousandsSep

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

    Func _ArrayUmdrehen(ByRef $avArray)
    ;SEuBo
    If UBound($avArray, 0) > 2 Then Return
    $1st = UBound($avArray, 1)
    $2nd = UBound($avArray, 2)
    Local $aRet[$2nd][$1st]
    For $s1 = 0 To $1st - 1
    For $s2 = 0 To $2nd - 1
    $aRet[$s2][$s1] = $avArray[$s1][$s2]
    Next
    Next
    $avArray = $aRet
    EndFunc ;==>_ArrayUmdrehen

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

    Func WinRunTrans($Window, $Mod)
    Local $Pos = WinGetPos($Window)
    Switch $Mod
    Case "Show"
    WinSetTrans($Window, "", 0)
    WinMove($Window, "", $Pos[0], $Pos[1], ($Pos[2] / 255), ($Pos[3] / 255), 1)
    GUISetState(@SW_SHOW, $Window)
    For $i = 0 To 255 Step 5
    WinSetTrans($Window, "", $i)
    WinMove($Window, "", $Pos[0], $Pos[1], Round($i * ($Pos[2] / 255)), Round($i * ($Pos[3] / 255)), 1)
    Sleep(10)
    Next
    Case "Hide"
    For $i = 255 To 0 Step -5
    WinSetTrans($Window, "", $i)
    WinMove($Window, "", $Pos[0], $Pos[1], Round($i * ($Pos[2] / 255)), Round($i * ($Pos[3] / 255)), 1)
    Sleep(10)
    Next
    GUISetState(@SW_HIDE, $Window)
    EndSwitch
    WinMove($Window, "", $Pos[0], $Pos[1], $Pos[2], $Pos[3])
    EndFunc ;==>WinRunTrans

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

    Func _ProcessSuspend($Process)
    $processid = ProcessExists($Process)
    If $processid Then
    $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
    $i_sucess = DllCall("ntdll.dll", "int", "NtSuspendProcess", "int", $ai_Handle[0])
    DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
    If IsArray($i_sucess) Then
    Return 1
    Else
    SetError(1)
    Return 0
    EndIf
    Else
    SetError(2)
    Return 0
    EndIf
    EndFunc ;==>_ProcessSuspend

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

    Func _ProcessResume($Process)
    $processid = ProcessExists($Process)
    If $processid Then
    $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
    $i_sucess = DllCall("ntdll.dll", "int", "NtResumeProcess", "int", $ai_Handle[0])
    DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
    If IsArray($i_sucess) Then
    Return 1
    Else
    SetError(1)
    Return 0
    EndIf
    Else
    SetError(2)
    Return 0
    EndIf
    EndFunc ;==>_ProcessResume
    #endregion Func's

    [/autoit]
  • _ispressed zu lange erkannt?

    • Sen
    • 25. November 2010 um 20:22

    Würdest du genau lesen, würdest du gesehen haben das ich längst
    geschrieben hab warum deins nicht geht. Achte mal aufs rote. :rolleyes:

  • _ispressed zu lange erkannt?

    • Sen
    • 25. November 2010 um 20:13

    Stimmt. Aber was ist sinnvoller, eine Func aufzurufen für alle Keys oder bei 10 verschiedenen Kombis
    bis zu 30x _isPressed zu machen? :P

  • _GetHexPressed()

    • Sen
    • 25. November 2010 um 20:02

    Da ich öfter das Problem hatte Shift+Mausklicks & co gleichzeitig abzufragen
    hab ich die letzten tage eine kleine Func geschrieben die eigentlich mehr als gut funktioniert.
    Erweitern werde ich das ganze wohl auch noch, vlt sogar mit einem anderen Return ("{LMOUSE}" statt "01" etc)

    Die Func sollte sich eigentlich selbst erklären, bei Fragen einfach posten :P

    Zum testen der Geschwindigkeit (ist vielen wichtig):

    Spoiler anzeigen
    [autoit]

    ; #=================================================================================================#
    ; Name...........: _GetHexPressed() - Speed Example
    ; #=================================================================================================#
    #include <Timers.au3>
    $Timer = _Timer_Init()
    $Keys = _GetHexPressed(0)
    ConsoleWrite("_GetHexPressed() - String Output - Timer: " & _Timer_Diff($Timer) & @CRLF)
    $Timer = _Timer_Init()
    $Keys = _GetHexPressed(1)
    ConsoleWrite("_GetHexPressed() - Array Output - Timer: " & _Timer_Diff($Timer) & @CRLF)

    [/autoit]

    Eine Beispiel Schleife zum Verständniss:

    Spoiler anzeigen
    [autoit]

    ; #=================================================================================================#
    ; Name...........: _GetHexPressed() - Loop Example
    ; #=================================================================================================#
    While 1
    Switch _GetHexPressed(0)
    Case "11-12-2E-A2-A4" ;Strg/Alt/Entf
    ConsoleWrite("Tastmanager - Strg+Alt+Entf - 11-12-2E-A2-A4" & @CRLF)
    Case "10-41-42-A0" ;Shift+A+B
    ConsoleWrite("Shift+A+B - 10-41-42-A0" & @CRLF)
    Case "01-43" ; LeftMouse+C
    ConsoleWrite("LeftMouse+C - 01-43" & @CRLF)
    Case "01-10-11-A0-A2" ;Strg+Shift+LeftMouse
    ConsoleWrite("Strg+Shift+LeftMouse - 01-10-11-A0-A2" & @CRLF)
    EndSwitch
    Sleep(50)
    WEnd

    [/autoit]

    Und die Func an sich:

    Spoiler anzeigen
    [autoit]

    ; #=================================================================================================#
    ; Name...........: _GetHexPressed()
    ; Author ........: Sen // Christopher Klay
    ; Description ...: Returns a String / Array with the Hex Keys pressed
    ; Syntax.........: _GetHexPressed($Mode)
    ; Parameters ....: $Mode - 0 = String, 1 = Array (0 = Count)
    ; Return values .: $Mode = 0 -> String, based on "Value-Value-Value"
    ; $Mode = 1 -> Array, based on 0 = Size / 1+ = Hexkeys
    ; No Keys = 0
    ; #=================================================================================================#
    Func _GetHexPressed($Mode = 0)
    Dim $Keys[16] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F"]
    Local $aCom[(UBound($Keys) ^ 2)]
    Local $i, $j, $k
    For $i = 0 To UBound($Keys) - 1
    For $j = 0 To UBound($Keys) - 1
    $aCom[$k] = $Keys[$i] & $Keys[$j]
    $k += 1
    Next
    Next
    Local $Return = ""
    Local $ReturnC = 0
    Local $user32 = DllOpen("user32.dll")
    For $i = 0 To UBound($aCom) - 1
    Local $a_R = DllCall($user32, "short", "GetAsyncKeyState", "int", '0x' & $aCom[$i])
    If @error Then Return SetError(@error, @extended, False)
    If BitAND($a_R[0], 0x8000) <> 0 Then
    $Return &= $aCom[$i] & "-"
    EndIf
    Next
    If $Return = 0 Then
    Return 0
    EndIf
    $Return = StringTrimRight($Return, 1)
    DllClose($user32)
    Switch $Mode
    Case 0
    Return $Return
    Case 1
    $Return = StringSplit($Return, "-", 1)
    Return $Return
    EndSwitch
    EndFunc ;==>_GetHexPressed

    [/autoit]
  • _ispressed zu lange erkannt?

    • Sen
    • 25. November 2010 um 19:55

    Kleiner Tipp:
    _IsPressed("Value")

    Falls du das ganze auf viele Keys ausweiten willst, bzw Kombinationen haben willst
    aus Mausklicks, und co ohne zich _IsPressed() oder HotKeySets (Werbung :P):

    Spoiler anzeigen
    [autoit]


    #include <Timers.au3> ;Testing only

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

    ; #=================================================================================================#
    ; Name...........: _GetHexPressed() - Speed Example
    ; #=================================================================================================#
    $Timer = _Timer_Init()
    $Keys = _GetHexPressed(0)
    ConsoleWrite("_GetHexPressed() - String Output - Timer: " & _Timer_Diff($Timer) & @CRLF)
    $Timer = _Timer_Init()
    $Keys = _GetHexPressed(1)
    ConsoleWrite("_GetHexPressed() - Array Output - Timer: " & _Timer_Diff($Timer) & @CRLF)

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

    ; #=================================================================================================#
    ; Name...........: _GetHexPressed() - Loop Example
    ; #=================================================================================================#
    While 1
    Switch _GetHexPressed(0)
    Case "11-12-2E-A2-A4" ;Strg/Alt/Entf
    ConsoleWrite("Tastmanager - Strg+Alt+Entf - 11-12-2E-A2-A4" & @CRLF)
    Case "10-41-42-A0" ;Shift+A+B
    ConsoleWrite("Shift+A+B - 10-41-42-A0" & @CRLF)
    Case "01-43" ; LeftMouse+C
    ConsoleWrite("LeftMouse+C - 01-43" & @CRLF)
    Case "01-10-11-A0-A2" ;Strg+Shift+LeftMouse
    ConsoleWrite("Strg+Shift+LeftMouse - 01-10-11-A0-A2" & @CRLF)
    EndSwitch
    Sleep(50)
    WEnd

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

    ; #=================================================================================================#
    ; Name...........: _GetHexPressed()
    ; Author ........: Sen // Christopher Klay
    ; Description ...: Returns a String / Array with the Hex Keys pressed
    ; Syntax.........: _GetHexPressed($Mode)
    ; Parameters ....: $Mode - 0 = String, 1 = Array (0 = Count)
    ; Return values .: $Mode = 0 -> String, based on "Value-Value-Value"
    ; $Mode = 1 -> Array, based on 0 = Size / 1+ = Hexkeys
    ; No Keys = 0
    ; #=================================================================================================#
    Func _GetHexPressed($Mode = 0)
    Dim $Keys[16] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F"]
    Local $aCom[(UBound($Keys) ^ 2)]
    Local $i, $j, $k
    For $i = 0 To UBound($Keys) - 1
    For $j = 0 To UBound($Keys) - 1
    $aCom[$k] = $Keys[$i] & $Keys[$j]
    $k += 1
    Next
    Next
    Local $Return = ""
    Local $ReturnC = 0
    Local $user32 = DllOpen("user32.dll")
    For $i = 0 To UBound($aCom) - 1
    Local $a_R = DllCall($user32, "short", "GetAsyncKeyState", "int", '0x' & $aCom[$i])
    If @error Then Return SetError(@error, @extended, False)
    If BitAND($a_R[0], 0x8000) <> 0 Then
    $Return &= $aCom[$i] & "-"
    EndIf
    Next
    If $Return = 0 Then
    Return 0
    EndIf
    $Return = StringTrimRight($Return, 1)
    DllClose($user32)
    Switch $Mode
    Case 0
    Return $Return
    Case 1
    $Return = StringSplit($Return, "-", 1)
    Return $Return
    EndSwitch
    EndFunc ;==>_GetHexPressed

    [/autoit]
  • ICQ machen...

    • Sen
    • 24. November 2010 um 15:59

    MySQL wird später nützlich wenn du wirklich ein "ICQ ähnliches" Tool
    entwickeln willst, für die Benutzerkonten, Login etc.

    Für 2 Personen reicht auch Tcp.

  • Gitternetzlinien

    • Sen
    • 23. November 2010 um 16:38

    Du denkst du programmierst was "unentdecktes",
    kopierst aber 1-zu-1 die Idee des vorhandenen Spiels?
    :rofl:

  • Gitternetzlinien

    • Sen
    • 23. November 2010 um 16:08

    GDI+ oder selbsterstellte Bilder als Buttons ;)

  • Samsung Galaxy Tab NEU OVP

    • Sen
    • 22. November 2010 um 20:51


    [Blockierte Grafik: http://www.blogspan.net/wp-content/uploads/samsung_galaxy_tab.jpg]
    Originalpreis: ~600€
    Preis hier: 520 (Versand inkl.)

    Kontakt & Fragen:
    ICQ - 348242649 (TA2) oder hier im Thread

    Verkäufer bin nicht ich, sondern mein Cousin oben.

  • _IsPressed() - KeyListe Frage

    • Sen
    • 16. November 2010 um 10:24

    Fragt _IsPressed() nicht einfach nur 01-99 und AA-ZZ ab? (Grob)
    Das könnte man leicht in einer Schleife einbauen um alle Tasten abzufragen.
    Also eine "Welche taste wurde gedrückt" Funktion.
    Ich setz mich später mal dran.

    Und nein, nicht für Keylogger :P

  • Hotkeys immer aktiv

    • Sen
    • 15. November 2010 um 09:31
    [autoit]

    HotKeySet()

    [/autoit]
  • Bild hover unsichtbar

    • Sen
    • 10. November 2010 um 16:15

    Auch wenn ich mich frag wie man auf so etwas überhaupt erst kommt,
    guck dir bitte mal

    [autoit]

    GUICtrlSetState()

    [/autoit]

    an ;)

  • Beep-Ton ausschalten unter Windows7

    • Sen
    • 9. November 2010 um 15:27

    Nur die, die du stumm haben willst.
    Kannst halt alle im Mediaplayer öffnen, gucken welche dich z.b. nerven
    und diese mit einer Kopie von oben austauschen.

  • Maus über Ziffernblock steuern !!

    • Sen
    • 9. November 2010 um 15:12

    Vlt als Hilfe, hab ich vor längere zeit mal geschrieben.

    KeyMouse
    [autoit]

    ;---------------------------------------------------------------------------—
    ; KeyMouse
    ; By Sen // Christopher Klay
    ;---------------------------------------------------------------------------—
    ; Version - 1.0 Beta
    ;---------------------------------------------------------------------------—
    #include <Misc.au3>

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

    $Move_Speed = "0"
    $Move_Sensivity = "2.5"
    $Mouse_Speed = "0"
    $Mouse_Scrolls = "1"
    $ClickSleep = "0.7" * 1000

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

    $KeyMouse = True

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

    HotKeySet("{LEFT}", "Dummy")
    HotKeySet("{RIGHT}", "Dummy")
    HotKeySet("{DOWN}", "Dummy")
    HotKeySet("{UP}", "Dummy")

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

    HotKeySet("^m", "TriggerKeyMouse")

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

    HotKeySet("{PGUP}", "Dummy")
    HotKeySet("{PGDN}", "Dummy")

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

    While 1
    If $KeyMouse = True Then
    $MousePos = MouseGetPos()
    If _IsPressed("12") And _IsPressed("26") And _IsPressed("28") Then ;MiddleMouse
    MouseClick("Middle", $MousePos[0], $MousePos[1], 1, $Mouse_Speed)
    Sleep($ClickSleep)
    ElseIf _IsPressed("12") And _IsPressed("21") Then ;SpeedUp
    If $Move_Sensivity >= "10" Then
    $Move_Sensivity = "10"
    Else
    $Move_Sensivity = $Move_Sensivity + "0.5"
    Sleep(500)
    EndIf
    ElseIf _IsPressed("12") And _IsPressed("22") Then ;SpeedDown
    If $Move_Sensivity <= "1" Then
    $Move_Sensivity = "1"
    Else
    $Move_Sensivity = $Move_Sensivity - "0.5"
    Sleep(500)
    EndIf
    ElseIf _IsPressed("12") And _IsPressed("25") Then ;LeftMouse
    MouseClick("Left", $MousePos[0], $MousePos[1], 1, $Mouse_Speed)
    Sleep($ClickSleep)
    ElseIf _IsPressed("12") And _IsPressed("27") Then ;RightMouse
    MouseClick("Right", $MousePos[0], $MousePos[1], 1, $Mouse_Speed)
    Sleep($ClickSleep)
    ElseIf _IsPressed("12") And _IsPressed("26") Then ;WheelUp
    MouseWheel("Up", $Mouse_Scrolls)
    ElseIf _IsPressed("12") And _IsPressed("28") Then ;WheelUp
    MouseWheel("Down", $Mouse_Scrolls)
    ElseIf _IsPressed("25") And _IsPressed("26") Then ;LeftUp
    MouseMove($MousePos[0] - $Move_Sensivity, $MousePos[1] - $Move_Sensivity, $Move_Speed)
    ElseIf _IsPressed("27") And _IsPressed("26") Then ;RightUp
    MouseMove($MousePos[0] + $Move_Sensivity, $MousePos[1] - $Move_Sensivity, $Move_Speed)
    ElseIf _IsPressed("25") And _IsPressed("28") Then ;LeftDown
    MouseMove($MousePos[0] - $Move_Sensivity, $MousePos[1] + $Move_Sensivity, $Move_Speed)
    ElseIf _IsPressed("27") And _IsPressed("28") Then ;RightDown
    MouseMove($MousePos[0] + $Move_Sensivity, $MousePos[1] + $Move_Sensivity, $Move_Speed)
    ElseIf _IsPressed("25") Then ;Left
    MouseMove($MousePos[0] - $Move_Sensivity, $MousePos[1], $Move_Speed)
    ElseIf _IsPressed("26") Then ;Up
    MouseMove($MousePos[0], $MousePos[1] - $Move_Sensivity, $Move_Speed)
    ElseIf _IsPressed("27") Then ;Right
    MouseMove($MousePos[0] + $Move_Sensivity, $MousePos[1], $Move_Speed)
    ElseIf _IsPressed("28") Then ;Down
    MouseMove($MousePos[0], $MousePos[1] + $Move_Sensivity, $Move_Speed)
    EndIf
    EndIf

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

    Sleep(10)
    WEnd

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

    Func TriggerKeyMouse()
    If $KeyMouse = True Then
    HotKeySet("{LEFT}")
    HotKeySet("{RIGHT}")
    HotKeySet("{DOWN}")
    HotKeySet("{UP}")
    HotKeySet("^m", "TriggerKeyMouse")
    HotKeySet("{PGUP}", "Dummy")
    HotKeySet("{PGDN}", "Dummy")
    $KeyMouse = False
    Else
    HotKeySet("{LEFT}", "Dummy")
    HotKeySet("{RIGHT}", "Dummy")
    HotKeySet("{DOWN}", "Dummy")
    HotKeySet("{UP}", "Dummy")
    HotKeySet("^m", "TriggerKeyMouse")
    HotKeySet("{PGUP}", "Dummy")
    HotKeySet("{PGDN}", "Dummy")
    $KeyMouse = True
    EndIf
    EndFunc ;==>TriggerKeyMouse

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

    Func Dummy()
    EndFunc ;==>Dummy

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