AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzerrechte

Ein Thema von fredi · begonnen am 28. Okt 2003 · letzter Beitrag vom 18. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#1

Benutzerrechte

  Alt 28. Okt 2003, 11:12
Hallo alle,
ich möchte von einer Datei die Benútzerrechte erfahren und habe dazu auch ein kleines Beispiel aus dem
Entwickler Ausgabe 6/2003 seite 77 probiert.
Leider bringe ich das nicht zum laufen, folgende fehlermeldungen bekomme ich:
[Fehler] Unit1.pas(30): Undefinierter Bezeichner: 'ISWbemServices'
[Fehler] Unit1.pas(39): Undefinierter Bezeichner: 'SWbemLocator1'

wer kann mir einen tipp geben damit mein Programm diese variablen kennt ?
Ich verwende D5, WIN2000.

danke für eure Hilfe
fredi.

Beispielcode:
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Buttons, StdCtrls, ShlObj, ActiveX, shellapi;


procedure TForm1.SpeedButton1Click(Sender: TObject);
var
 aSrv :ISWbemServices;
 vObj :OleVariant;
 iRet :Integer;
 vObjDesc :OleVariant;
 vDACL :Variant;
 vDACLEnum :OleVariant;
 vNVS :OleVariant;
 iHigh, iLow, I:Integer;
begin
  aSrv:=SWbemLocator1.ConnetServer('','','','','','',0,vNVS);
  vObj:=aSrv.Get('Win32_LogicalFileSecuritySetting="C:\trace.txt"',0,vNVS);
  iRet:=vObj.GetSecurityDescription(vObjDesc);
  If iRet <> 0 then
    begin
    showMessage(IntToStr(iRet));
    EXIT;
    end;
  vDACL:=vObjDesc.DACL;
  iHigh:=VarArrayHighBound(vDACL, 1);
  iLow :=VarArrayLowBound(vDACL,1);
  for i:=iLow to iHigh do
    begin
    ListBox1.Items.Add(vDACL[i].Trustee.Name);
    ListBox1.Items.Add(vDACL[i].AccessMask);
    end;
end;
[edit=Luckie]Delphi-Tags eingefügt. Beim nächsten mal bitte selber machen. Danke Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#2

Re: Benutzerrechte

  Alt 28. Okt 2003, 11:32
Hallo fredi,
ich glaube da muss erst die Wbem-Typbibliothek in die Uses-Klausel eingebunden werden.

Gruß
Andy
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#3

Re: Benutzerrechte

  Alt 28. Okt 2003, 11:40
danke für deine rasche antwort,
in meiner Typbibliothek gibt es leider keine 'Wbem' !
hat die event. einen anderen namen, was muß ich importieren ?
fredi
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Benutzerrechte

  Alt 28. Okt 2003, 11:50
Du musst zuerst die WbemScripting-Typlibrary importieren... Delphi erzeugt dann eine Datei mit demselben Namen, nur mit angehängtem "_TLB.pas" und die brauchst du dann in deiner uses-Liste!

Alternativ zu WMI kannst du das ganze aber auch über die klassischen APIs machen - ist aber nicht unbedingt einfacher (SecurityDescritoren, SACLs, DACLs, ACEs, ...)!
Manuel Pöter
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#5

Re: Benutzerrechte

  Alt 28. Okt 2003, 12:37
Hi Motzi,
danke für deine hilfe.
habe jetzt die typ bibliothek in mein projekt importiert.
Jetzt kennt er aber SWbemLocator1 wieder nicht !
Was mich ein wenig stutzig macht ist, daß in der unit WbemScripting_TLB kein classe mit SWbemLocator1 steht.
Im Beispielcode wird aber SWbemLocator1 geschrieben. Ist da ein fehler oder muß die
SWbemLocator1 erst erzeugt werden ?
Wenn diese jedoch erst erzeugt werden muß, wie ?

[Fehler] Unit1.pas(40): Undefinierter Bezeichner: 'SWbemLocator1'

kannst du mir da noch einen tipp geben.
danke im voraus fredi.
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Benutzerrechte

  Alt 28. Okt 2003, 12:42
Ich nehme mal stark an, das SWbemLocator1 ein TSWbemLocator-Objekt auf deiner Form ist...!
Manuel Pöter
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#7

Re: Benutzerrechte

  Alt 28. Okt 2003, 12:48
danke an alle,
es läuft....

fredi
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#8

Re: Benutzerrechte

  Alt 28. Okt 2003, 12:58
kommando zurück, es funkt doch nicht so wie es sollte.
bekomme bei zeile : vObj:=aSrv.Get('Win32_LogicalFileSecuritySetting=" C:\comp.txt"',0,vNVS);
Klasse EOleException -> 'Ungültiger Objektpfad'

den pfad und die datei comp.txt gibt es aber.

weiß wer rat ?

fredi
  Mit Zitat antworten Zitat
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#9

Re: Benutzerrechte

  Alt 28. Okt 2003, 14:29
Hallo fredi,

mir sind zwei "Fehler" aufgefallen:

Delphi-Quellcode:
  vObj := aSrv.Get('Win32_LogicalFileSecuritySetting=''C:\trace.txt''', 0, vNVS);
  iRet := vObj.GetSecurityDescriptor(vObjDesc);
Die Pfadangabe muss mit zwei Hochkommas angegeben werden, nicht mit ".
Dann noch "SecurityDescriptor" statt "SecurityDescription".

Ersetze die oberen Zeilen, dann sollte es funktionieren
Wenigstens bei mir geht's so.

Gruß
s14
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#10

Re: Benutzerrechte

  Alt 28. Okt 2003, 14:35
Hi s14,
danke für die hilfe,
ich habe die Fileübergabe schon mit einem opendialog gelöst, weil ich mit den hochkommas und gänsefüsschen schon ein problem vorausgesehen habe, leider trotzdem ohne erfolg.

vObj:=aSrv.Get('Win32_LogicalFileSecuritySetting=' + OpenDialog1.FileName,0,vNVS);

danke auch für den hinweis des zweiten fehlers.
Falls du noch eine idee hast, bite teil mir diese mit.

fredi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:44 Uhr.
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