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

Beiträge von UEZ

  • GDIPlus (GDI+) und Autoit bei Windows7 64bit

    • UEZ
    • 7. März 2010 um 00:14

    Ich würde vorschlagen, dass du deinen Code mal postet! Dann können wir mehr sehen und dir besser helfen!

    Gruß,
    UEZ

  • Apfelmaennchen in FASM-Assembler Update incl. FLUG!

    • UEZ
    • 5. März 2010 um 22:31
    Zitat von Andy

    Dem Bytecode sollte das egal sein, was allerdings sein kann, daß der "Assembler" in 64Bit-Umgebung nicht funktioniert.
    Teste mal das folgende Script pls

    [autoit]

    $tCodeBuffer = DllStructCreate("byte[20]") ;Speicher für den assemblercode belegen
    DllStructSetData($tCodeBuffer, 1, "0xC7C007000000C3")
    $ret = DllCall("user32.dll", "int", "CallWindowProcW", "ptr", DllStructGetPtr($tCodeBuffer), "int", 0, "int", 0, "int", 0, "int", 0);bytecode aufrufen, rückgabe in a[0]
    msgbox(0,"Returncode",$ret[0])

    [/autoit]

    Es sollte normalerweise der Returncode 7 zurückgeben, funzt das auch unter 64Bit?

    Die Zoomstufen funktionieren, und das Speichern auch, beim Rest wird "Coming soon :o)" angezeigt :D

    Unter x64 ist der Return Code genau dann 7, wenn der Code als x32 ausgeführt wird!

    Ansonsten:
    Problemsignatur:
    Problemereignisname: BEX64
    Anwendungsname: autoit3_x64.exe
    Anwendungsversion: 3.3.4.0
    Anwendungszeitstempel: 4b509369
    Fehlermodulname: StackHash_c82e
    Fehlermodulversion: 0.0.0.0
    Fehlermodulzeitstempel: 00000000
    Ausnahmeoffset: 0000000002240240
    Ausnahmecode: c0000005
    Ausnahmedaten: 0000000000000008
    Betriebsystemversion: 6.1.7600.2.0.0.256.1
    Gebietsschema-ID: 1031
    Zusatzinformation 1: c82e
    Zusatzinformation 2: c82e7933df2e59f70824ea0efe276023
    Zusatzinformation 3: 6fae
    Zusatzinformation 4: 6fae1bf06560f26c1ef29c48e79861c2

    Gruß,
    UEZ

  • 4kb Code

    • UEZ
    • 5. März 2010 um 19:59

    Warum Kaspersky die Seite als "gefährlich" einstuft, weiß ich nicht! Schau' mal in #post1 - dort habe ich das Zip File angehängt!

    Gruß,
    UEZ

  • Apfelmaennchen in FASM-Assembler Update incl. FLUG!

    • UEZ
    • 5. März 2010 um 18:44
    Zitat von Andy

    Naja, ehrlich gesagt, ist das die einfachste Sprache überhaupt^^. Sie kommt mit ca. 10-20 Befehlen aus. Und GDI+ ist auch kein Problem, da (wie im Script zu lesen) die erzeugte Bitmap mit GDI+-Befehlen bearbeitbar ist.

    Mal ein Pseudocodebeispiel zum Umwandeln einer Farbgrafik in Graustufen:

    • -Startlabel erstellen für die Schleife: Anfang:
      -Lade den Anfang der Bitmapgrafik in ein 32Bit-Register , z.B. EDI mov EDI,[Speicheradresse erstes Pixel der Bitmap]
      -schreibe 0 in das EAX-Register, mit EAX arbeiten wir mov EAX,0
      -lese das Farbbyte AABBGGRR der Grafik an dieser Position in einzelne 1-Byte Register z.B. ah ein: mov ah,[EDI+1] ;das 1. Byte an [EDI] ist der Alphakanal des Pixels AA, an [EDI+1] ist BB an EDI+2 GG und an EDI+3 steht RR
      -EAX ist aus den folgenden Registern aufgebaut. 4 Byte bilden das EAX-Register, die 16 niedrigen Bit sind das AX-Register , welches sich wiederum in ein Highbyte AH und ein Lowbyte AL unterteilt. Also 32Bit EAX= obere16 Bit+ 16Bit AX = obere 16Bit + 8Bit AH + 8 Bit AL , wenn man also ein mov al,3 schreiben würde, dann sähe das EAX-Register so aus 00000000000000000000000000000011 die letzten 2 Bits wären gesetzt, der Rest ist 0. Pixelbeispiel: mov EAX,[EDI] dann steht im Byte AL der Farbcode RR, in AH der Farbcode GG und im oberen Teil von EAX AABB. Aber wir lesen die Speicherstellen nacheinander aus (langsam aber nachvollziehbar^^) Durch mov al,[EDI+1] steht jetzt die Farbe für Blau im AL-Register
      -add ax,[EDI+2] ;dazu wird die Farbe Grün addiert
      -add ax,[EDI+3] ; und Rot auch noch
      -div ax,3 ;Integerdivision durch 3 => ax=int(ax/3) =arithmetisches Mittel aus den 3 Bytes
      -mov [EDI+1],ah ;das byte in den Speicher schreiben an die blaue, grüne und rote Position
      -mov [EDI+2],ah
      -mov [EDI+3],ah ;alle bytes sind geschrieben, haben RR, GG und BB die gleiche Farbe, dann ist das ein Grauton
      -add EDI,4 ;speicheradresse um 4 byte erhöhen, hier steht das nächste pixel
      -cmp EDI,[ende der Bitmap] ;vergleiche, ob das letzte Pixel erreicht wurde
      -jl @anfang ;jl=Jump if Lower , springe, wenn das letzte Pixel noch nicht erreicht ist, zum Anfang
      -ret ;ansonsten Ende des Programms

    Das ist natürlich ULTRALANGSAM durch die vielen Speicheranforderungen, aber um mal eine Hausnummer zu nennen:
    Wenn jeder der Befehle 10 Takte bräuchte und 10 Befehle gebraucht werden, dann dauert der Spass bei einer 2Ghz-CPU (2*10^9 Takte pro Sekunde) nur 0.5*10^-7 Sekunden pro Pixel, eine 1000x1000 Pixel große Bitmap wäre dann in 0,05 Sekunden umgewandelt!

    Alles anzeigen

    Gleich mit GDI+ anfangen ist doch zu hoch gegriffen! Erstmal einfache Sachen machen, damit ich wieder das ASM Denken bekomme und die Befehle verstehe. ;) Wenn die Labels besser implementiert wären, wäre der Aufwand geringer! Vielleicht kommt das ja bald -> http://www.autoitscript.com/forum/index.php?showtopic=110794!

    Als Einsteig stelle ich mir die Erstellung der Primzahlen vor. Nun ja, schau ich mal, ob ich das hinbekomme... ?(

    Gruß,
    UEZ

  • 4kb Code

    • UEZ
    • 5. März 2010 um 15:14

    Breakpoint 2010 ist vom 02.04.2010 - 05.04.2010 in Bingen am Rhein (Nähe Mainz)!

    UEZ

  • Apfelmaennchen in FASM-Assembler Update incl. FLUG!

    • UEZ
    • 5. März 2010 um 14:11

    SSSSSSSSSSSSSSSUUUUUUUUUUUUUUUUUUUUUUUUUUUPPPPPPPPPPPPPPPPPPPPPPEEEEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRR :thumbup:

    Jetzt muss man nur noch ASM verstehen, um auch andere Dinge wie z.B. GDI+ Berechnungen zu beschleunigen!!!

    Mach' doch auch einen Thread im engl. Forum auf!


    Hut ab!

    Gruß,
    UEZ

  • 4kb Code

    • UEZ
    • 5. März 2010 um 11:41
    Zitat von peethebee

    Sowas machen Gruppen von 3-4 Personen ;).
    Alles, was du siehst, ist live generiert.
    GDI+ ist nur Schritt 1 in die Richtung :D. Da kommt noch sehr viel krasserer Stoff zum Einsatz ;).

    Johannes

    Mit GDI+ wirst du wohl nicht sehr weit kommen... ;)

    UEZ

  • 4kb Code

    • UEZ
    • 5. März 2010 um 11:40
    Zitat von Andy

    Hi, habe eine ATI-Karte im Rechner, läuft auch.
    Ja, das sind fraktale Landschaften , während der Anzeige des "Videos" berechnet. Wenn dich so etwas wundert, dann solltest du mal in Bingen auf der Breakpoint einschlagen, btw. da könnten wir zusammen hin ^^. Etwas fetteres in Sachen Computergrafik wird weltweit so konzentriert nicht zu finden sein. Und was die Jungs und Mädels dort aus uralten Kisten (Amiga, C64) rausholen ist wirklich atemberaubend.

    Genau :thumbup: Faszinierend, was da aus den Kisten noch herausgeholt wird!

    Ich war noch nie auf der Breakpoint und würde gerne dort mal hin, zumal das auch noch fast um die Ecke ist 8o Wann ist die Breakpoint 2010 eigentlicht?
    Da können wir gerne zusammen hin :thumbup:

    Gruß,
    UEZ

  • 4kb Code

    • UEZ
    • 5. März 2010 um 11:26
    Zitat von DjDominik

    UEZ
    Ist das alles Live ohne Vorlagen gerendert? 8|
    Das hört sich jetzt vielleicht Kitschig an aber:

    Soeine Grafik habe ich im PC-Bereich noch NIE gesehen 8|
    Das ist echt Atemberaubend!!! :love:

    Wenn so die Grafik von PC-Spielen (zB meinem UT3) wäre, Ich glaube dann würde ich Unfallen!

    Noch eine Frage:
    Hat das eine Firma oder eine Privatperson erstellt?

    Wenn die die Dateien herunterlädst und eine der Exe Dateien (4kb groß) startest, dann werden erstmal die ganzen Daten generiert und die Show fängt dann an! In den 4kb sind die Grafiken und der Sound!

    Es gibt jährlich Demo Wettbewerbe, wo Gruppen ihre Werke vorstellen -> Breakpoint, und ich finde auch, dass diese Demo mit nur 4kb echt der Hammer ist - ja sogar unglaublich!

    Gruß,
    UEZ

  • CSV-Editor V0.8 (Stand 23.04.2010)

    • UEZ
    • 5. März 2010 um 10:48

    Sieht gut aus!

    Ich habe mal das Sortieren hinzugefügt, wenn die Spaltenfelder gedrückt werden:

    [autoit]


    Func _WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $B_ASCENDING
    $hWndListView = $hLV ; ID des LV
    $hWndListView2 = $hLVEditHeader ; ID des LV
    If Not IsHWnd($hWndListView) Then $hWndListView = GUICtrlGetHandle($hWndListView)
    If Not IsHWnd($hWndListView2) Then $hWndListView2 = GUICtrlGetHandle($hWndListView2)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_DBLCLK
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _GUICtrlListView_EditItem($hWndListView, DllStructGetData($tInfo, "Index"), DllStructGetData($tInfo, "SubItem"))
    $hActive = $hWndListView
    Case $NM_CLICK
    GUICtrlSetState($hInput, $GUI_HIDE)
    Case $LVN_COLUMNCLICK ; A column was clicked -> sort ascendend
    Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
    _GUICtrlListView_SimpleSort($hWndListView, $B_ASCENDING, DllStructGetData($tInfo, "SubItem"))
    EndSwitch
    Case $hWndListView2
    Switch $iCode
    Case $NM_DBLCLK
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _GUICtrlListView_EditItem($hWndListView2, DllStructGetData($tInfo, "Index"), DllStructGetData($tInfo, "SubItem"))
    $hActive = $hWndListView2
    Case $NM_CLICK
    GUICtrlSetState($hInput, $GUI_HIDE)
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>_WM_NOTIFY

    [/autoit]

    Kannst ja noch verfeinern...

    Performance:
    für eine CSV mit 18663 Zeilen und 5 Spalten benötigt meine Kiste ca. 60 Sekunden, um die Datei anzuzeigen! Eine Progressbar wäre da nicht schlecht!
    Das Sortieren nach einer Spalte dauert 50% länger als das Laden!

    Gruß,
    UEZ

  • 4kb Code

    • UEZ
    • 4. März 2010 um 22:41

    Was glaubt ihr, was man mit 4kb Code alles machen kann?

    4kb: elevated

    Scheint nur mit nVidia und WinXP zu laufen! Ansonsten auf YouTube anschauen (so sieht die Demo aus, wenn die 4kb große Exe gestartet wurde!!!)

    Gruß,
    UEZ

    Dateien

    rgba_tbc_elevated.zip 29,19 kB – 425 Downloads
  • [Beispiel] Slide GUI

    • UEZ
    • 3. März 2010 um 14:34

    Sieht jetzt gut aus! :thumbup:

    Gruß,
    UEZ

  • Visualizer

    • UEZ
    • 2. März 2010 um 21:01

    Sieht sehr gut aus - gefällt mir!

    Weiter so!

    Gruß,
    UEZ

  • Another AutoIt PreProcessor

    • UEZ
    • 2. März 2010 um 19:10

    Ich habe noch Probleme mit meinen 2 Skripten gefunden:

    • SIC2 -> Commandline Interpreter funzt danach nicht mehr
    • Play Chip Sound from Memory -> danach läuft das Skript nicht mehr


    Eilt nicht, da du ja heute Geburtstag hast :D

    Gruß,
    UEZ

  • GDI+ Summenformeln-Led Uhr

    • UEZ
    • 2. März 2010 um 10:52

    Ich war mal so frei und habe deinen Code etwas verkürzt!

    Spoiler anzeigen
    [autoit]


    #NoTrayIcon
    #include <Date.au3>
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("TrayMenuMode", 1)
    $Form1 = GUICreate("GDI+ Summencode-Led Uhr", 215, 250, @DesktopWidth-215, @DesktopHeight-280, $WS_POPUP, $WS_EX_TOPMOST)
    GUISetBkColor(0x000000)
    $Label1 = GUICtrlCreateLabel("", 0, 0, 215, 250, Default, $GUI_WS_EX_PARENTDRAG)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUISetState(@SW_SHOW)
    $context = GUICtrlCreateContextMenu($Label1)
    $hide = GUICtrlCreateMenuItem("Ausblenden", $context)
    GUICtrlCreateMenuItem("", $context)
    $exit = GUICtrlCreateMenuItem("Beenden", $context)
    $show = TrayCreateItem("Anzeigen")
    TrayCreateItem("")
    $exittray = TrayCreateItem("Exit")

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

    _GDIPlus_Startup()
    $grafik = _GDIPlus_GraphicsCreateFromHWND($Form1)
    $brushledoff = _GDIPlus_BrushCreateSolid(0xFF441A00)
    $brushledon =_GDIPlus_BrushCreateSolid(0xFFFFA100)

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

    Do
    $msg = GUIGetMsg()
    $tmsg = TrayGetMsg()
    Select
    Case $msg = $hide
    WinMove($Form1, "", @DesktopWidth, @DesktopHeight-280, Default, Default, 5)
    TraySetState(1)
    GUISetState(@SW_HIDE)
    Case $msg = $exit
    Ende()
    Case $tmsg = $exittray
    Ende()
    Case $tmsg = $show
    GUISetState(@SW_Show)
    WinMove($Form1, "", @DesktopWidth-215, @DesktopHeight-280, Default, Default, 5)
    TraySetState(2)
    EndSelect

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

    $stu1 = Stringmid(_Nowtime(), 1, 1)
    $stu2 = Stringmid(_Nowtime(), 2, 1)
    $min1 = Stringmid(_Nowtime(), 4, 1)
    $min2 = Stringmid(_Nowtime(), 5, 1)
    $sek1 = Stringmid(_Nowtime(), 7, 1)
    $sek2 = Stringmid(_Nowtime(), 8, 1)

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

    _LedColDrawActive(30, $stu1)
    _LedColDrawActive(50, $stu2)
    _LedColDrawActive(90, $min1)
    _LedColDrawActive(110, $min2)
    _LedColDrawActive(150, $sek1)
    _LedColDrawActive(170, $sek2)

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

    Until $msg = $GUI_EVENT_CLOSE
    Ende()

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

    Func Ende()
    _GDIPlus_GraphicsDispose($grafik)
    _GDIPlus_BrushDispose($brushledoff)
    _GDIPlus_BrushDispose($brushledon)
    Exit
    EndFunc

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

    Func _Update()
    $mp = WinGetPos("GDI+ Summencode-Led Uhr")
    While $mp[0] And $mp[1] < -10
    $mp = WinGetPos("GDI+ Summencode-Led Uhr")
    $stu1 = Stringmid(_Nowtime(), 1, 1)
    $stu2 = Stringmid(_Nowtime(), 2, 1)
    $min1 = Stringmid(_Nowtime(), 4, 1)
    $min2 = Stringmid(_Nowtime(), 5, 1)
    $sek1 = Stringmid(_Nowtime(), 7, 1)
    $sek2 = Stringmid(_Nowtime(), 8, 1)

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

    _LedColDrawActive(30, $stu1)
    _LedColDrawActive(50, $stu2)
    _LedColDrawActive(90, $min1)
    _LedColDrawActive(110, $min2)
    _LedColDrawActive(150, $sek1)
    _LedColDrawActive(170, $sek2)

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

    WEnd
    EndFunc

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

    Func _LedColDrawActive($x, $num)

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

    Switch $num
    Case 0
    Zeichne_Ellipse("000000000", $x)
    Case 1
    Zeichne_Ellipse("000000001", $x)
    case 2
    Zeichne_Ellipse("000000011", $x)
    case 3
    Zeichne_Ellipse("000000111", $x)
    case 4
    Zeichne_Ellipse("000001111", $x)
    case 5
    Zeichne_Ellipse("000011111", $x)
    case 6
    Zeichne_Ellipse("000111111", $x)
    case 7
    Zeichne_Ellipse("001111111", $x)
    case 8
    Zeichne_Ellipse("011111111", $x)
    case 9
    Zeichne_Ellipse("111111111", $x)
    EndSwitch
    EndFunc

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

    Func Zeichne_Ellipse($bits, $x)
    Local $aBits = StringSplit($bits, "", 2), $c
    For $c = 0 To UBound($aBits) - 1
    If $aBits[$c] = 0 Then
    _GDIPlus_GraphicsFillEllipse($grafik, $x, 40+(20*$c), 12, 12, $brushledoff)
    Else
    _GDIPlus_GraphicsFillEllipse($grafik, $x, 40+(20*$c), 12, 12, $brushledon)
    EndIf
    Next
    EndFunc

    [/autoit]

    Gruß,
    UEZ

  • eukalyptus hat Geburtstag

    • UEZ
    • 2. März 2010 um 09:18

    Herzlichen Glückwunsch zum Geburtstag und alles Gute GDI+ Meister ;)

    Gruß,
    UEZ

  • TSAdress (Adressverwaltung)

    • UEZ
    • 28. Februar 2010 um 22:23

    Danke für das Update!

    Ich finde 2 farbig schöner:
    1stColor=0xFFFFFF
    2ndColor=0xF0F0F0

    Ist Geschmack Sache!

    Aber könnten die Farben nicht durchgehend sein? Ein Raster a la Excel wäre auch noch schön!

    Apropos schön: Tooltip finde ich auch super!

    Ein Export in CSV könnte auch hilfreich sein, bzw. Import von einer CSV (Semikon getrennt)!

    Gruß,
    UEZ

  • TSAdress (Adressverwaltung)

    • UEZ
    • 28. Februar 2010 um 18:56

    Nette Umsetzung!


    Was mir fehlt, ist ein Kontextmenu und Key Shortcuts, um schneller Daten hinzuzufügen bzw. zu löschen! Um die Einträge besser zu unterscheiden, wären farbliche Zeilen (2 Farben sollten reichen) von Vorteil.

    Gruß,
    UEZ

  • _ArraySort2D_MC 2D Array nach mehreren Spalten sortieren (Stand 08.08.2012)

    • UEZ
    • 28. Februar 2010 um 14:44

    Sieht jetzt gut aus! :thumbup:

    Gruß,
    UEZ

  • Wieviel Arbeitsspeicher belegt ein Programm?

    • UEZ
    • 28. Februar 2010 um 14:01

    Hier der verbesserte Code bzgl.>= Win7:

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_UseX64=y
    #AutoIt3Wrapper_Change2CUI=y
    Global $PID
    Global Const $Process_All_Access = 0x1F0FFF

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

    $PID = ProcessExists(@AutoItPID)
    If $PID = 0 Then
    ConsoleWrite(@CRLF & "ERROR! Process " & $PID & " not found! Aborting..." & @CRLF)
    Exit
    EndIf

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

    $ProcHandle = DllCall("kernel32.dll", "hwnd", "OpenProcess", "dword", $Process_All_Access, "int", False, "dword", $PID)
    $ProcHandle = $ProcHandle[0]

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

    MsgBox(0, "PrivateUsage Size", Round(_ProcessGetMem($ProcHandle) / 1024, 0) & " kb")

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

    DllCall("psapi.dll", "int", "CloseHandle", "hwnd", $ProcHandle)
    DllCall("kernel32.dll", "int", "CloseHandle", "int", $ProcHandle)
    Exit

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

    Func _ProcessGetMem($ProcessHandle) ;get physical memory of the process -> http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx
    Local $structPROCESS_MEMORY_COUNTERS, $structPROCESS_MEMORY_COUNTERS_EX, $nSize, $aRet
    If @OSBuild < 7600 Then
    $structPROCESS_MEMORY_COUNTERS = DllStructCreate("dword cb; dword PageFaultCount; dword_ptr PeakWorkingSetSize; ulong_ptr WorkingSetSize; " & _
    "dword_ptr QuotaPeakPagedPoolUsage; dword_ptr QuotaPagedPoolUsage; dword_ptr QuotaPeakNonPagedPoolUsage; " & _
    "dword_ptr QuotaNonPagePoolUsage; dword_ptr PagefileUsage; dword_ptr PeakPagefileUsage") ;http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx
    $nSize = DllStructGetSize($structPROCESS_MEMORY_COUNTERS)
    $aRet = DllCall("psapi.dll", "int", "GetProcessMemoryInfo", "hwnd", $ProcessHandle, "ptr", DllStructGetPtr($structPROCESS_MEMORY_COUNTERS), "dword", $nSize) ;call GetProcessMemoryInfo
    If $aRet[0] = 0 Then
    ConsoleWrite("(" & @ScriptLineNumber & ") : = Error in GetProcessMemoryInfo call" & @LF)
    SetError(1, 0, $aRet[0])
    EndIf
    Return DllStructGetData($structPROCESS_MEMORY_COUNTERS, "WorkingSetSize")
    Else
    $structPROCESS_MEMORY_COUNTERS_EX = DllStructCreate("dword cb; dword PageFaultCount; dword_ptr PeakWorkingSetSize; dword_ptr WorkingSetSize; " & _
    "dword_ptr QuotaPeakPagedPoolUsage; dword_ptr QuotaPagedPoolUsage; dword_ptr QuotaPeakNonPagedPoolUsage; " & _
    "dword_ptr QuotaNonPagePoolUsage; dword_ptr PagefileUsage; dword_ptr PeakPagefileUsage; " & _
    "ulong_ptr PrivateUsage") ;http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx
    $nSize = DllStructGetSize($structPROCESS_MEMORY_COUNTERS_EX)
    $aRet = DllCall("Kernel32.dll", "int", "K32GetProcessMemoryInfo", "hwnd", $ProcessHandle, "ptr", DllStructGetPtr($structPROCESS_MEMORY_COUNTERS_EX), "dword", $nSize) ;call GetProcessMemoryInfo
    If $aRet[0] = 0 Then
    ConsoleWrite("(" & @ScriptLineNumber & ") : = Error in GetProcessMemoryInfo call" & @LF)
    SetError(1, 0, $aRet[0])
    EndIf
    ConsoleWrite("WorkingSetSize: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "WorkingSetSize"), 0) & @CRLF & _
    "PageFaultCount: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "PageFaultCount"), 0) & @CRLF & _
    "PeakWorkingSetSize: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "PeakWorkingSetSize"), 0) & @CRLF & _
    "QuotaPeakPagedPoolUsage: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "QuotaPeakPagedPoolUsage"), 0) & @CRLF & _
    "QuotaPagedPoolUsage: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "QuotaPagedPoolUsage"), 0) & @CRLF & _
    "QuotaPeakNonPagedPoolUsage: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "QuotaPeakNonPagedPoolUsage"), 0) & @CRLF & _
    "QuotaNonPagePoolUsage: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "QuotaNonPagePoolUsage"), 0) & @CRLF & _
    "PagefileUsage: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "PagefileUsage"), 0) & @CRLF & _
    "PeakPagefileUsage: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "PeakPagefileUsage"), 0) & @CRLF & _
    "PrivateUsage: " & Round(DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "PrivateUsage"), 0) & @CRLF & @CRLF)
    Return DllStructGetData($structPROCESS_MEMORY_COUNTERS_EX, "PrivateUsage")
    EndIf
    EndFunc ;==>_ProcessGetMem

    [/autoit]


    Nichts desto trotz liefert PrivateUsage nicht den Speicher zurück, der im Taskmanager (WS Private) erscheint!

    Die Suche geht weiter nach einer nicht WMI Lösung...


    Gruß,
    UEZ

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™