Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
888to892
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
888to892
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ressourcenverteilung des PC's beeinflussen

Ressourcenverteilung des PC's beeinflussen
19.07.2007 10:35:00
matthias
Hi,
ich habe zunehmend das Problem, daß die Ressourcen meines Rechners (auch weil mehrere Programme im Hintergrund laufen müssen) für einfache VBA-Routinen nicht mehr ausreichen.
Gibt es eine Möglichkeit von VBA aus die Ressourcenverteilung des Rechners zu ändern und temporär Excel mehr zuzuweisen?
Danke.
Matthias

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ressourcenverteilung des PC's beeinflussen
20.07.2007 10:43:00
anfj
hi,
eine direkte Steuerung der Resourcen des PC ist unter Windows (meines Wissens) nicht möglich. Da das Betriebsystem dafür verantworlich ist. Die Methoden zur Resourcenverteilung laufen unter Begriffen wie Round Robin u.v.w. . Welche Methode Windows nutzt die Resourcen zu verwalten und ob alle Windows Versionen dies gleich halten ist mir unbekannt. Da ein WinXP anders reagiert als ein Win98 etc. sind unterschiedliche Methoden durchaus denkbar.
Jedem aktiven Prozess wird von Windows eine gewisse CPU Zeit zugesprochen.
Einfluss nehmen kann man trotzdem. Hierzu ist allerdings die WINDOWS API notwendig. Mit dieser können Prozesse, auch zur Laufzeit, Ihre Priorität verändern. Es wird den Prozessen mit höherer Priorität mehr Zeit zugebilligt. Dabei gibt es den IDLE, Normal, High und RealTime Modus. Laut Microsoft geht Realtime sogar so weit das der Disk Cache möglicher weise nicht rechtzeitig geflushed oder die Mouse anfängt zu ruckeln bzw. blockiert da auch Windows interne Prozesse und Treiber möglicherweise zu wenig Zeit bleibt Ihre Arbeit zu verrichten. (Was mir etwas merkwürdig erscheint.)
Die Funktion ist SetPriorityClass.
Mit GetPriorityClass kann die aktuelle priorität eines Prozesses ermittelt werden. Dies alles ist von Microsoft in der MSDN in Englisch Dokumentiert:
http://msdn2.microsoft.com/en-us/library/ms683211.aspx
Die Funktionen der Windows API muessen zuvor registriert werden, also dem VBA erklärt werden wo die Funktion zu finden und wie sie zu behandeln ist. Der Befehl dazu ist "Declare". Bei diesem Befehl muss der Name der Funktion und die zugehörigen Parameter samt typ angegeben werden.
z.B.:
Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Das Beispiel stammt von
http://www.vbarchiv.net/workshop/workshop02s2.html
und wird dort erklärt.
Die Funktion SetPriorityClass ist ebenfalls in der "kernel32".
Da ich selber dies nicht unter VBA ausprobiert habe, kann ich noch nicht einmal sagen ob dies auch unter VBA Funtkioniert und kann auch leider keinen funktionierenden Quellcode posten. Die MSDN Beispiele sind fast alle in C und helfen dadurch nur bedingt weiter.
Ich denke, dass eine intensive Einarbeit notwendig ist um dies überhaupt und sinnvoll zu bewerkstelligen und hoffe einen Denkanstoss gegeben zu haben. Viel erfolg!
MFG
anfj
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige