AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Bluetooth Geräte in der Näher erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

Bluetooth Geräte in der Näher erkennen

Ein Thema von Cylence · begonnen am 7. Feb 2011 · letzter Beitrag vom 9. Feb 2011
Antwort Antwort
hathor
(Gast)

n/a Beiträge
 
#1

AW: Bluetooth Geräte in der Näher erkennen

  Alt 8. Feb 2011, 08:47
Fehler:

Warum wird der Cursor bewegt?
Programm lässt sich nur mit ALT-F4 beenden.

Ursache:
- das creierte Window ist unsichtbar,
- ein Button(OK) ist deaktiviert, bekommt aber trotzdem den Focus,
- die Prioritätserhöhung ist überflüssig!

Delphi-Quellcode:
procedure tHideBTWIndow.Execute;
var
 TheWindowHandle: THandle;
begin
  priority := tpHigher; // wozu ???
  try
    while not Form1.fAbort do begin
     TheWindowHandle := FindAWindow('Bluetooth-Gerät auswählen', '');
// if TheWindowHandle<>0 then ShowWindow(TheWindowHandle,sw_Hide);
// if TheWindowHandle<>0 then PostMessage(TheWindowHandle,WM_CLOSE, 0, 0);
    end;
  except

  end;
end;

Geändert von hathor ( 8. Feb 2011 um 09:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Bluetooth Geräte in der Nähe erkennen

  Alt 8. Feb 2011, 09:05
Keine konkrete Lösung zu deinem Problem aber vielleicht doch ein nützlicher Hinweis:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  hDeviceFind:THANDLE;
  deviceInfo:BLUETOOTH_DEVICE_INFO;
  deviceSearchParams:BLUETOOTH_DEVICE_SEARCH_PARAMS;
begin
  deviceInfo.dwSize := SizeOf(deviceInfo);
In obigem Code wird der Low-Level-Code (das Blutoothzeug) direkt mit High-Level-Code (Events) vermischt.
Das ist nicht gut, denn es fehlt eine Abstraktionsebene bzw. es verstösst gegen das Prinzip Single Level of Abstraction.
Hier fehlt schlichtweg eine Klasse, um die Zugiffe auf die Bluetooth-API zu kapseln.
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Bluetooth Geräte in der Näher erkennen

  Alt 8. Feb 2011, 12:19
Hallo,

at Hator,
bei mir wird der cursor nicht bewegt. Ich weiß nicht was du da meinst, genauso kann ich das Programm schliessen auch ohne altf4.
Mit der Priorität auf higher ist das Fenster vom Wizard teilweise garnicht sichtbar, ohne priorität war es das jedesmal, darum hohe prio.
Aber das ist eh nicht das wahre so wie es jetzt ist, ich brauche eben eine andere Möglichkeit Windows zu sagen, das es jetzt mal nach den aktuell in der nähe befindlichen Bluetooth Geräten suchen soll. Am besten ganz ohne den Wizard, so das das Fenster schliessen ganz weg kommt. Aber wie

at sx2008
Thanks, interessanter Artikel, werd ich mir durchlesen

tom
Tom
Just DO it
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

AW: Bluetooth Geräte in der Näher erkennen

  Alt 8. Feb 2011, 12:32
Mein Cursor springt automatisch zur Standarddialogfläche (Eigenschaften von Maus).

Wenn etwas "unsauber" programmiert ist, dann ist das "für die Katz'".
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Bluetooth Geräte in der Näher erkennen

  Alt 8. Feb 2011, 12:37
, das mit der maus is dann doch eher die windows einstellung das der curosr immer zum feld springen soll.
Und wenn man nicht weiß und sonst scheinbar auch fast niemand weiß wie es geht, muß man erstmal probieren, und während des probierens kann es doch auch mal etwas unsauber sein, bzw bis man erstmal weiß wie es richtig geht ist es zwangsweise auch oft unsauber. Aber wie auch immer, du brauchst es dir ja nicht anzusehen, Danke.
Ich dachte es würde auch andere interessieren wie man so etwas macht, und ich habe hier schon mehr zusammen getragen als sonst in der DP gefunden werden kann darüber. Das ist doch nicht schlecht.
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Bluetooth Geräte in der Näher erkennen

  Alt 9. Feb 2011, 08:33
Hi,

at Deep-Sea

also ich habs hinbekommen, das mit dem TimeOut wars tatsächlich, ich mach den TimeOut auf 5, starte nun das ganze in einem Thread weil sonst alles hängt die 5 sekunden und suche garnicht mehr mit der anderen funktion mit der ich vorher refresht hatte. Jetzt erscheint das nervige Fenster nicht mehr, das Mausbewegen Problem ist weg usw. alles perfekt, und sobald ich am handy BT ausschalte und am pc suche isses auch weg, perfekt DANKE!!!
Komisch mit TimeOut auf 2 gings nie richtig. Naja wie auch immer

Gruß und Danke

tom
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Bluetooth Geräte in der Näher erkennen

  Alt 9. Feb 2011, 09:34
Das ist doch schön.
Ich weiß nicht, obs bei Windows das gleiche ist, aber bei einem anderen System (Hardware), ist der Timeout (bzw. die Inquiry-Time) in Schritten von 1,28 Sekunden unterteilt. Außerdem meine ich mal aufgeschnappt zu haben, dass es bis zu 8 Sekunden dauern kann, bevor ein BT-Gerät gefunden wird, bedingt durch verschiedenste Latenzzeiten, etc.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz