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.
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.
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.
Das Topic sollte hier richtig sein, da ichs gern mit AutoIt umsetzen würde.
Folgendes würde ich gern erreichen:
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.
Wie 90% meiner Einträge entweder sexuell, oder nerd-like sind. x'D
$IP = InputBox("Titel", "Nachricht")
If @error Or $IP = "" Then ;Falls keine IP angegeben wurde
Exit
Else
MsgBox(0, "Ping", "Dein Ping: " & Ping($IP))
EndIf
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.
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 (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
Vlt ganz gut falls du dir was abgucken willst.
Sind noch ein paar praktische/mächtige Funktionen drin:
;==============================================================
; 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>
Dim $Tab[17]
Dim $List[17]
Local $Load
If @OSType <> 'WIN32_NT' Then
MsgBox(48, "AskSystem - Error", "AskSystem funktioniert erst ab Windows 2000")
Exit
EndIf
#region GUI
$Main = GUICreate("AskSystem", 600, 400, -1, -1, $WS_THICKFRAME)
;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)
#region Tab - Manager
$Tab[1] = GUICtrlCreateTabItem("Manager")
;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)
;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)
;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)
;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
#region Tab - Windows
$Tab[2] = GUICtrlCreateTabItem("Windows")
$List[2] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Windows
#region Tab - Drives
$Tab[3] = GUICtrlCreateTabItem("Drives")
$List[3] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Drives
#region Tab - Harddisks
$Tab[4] = GUICtrlCreateTabItem("Harddisks")
$List[4] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Harddisks
#region Tab - Cd-Rom
$Tab[5] = GUICtrlCreateTabItem("Cd-Rom")
$List[5] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Cd-Rom
#region Tab - Network
$Tab[6] = GUICtrlCreateTabItem("Network")
$List[6] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Network
#region Tab - Networkadapter
$Tab[7] = GUICtrlCreateTabItem("NetworkAdapter")
$List[7] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Networkadapter
#region Tab - Processor
$Tab[8] = GUICtrlCreateTabItem("CPU")
$List[8] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Processor
#region Tab - RAM
$Tab[9] = GUICtrlCreateTabItem("RAM")
$List[9] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - RAM
#region Tab - Graphiccard
$Tab[10] = GUICtrlCreateTabItem("Graphiccard")
$List[10] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Graphiccard
#region Tab - Monitor
$Tab[11] = GUICtrlCreateTabItem("Monitor")
$List[11] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Monitor
#region Tab - Printer
$Tab[12] = GUICtrlCreateTabItem("Printer")
$List[12] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Printer
#region Tab - Soundcard
$Tab[13] = GUICtrlCreateTabItem("Soundcard")
$List[13] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Soundcard
#region Tab - Mainboard
$Tab[14] = GUICtrlCreateTabItem("Mainboard")
$List[14] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Mainboard
#region Tab - Sockets
$Tab[15] = GUICtrlCreateTabItem("Sockets")
$List[15] = GUICtrlCreateListView("||", 0, 25, 600, 375)
#endregion Tab - Sockets
#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
;GUI Settings
WinRunTrans($Main, "Show")
#endregion GUI
#region StartUp
TrayTip("AskSystem", "System is loading..", 1)
FillProcess()
FillDrives()
FillTabs()
TrayTip("AskSystem", "Loading done.", 1)
#endregion StartUp
#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
#region Func's
Func OnAutoItExit()
WinRunTrans($Main, "Hide")
_GUICtrlListView_UnRegisterSortCallBack($List[0])
_GUICtrlListView_UnRegisterSortCallBack($List[1])
EndFunc ;==>OnAutoItExit
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
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
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
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
Func CopyToClipBoardP()
$ClickedItem = GUICtrlRead($List[0])
If $ClickedItem > 0 Then
$Read = GUICtrlRead($ClickedItem)
ClipPut($Read)
EndIf
EndFunc ;==>CopyToClipBoardP
Func CopyToClipBoardD()
$ClickedItem = GUICtrlRead($List[1])
If $ClickedItem > 0 Then
$Read = GUICtrlRead($ClickedItem)
ClipPut($Read)
EndIf
EndFunc ;==>CopyToClipBoardD
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
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
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
$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
FileClose(@DesktopCommonDir & "/AskProcess - Complete Log.txt")
[/autoit] [autoit][/autoit] [autoit]For $i = "0" To "15"
_GUICtrlListView_EndUpdate($List[$l])
Next
Next
EndFunc ;==>AllLog
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
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
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)
; 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)
;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)
;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)
;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)
;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)
;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)
;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)
;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)
;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)
;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)
;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)
;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)
;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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Würdest du genau lesen, würdest du gesehen haben das ich längst
geschrieben hab warum deins nicht geht. Achte mal aufs rote.
Stimmt. Aber was ist sinnvoller, eine Func aufzurufen für alle Keys oder bei 10 verschiedenen Kombis
bis zu 30x _isPressed zu machen?
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
Zum testen der Geschwindigkeit (ist vielen wichtig):
; #=================================================================================================#
; 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)
Eine Beispiel Schleife zum Verständniss:
; #=================================================================================================#
; 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
Und die Func an sich:
; #=================================================================================================#
; 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
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):
#include <Timers.au3> ;Testing only
; #=================================================================================================#
; 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)
; #=================================================================================================#
; 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
; #=================================================================================================#
; 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
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.
Du denkst du programmierst was "unentdecktes",
kopierst aber 1-zu-1 die Idee des vorhandenen Spiels?
GDI+ oder selbsterstellte Bilder als Buttons
[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.
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
HotKeySet()
[/autoit]Auch wenn ich mich frag wie man auf so etwas überhaupt erst kommt,
guck dir bitte mal
GUICtrlSetState()
[/autoit]an
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.
Vlt als Hilfe, hab ich vor längere zeit mal geschrieben.
;---------------------------------------------------------------------------—
; KeyMouse
; By Sen // Christopher Klay
;---------------------------------------------------------------------------—
; Version - 1.0 Beta
;---------------------------------------------------------------------------—
#include <Misc.au3>
$Move_Speed = "0"
$Move_Sensivity = "2.5"
$Mouse_Speed = "0"
$Mouse_Scrolls = "1"
$ClickSleep = "0.7" * 1000
$KeyMouse = True
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{LEFT}", "Dummy")
HotKeySet("{RIGHT}", "Dummy")
HotKeySet("{DOWN}", "Dummy")
HotKeySet("{UP}", "Dummy")
HotKeySet("^m", "TriggerKeyMouse")
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{PGUP}", "Dummy")
HotKeySet("{PGDN}", "Dummy")
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
Sleep(10)
WEnd
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
Func Dummy()
EndFunc ;==>Dummy