Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

не закрываются блоки и не начинается новая функция

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 18.05.2012, 23:20   #1
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию не закрываются блоки и не начинается новая функция

вот такая ошибка:
[Error] Unit1.pas(413): Record, object or class type required
[Error] Unit1.pas(415): EXCEPT or FINALLY expected

не закрываются блоки и не начинается новая функция

я открыл 6 блоков,а закрыл только 3..закрываю следующие выводится ошибка,
блоки закрывал подряд:

вот таких 6 блоков

Код:
begin
 t:=FindWindow(nil,Pchar(edit1.text));
if t <> 0
 then
 begin
 unfreeze_flag:=1;
 unfreeze:=$B0;
 GetWindowThreadProcessId(t,@ProcessId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
 WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
 WriteProcessMemory(hProcess, ptr($00420205), @unfreeze_flag, 1, BC);

 GetWindowThreadProcessId(t,@ProcessId);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
If  (t > 0) then
try
ReadProcessMemory (hProcess, Pointer($A571E0), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$1C), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$34), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$494), @WHP, sizeof(WHP), NoB);
 HP := Integer(WHP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4DC), @WHPMax, sizeof(WHPMax), NoB);
 HPMax := Integer(WHPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$498), @WMP, sizeof(WMP), NoB);
 MP := Integer(WMP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4E0), @WMPMax, sizeof(WMPMax), NoB);
 MPMax := Integer(WMPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$040), @wkz, sizeof(wkz), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$03C), @wky, sizeof(wky), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$044), @wkx, sizeof(wkx), NoB);
y := FloatToStr((wky + 4000) / 10); y := Copy(y, 1, Pos(',', y) - 1);
x := FloatToStr((wkx + 5500) / 10); x := Copy(x, 1, Pos(',', x) - 1);
Z := FloatToStr((wkz) / 10); Z := Copy(Z, 1, Pos(',', Z) - 1);
Edit1.text := IntToStr(HP);
Edit2.text := IntToStr(MP);
Gauge1.Progress := round(HP * 100 / HPMax);
Gauge2.Progress := round(MP * 100 / MPMax);
Edit12.text :=  x + ' ' + y + ' ' + z;
PostMessage(t,WM_KEYDOWN,$00000032,$00020001);
PostMessage(t,WM_KEYDOWN,$00000033,$00020001);
if  (Gauge6.Progress ) < 60
 then
 PostMessage (t, WM_KEYDOWN, VK_F3, 0) ;
exept
end;
end;
end;
если один такой блок,то всё работает,а если 6,то нет.. все блоки в timer е

может их надо как-то разделить,но я не знаю,как

Последний раз редактировалось Meg(0); 19.05.2012 в 00:04.
  Ответить с цитированием
Старый 19.05.2012, 00:09   #2
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
 
По умолчанию Re: не закрываются блоки и не начинается новая функция

Код:
try
.............
finally
......
end;
Код:
Выбери что нибудь одно
WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
 WriteProcessMemory(hProcess, ptr($00420205), @unfreeze_flag, 1, BC);
зачем тебе в таймере 6 блоков???

запусти уж в потоке один блок
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters

Последний раз редактировалось zaparca; 19.05.2012 в 00:12.
  Ответить с цитированием
Старый 19.05.2012, 00:34   #3
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: не закрываются блоки и не начинается новая функция

zaparca,
а куда писать fynally?
поубирал все begin ы тоесть в один поток всё запустил
вот такой код получается:

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 v:=FindWindow(nil,Pchar(edit1.text));
if v <> 0
 then
 unfreeze_flag:=1;
 unfreeze:=$B0;
 GetWindowThreadProcessId(v,@ProcessId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
 WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
 WriteProcessMemory(hProcess, ptr($00420205), @unfreeze_flag, 1, BC);

 GetWindowThreadProcessId(v,@ProcessId);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
If  (v > 0) then
try
ReadProcessMemory (hProcess, Pointer($A571E0), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$1C), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$34), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$494), @WHP, sizeof(WHP), NoB);
 HP := Integer(WHP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4DC), @WHPMax, sizeof(WHPMax), NoB);
 HPMax := Integer(WHPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$498), @WMP, sizeof(WMP), NoB);
 MP := Integer(WMP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4E0), @WMPMax, sizeof(WMPMax), NoB);
 MPMax := Integer(WMPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$040), @wkz, sizeof(wkz), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$03C), @wky, sizeof(wky), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$044), @wkx, sizeof(wkx), NoB);
y := FloatToStr((wky + 4000) / 10); y := Copy(y, 1, Pos(',', y) - 1);
x := FloatToStr((wkx + 5500) / 10); x := Copy(x, 1, Pos(',', x) - 1);
Z := FloatToStr((wkz) / 10); Z := Copy(Z, 1, Pos(',', Z) - 1);
Edit1.text := IntToStr(HP);
Edit2.text := IntToStr(MP);
Gauge1.Progress := round(HP * 100 / HPMax);
Gauge2.Progress := round(MP * 100 / MPMax);
label4.caption :=  x + ' ' + y + ' ' + z;
PostMessage(v,WM_KEYDOWN,$00000032,$00020001);
PostMessage(v,WM_KEYDOWN,$00000033,$00020001);
if  (Gauge1.Progress ) < 60
 then
 PostMessage (v, WM_KEYDOWN, VK_F3, 0) ;


 q:=FindWindow(nil,Pchar(edit1.text));
if q <> 0
 then

 unfreeze_flag:=1;
 unfreeze:=$B0;
 GetWindowThreadProcessId(q,@ProcessId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
 WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
 WriteProcessMemory(hProcess, ptr($00420205), @unfreeze_flag, 1, BC);

 GetWindowThreadProcessId(q,@ProcessId);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
If  (q > 0) then
try
ReadProcessMemory (hProcess, Pointer($A571E0), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$1C), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$34), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$494), @WHP, sizeof(WHP), NoB);
 HP := Integer(WHP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4DC), @WHPMax, sizeof(WHPMax), NoB);
 HPMax := Integer(WHPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$498), @WMP, sizeof(WMP), NoB);
 MP := Integer(WMP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4E0), @WMPMax, sizeof(WMPMax), NoB);
 MPMax := Integer(WMPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$040), @wkz, sizeof(wkz), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$03C), @wky, sizeof(wky), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$044), @wkx, sizeof(wkx), NoB);
y := FloatToStr((wky + 4000) / 10); y := Copy(y, 1, Pos(',', y) - 1);
x := FloatToStr((wkx + 5500) / 10); x := Copy(x, 1, Pos(',', x) - 1);
Z := FloatToStr((wkz) / 10); Z := Copy(Z, 1, Pos(',', Z) - 1);
Edit2.text := IntToStr(HP);
Edit3.text := IntToStr(MP);
Gauge2.Progress := round(HP * 100 / HPMax);
Gauge3.Progress := round(MP * 100 / MPMax);
label5.caption :=  x + ' ' + y + ' ' + z;
PostMessage(q,WM_KEYDOWN,$00000032,$00020001);
PostMessage(q,WM_KEYDOWN,$00000033,$00020001);
if  (Gauge2.Progress ) < 60
 then
 PostMessage (v, WM_KEYDOWN, VK_F3, 0) ;


 w:=FindWindow(nil,Pchar(edit1.text));
if w <> 0
 then

 unfreeze_flag:=1;
 unfreeze:=$B0;
 GetWindowThreadProcessId(w,@ProcessId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
 WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
 WriteProcessMemory(hProcess, ptr($00420205), @unfreeze_flag, 1, BC);

 GetWindowThreadProcessId(w,@ProcessId);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
If  (w > 0) then
try
ReadProcessMemory (hProcess, Pointer($A571E0), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$1C), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$34), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$494), @WHP, sizeof(WHP), NoB);
 HP := Integer(WHP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4DC), @WHPMax, sizeof(WHPMax), NoB);
 HPMax := Integer(WHPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$498), @WMP, sizeof(WMP), NoB);
 MP := Integer(WMP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4E0), @WMPMax, sizeof(WMPMax), NoB);
 MPMax := Integer(WMPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$040), @wkz, sizeof(wkz), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$03C), @wky, sizeof(wky), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$044), @wkx, sizeof(wkx), NoB);
y := FloatToStr((wky + 4000) / 10); y := Copy(y, 1, Pos(',', y) - 1);
x := FloatToStr((wkx + 5500) / 10); x := Copy(x, 1, Pos(',', x) - 1);
Z := FloatToStr((wkz) / 10); Z := Copy(Z, 1, Pos(',', Z) - 1);
Edit1.text := IntToStr(HP);
Edit2.text := IntToStr(MP);
Gauge3.Progress := round(HP * 100 / HPMax);
Gauge4.Progress := round(MP * 100 / MPMax);
label6.caption :=  x + ' ' + y + ' ' + z;
PostMessage(w,WM_KEYDOWN,$00000032,$00020001);
PostMessage(w,WM_KEYDOWN,$00000033,$00020001);
if  (Gauge3.Progress ) < 60
 then
 PostMessage (w, WM_KEYDOWN, VK_F3, 0) ;


 e:=FindWindow(nil,Pchar(edit1.text));
if e <> 0
 then

 unfreeze_flag:=1;
 unfreeze:=$B0;
 GetWindowThreadProcessId(e,@ProcessId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
 WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
 WriteProcessMemory(hProcess, ptr($00420205), @unfreeze_flag, 1, BC);

 GetWindowThreadProcessId(e,@ProcessId);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
If  (e > 0) then
try
ReadProcessMemory (hProcess, Pointer($A571E0), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$1C), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$34), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$494), @WHP, sizeof(WHP), NoB);
 HP := Integer(WHP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4DC), @WHPMax, sizeof(WHPMax), NoB);
 HPMax := Integer(WHPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$498), @WMP, sizeof(WMP), NoB);
 MP := Integer(WMP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4E0), @WMPMax, sizeof(WMPMax), NoB);
 MPMax := Integer(WMPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$040), @wkz, sizeof(wkz), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$03C), @wky, sizeof(wky), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$044), @wkx, sizeof(wkx), NoB);
y := FloatToStr((wky + 4000) / 10); y := Copy(y, 1, Pos(',', y) - 1);
x := FloatToStr((wkx + 5500) / 10); x := Copy(x, 1, Pos(',', x) - 1);
Z := FloatToStr((wkz) / 10); Z := Copy(Z, 1, Pos(',', Z) - 1);
Edit1.text := IntToStr(HP);
Edit2.text := IntToStr(MP);
Gauge1.Progress := round(HP * 100 / HPMax);
Gauge2.Progress := round(MP * 100 / MPMax);
label7.caption :=  x + ' ' + y + ' ' + z;
PostMessage(e,WM_KEYDOWN,$00000032,$00020001);
PostMessage(e,WM_KEYDOWN,$00000033,$00020001);
if  (Gauge4.Progress ) < 60
 then
 PostMessage (e, WM_KEYDOWN, VK_F3, 0) ;



 r:=FindWindow(nil,Pchar(edit1.text));
if r <> 0
 then

 unfreeze_flag:=1;
 unfreeze:=$B0;
 GetWindowThreadProcessId(r,@ProcessId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
 WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
 WriteProcessMemory(hProcess, ptr($00420205), @unfreeze_flag, 1, BC);


 GetWindowThreadProcessId(r,@ProcessId);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
If  (r > 0) then
try
ReadProcessMemory (hProcess, Pointer($A571E0), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$1C), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$34), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$494), @WHP, sizeof(WHP), NoB);
 HP := Integer(WHP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4DC), @WHPMax, sizeof(WHPMax), NoB);
 HPMax := Integer(WHPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$498), @WMP, sizeof(WMP), NoB);
 MP := Integer(WMP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4E0), @WMPMax, sizeof(WMPMax), NoB);
 MPMax := Integer(WMPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$040), @wkz, sizeof(wkz), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$03C), @wky, sizeof(wky), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$044), @wkx, sizeof(wkx), NoB);
y := FloatToStr((wky + 4000) / 10); y := Copy(y, 1, Pos(',', y) - 1);
x := FloatToStr((wkx + 5500) / 10); x := Copy(x, 1, Pos(',', x) - 1);
Z := FloatToStr((wkz) / 10); Z := Copy(Z, 1, Pos(',', Z) - 1);
Edit1.text := IntToStr(HP);
Edit2.text := IntToStr(MP);
Gauge1.Progress := round(HP * 100 / HPMax);
Gauge2.Progress := round(MP * 100 / MPMax);
label8.caption :=  x + ' ' + y + ' ' + z;
PostMessage(r,WM_KEYDOWN,$00000032,$00020001);
PostMessage(r,WM_KEYDOWN,$00000033,$00020001);
if  (Gauge5.Progress ) < 60
 then
 PostMessage (r, WM_KEYDOWN, VK_F3, 0) ;


 t:=FindWindow(nil,Pchar(edit1.text));
if t <> 0
 then

 unfreeze_flag:=1;
 unfreeze:=$B0;
 GetWindowThreadProcessId(t,@ProcessId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
 WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
 WriteProcessMemory(hProcess, ptr($00420205), @unfreeze_flag, 1, BC);

 GetWindowThreadProcessId(t,@ProcessId);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
If  (t > 0) then
try
ReadProcessMemory (hProcess, Pointer($A571E0), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$1C), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$34), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$494), @WHP, sizeof(WHP), NoB);
 HP := Integer(WHP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4DC), @WHPMax, sizeof(WHPMax), NoB);
 HPMax := Integer(WHPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$498), @WMP, sizeof(WMP), NoB);
 MP := Integer(WMP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4E0), @WMPMax, sizeof(WMPMax), NoB);
 MPMax := Integer(WMPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$040), @wkz, sizeof(wkz), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$03C), @wky, sizeof(wky), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$044), @wkx, sizeof(wkx), NoB);
y := FloatToStr((wky + 4000) / 10); y := Copy(y, 1, Pos(',', y) - 1);
x := FloatToStr((wkx + 5500) / 10); x := Copy(x, 1, Pos(',', x) - 1);
Z := FloatToStr((wkz) / 10); Z := Copy(Z, 1, Pos(',', Z) - 1);
label2.Caption:=inttostr(HP);
label3.Caption:=inttostr(HP);
Gauge1.Progress := round(HP * 100 / HPMax);
Gauge2.Progress := round(MP * 100 / MPMax);
label4.caption :=  x + ' ' + y + ' ' + z;
PostMessage(t,WM_KEYDOWN,$00000032,$00020001);
PostMessage(t,WM_KEYDOWN,$00000033,$00020001);
if  (Gauge6.Progress ) < 60
 then
 PostMessage (t, WM_KEYDOWN, VK_F3, 0) ;
 except
  end;
  end.
а ошибка всёравно остаются, unfreeze ещё не уберал, т.к. программа не запускается и не посмотреть,что будет работать,а что нет
  Ответить с цитированием
Старый 19.05.2012, 08:49   #4
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
 
По умолчанию Re: не закрываются блоки и не начинается новая функция

Код:
....
procedure TForm1.Timer1Timer(Sender: TObject);
const
 unfreeze=$B0;
begin{1}
 v:=FindWindow(nil,Pchar(edit1.text));
if v <> 0 then
 GetWindowThreadProcessId(v,@ProcessId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
  ReadProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
if unfreeze={флаг замороженного окна ?} then
begin {2}
WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
end;{2}

If  (v > 0) then
try
 begin{3}
  ReadProcessMemory (hProcess, Pointer($A571E0), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$1C), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$34), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$494), @WHP, sizeof(WHP), NoB);
 HP := Integer(WHP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4DC), @WHPMax, sizeof(WHPMax), NoB);
 HPMax := Integer(WHPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$498), @WMP, sizeof(WMP), NoB);
 MP := Integer(WMP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4E0), @WMPMax, sizeof(WMPMax), NoB);
 MPMax := Integer(WMPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$040), @wkz, sizeof(wkz), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$03C), @wky, sizeof(wky), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$044), @wkx, sizeof(wkx), NoB);
 y := FloatToStr((wky + 4000) / 10); y := Copy(y, 1, Pos(',', y) - 1);
 x := FloatToStr((wkx + 5500) / 10); x := Copy(x, 1, Pos(',', x) - 1);
 Z := FloatToStr((wkz) / 10); Z := Copy(Z, 1, Pos(',', Z) - 1);
 Edit1.text := IntToStr(HP);
 Edit2.text := IntToStr(MP);
 Gauge1.Progress := round(HP * 100 / HPMax);
 Gauge2.Progress := round(MP * 100 / MPMax);
 label4.caption :=  x + ' ' + y + ' ' + z;
 PostMessage(v,WM_KEYDOWN,$00000032,$00020001);
 PostMessage(v,WM_KEYDOWN,$00000033,$00020001);
if  (Gauge1.Progress ) < 60 then
 PostMessage (v, WM_KEYDOWN, VK_F3, 0) ;
end;{3}
finally
closehandle(v);  
end;
end;{1}
попробуй запустить только это (зачем тебе 6 раз одно и тоже запускать(писать !!!!!!!!!!!!!!)
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters

Последний раз редактировалось zaparca; 19.05.2012 в 08:55.
  Ответить с цитированием
Пользователь сказал cпасибо:
Meg(0) (19.05.2012)
Старый 19.05.2012, 15:08   #5
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: не закрываются блоки и не начинается новая функция

zaparca, мне надо считать информацию с 6-ти разных окон,вот на каждое и пишу
  Ответить с цитированием
Старый 19.05.2012, 22:08   #6
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
 
По умолчанию Re: не закрываются блоки и не начинается новая функция

Цитата:
Сообщение от Meg(0)Посмотреть сообщение
с 6-ти разных окон,вот на каждое и пишу

но у тебя везде
Код:
v:=FindWindow(nil,Pchar(edit1.text));
т.е. получается программа видит только одно окно
? ты их за ранее переименовываешь ?
или edit1.text='Perfect word'

Код:
var
  Form1: TForm1;
W_n:integer;
....

Const
W_n=1;

....

Function NamePW(Wind_num:integer):string;
begin 
If Wind_num>6 then begin Wind_num:=1; end;
 Case Wind_num of
 1: NamePW:='Обор';{Имена можеш по своему усмотрению написать}
2: NamePW:='Друль';
3: NamePW:='Син';{либо сделать выбор окон из :TComboBox}
4: NamePW:='Вар';{NamePW:=ComboBox4.text;}
5: NamePW:='Маг';{Как то так}
6: NamePW:='Прист';
end;
end;
......

procedure TForm1.Timer1Timer(Sender: TObject);

........
Name_Wind:=NamePW(W_n);
v:=FindWindow(nil,Pchar(Name_Wind{String}));

....
finally
closehandle(v);  
end;
W_n:=W_n+1;
end;
попробуй так надеюсь разберешься что куда поставить
но тут окна надо переименовывать за ранее
получится один тот же код на несколько окон
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters

Последний раз редактировалось zaparca; 19.05.2012 в 22:11.
  Ответить с цитированием
Старый 19.05.2012, 22:24   #7
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: не закрываются блоки и не начинается новая функция

я просто окна переименовываю после запуска программы из эдитов разных и и разные буквы присваиваю разным эдитам
каждому оку присваивается своё имя и своя буква:

Код:
v:=FindWindow(nil,Pchar(edit1.text))
q:=FindWindow(nil,Pchar(edit2.text));
w:=FindWindow(nil,Pchar(edit3.text));
e:=FindWindow(nil,Pchar(edit4.text));
r:=FindWindow(nil,Pchar(edit5.text));
t:=FindWindow(nil,Pchar(edit6.text));
;
Цитата:
Сообщение от zaparcaПосмотреть сообщение
Код:
var
  Form1: TForm1;
W_n:integer;
....

Const
W_n=1;

....

Function NamePW(Wind_num:integer):string;
begin 
If Wind_num>6 then begin Wind_num:=1; end;
 Case Wind_num of
 1: NamePW:='Обор';{Имена можеш по своему усмотрению написать}
2: NamePW:='Друль';
3: NamePW:='Син';{либо сделать выбор окон из :TComboBox}
4: NamePW:='Вар';{NamePW:=ComboBox4.text;}
5: NamePW:='Маг';{Как то так}
6: NamePW:='Прист';
end;
end;
......

procedure TForm1.Timer1Timer(Sender: TObject);

........
Name_Wind:=NamePW(W_n);
v:=FindWindow(nil,Pchar(Name_Wind{String}));

....
finally
closehandle(v);  
end;
W_n:=W_n+1;
end;
попробуй так надеюсь разберешься что куда поставить
но тут окна надо переименовывать за ранее
получится один тот же код на несколько окон


а смысл этого,не пойму,чем это поможет?

мне надо,что б одновременно в 6 окно действие отправлялось


а...всё,понял чего ошибка была... except надо было писать в конце каждого блока... а я написал просто один раз в конце..(

Последний раз редактировалось Meg(0); 19.05.2012 в 23:04.
  Ответить с цитированием
Старый 20.05.2012, 07:53   #8
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 07.10.2010
Сообщений: 21
Популярность: 90
Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
 
По умолчанию Re: не закрываются блоки и не начинается новая функция

Цитата:
Сообщение от Meg(0)Посмотреть сообщение
а смысл этого,не пойму,чем это поможет?

ну
во 1 код короче
во 2 в если использовать
Код:
...
TPersInfoThr = class(TThread)
 protected
  procedure Execute; override;
 end; 

...
var
...
PersInfoThr:TPersInfoThr;
...

Function NamePW(Wind_num:integer):string;
begin 
If Wind_num>6 then begin Wind_num:=1; end;
 Case Wind_num of
 1: NamePW:=edit1.text;{Имена можеш по своему усмотрению написать}
2: NamePW:=edit2.text;
3: NamePW:=edit3.text;{либо сделать выбор окон из :TComboBox}
4: NamePW:=edit4.text;{NamePW:=ComboBox4.text;}
5: NamePW:=edit5.text;{Как то так}
6: NamePW:=edit6.text;
end;
end;

procedure TPersInfoThr.Execute;
const
 unfreeze=$B0;
begin{1}
 Name_Wind:=NamePW(W_n);
v:=FindWindow(nil,Pchar(Name_Wind{String}));
if v <> 0 then
 GetWindowThreadProcessId(v,@ProcessId);
 hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
  ReadProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
if unfreeze={флаг замороженного окна ?} then
begin {2}
WriteProcessMemory(hProcess, ptr($00420204), @unfreeze, 1, BC);
end;{2}

If  (v > 0) then
try
 begin{3}
  ReadProcessMemory (hProcess, Pointer($A571E0), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$1C), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$34), @BUM, sizeof(BUM), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$494), @WHP, sizeof(WHP), NoB);
 HP := Integer(WHP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4DC), @WHPMax, sizeof(WHPMax), NoB);
 HPMax := Integer(WHPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$498), @WMP, sizeof(WMP), NoB);
 MP := Integer(WMP);
 ReadProcessMemory (hProcess, Pointer(BUM+$4E0), @WMPMax, sizeof(WMPMax), NoB);
 MPMax := Integer(WMPMax);
 ReadProcessMemory (hProcess, Pointer(BUM+$040), @wkz, sizeof(wkz), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$03C), @wky, sizeof(wky), NoB);
 ReadProcessMemory (hProcess, Pointer(BUM+$044), @wkx, sizeof(wkx), NoB);
 y := FloatToStr((wky + 4000) / 10); y := Copy(y, 1, Pos(',', y) - 1);
 x := FloatToStr((wkx + 5500) / 10); x := Copy(x, 1, Pos(',', x) - 1);
 Z := FloatToStr((wkz) / 10); Z := Copy(Z, 1, Pos(',', Z) - 1);
 Edit1.text := IntToStr(HP);
 Edit2.text := IntToStr(MP);
 Gauge1.Progress := round(HP * 100 / HPMax);
 Gauge2.Progress := round(MP * 100 / MPMax);
 label4.caption :=  x + ' ' + y + ' ' + z;
 PostMessage(v,WM_KEYDOWN,$00000032,$00020001);
 PostMessage(v,WM_KEYDOWN,$00000033,$00020001);
if  (Gauge1.Progress ) < 60 then
 PostMessage (v, WM_KEYDOWN, VK_F3, 0) ;
end;{3}
finally
closehandle(v);  
end;
W_n:=W_n+1;
end;{1}

procedure TForm1.Button1Click(Sender: TObject);
begin
 if Button1.Caption = 'Stop' then
  begin
   PersInfoThr.Terminate;
   Button1.Caption := 'Start';
   Exit;
  end;
 PersInfoThr := TPersInfoThr.Create(False);
 Button1.Caption := 'Stop';
end;
мне кажется как-то б-бб-бб-ббб-быстрее будет
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Информация] Начинается новая эпоха знаний eveldead DotA Allstars 1 20.01.2012 18:30
[Информация] !!!Новая Удобная Функция от БП!!! =loyal= Общение и обсуждение 11 19.11.2011 18:42
Новая функция в darkorbit dimon174 Общение и обсуждение 3 04.08.2011 23:28

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 06:01.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net