Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
820to824
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

CPU einteilen

CPU einteilen
20.11.2006 00:07:59
a.gerken
Hi
ich würde gerne Excel irgendwas im hintergrund arbeiten lassen aber trotzdem etwas anderes ordentlich machen zu können. (z.B. über meinen DVBT TV fernsehn gucken).
aber wenn ich einen sub laufen lasse, kommt kein bild und kein ton mehr.
Gibt es vll. irgendeine funktion, mit der man die CPU leistung, die für Excel eingeteilt wird verändern?
Grüße Hans Bärle

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CPU einteilen
20.11.2006 08:01:03
Harald
Hallo Hans,
aus Excel heraus ist mir nichts bekannt. Du kannst aber versuchen, mit dem Windows Task Manager (ALT-STRG-DEL) die Priorität der Excel-Task auf niedrig zu setzen, vielleicht hilft Dir das.
Vorsicht beim manuellen hantieren mit Task Prioritäten. Schnell hast Du den Rechner in einen Zustand gebracht, aus dem heraus er sich nur durch Aus- und Wiedereinschalten dazu überreden lässt, mit Dir zu kommunizieren.
Gruß Harald
AW: CPU einteilen
20.11.2006 08:38:11
a.gerken
ok dankeschön.
werde das probieren...
AW: CPU einteilen
20.11.2006 13:09:19
Nepumuk
Hallo Hans,
versuch es mal so:
Option Explicit

Private Declare Function SetThreadPriority Lib "kernel32.dll" ( _
    ByVal hThread As Long, _
    ByVal nPriority As Long) As Long
Private Declare Function SetPriorityClass Lib "kernel32.dll" ( _
    ByVal hProcess As Long, _
    ByVal dwPriorityClass As Long) As Long
Private Declare Function GetCurrentThread Lib "kernel32.dll" () As Long
Private Declare Function GetCurrentProcess Lib "kernel32.dll" () As Long

Private Const THREAD_BASE_PRIORITY_MIN = -2
Private Const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN
Private Const IDLE_PRIORITY_CLASS = &H40

Public Sub prcSetPriorityLow()
    Dim hThread As Long, hProcess As Long
    hThread = GetCurrentThread
    hProcess = GetCurrentProcess
    SetThreadPriority hThread, THREAD_PRIORITY_LOWEST
    SetPriorityClass hProcess, IDLE_PRIORITY_CLASS
End Sub

Gruß
Nepumuk
Anzeige
AW: CPU einteilen
22.11.2006 11:05:37
a.gerken
srry war hier nimma drinne...
was macht denn der sub genau? ich steig da nicht ganz durch... was muss ich denn verändern, damit excel wieder die normale prio hat?
AW: CPU einteilen
20.11.2006 13:12:12
Stefan
Hallo,
Die Einstellung der Prioritaet kannst Du auch aus VBA heraus bewerkstelligen.
Mit dem folgenden Code kannst Du die Task-Prioritaet von Excel auf "Unter Normal" stellen. Damit gibst Du im Prinzip allen anderen Programmen "Vorfahrt" was CPU-Leistung betrifft, was praktisch bedeuted Excel laeuft nur im Leerlauf. Deshalb denke ich solltest Du nach der Ausfuehrung deines Codes Excel wieder auf "NORMAL" schalten.

Sub Task_priority()
Const BELOW_NORMAL = 16384
Const NORMAL = 32
Const ABOVE_NORMAL = 32768
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Excel.exe'")
For Each objProcess In colProcesses
objProcess.SetPriority (BELOW_NORMAL)
Next
End Sub

Schoene Gruesse
Stefan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige