Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Контроль приложения 
:(
    Опции темы
Ragnarek
Дата 4.12.2010, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2007

Репутация: нет
Всего: нет



Не знаю правильно ли назвал...но суть вот в чем:
Есть программа для кассира...примитивная до идиотизма...поле для ввода счета, суммы, кнопки положить и снять. Но! отсутствует возможность посмотреть отчет по проведенным операциям на счете. Достучаться до начальника консерватора невозможно...он считает что раз так работают везде...то так и должно быть. А кассиры на бумажке записывают каждую операцию, причем бывает что забывают, а потом получают по шапке за это)
Вопрос: 
Каким образом перехватить значения полей при нажатии кнопок? Ну и сохранить их в файл
Как узнать была ли нажата кнопка в окне?
--------------------------------------------------------------
Так...я понял что без хуков мне не обойтись. Значит мне нужно поставить хук на мышь? И как определить кнопку на которую кликнули?
--------------------------------------------------------------
Говорю походу сам собой. Хук запилил на мышь, а вот как клавишу определить скажите мне?

Это сообщение отредактировал(а) Ragnarek - 4.12.2010, 18:23
PM MAIL   Вверх
Xenag
Дата 5.12.2010, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 51
Регистрация: 6.3.2010

Репутация: нет
Всего: нет



Мне кажется лучше переписать программу заново.

Вариант 2: Если программа работает с кассовым аппаратом, то можно спросить данные у него...

Людям доверять нельзя - они косячат.
PM   Вверх
Ragnarek
Дата 5.12.2010, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2007

Репутация: нет
Всего: нет



Там нет кассового аппарата...там просто программка...которая подключается к базе данных и вносит или снимает деньги со счетов. Функциональность ограничена дабы не забивать кассирам голову лишними проблемами, но может если в другом месте никто не забивает себе голову, то у нас наоборот. А начальник считает что на бумажке записать это плевое дело...и что вообще проблем никаких. Да и вообще он боится чего то менять. Поэтому заставить его попросить переписать программу нереально. 
PM MAIL   Вверх
Keeper89
Дата 5.12.2010, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Алгоритм действий таков:
1) Ставим хук на кнопки
2) При нажатии ищем поле с суммой
3) Берем значение и записываем в список (в зависимости от кнопки с плюсом или минусом)


--------------------
PM MAIL WWW   Вверх
Snowy
Дата 6.12.2010, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



А почему бы просто не спросить у базы, раз все операции туда заносятся...
PM MAIL   Вверх
Ragnarek
Дата 7.12.2010, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2007

Репутация: нет
Всего: нет



Мне кажется что проще будет написать еще одну программу которая будет вести отчет...и через нее все действия делать. На какую кнопку нажали я так и не нашел где узнать. Никто с таким не сталкивался) а как узнать что за база и как к ней подключиться? спросить у ее создателей) а они вряд ли мне скажут)
PM MAIL   Вверх
Ragnarek
Дата 7.12.2010, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2007

Репутация: нет
Всего: нет



Код

  begin
    app := GetForegroundWindow();
    d:=FindWindowEx(app,0,'TButton','Снять');
    if d <> 0 then
    begin

Реализовал вот так. Идем дальше. У меня на форме два поля с классом TEdit...значения у них разные. И все время меняются. Как мне узнать каждое из них?
----------------
Неправильно я реализовал =( условие выполняется независимо от нажатия кнопки =( помогите кто нибудь...и вообще мне кажется нужно перенести тему в общие вопросы хотя бы)
------------------------
Все...тупик =)
Код

if TMsg(Pointer(lParam)^).message = WM_LBUTTONDOWN then
    begin
    app:=GetForegroundWindow();
    d:=FindWindowEx(app,0,nil,'Внести');
    getcursorpos(cursor);
    hand:=WindowFromPoint(cursor);
    if d=0 then d:=777;
    if hand=0 then hand:=666;

    if d=hand then

     begin
      d1:=getwindow(app,GW_CHILD);
      sendmessage(d1, WM_SETTEXT, 0, longword(pchar('ываываыва')));
      d2:=getwindow(app,GW_HWNDNEXT);
      sendmessage(d2, WM_SETTEXT, 0, longword(pchar('фывафыафыа')));
      d3:=getwindow(app,GW_HWNDFirst);
      sendmessage(d3, WM_SETTEXT, 0, longword(pchar('aaaaaaaaa')));
      d4:=getwindow(app,GW_HWNDNEXT);

При таком вот методе поиска находится только один элемент в котором изменяется кэпшн...остальные остаются такими же =(

Это сообщение отредактировал(а) Ragnarek - 7.12.2010, 16:55
PM MAIL   Вверх
Ragnarek
Дата 7.12.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.3.2007

Репутация: нет
Всего: нет



Оказалось что нужные мне поля TsEdit находятся на Tpanel, как в таком случае надо искать?
Код

d4:=FindWindowEx(app,0,'TsPanel',nil);
d2:=FindWindowEx(d4,0,nil,'1248');

д2 не возвращает в данном случае ничего.
###...оказалось что у меня 2 панели =( что делать я уже ума не приложу...он находит первую панель но это видимо не та...а как найти вторую?

Это сообщение отредактировал(а) Ragnarek - 7.12.2010, 17:57
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0692 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.