Maustaste abfragen von einem anderem Programmfenster?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

wie ich auch in meine swignatur geschrieben habe:

bei solche repeat schleifen benutze ich immer:

Code: Alles auswählen

Repeat
	GetAsyncKeyState_(#VK_MBUTTON)
		If GetAsyncKeyState_(#VK_MBUTTON)
			Beep_(500,50)
		EndIf
	Delay(Random(1))
ForEver
Um einmal euer Beispiel aufzugreifenn, habe ich euren code eingesetzt. Worum es geht: Ich lasse eine Zufallszahl erzeugen, die zwischen 0 und 1 liegt (es ist eine Ganzzahl). Diese Zufallszahl wird dann bei Delay eingesetzt. So wird ab und zu mal eine Millisekunde gewartet ein anderes Mal wird die Schleife sofort ausgeführt.
Das ergibt eine gesunde Mischung aus wie-oft-die-Schleife-wiederholt-wird und der Auslastung des Computers, die bei dieser Methode und meinen 577 MHz ziemlich gering ist. Je höher die zahl bei Random, desto niedriger wird die Auslastung, weil ja zwischen druch noch niedrigere Zahlen erezugt werden, das heißt: Wenn ich schreibe "Delay(Radnom(10))", dann kann es ja auch mal sein, dass der PC doch nur 5 ms (Millisekunden) wartet statt der vollen 10.
Wer auf jeden fall eine Verzögerung haben will und ausschließen will, dass die zufalszahl 0 bei Delay eingesetzt wird schreibt einfach: "Delay(Random(10)+1)" - fertig.

Ich würde ncht gleich 1000 Millisekunden warten (auch nicht bei der Random-Methode), weil die Programmausführung dann leicht ins stocken geraten kann. Das sieht dann der Benutzer und das Programm wirkt "unprofessionell".


Falls dieser Gedankengang absoluter Müll ist, wenn das ein PB-Experte so sieht, dann vergesst das Ganze einfach; aber ich glaube trotzdem daran.
Sollte diese "Methode" doch ein Weltweiter durchbruch sein, bin ich gerne bereit, Autogramme und Interviews zu geben :wink: :lol: :allright:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Quatsch. Ein simples

Code: Alles auswählen

Delay(0)
tut auch.
Antworten