Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Benützung einer Methode aus advapi32.dll


1 reply to this topic

par

par
  • Members
  • 6 posts

Posted 31 January 2003 - 14:45

Ich versuche den Gruppenname einer Rechtegruppe aus dem System festzustellen (z.B PowerUsers; Englisch: Power Users; Deutsch: Hauptbenutzer).

Dazu möchte ich LookupAccountSid Aufruf aus der advapi32.dll verwenden, dem ich den Aufruf AllocateAndInitializeSid voranstelle. AllocateAndInitializeSid ist mir vermutlich geglückt (hat auch keine Strings als Parameter), aber der zweite Aufruf will mir nicht gelingen.
Hat jemand LookupAccountSid schon mal gebraucht?
Gibt es eine Liste aller API Deklarationen? Eine solche gibt es für Visual Basic.

Aus Visual Basic und C++ konnte ich meine Funktion erstellen, aber eben aus IS nicht.

par

jo21w

jo21w
  • Members
  • 5 posts

Posted 12 March 2003 - 17:25

Ich weiß nicht, ob diese Antwort für dich hilfreich ist.
Aber ...
Ich hatte (vielleicht) ein ähnliches Problem.
Jedesmal wenn eine Dll-Funktion versuchte Daten in ein InstallShield Array zu schreiben stürzte mir InstallShield ab. Da es sich bei InstallShield-Arrays um SAFEARRAYS handelte, und ich nach der Methode (Pass Arrays to external Dll's aus der InstallShield Hilfe) übergab, war das Array danach immer Leer.
Irgendwann hab ich dann einen Speicherblock mit der API-Funktion Kernel32.GlobalAlloc reserviert, und hab dieses Speicherbereich verwendet, und habe mit simpler Zeiger-Arithmetik gearbeitet:

function bla
LONG ptrProcessIDs;
LONG ptrHelper;
LONG ProcessID;
begin
ptrProcessIDs = Kernel32.GlobalAlloc(64,1024);
Kernel32.EnumProcesses(ptrProcessIDs,cb,cbNeeded);
ptrHelper = ptrProcessIDs;
ProcessID = *ptrHelper;
ptrHelper = ptrHelper + 4;  // jump to the next array-item

'
For Strings I used kernel32.lstrcpyA to copy it from a DataStructure to a InstallShield String.

Liebe Grüße
Jo