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

Вниз

Службы Windows   Найти похожие ветки 

 
noname123   (2009-11-16 14:41) [0]

procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
var
 reg: TRegistry;
begin
 reg := TRegistry.Create;
 if reg.OpenKey("\Software", False) then
   {Какое то действие}
 end;
end;

почему этот код проходит

procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
var
 reg: TRegistry;
begin
 reg := TRegistry.Create;
 if reg.OpenKey("\Software\65", False) then
   {Какое то действие}
 end;
end;
а вот этот не проходит, т.е. открывает только первый ключ в разделе а если вложенный тогда не открывает, почему??


 
Сергей М. ©   (2009-11-16 15:46) [1]


> если вложенный тогда не открывает


А если открывать нечего ?
Ну нет в реестре ключа HKCU\Software\65, а ты вторым параметром запретил его создание ..


 
noname123   (2009-11-17 07:39) [2]

если бы ключа не было я не задавал бы такой вопрос. Там есть такой ключ!


 
brother ©   (2009-11-17 07:43) [3]

читай это:
http://www.mycomp.com.ua/text/11132;jsessionid=9C3833D54770DEA520F2E84908ABF1FD
все поймешь...


 
Anatoly Podgoretsky ©   (2009-11-17 07:44) [4]

> noname123  (17.11.2009 07:39:02)  [2]

Где там?


 
noname123   (2009-11-17 07:46) [5]

HKCU\Software\65 - здесь, в реестре


 
brother ©   (2009-11-17 07:47) [6]

почиай уже [3]!


 
noname123   (2009-11-17 07:54) [7]


> brother ©   (17.11.09 07:43) [3]
>
> читай это:
> http://www.mycomp.com.ua/text/11132;jsessionid=9C3833D54770DEA520F2E84908ABF1FD
> все поймешь...


ничего нового не узнал. Что я должен был понять?


 
brother ©   (2009-11-17 07:59) [8]

1. из твое кода не понятно, ты читаешь или пишешь?
2.
Procedure TForm1.Button2Click (Sender: TObject);
Var
Reg: TRegistry;
Begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey ("Software\Proga\Primer", true);
// Если ветка существует, то
If Reg.ValueExists ("parameter") then
// Присваиваем компоненту TEdit значение записанного нами параметра
Edit1.Text:=Reg.ReadString ("parameter")
Else showmessage (‘Запись не найдена’)
Reg.CloseKey;
Reg.Free;
end;

где?


 
noname123   (2009-11-17 08:06) [9]


> brother ©   (17.11.09 07:59) [8]
>
> 1. из твое кода не понятно, ты читаешь или пишешь?
> 2.
> Procedure TForm1.Button2Click (Sender: TObject);
> Var
> Reg: TRegistry;
> Begin
> Reg:=TRegistry.Create;
> Reg.RootKey:=HKEY_LOCAL_MACHINE;
> Reg.OpenKey ("Software\Proga\Primer", true);
> // Если ветка существует, то
> If Reg.ValueExists ("parameter") then
> // Присваиваем компоненту TEdit значение записанного нами
> параметра
> Edit1.Text:=Reg.ReadString ("parameter")
> Else showmessage (‘Запись не найдена’)
> Reg.CloseKey;
> Reg.Free;
> end;
> где?
>


в моем коде я открываю ключ HKCU\Software\65, мне надо просто открыть ключ про чтение или запись там не было вопроса. По умолчанию RootKey имеет значение HKCU.


 
Сергей М. ©   (2009-11-17 08:13) [10]


> Там есть такой ключ


Может и есть - в HKCU того пользователя, от имени которого ты стартовал Regedit и узрел этот ключ.
А в HKCU другого пользователя, от имени которого стартовал твой сервис, такого ключа, по всей вероятности, нет.


 
noname123   (2009-11-17 08:38) [11]


> Сергей М. ©   (17.11.09 08:13) [10]
>
>
> > Там есть такой ключ
>
>
> Может и есть - в HKCU того пользователя, от имени которого
> ты стартовал Regedit и узрел этот ключ.
> А в HKCU другого пользователя, от имени которого стартовал
> твой сервис, такого ключа, по всей вероятности, нет.


ясно! Буду разбираться. А с определением запущенных процессов тоже самое??


 
Сергей М. ©   (2009-11-17 09:00) [12]


> с определением запущенных процессов тоже самое?


Чего "тоже самое" ?
Какое отношение к этому имеет работа с реестром ?


 
noname123   (2009-11-17 09:17) [13]

с реестром никакого, я имел ввиду в службе


 
Сергей М. ©   (2009-11-17 09:36) [14]

Нет, не тоже самое


 
noname123   (2009-11-17 09:51) [15]

function ProcessFileName(Description: string): string;
var
 Handle: THandle;
 wnd: HWND;
 PID: DWORD;
begin
 wnd := FindWindow(nil, PChar(Description));
 if wnd<>0 then begin
   PID := INVALID_HANDLE_VALUE;
   GetWindowThreadProcessId(Wnd, @PID);
   Handle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PID);
   if Handle <> 0 then
   try
     SetLength(Result, MAX_PATH);
     if GetModuleFileNameEx(Handle, 0, PChar(Result), MAX_PATH) > 0 then
       SetLength(Result, StrLen(PChar(Result)))
     else
       Result := "";
   finally
     CloseHandle(Handle);
   end;
 end;
end;


тогда почему вот эта функция не работает внутри службы, а если обычная программа все нормально работает


 
Сергей М. ©   (2009-11-17 10:20) [16]

А где в [15] "определение запущенных процессов" ?
В упор не вижу.
Вижу лишь несуразную попытку получить имя файла исполняемого модуля некоего чужого поцесса.


 
Leonid Troyanovsky ©   (2009-11-17 11:15) [17]


> noname123   (17.11.09 09:51) [15]

http://rsdn.ru/summary/2393.xml

--
Regards, LVT.


 
noname123   (2009-11-17 12:21) [18]


> Сергей М. ©   (17.11.09 10:20) [16]
>
> А где в [15] "определение запущенных процессов" ?
> В упор не вижу.
> Вижу лишь несуразную попытку получить имя файла исполняемого
> модуля некоего чужого поцесса.


а, да запутался там определение полного пути исполняемого файла процесса по названию главного окна. Но все равно эта функция работает в обычной программе а в службе не пашет


 
Leonid Troyanovsky ©   (2009-11-17 12:26) [19]


> noname123   (17.11.09 12:21) [18]

> файла процесса по названию главного окна.

Во, снова запутался. Нет никого "главного".
Но, все равно, нет там никакого окна.

--
Regards, LVT.


 
Сергей М. ©   (2009-11-17 13:20) [20]


> а в службе не пашет


А кто за тебя должен выяснять, почему "не пашет" ?
Где у тебя анализ LastError хотя бы одной из используемых WinAPI-функций ?
Нет его, напрочь отсутствует.


 
noname123   (2009-11-17 14:55) [21]


> Сергей М. ©   (17.11.09 13:20) [20]
>
>
> > а в службе не пашет
>
>
> А кто за тебя должен выяснять, почему "не пашет" ?
> Где у тебя анализ LastError хотя бы одной из используемых
> WinAPI-функций ?
> Нет его, напрочь отсутствует.


почему не понял но функция заработала, буду разбираться.


> Сергей М. ©   (17.11.09 10:20) [16]
>
> А где в [15] "определение запущенных процессов" ?
> В упор не вижу.
> Вижу лишь несуразную попытку получить имя файла исполняемого
> модуля некоего чужого поцесса.


а как еще можно определить путь к файлу? Не судите строго я навичек, если есть материал дайте ссылку. Спасибо!


 
noname123   (2009-11-17 14:56) [22]

Материалы по созданию служб и по работе с процессами


 
Игорь Шевченко ©   (2009-11-17 15:14) [23]


> Материалы по созданию служб и по работе с процессами


тебя в гугле навсегда забанили ?


 
Leonid Troyanovsky ©   (2009-11-17 15:21) [24]


> noname123   (17.11.09 14:56) [22]

Ну, если Алекса Федотова так быстро осилил, читай рядом,
там много всякой мудрости.

--
Regards, LVT.


 
noname123   (2009-11-18 05:58) [25]


> Игорь Шевченко ©   (17.11.09 15:14) [23]
>
>
> > Материалы по созданию служб и по работе с процессами
>
>
> тебя в гугле навсегда забанили ?


Нет! просто хотел узнать может у кого нить есть


 
noname123   (2009-11-18 06:02) [26]


> Leonid Troyanovsky ©   (17.11.09 15:21) [24]
>
>
> > noname123   (17.11.09 14:56) [22]
>
> Ну, если Алекса Федотова так быстро осилил, читай рядом,
>
> там много всякой мудрости.
>
> --
> Regards, LVT.


еще не читал. но, там примеры на С. Буду читать. Спасибо!



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

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

Наверх





Память: 0.51 MB
Время: 0.005 c
2-1258371670
noname123
2009-11-16 14:41
2010.01.10
Службы Windows


2-1258445469
Alexey
2009-11-17 11:11
2010.01.10
ParamStr


15-1257859624
XXL
2009-11-10 16:27
2010.01.10
Чем можно отобразить SVG ?


1-1232982610
Afonya
2009-01-26 18:10
2010.01.10
Чтение данных TStringGrid из другого приложения


3-1232612594
MacroDenS
2009-01-22 11:23
2010.01.10
Структурирование данных





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский