Thread View: pl.comp.lang.delphi
4 messages
4 total messages
Started by mmm
Thu, 17 Nov 2016 21:50
Klasy WMI
Author: mmm
Date: Thu, 17 Nov 2016 21:50
Date: Thu, 17 Nov 2016 21:50
9 lines
1028 bytes
1028 bytes
Niektory elementy windows-a mozna zmienic za pomoca klas WMI np. WESL_UserSetting https://msdn.microsoft.com/en-us/library/windows/hardware/mt620048(v=vs.85).aspx Jak taka klasę użyc w Delphi ? mmm
Re: Klasy WMI
Author: mmm
Date: Thu, 17 Nov 2016 22:16
Date: Thu, 17 Nov 2016 22:16
43 lines
2146 bytes
2146 bytes
> Jak taka klasę użyc w Delphi ?
>
> mmm
>
Metoda "1" ale nie wiem jak uruchomić metody :(
// na podstawie
//https://sergworks.wordpress.com/2009/12/23/wmi-in-delphi-how-to-enumerate-serial-ports-and-everything-in-windows/
> procedure TForm37.Button3Click(Sender: TObject);
> var
> Locator: ISWbemLocator;
> Services: ISWbemServices;
> ObjSet: ISWbemObjectSet;
> SObject: ISWbemObject;
> PropSet: ISWbemPropertySet;
> SProp: ISWbemProperty;
> sValue: String;
> Enum: IEnumVariant;
> Value: Cardinal;
> TempObj: OleVariant;
> begin
> Locator:= CoSWbemLocator.Create;
> Services:= Locator.ConnectServer('.', 'root\standardcimv2\embedded', '', '', '','', 0, nil);
> ObjSet:= Services.InstancesOf('WESL_UserSetting', wbemFlagReturnWhenComplete, nil);
> Enum:= (ObjSet._NewEnum) as IEnumVariant;
> while (Enum.Next(1, tempObj, Value) = S_OK) do begin
> SObject:= IUnknown(tempObj) as SWBemObject;
> PropSet := SObject.Properties_;
> SProp:= PropSet.Item('Shell',0);
> sValue:= SProp.Get_Value;
> Memo1.Lines.Add(sValue);
> end;
> end;
Metoda "2"
https://sourceforge.net/projects/glibwmi/?source=typ_redirect
Na podstawie innych klas zaimplementowac to co mi brakuje, sa przykłady
na uzycie metod
M
Re: Klasy WMI
Author: Piotr Brzeziński
Date: Fri, 18 Nov 2016 05:25
Date: Fri, 18 Nov 2016 05:25
15 lines
1587 bytes
1587 bytes
W dniu czwartek, 17 listopada 2016 22:50:56 UTC+1 użytkownik mmm napisał: > Niektory elementy windows-a mozna zmienic za pomoca klas WMI > > np. WESL_UserSetting > > https://msdn.microsoft.com/en-us/library/windows/hardware/mt620048(v=vs.85).aspx > > Jak taka klasę użyc w Delphi ? > > mmm Dużo przykładów jest tutaj https://theroadtodelphi.com/wmi-delphi-code-creator/ PB
Re: Klasy WMI
Author: mmm
Date: Fri, 18 Nov 2016 09:52
Date: Fri, 18 Nov 2016 09:52
41 lines
2001 bytes
2001 bytes
> Dużo przykładów jest tutaj
> https://theroadtodelphi.com/wmi-delphi-code-creator/
>
> PB
>
Dziękuje, najlepszy link !
Tutaj już znalazłem prawie wszystko.
[Problem 1] to z analizą wyniku zwracanego.
> Return Value
> Returns an HRESULT value that indicates WMI status or a WMI error.
Czyli metoda zwraca dwie rzeczy : parametry które są
"OUT" oraz wynik funkcji , nie wiem jak odczytać "Return Value"
To co sie wygenerował dla metody "SetEnabled" wyglada tak:"
https://msdn.microsoft.com/en-us/library/windows/hardware/mt620055(v=vs.85).aspx
FOutParams := FWMIService.ExecMethod('WESL_UserSetting',
'SetEnabled', FInParams,0 , nil);
Writeln(Format('ReturnValue
%s',[FOutParams.Properties_.Item('ReturnValue',0).Get_Value]));
//jest AV !!!!
Metoda "SetEnabled" nie zwraca wartości ale jako funkcja zwraca wynik
czy operacja się powiodła.
Nie mam pojęcia jak to ugryźć
M
PS Taka tylko ciekawostka.
W dokumentacji microsoft napisali ze WESL_UserSetting nie działa na
wersji 10 PRO , ale okazuje się że działa.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads