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

  • Tastatur/Maus sperren bzw. verhindern, dass irgendetwas gemacht wird, bis der richtige PIN eingegeben wird

    • Sen
    • 31. Januar 2010 um 21:00

    Such mal hier im Forum nach DeskLock.
    Das ganze gibt es schon, aber vlt kannste dir ja was abgucken.

  • Spin.de Client

    • Sen
    • 23. Januar 2010 um 21:13

    Das ganze ist denke ich schwerer als ich dachte..
    gerade mal aus Pluto kopiert:

    Zitat


    Retrieving session ID from https://autoit.de/www.spin.de
    Connecting to www.spin.de:3003
    Session ID is 5sGsmE-7Y_jzp0pFFvNHzgEPuIgiMI3xGIn7bJycNjgg4157622
    Retrieving channel list
    Retrieving friends list
    Checking for new messages
    Checking for client update
    Connection established
    Sending client ID
    Logging in as Sen.Sidethink
    Case mode 3
    Client authentication required, initiating challenge procedure
    No mail (164 read)
    Challenge received, sending answer
    Login ok @ 14:30:45
    Server rights 0
    21445 users on server

    Alles anzeigen

    Und Spin scheint auch nicht auf IRC oder co zu basieren,
    eigenes System eventuell?

  • Spin.de Client

    • Sen
    • 23. Januar 2010 um 03:24

    Ich arbeite immo an einem kleinen Clienten für die Seite "Spin.de"
    das Problem:

    Ich habe nicht den Ansatz einer Idee wie man Empfangen/Senden coden soll
    (Nicht von den Befehlen her sondern wie kommt man an den Chat?)

    Vorweg:
    Spin.de verbietet zwar Fremdclienten allerdings nur solange
    durch sie die Vorteile die man nur mit VIP bekommt "ausgehobelt" werden.
    Solange Dinge wie "Kein VIP = Max 1 Raum offen" etc drin bleiben
    wird das ganze genemigt.

    Vergleichtools:
    Pluto - http://pluto.brain-killer.org/

    Eigentlich will ich Pluto lediglich "nachcoden" und einige Funktionen
    einbauen wie "!befehle" etc.

  • Drag and drop fehler

    • Sen
    • 21. Januar 2010 um 20:55

    Ich habe das ganze auch nur richtig "gestellt".

  • Drag and drop fehler

    • Sen
    • 21. Januar 2010 um 20:41

    Und dann das ganze nochmal richtig:

    Spoiler anzeigen
    [autoit]


    ;===================================================================================================
    ; INRadio-Localtuner by JuraX
    ;===================================================================================================

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

    #NoTrayIcon
    #include <Bass.au3>
    #include <BassConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <sound.au3>
    #include <WindowsConstants.au3>

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

    #Region StartUp
    Local $progress_slider, $slots, $Form1
    Global $gaDropFiles[1]
    Global Const $WM_DROPFILES = 0x0233
    Global $playing_state = -1

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

    ;First Start
    $firststart = IniRead("INRadio.ini", "Start", "firststart", "")
    If $firststart = "" Then
    MsgBox(0, "Warnung!", "Bitte über den Radiotuner Starten!")
    Exit
    ElseIf ProcessExists("Radiotuner.exe") Then
    Else
    MsgBox(0, "Warnung!", "Bitte über den Radiotuner Starten!")
    Exit
    EndIf

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

    ;Bass StartUp
    _BASS_STARTUP("BASS.dll")
    _BASS_Init(0, -1, 44100, 0, "")
    If @error Then
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf

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

    ;File Open
    $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    If @error Then
    MsgBox(0, "Error", "Konnte Audiodatei nicht laden!" & @CR & "Error = " & @error)
    Exit
    EndIf

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

    ;Sonstiges
    AdlibRegister("Aktualisieren", 100)
    #EndRegion StartUp

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

    #Region GUI
    $Form1 = GUICreate("INRadio-Localtuner", 380, 650, 193, 115)
    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    $Play = GUICtrlCreateButton("Play", 216, 160, 75, 25, 0)
    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    $newfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    $progress_slider = GUICtrlCreateProgress(8, 32, 366, 20)
    $slots = GUICtrlCreateLabel(GUICtrlRead($progress_slider) & "%", 8, 8, 150, 17)
    ;GUICtrlCreateLabel("Fortschritt", 8, 8, 150, 17)

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

    GUICtrlCreateLabel("Lautstärke", 8, 190, 80, 20)
    $Volume_slider1 = GUICtrlCreateSlider(8, 210, 366, 80)
    GUICtrlSetData($Volume_slider1, 50)
    GUICtrlSetLimit(-1, 100, 0)
    $Volume_slider2 = GUICtrlCreateSlider(8, 292, 366, 80)
    GUICtrlSetData($Volume_slider2, 50)
    GUICtrlSetLimit(-1, 100, 0)

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

    $hListView = GUICtrlCreateListView('Dateiname', 10, 375, 350, 200)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
    WinSetOnTop($Form1, '', 1)

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

    $rightVol = GUICtrlCreateProgress(8, 88, 366, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVol = GUICtrlCreateProgress(8, 136, 366, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Left Channel Volume Level", 8, 64, 150, 17)

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

    GUISetState(@SW_SHOW)
    #EndRegion GUI

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

    #Region Loop
    While 1
    $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE)
    $percent = Round(($current / $song_length) * 100, 0)
    GUICtrlSetData($progress_slider, $percent)

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

    $levels = _BASS_ChannelGetLevel($MusicHandle)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)
    GUICtrlSetData($rightVol, $rightChLvlper)
    GUICtrlSetData($LeftVol, $leftChLvlper)

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

    If $progress_slider = 100 Then
    $play_pause
    EndIf

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Close
    ProcessClose("Radiotuner.exe")
    AdlibUnRegister("Aktualisieren")
    Exit
    Case $Play
    Switch $playing_state
    Case -1
    _BASS_ChannelPlay($MusicHandle, 1)
    $playing_state = 1
    EndSwitch
    Case $newfile
    _BASS_ChannelStop($MusicHandle)
    $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelStop($MusicHandle)
    Case $Volume_slider1
    _BASS_ChannelSetVolume($MusicHandle, GUICtrlRead($Volume_slider1) / 100)
    Case $Volume_slider2
    SoundSetWaveVolume(GUICtrlRead($Volume_slider2))
    Case $GUI_EVENT_DROPPED
    For $i = 0 To UBound($gaDropFiles) - 1
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1'), $hListView)
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    Next
    Case $Stop
    _BASS_ChannelStop($MusicHandle)
    $playing_state = -1
    EndSwitch
    WEnd
    #EndRegion Loop

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

    #Region Func's
    Func OnAutoItExit()
    _BASS_Free()
    EndFunc ;==>OnAutoItExit

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

    Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam) ; diese Funktion wird benötigt, damit man auch mehrere Dateien droppen kann
    Local $nSize, $pFileName
    Local $nAmt = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', 0xFFFFFFFF, 'ptr', 0, 'int', 255)
    For $i = 0 To $nAmt[0] - 1
    $nSize = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', 0, 'int', 0)
    $nSize = $nSize[0] + 1
    $pFileName = DllStructCreate('wchar[' & $nSize & ']')
    DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', DllStructGetPtr($pFileName), 'int', $nSize)
    ReDim $gaDropFiles[$i + 1]
    $gaDropFiles[$i] = DllStructGetData($pFileName, 1)
    $pFileName = 0
    Next
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func Aktualisieren()
    $Sliderstatus = GUICtrlRead($progress_slider)
    GUICtrlSetData($slots, $Sliderstatus)
    EndFunc ;==>Aktualisieren

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

    Func _BASS_ChannelSetVolume($hChannel, $nVol)
    Local $ret = _BASS_ChannelSetAttribute($hChannel, $BASS_ATTRIB_VOL, $nVol)
    Return SetError(@error, @extended, $ret)
    EndFunc ;==>_BASS_ChannelSetVolume

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

    Func _BASS_ChannelGetVolume($hChannel)
    Local $ret = _BASS_ChannelGetAttribute($hChannel, $BASS_ATTRIB_VOL)
    Return SetError(@error, @extended, $ret)
    EndFunc ;==>_BASS_ChannelGetVolume
    #EndRegion Func's

    [/autoit]
  • Oscar hat Geburtstag.

    • Sen
    • 18. Januar 2010 um 16:08

    Alles gute Oscar & lass es krachen :)

  • Dateien via Intra-/Internet verschicken - Samsung s8000 Jet

    • Sen
    • 13. Januar 2010 um 15:47
    Zitat

    Doch war dabei, aber ich möchte die Daten ja Dratlos versenden, und nicht per Bluetooth

    Kopf -> Tisch...
    Bluetooth = dratlos

    :rofl:

  • RAR Verstecker

    • Sen
    • 12. Januar 2010 um 19:20

    Gibt es sowas wie @SW_HIDE nicht auch für Datein?
    Wäre zumindest praktisch.

    Achja & wo ich das Ava Bild grad sehe..
    [Blockierte Grafik: http://z56.img-up.net/Ava82c05.png]
    Version ohne "tote Pixel" ;)

  • Welches Control befindet sich auf x-position,y-position?

    • Sen
    • 10. Januar 2010 um 16:30
    Zitat

    Ja, denn es werden immer die Threads als "Neuster Thread" angezeigt, bei denen ein neuer Beitrag hinzugefügt wurde.

    Der Grund warum das ganze keinen Sinn ergibt ist,
    das mir der Thread hier als "neu" angezeigt wurde bevor ich
    hier geschrieben habe.

  • Problem mit Window Position

    • Sen
    • 10. Januar 2010 um 15:45

    Danke Prog@ndy,
    genau nach der Idee hab ich gesucht :rofl:

  • Welches Control befindet sich auf x-position,y-position?

    • Sen
    • 10. Januar 2010 um 14:44

    Wundert mich grad.
    Der Thread wurde eben bei mir als "neuster Thread" angezeigt o_O

  • Problem mit Window Position

    • Sen
    • 10. Januar 2010 um 14:43
    Zitat

    genauso hatte ich es gemacht wie ich dir das beispiel geschickt hab sen

    Das Beispiel konnte ich leider nicht speichern da mein Browser
    eine ganze Zeit nicht ging und Verlauf etc gelöscht wurden..

    hast du es zufällig noch da?

  • Welches Control befindet sich auf x-position,y-position?

    • Sen
    • 10. Januar 2010 um 14:41

    Hilft hier evtl

    [autoit]

    _WinAPI_WindowFromPoint

    [/autoit]


    weiter?

  • Problem mit Window Position

    • Sen
    • 10. Januar 2010 um 13:42

    Ich arbeite im Moment an einer kleinen UDF.
    Bzw einem kleine Effekt.

    Einziges Problem:
    Das Fenster wird immo nicht wiederhergestellt.

    Grund:
    Die WinPos stimmt natürlich nicht. Ich müsste sie irgendwie bei Hide sichern
    und bei Show wiederherstellen. Problem: WIe schaffe ich das innerhalb der UDF?

    Jemand eine Idee?

    UDF WinRunTransEx
    [autoit]


    Func WinRunTransEx($Window, $Mod)
    $Pos = WinGetPos($Window)
    Switch $Mod
    Case "Show"
    WinSetTrans($Window, "", 0)
    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
    EndFunc ;==>WinRunTransEx

    [/autoit]
  • Bild auf Mausposition setzen

    • Sen
    • 1. Januar 2010 um 01:01

    Helfen wird dir, bei deiner Art zu schreiben keiner.
    1. "Fail", "EpicFail" & co sind keine Wörter ohne Sinn wie du sie verwendest.
    2. Auch in einem Forum stellt man sich nicht hin und sagt "Macht mal"
    3. Ohne eigene Ideen wird dir hier keine sagen was du tun musst

    Kurz & knapp:
    Versuch selbst das ganze umzusetzen & wir helfen dir gerne
    dabei. Wenn du es aber nicht mal versuchst dann haste Pech.
    "Fail" & so ;)

  • AskSystem 1.7.3 - Optimierung nötig! :P

    • Sen
    • 25. Dezember 2009 um 21:24

    Neue Version: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    ● TrayTips hinzugefügt.
    ● "All-Log" Funktion hinzugefügt (Context aufm Tab Reister)

    Das "größenanpassen" Problem regle ich morgen.
    Sonst noch jemand Ideen?

    Dateien

    AskSystem 1.7.3.au3 46,48 kB – 396 Downloads
  • AskSystem 1.7.3 - Optimierung nötig! :P

    • Sen
    • 25. Dezember 2009 um 19:29

    Werde ich alles 3 bis morgen umsetzen.
    Danke für die Ideen :D

    Kurze Frage noch:
    Lieber MsgBox, TrayTip oder Statusbar was das laden angeht?

  • AskSystem 1.7.3 - Optimierung nötig! :P

    • Sen
    • 25. Dezember 2009 um 18:57

    Hängt am ersten Post als Download.
    Sollte ich mir glaub ich angewöhnen bei 1000+ Zeilen :rofl:

    Danke für den Tipp SEuBo :D

  • AskSystem 1.7.3 - Optimierung nötig! :P

    • Sen
    • 25. Dezember 2009 um 18:42

    So, ich hab dank SEuBos Hilfe jetzt die SysInfo Func's von Oscar mit drin.
    Allerdings ist der Code etwas.. "groß" & leicht unübersichtlich geworden.

    Ideen für Verkürzungen, schnellere Funktionen & co?
    Nur her damit :D

    Achtung, Code ist "lang" :P

    Spoiler anzeigen
    [autoit]


    ;==============================================================
    ; AskSystem
    ;==============================================================
    ; Author: Sen
    ; Version: 1.7.2 Beta
    ;==============================================================
    ; 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>

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

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

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

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

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

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

    ;ProgessBar
    $ProgressP = GUICtrlCreateProgress(0, 250, 600, 15)
    $ProgressD = GUICtrlCreateProgress(0, 385, 600, 15)

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

    ;ProzessListe - Process
    $List[0] = GUICtrlCreateListView("Process|PID|Path|Title|Hwnd|Read|Write|Transfer|I/O", 0, 25, 600, 225)
    _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, 120)
    _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)
    $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
    FillProcess()
    FillDrives()
    FillTabs()
    #EndRegion StartUp

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

    #Region Case's
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Con_Refresh
    For $i = "3" To "15"
    _GUICtrlListView_DeleteAllItems($List[$i])
    Next
    FillTabs()
    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()
    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:|1.7.2 Beta", $List[16])
    GUICtrlCreateListViewItem("Date:|25.12.2009", $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.7.2 -", $List[16])
    GUICtrlCreateListViewItem("|- System Info's added", $List[16])
    GUICtrlCreateListViewItem("|- Info-Site added", $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 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 FillDrives()
    _GUICtrlListView_BeginUpdate($List[1])
    _GUICtrlListView_DeleteAllItems($List[1])
    $Drives = DriveGetDrive("ALL")
    For $i = "1" To $Drives[0]
    GUICtrlSetData($ProgressD, (100 * $i) / $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]
    GUICtrlSetData($ProgressP, (100 * $i) / $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)
    If $Mod = "Show" Then
    WinSetTrans($Window, "", 0)
    GUISetState(@SW_SHOW, $Window)
    For $i = 0 To 255 Step 5
    WinSetTrans($Window, "", $i)
    Sleep(10)
    Next
    ElseIf $Mod = "Hide" Then
    For $i = 255 To 0 Step -5
    WinSetTrans($Window, "", $i)
    Sleep(10)
    Next
    GUISetState(@SW_HIDE, $Window)
    EndIf
    EndFunc ;==>WinRunTrans
    #EndRegion Func's

    [/autoit]

    Edit:
    Download da der Source zu lang ist: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dateien

    AskSystem 1.7.2.au3 45,49 kB – 357 Downloads
  • Computer-Info

    • Sen
    • 24. Dezember 2009 um 17:47

    Oscar?
    Wäre es okay wenn ich die Infos mit in AskSystem einbaue?
    Wäre eine geniale Ergänzung & wird auch hier kostenlos
    veröffentlicht :D

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™