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;
}