🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi
4 messages
4 total messages Started by mmm Thu, 17 Nov 2016 21:50
Klasy WMI
#345384
Author: mmm
Date: Thu, 17 Nov 2016 21:50
9 lines
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
#345388
Author: mmm
Date: Thu, 17 Nov 2016 22:16
43 lines
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
#345385
Author: Piotr Brzeziński
Date: Fri, 18 Nov 2016 05:25
15 lines
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
#345386
Author: mmm
Date: Fri, 18 Nov 2016 09:52
41 lines
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