Форум: "Начинающим";
Текущий архив: 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