![]() |
Re: array [0..0] ?
Habe das jetzt so :
Delphi-Quellcode:
Aber das "inc(Netzwork); " sagt er geht nicht :(
Netzwork := netzworklist^.Network[0];
for i := 0 to netzworklist^.dwNumberOfItems - 1 do begin Memo1.Lines.Add(Netzwork.strProfileName); inc(Netzwork); end; |
Re: array [0..0] ?
Netzwork muss ja auch ein pointer sein:
Delphi-Quellcode:
bzw. du deklarierst noch einen eigenen Typ dafür.
Netzwork:^Tndu_WLAN_AVAILABLE_NETWORK;
btw: schönes Denglish |
Re: array [0..0] ?
Dritte Möglichkeit: Du definierst weiterhin
Delphi-Quellcode:
und schaltest beim Zugriff auf ein Element von WLAN_INTERFACE_INFO die
type
WLAN_INTERFACE_INFO_LIST = packed record dwNumberOfItems: DWORD; dwIndex: DWORD; WLAN_INTERFACE_INFO: array[0..0] of INTERFACE_INFO; end; Bereichsüberprüfung aus
Delphi-Quellcode:
jkr
for i := 0 to InfoList.dwNumberOfItems - 1 do
begin {$R-} MachWasMit(InfoList.WLAN_INTERFACE_INFO[i]); {$R+} end; |
Re: array [0..0] ?
Jo gut das geht aber was mich jetzt noch immer verärgert ist das strProfileName immer noch leer ist :(
Delphi-Quellcode:
Hat jemand eine Idee ?
Tndu_WLAN_AVAILABLE_NETWORK = record
strProfileName: array[0..NDU_WLAN_MAX_NAME_LENGTH - 1] of wchar; dot11Ssid: Tndu_DOT11_SSID; dot11BssType: Tndu_DOT11_BSS_TYPE; uNumberOfBssids: ulong; bNetworkConnectable: Bool; wlanNotConnectableReason: Tndu_WLAN_REASON_CODE; uNumberOfPhyTypes: ulong; dot11PhyTypes: array[0..WLAN_MAX_PHY_TYPE_NUMBER -1] of Tndu_DOT11_PHY_TYPE; bMorePhyTypes: Bool; wlanSignalQuality: Tndu_WLAN_SIGNAL_QUALITY; bSecurityEnabled: Bool; dot11DefaultAuthAlgorithm: Tndu_DOT11_AUTH_ALGORITHM; dot11DefaultCipherAlgorithm: Tndu_DOT11_CIPHER_ALGORITHM; dwFlags: DWORD; dwReserved: DWORD; end; |
Re: array [0..0] ?
This happens more in Win32 API, usually the array is defined like this:
Delphi-Quellcode:
a small snippet from my LsaLogonUser sample (here on DP) shows how to use it:
const
ANYSIZE_ARRAY = 1; SomeArray: array [0..ANYSIZE_ARRAY - 1] of SomeType;
Delphi-Quellcode:
Hope this helps...
var pGroups: PTOKEN_GROUPS;
// The number of TOKEN_GROUPS we're going to insert MaxGroups := 2; // Reserve memory for MaxGroups numbur of PTOKEN_GROUPS pGroups := PTOKEN_GROUPS(GlobalAlloc(GPTR, sizeof(_SID_AND_ATTRIBUTES) * MaxGroups)); pGroups^.GroupCount := MaxGroups; // Get and open Token from CurrentProcess if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, hToken)) then begin // Get the Logon Sid and it to the LocalGroups parameter of LsaLogonUser // The Logon Sid has the form S-1-5-5-XXXXXXXX-YYYYYYYY // We need it to obtain access to the user's desktop GetLogonSid(hToken, pGroups^.Groups[0].Sid); pGroups^.Groups[0].Attributes := SE_GROUP_MANDATORY or SE_GROUP_ENABLED or SE_GROUP_ENABLED_BY_DEFAULT or SE_GROUP_LOGON_ID; // Cleanup CloseHandle(hToken); end; // Now get the Administrator's SID dwSizeSid := 0; dwSizeDomain := 0; bRes := LookupAccountName(nil, 'Administrator', nil, dwSizeSid, nil, dwSizeDomain, SidType); if (not bRes) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then begin // Reserve memory AdminSid := AllocMem(dwSizeSid); SetLength(Domain, dwSizeDomain); // Lookup Sid from Accountname // Assuming that the Admin account has not been renamed! bRes := LookUpAccountName(nil, 'Administrator', AdminSid, dwSizeSid, PChar(Domain), dwSizeDomain, SidType); if not bRes then begin // Cleanup FreeMem(AdminSid); AdminSid := nil; end; end else begin RaiseLastOSError; end; ShowMessageFmt('Administrator Sid: %s, Domain: %s', [SidToStr(AdminSid), Domain]); // Add the Administrator's sid to pGroups pGroups^.Groups[MaxGroups -1].Sid := AdminSid; pGroups^.Groups[MaxGroups -1].Attributes := SE_GROUP_MANDATORY or SE_GROUP_ENABLED or SE_GROUP_ENABLED_BY_DEFAULT; |
Re: array [0..0] ?
OFFTOPIC: Betreff Rechtschreibung
Zitat:
![]() |
Re: array [0..0] ?
Delphi-Quellcode:
Das ist zwar nett gemeint, aber das Problem bei mir ist das ich Wörter die verdächtig sind nicht erkenne :( (LRS)
.. , die dir verdächtig vorkommen. ..
Aber ich werde mir mal mühe geben (versuchen). zurück zum Thema:
Delphi-Quellcode:
an der Stelle sagst du ja schon wie groß der Speicher ist ..
pGroups := PTOKEN_GROUPS(GlobalAlloc(GPTR, sizeof(_SID_AND_ATTRIBUTES) * MaxGroups));
Delphi-Quellcode:
das geht bei mir nicht da ich erst nach dem Funtkions aufruf die größe im "netzworklist" mitgeteilt bekomme :(.
netzworklist := WlanAllocateMemory(SizeOf(Tndu_WLAN_AVAILABLE_NETWORK_LIST));
|
Re: array [0..0] ?
Zitat:
Zitat:
|
Re: array [0..0] ?
Soll ich mal das Test Projekt Posten, vieleicht sieht man da ehr das Problem ?
|
Re: array [0..0] ?
Wäre sicher keine schlechte Idee ;)
Allerdings habe ich bis mindestens Ende Oktober kein Delphi zur Verfügung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:04 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