Форум: "WinAPI";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Внизможет не по теме но всё же.......старт COM сервиса.. Найти похожие ветки
← →
jonni (2003-08-21 16:08) [0]хочу запустить системные сервисы на Win2K....
1.буру имя сервиса из HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\ShellServiceObject DelayLoad
2. запускю...
cbData: DWORD;
cbData:=40;
szData: array[0..40] of Char;<--здесь имя из реестра( что то типа типа {E6FB5E20-DE35-11CF-9C87-00AA005127ED})
wszCLSID: array[0..40] of WCHAR;
pCmdTarget: IOleCommandTarget;
rclsid: TGuid;
hr: HRESULT;
Param, Flag: oleVariant;
const
IID_IOleCommandTarget: TGuid = "{B722BCCB-4E68-101B-A2BC-00AA00404770}";
CGID_ShellServiceObject: TGuid = "{000214D2-0000-0000-C000-000000000046}";
MultiByteToWideChar(CP_ACP, 0, szData, cbData, wszCLSID, 40);
CLSIDFromString(PWideChar(WideString(wszCLSID)), rclsid);
hr:=CoCreateInstance(rclsid, nil, CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER, IID_IOleCommandTarget, pCmdTarget);
if hr = S_OK then
begin
pCmdTarget.Exec(@CGID_ShellServiceObject, 2, 0, Param, Flag); end;
проблема в том что Win2K видаёт ошибку и не запускает сервис...:((
может кто подскажет ошибку???
заранее спаисбо....
← →
Игорь Шевченко (2003-08-21 16:58) [1]
> проблема в том что Win2K видаёт ошибку и не запускает сервис...:((
> может кто подскажет ошибку???
Которую выдает Windows ? На это телепатии не хватает...
← →
jonni (2003-08-21 17:12) [2]:)))
ну вот надеялся что поймут правильно.....
не могу понять где ОШИБКА В КОДЕ.... почему винда ругается....что не так
← →
Reindeer Moss Eater (2003-08-21 17:31) [3]Windows могет выдавать ошибку даже если твой код абсолютно безошибочен. И это правильно.
← →
jonni (2003-08-21 17:33) [4]to Reindeer Moss Eater
a servis" to ne zapuskaetsya......!!!!!
znachit kog ne rabotaet....:(
← →
jonni (2003-08-21 22:12) [5]lyudi podskazhite hotyabi gde mozhno pro eto pochitat"... plz
← →
jack128 (2003-08-21 22:39) [6]
> jonni © (21.08.03 22:12) [5]
Тяжело с тобой... ;-)
> Которую выдает Windows ?
← →
nikkie (2003-08-21 22:42) [7]Да уж... первый раз услышал о том, что сервисы через COM стартуют.
Ладно... предположим, что ты знаешь, что ты делаешь, и ты знаешь зачем ты это делаешь. На термины мы внимание обращать не будем.
Для начала сделай szData обычным String, а wszCLSID - WideString. Выкини MultiByteToWideChar, вместо этого напиши просто wszCLSID := szData. После этого можно в дебаге смотреть какой hr после CoCreateInstance. Хорошо бы и hr := pCmdTarget.Exec посмотреть.
← →
jonni (2003-08-22 13:36) [8]to nikkie:
kak skazali tak i sdelal.....
chitayu iz reestra:
var
ValueName, Value: string;
ValueNameSize, ValueSize, NumValues, MaxValueNameLen, MaxValueLen: DWORD;
RegEnumValue(hkeyServices, NumValues-1, @ValueName[1], ValueNameSize, nil, nil, @Value[1], @ValueSize);
SetLength(ValueName, lstrlen(@ValueName[1]));
SetLength(Value, lstrlen(@Value[1]));
i zapuskauy:
CLSIDFromString(PWideChar(@Value),rclsid);
hr:=CoCreateInstance(rclsid, nil, CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER, IID_IOleCommandTarget, pCmdTarget);
hr=REGDB_E_CLASSNOTREG!!!!!!
chtobi eto moglo znachit" kogda winda rabotaet s etim bez problem....
← →
nikkie (2003-08-22 13:53) [9]Value: string;
CLSIDFromString(PWideChar(@Value),rclsid);
это кто ж тебе такое сказал...
← →
Игорь Шевченко (2003-08-22 14:36) [10]А сервисы через COM не запускаются...они через SCManager запускаются...
← →
jonni (2003-08-22 14:57) [11]to nikkie
ya zh epomochi proshu..... budu ochen" prizntelen esli vi popravite moi gluposti.....
to Игорь Шевченко
mozhet ya ne prav no vse zhe (vse eto tol"ko dlya win2K):
(eto pridumal neya i mnozhestvo obolochek(LiteStep,GeoShell,BlackBox,XenOs, itd itp...) delayut tak. )
Volume/DUN/Networking icons are controlled by shell service objects (SSO).
They are COM servers implementing the IOleCommandTarget interface.
The CLSIDs are listed in
"Software\\Microsoft\\Windows\\CurrentVersion\\ShellServiceObjectDelay Load"
They should be enumerated and created using IID_IOleCOmmandTarget.
Exec each SSO with a group id of CGID_ShellServiceObject and command id
of 2 to start. Exec each SSO with a group id of CGID_ShellServiceObject
and a command id of 3 to stop.
← →
nikkie (2003-08-22 16:09) [12]shell service objects - осмелюсь перевести это как "сервисные объекты оболочки", но никак не сервисы.
>budu ochen" prizntelen esli vi popravite moi gluposti...
вот здесь показал, в чем глупость:
nikkie © (22.08.03 13:53)
вот здесь писал, что надо делать:
nikkie © (21.08.03 22:42)
может какие проблемы еще и с чтением из реестра - ты б забыл пока про него.
ЗЫ а может просто рановато свою оболочку писать?
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c