BluetoothAuthenticateDevice unter Windows 10

Gast #4487884
Lesenswert?

Hallo,

benutzt hier jemand die API BluetoothAuthenticateDevice und hat Windows 
10?

Ich habe ein merkwürdiges Problem: Wenn die Anwendung im Vordergrund 
ist, funktioniert es prima. Wenn die Anwendung im Hintergrund ist, 
stürzt sie ab... Unter Windows 7 ist alles einwandfrei. Ich frage mich 
jetzt, ob das ein bekanntes Problem unter Windows 10 ist oder ob nur ich 
betroffen bin...
Persönliche Seite #4488134
Lesenswert?

Was bedeuten für Dich "Vordergrund" und "Hintergrund"? Aktives/inaktives 
Fenster oder anderes Benutzerkonto?

Und was sagt Dein Debugger, wenn die Anwendung abstürzt?

Sofern Du nur passiven Zugang zum Windows-10-Rechner hast, kannst Du Dir 
dort auch aus c:\programdata\microsoft\windows\wer einen Crashdump holen 
und den auf Deinem Entwicklungssystem in den Debugger laden.

Achja, womit ist Deine Anwendung geschrieben? (Sprache, Compiler)
Gast #4488268
Lesenswert?

Habe ein älteres Delphi, wobei die API innerhalb von try...except steht. 
Wenn das Fenster während des Aufrufs im Hintergrund ist, crasht die 
Anwendung. Was der Debugger sagt, gucke ich nachher mal. Bisher bin ich 
damit aber auf keinen grünen Zweig gekommen.
Persönliche Seite #4489309
Lesenswert?

Du könntest mal die Struktur "DI" ebenfalls sauber initialisieren, d.h. 
komplett auf 0 setzen, bevor Du die Größe einträgst. Mit der Struktur 
"DP" machst Du's ja auch.


Ansonsten steht in 
https://msdn.microsoft.com/de-de/library/windows/desktop/aa362770%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396, 
daß seit Vista SP2 statt BluetoothAuthenticateDevice besser 
BluetoothAuthenticateDeviceEx verwendet werden soll.
Gast #4489789
Lesenswert?

Auch mit "sauber" initialisiertem DI crasht es. Es passiert ja auch 
nicht sporadisch oder so, sondern zuverlässig immer, wenn das Fenster im 
Hintergrund ist. Wenn es im Vordergrund ist, funktioniert alles 
einwandfrei.
Das mit der Ex-Funktion glaube ich nicht. Unter Win 7 geht es ja auch. 
Sobald ich weiß, wie ich es unter Delphi implementieren muss, versuche 
ich es mal.

Hat es sonst schon einmal jemand probiert?
Persönliche Seite #4489809
Lesenswert?

Tom schrieb:
> Das mit der Ex-Funktion glaube ich nicht

Du glaubst nicht, daß Microsoft schreibt, daß man diese Funktion 
verwenden soll?

Nun, da steht im /Wortlaut/:

When developing for Windows Vista SP2 and Windows 7 the use of 
BluetoothAuthenticateDeviceEx is recommended.

wenn für Vista SP2 und Windows 7 entwickelt wird, wird der Gebrauch von 
BluetoothAuthenticateDeviceEx empfohlen.

Klar, das ist nicht die Ursache Deines Problemes. Ganz sicher nicht.


Wenn Dein Programm in Abhängigkeit von der Fensterpositionierung 
"crasht", Du aber für die Funktion BluetoothAuthenticateDevice gar 
kein Fensterhandle angibst, dann kann das "crashen" Deines Programmes 
auch nichts damit zu tun haben.

Oder hat Dein "eingedampftes Beispiel" mit Deinem Code dann doch eher 
weniger zu tun? "Crasht" denn Dein "eingedampftes Beispiel" auch?
Gast #4494633
Lesenswert?

Ich habe das Projekt mal nach Lazarus / Free Pascal konvertiert und 
angehängt. Nach einem Klick auf den Button wird das Fenster automatisch 
in den Hintergrund geschickt, um das Problem zu provozieren. Dann 
startet der Suchvorgang. Es werden Bluetooth-Geräte gesucht und 
versucht, mit der Pin 1234 zu koppeln. Dabei (während des Koppelns) 
tritt der Crash auf, zumindest bei mir unter Windows 10.

Wer will, kann es ja auch mal versuchen. Ich wäre euch sehr verbunden, 
denn ich weiß echt nicht mehr weiter!
Angehängte Dateien:
#4496690
Lesenswert?

Tom schrieb:
> Ich habe das Projekt mal nach Lazarus / Free Pascal konvertiert und
> angehängt. Nach einem Klick auf den Button wird das Fenster automatisch
> in den Hintergrund geschickt, um das Problem zu provozieren. Dann
> startet der Suchvorgang. Es werden Bluetooth-Geräte gesucht und
> versucht, mit der Pin 1234 zu koppeln. Dabei (während des Koppelns)
> tritt der Crash auf, zumindest bei mir unter Windows 10.

Ich habe das in Delphi XE6 ausprobiert, kein Crash. Weder mit '1234' 
noch mit dem korrekten Pin.

Der Code lädt implizit "bthprops.cpl". Wenn das durch irgendwas 
herstellerspezifisches verschlimmbessert wurde, könnte der Fehler auch 
da liegen.

Ich könnte mir durchaus auch vorstellen das Dein Gerät beim Pairing 
irgendwas sendet was Windows durcheinander bringt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren