Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

некая несовместимость функций в delphi XE3

-

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

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

Ответ
 
Опции темы
Старый 10.10.2013, 23:07   #1
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию некая несовместимость функций в delphi XE3

решил перекинуть проекты с 7ой делфи на XE3 перекинул значит столкнулся с порой нюансов ну например что функция чтения памяти пследнюю переменную имеет теперь там типа SIZE_T а не DWORD ну да ладно это нюансы..
проблема заключается во многим известной функции поиска окон...
Код:
Form3.Combobox1.Clear;
  Local_WID:=FindWindow(0,0);
  While (Local_WID<>0) do
    Begin
      GetClassName(Local_WID,@buf,100);
      if buf='ElementClient Window' then
        begin
          GetWindowThreadProcessId(Local_WID, @PID);
          hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
          flag := 0;
          ReadProcessMemory(hProcess, Pointer($00C38B44), @flag, 1, BytesCount);
          if flag = 1 then
            begin
              ReadProcessMemory(hProcess, Pointer(PW_GAMERUN_ADDR), @ipbuf, sizeof(ipbuf), BytesCount);
              ReadProcessMemory(hProcess, Pointer(ipbuf+$34), @ipbuf, sizeof(ipbuf), BytesCount);
              ReadProcessMemory (hProcess, Pointer(ipbuf+$634), @gtro, sizeof(gtro), BytesCount);
              ReadProcessMemory(hProcess, Pointer(ipbuf+$688), @ipbuf, sizeof(ipbuf), BytesCount);
              ReadProcessMemory(hProcess, Pointer(PW_BASE_ADDRESS), @lok, sizeof(lok), BytesCount);
              ReadProcessMemory(hProcess, Pointer(lok+$4C8), @lok, sizeof(lok), BytesCount);
                  ReadProcessMemory(hProcess, Pointer(ipbuf+$0), @n1234, sizeof(n1234), BytesCount);
                  form3.ComboBox1.Items.Add(n1234);
                  hwndl[i1+1]:=Local_WID;
                  inc(i1);
                  closehandle(hProcess);
                  hProcess:=0;
        end;
      Application.ProcessMessages;
      Local_WID:=GetNextWindow(Local_WID,GW_HWNDNEXT);
    end;
ну вроде при компиляции в delphi 7 на WIN XP! работает нормально окна ищет...
а вот delphi XE3 компилит так что XP окна не видит...как быть?
не знаю как правильно выдать запрос гуглу ибо там вообще относительно delphi xe3 найти что то сложно..
небольшое наблюдение...почему то окно пв в XP не имеет PID процесса...а в вин 7 имеет...

Последний раз редактировалось tianddu; 10.10.2013 в 23:09.
  Ответить с цитированием
Старый 10.10.2013, 23:32   #2
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

и не увидишь, я сам не понял в чем прикол, но чтение с памяти на XP в XE3 не поддерживается. последняя рабочая если не ошибаюсь просто XE. Не могу утверждать этого в XE4 и XE5 так как не пользовался ими. А XE2 и XE3 точно не поддерживаются
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 10.10.2013, 23:52   #3
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

почитал сейчас...пишут что может прокатить с GetClassNameW вместо GetClassName завтра будет комп с XP отпишусь работает или нет...
  Ответить с цитированием
Старый 11.10.2013, 00:13   #4
 Разведчик
Аватар для fds255
 
fds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известенfds255 скоро будет известен
Регистрация: 23.06.2012
Сообщений: 43
Популярность: 427
Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

Цитата:
Сообщение от tiandduПосмотреть сообщение
ну вроде при компиляции в delphi 7 на WIN XP! работает нормально окна ищет...
а вот delphi XE3 компилит так что XP окна не видит...как быть?

Я сначала также хотел адаптировать проги под XE3, но по той же причине снова вернулся на delphi 2010.
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).


Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Старый 11.10.2013, 00:29   #5
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

tianddu, так Class окна вроде бы и так нормально находит
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 11.10.2013, 01:48   #6
 Пехотинец
Аватар для ToRcH2565
 
ToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известен
Регистрация: 02.08.2009
Сообщений: 57
Популярность: 417
Сказал(а) спасибо: 12
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: некая несовместимость функций в delphi XE3

XE2 все работает) и окна ищет и процессы(кстати окна прошлый век, зачем?))
Проблема в W на конце функций, вызывайте или без буквы или с A

ps,
A=Ansi(xp и ниже)
W=Wide(Vista и выше, он же юникод.)
Без буквы = выбор стандартного для ОС(т.е. программа сама решит что ей звать W или A).
  Ответить с цитированием
Старый 11.10.2013, 08:31   #7
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

Цитата:
Сообщение от ToRcH2565Посмотреть сообщение
XE2 все работает) и окна ищет и процессы(кстати окна прошлый век, зачем?))
Проблема в W на конце функций, вызывайте или без буквы или с A

ps,
A=Ansi(xp и ниже)
W=Wide(Vista и выше, он же юникод.)
Без буквы = выбор стандартного для ОС(т.е. программа сама решит что ей звать W или A).

вот без буквыы и не катит...видать надо точно указать ей...
если окна это старый век то какую альтернативу предложите?
  Ответить с цитированием
Старый 11.10.2013, 09:28   #8
 Пехотинец
Аватар для _DVD_
 
_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе_DVD_ лучик света в грозовом небе
Регистрация: 17.09.2010
Сообщений: 66
Популярность: 701
Сказал(а) спасибо: 32
Поблагодарили 63 раз(а) в 46 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

Код:
...........................
HoldString: PChar;
    PID: Cardinal;
...........................

    GetMem(HoldString, 1024);
    try
      if (GetClassName(hWindow, HoldString, 1023) > 0) then
        if StrComp(HoldString, 'ElementClient Window') = 0 then
        // Нашли окно клиента
        begin
          GetWindowThreadProcessId(hWindow, @PID);
          if GetWindowText(hWindow, HoldString, 1023) > 0 then
            frmMain.cbProgram.Items.Add(String(HoldString))
.......................
по-старинке, но работает
год на ХЕ2. работает от ХР до 8ки
________________
© Mel
  Ответить с цитированием
Старый 12.10.2013, 17:07   #9
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

Цитата:
Сообщение от _DVD_Посмотреть сообщение
по-старинке, но работает
год на ХЕ2. работает от ХР до 8ки

XE3 не знает что такое StrComp ))
да и проблема будет с тем же GetClassName что то в нем не так...

Добавлено через 2 часа 15 минут
может у меня переменная buf не того типа...

Последний раз редактировалось tianddu; 12.10.2013 в 19:22. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 12.10.2013, 21:43   #10
 Рыцарь
Аватар для Sirioga
 
Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

Цитата:
Сообщение от tiandduПосмотреть сообщение
While (Local_WID<>0) do

Сколько такой цикл будет работать?
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Последний раз редактировалось Sirioga; 12.10.2013 в 21:47. Причина: лаги форума
  Ответить с цитированием
Старый 12.10.2013, 22:03   #11
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

Цитата:
Сколько такой цикл будет работать?

глаз не замечает)
  Ответить с цитированием
Старый 14.10.2013, 18:05   #12
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

так че нашли альтернативу? чтобы поиск работал и на XP
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 14.10.2013, 19:13   #13
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

нет.. заметил особенность... на delphi 7 всегда hprocess генерируется с числом 380.. в delphi XE и выше генерируется каждый раз разные цифры )
не работает конкретно функция GetClassName(Local_WID,@buf,100); неправильно копирует название окна... переехал на delphi 2010
  Ответить с цитированием
Старый 14.10.2013, 19:37   #14
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

о даже так. надо глянуть что в ней изменилось
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 14.10.2013, 22:37   #15
 Рыцарь
Аватар для Sirioga
 
Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(Sirioga сломал счётчик популярности :(
Регистрация: 19.11.2008
Сообщений: 385
Популярность: 13343
Сказал(а) спасибо: 124
Поблагодарили 217 раз(а) в 109 сообщениях
 
По умолчанию Re: некая несовместимость функций в delphi XE3

Цитата:
Сообщение от tiandduПосмотреть сообщение
не работает конкретно функция GetClassName(Local_WID,@buf,100); неправильно копирует название окна...

GetClassName WinAPI`шная же функция, как она может работать неправильно?
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некая проблема... smile33 Общение разработчиков 7 02.04.2013 16:54
[Статья] Использование Internet-функций Win32 API [Delphi] Tem1q Pascal/Delphi 0 06.12.2010 17:30

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net