Vb.net GetAsyncKeyState gibt immer 0 zurück und Sendkeys geht nicht bei Fullscreenapp

Cyba_Mephisto

Enthusiast
Thread Starter
Mitglied seit
23.10.2006
Beiträge
1.226
Alllso:
Ich habe einen Benchmark erschaffen, der bis zu 4 Kerne unterstützt und perfekt auslastet. Soweit so gut, jedoch soll dabei die Zeit gestoppt werden.
Dabei habe ich 2 Probleme:
1. Der Windooftimer ist verdammt ungenau.
2. Der Timer bleibt einfach stehen bei hoher Last. Erst wenn ich die Priorität der Thread auf BelowNormal setze, funktioniert er halbwegs. Das ist dann allerdings zum Leid der Threads, da jedes Hintergrundprogramm (Standardmäßige Priorität = Normal) mehr Aufmerksamkeit bekommt.

Ich suche daher einen präzisen Timer (10ms Genauigkeit, 1ms wäre natürlich perfekt), der prioritätsunabhängig arbeitet. Ich hoffe mir kann jemand helfen.

Danke im voraus!



So, mein neues Problem:
Diesmal soll´s ein primzahlenberechnender Stresstest werden, siehe Prime95 zum Beispiel.
Dazu wollte ich einen bestimmten Zahlenbereich auf Primzahlen überprüfen, undzwar mit dem "Flexiblen Lucas-test".
Nur müssen für die 2. vorhandene Bedingung alle Primfaktoren bestimmt werden. Diese würde ich dann bestimmen und "sammeln". Nur macht mir das Sammeln einige Schwierigkeiten.
Ich habe mich in zig HowTos durchgeblättert, und denke mal, dass mir am ehesten eine "Klasse" hilft, nur weiß ich nicht, wie die Routine automatisch einen Primfaktor hinzufügen kann. Die "For Each"-Methode macht mir auch Sorgen, wenn ich die Schleife für jede Zahl dieser Klasse, also für jeden Primfaktor, der Klasse "Primfaktoren" raussuchen will, meckert der wegen Parametern.
For Each ??? in/of/?... ???
Code...
Next
Wie kriege ich das am Besten hin?
Google half mir hier nicht weiter, ich benutze wohl die falschen Unterbegriffe der Klassen, also ich kenne mich nicht in der Klassenstruktur aus, wie´s weitergeht. Zum Beispiel Klasse-Apfelbaum--->Stamm--->Ast--->Zweig--->Apfel. Wie kann ich das in VB.net-Klassen alles nennen?

Wiedermal:
Danke im voraus!
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
hi,
ja der Windows Forms Timer ist sehr ungenau. Es gibt noch 2 weitere... Einmal Threads.Timer, und einen anderen, der mir gerade nicht einfällt ;)

Wenn du nur die Zeit stoppen willst, wie lange etwas dauert, kannst du ja einfach den Startzeitpunkt und Endzeitpunkt speichern, ca. so:

Dim start as Date = Date.Now;
'Do Stuff
...

Dim zeitraum as Timespan = DirectCast((DateTime.Now - start), TimeSpan);

Ich hoffe ich konnte dir helfen ;)
 
Danke.
Problem ist mittlerweile gelöst, die Klasse Stoptimer() liefert auf 1ms brauchbare Werte. Das Ergebnis ist der Benchmark, der jetzt in CPUCalc 1.9.6 integriert worden ist.
 
StopTimer() - ich weiß leider nicht was das ist, aber ich vermute mal daß du da auch nicht 1 ms Genauigkeit erreichst.

Annährend 1 ms erreichst du mit der Windows-API-Funktion timeGetTime(). Du mußt aber noch vorher mit timeBeginPeriod(1) den Timertakt auf 1000 Hz hochstellen ! Ne andere Variante ist QueryPerformanceCounter und QueryPerformanceFrequency.

Genauere Infos dazu bekommst du bei msdn.microsoft.com .
 
Wieder neues Problem, siehe Titel.
Bei XP ging zumindest GetAsyncKeyState.

Die Idee:
Ein Tool das bei TF2 die Verkleidung des Spions automatisch wechselt, per Zufall und nur mit einem Tastendruck und nicht diese Menüsucherei.

Jemand eine Idee?
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh