Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Вниз

WMI - самое начало.   Найти похожие ветки 

 
GrBob   (2006-06-26 13:25) [0]

Какую библиотеку нужно подключить, чтобы вот это заработало. Во всех экземплах WMI на Делфи предлагают использовать библоитеку типов и соответствующие компоненты, с которыми уже и работать, но мне нужно, чтобы заработал именно этот код (с минимальными правками синтаксиса, багов и пр.) ;)

function TServiceControlFm.StartApplication(strServer: string; const Command: string): boolean;
var
 ObjWMI: OleVariant;
 ObjProcess,ProcessID: OleVariant;
 ObjConfig: OleVariant;
 Error: OleVariant;
begin
 Result:=False;
 ObjWMI:=GetObject("Winmgmts:{impersonationLevel=impersonate}!"+strServer+"\root\cimv2");
 ObjProcess:= objWMI.Get("Win32_Process");
 ObjConfig:=objWMI.Get("Win32_ProcessStartup").SpawnInstance_;
 ObjConfig.ShowWindow:=SW_NORMAL;
 Error:=ObjProcess.Create(Command,ObjConfig,ProcessID);
 if Error = 0 then
  begin
    Caption:=IntToStr(ProcessID);
    Sleep(300);
    Result:=True;
    SetForegroundWindow(MainForm.Handle);
  end
  else
    MessageBox(0, PChar("Не удалось запустить приложение."),
               PChar(MainForm.Caption), MB_OK);
end;


Заранее всем спасибо за любой, более менее относящийся к теме, ответ :)


 
novill ©   (2006-06-26 14:45) [1]

1. Почему  вы обращаетесь к функции GetObject, как будто вы в вижуал бейсике находитесь?


 
GrBob   (2006-06-26 16:02) [2]

Вот и я так же думаю. Но в этом коде нет ни одной моей строчки, а синтаксис на VB прям скажем не похож. Нашел его в архиве какого-то форума за 2003 или 2004 год, где люди его с серьезным видом обсуждали. Но я подобного описания функции GetObject не нашел, решил, что это какая-то из неизвестных мне библиотек, и задал вопрос.


 
novill ©   (2006-06-26 16:15) [3]

Стоило посмотреть о чем говорят
Открываете и windows SDK (bkb MSDN) и читаете

Provider::GetObject
The GetObject method is called by WMI to retrieve an instance of a class.

Note  The Provider class is part of the WMI Provider Framework. The Provider Framework classes are obsolete and not recommended. See Using WMI for the preferred ways to write a WMI COM provider or a WMI provider that uses the .NET Framework System.Management namespaces.

HRESULT GetObject(
 CInstance* pInstance,
 long lFlags,
 CFrameworkQuery& Query
);

Parameters
pInstance
Pointer to a CInstance object to be filled in by the framework provider.
lFlags
Bitmask of flags with information about the GetObject operation. This is the value specified by the client in the IWbemServices::GetObject method.
The following flags are handled by (and filtered out) by WMI:

WBEM_FLAG_USE_AMENDED_QUALIFIERS
WBEM_FLAG_RETURN_WBEM_COMPLETE
WBEM_FLAG_RETURN_IMMEDIATELY
Query
Query object that indicates the set of properties to be populated, as requested by a call to Provider::GetObject.
A provider can realize a significant performance gain by filling in only these requested property values. The provider determines which properties are requested by using CFrameworkQuery::IsPropertyRequired. Otherwise, the provider must fill in all property values.

Return Values
The default framework provider implementation of this method returns WBEM_E_PROVIDER_NOT_CAPABLE to the calling method. The IWbemServices::GetObject method lists the common return values, although you can choose to implement any COM return value.

Remarks
WMI often invokes GetObject in response to a client call to IWbemServices::GetObject. The WMI version of Provider::GetObject provides an instance with only the key properties populated. In contrast, an implemented framework provider must fill in all other properties. The following describes a common override of GetObject:

Determine which instance WMI requested by reading the key properties with a Get method from CInstance, such as CInstance::GetCHString.
Populate the rest of the properties of the instance using the many Set methods of the CInstance class, such as CInstance::SetByte or CInstance::SetStringArray.

Requirements



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
15-1150355744
DillerXX
2006-06-15 11:15
2006.07.16
Программа для анимирования картинок.


11-1130397427
Dodfr
2005-10-27 11:17
2006.07.16
Bug in TStrList.IndexOfName


4-1143960606
Kor-win
2006-04-02 10:50
2006.07.16
drag-and-drop формы


1-1149287685
lamer_y
2006-06-03 02:34
2006.07.16
Проблема с TStrings


15-1149861184
Ihor Osov'yak
2006-06-09 17:53
2006.07.16
эт, о перспективах...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский