Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi WLAN Signalstärke auslesen??? (https://www.delphipraxis.net/151162-wlan-signalstaerke-auslesen.html)

Muellermilchtrinker 16. Mai 2010 15:12

Re: WLAN Signalstärke auslesen???
 
Ich habs mal mit Adminrechten gestartet.
Immer noch bei beiden, bekomm ich ein Error zurück. :(
Vllt kann mir jemand ja sagen, wie ich das mit der obigen Wlanapi.dll oder einer der anderen dlls rausbekomm.

Muellermilchtrinker 16. Mai 2010 16:08

Re: WLAN Signalstärke auslesen???
 
Also ich hab nochmal gesucht und bin auf das gestoßen: WRAPI
Ich hab mir die WRAPI.dll runtergeladen und mit Dependency Walker geöffnet.
Dort gibt es auch die besagte long WRAPIGetSignalStrength(long *) Funktion.
Es gibt jetzt aber folgendes Problem bzw. Probleme:
a) Die dll ist in C++
b) Wie bekomme ich die Funktion, dass ich sie übersetzen kann oder
C) Wie kann ich die dll in Delphi verwenden???

Wäre nett wenn mir jemand helfen kann.

EDIT: Ich hab gerade gesehen, das der SOurceCode dort auch zum Download gibt.
Hab mal die Funktion rausgefischt:
Code:
HRESULT CWRAPIApp::GetSignalStrength(LONG * plRssi)
{
   UCHAR               QueryBuffer[1024];
   PNDISUIO_QUERY_OID      pQueryOid;

   if (!plRssi)
   {
      m_hRes = E_POINTER;
   }

   else
   {
      pQueryOid = (PNDISUIO_QUERY_OID)&QueryBuffer[0];
      pQueryOid->Oid = OID_802_11_RSSI;

      if (DeviceIoControl(m_hFileHandle,
                     IOCTL_NDISUIO_QUERY_OID_VALUE,
                     (LPVOID) &QueryBuffer[0],
                     sizeof(QueryBuffer),
                     (LPVOID) &QueryBuffer[0],
                     sizeof(QueryBuffer),
                     &m_dwBytesReturned,
                     NULL))
      {
         DEBUGP(("IOCTL GET_RSSI succeeded\n"));
         memcpy(plRssi, &pQueryOid->Data[0], sizeof(NDIS_802_11_RSSI));
      }

      else
      {
         m_dwError = GetLastError();
         DEBUGP(("IOCTL GET_RSSI failed: %d\n", m_dwError));
         m_hRes = E_FAIL;
      }
   }

   return m_hRes;
}

Muellermilchtrinker 17. Mai 2010 17:56

Re: WLAN Signalstärke auslesen???
 
Noch mal zurück zu dem Code von hathor.
Ich habs mal mit Breakpoints durchgestept und dort bekomm ich bei folgende Zeilen die Errors:
Delphi-Quellcode:
tmpstr := getWMIstring2('','MSAcpi_ThermalZoneTemperature','CurrentTemperature');
//und
tmpstr := getWMIstring2('','MSNdis_80211_ReceivedSignalStrength','Ndis80211ReceivedSignalStrength');
Und dort bekomm ich dann
Delphi-Quellcode:
''
und deswegen kommt bei der if-Abfrage dann else (also: Error) raus.
Noch mal die Errormeldung:
Delphi-Quellcode:
Erste Gelegenheit für Exception bei $776AFBAE. Exception-Klasse EOleException mit Meldung 'Nicht unterstützt'. Prozess Project1.exe (17936)
Meine Frage: Es wurde ja gesagt, dass das unter Vista nicht mehr bverfügbar ist. Kann man das vllt nachinstallieren???


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:53 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz