Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2014, 17:50   #1
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию Вставка текста по курсору

Здравствуйте, имеется приложение в которое надо вставить текст из буффера. Если конкретно то это окно сообщений квип2012. Делаю плагин для загрузки фоток на фотохостинги драг&дропом в окно сообщения. Плагин готов, но код срабатывает на всех вкладках

Код:
  function EnumClasses(HWND:THandle;lParam:Integer):BOOL;stdcall;
  var buf:array [0..255] of Char;
  begin
    Result:=true;
    GetClassName(HWND,buf,256);
    if pos('TInfuRichViewEdit',buf)<>0 then
    begin
      //GetWindowText(hwnd,buf,256);
      //if pos(curruin,buf)<>0 then
      begin
        SendMessage(HWND,WM_PASTE,0,0);
        Result:=false;
      end;
    end;
  end;
Если убрать result:=false то текст идёт во все окна ввода на форме, иначе только первому контакту в открытом окне сообщений, но я могу отправлять файл не ему а контакту ниже. Мне нужно получить хендл активного окна ввода (в котором курсор мигает). Надеюсь в неактивных вкладках он не мигает). Или если есть ваше решение - буду рад. Хелп

Перетащил я на вкладку с ним:



А ушло ему





На форуме квипа меня пошлют подальше, ибо запрещают плагинам такие методы работы с окнами и отправку сообщений контактам, но плагин я делаю для себя лично и не собираюсь его никому выкладывать
Здравствуйте

Последний раз редактировалось NEoMASTERR; 04.11.2014 в 17:57.
NEoMASTERR вне форума Ответить с цитированием
Старый 04.11.2014, 17:58   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Думается API чата позволяет без изврата получить подобную информацию..
Человек_Борща вне форума Ответить с цитированием
Старый 04.11.2014, 17:59   #3
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

А хотя проблема решена :D

Код:
function EnumClasses(HWND:THandle;lParam:Integer):BOOL;stdcall;
  var buf:array [0..255] of Char;
  begin
    Result:=true;
    GetClassName(HWND,buf,256);
    if IsWindowVisible(hwnd) then                          // <---- РЕШЕНО
    if pos('TInfuRichViewEdit',buf)<>0 then
    begin
      //GetWindowText(hwnd,buf,256);
      //if pos(curruin,buf)<>0 then
      begin
        SendMessage(HWND,WM_PASTE,0,0);
        Result:=false;
      end;
    end;
  end;
Здравствуйте
NEoMASTERR вне форума Ответить с цитированием
Старый 04.11.2014, 18:00   #4
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Думается API чата позволяет без изврата получить подобную информацию..
Перерыл всё сдк, нет там получения хендла активного окна ввода)
Напрямую там нельзя работать из плагина (официально)
Здравствуйте
NEoMASTERR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка текста praid92 C# (си шарп) 2 28.10.2011 17:27
Вставка текста в textarea Anfall JavaScript, Ajax 9 08.03.2011 00:18
Копирование и вставка текста Lemo Общие вопросы Delphi 1 01.07.2010 21:13
Вставка текста Pedro Общие вопросы Delphi 4 27.01.2008 10:27
! Вставка текста ! ♠STO♠ Общие вопросы Delphi 2 30.08.2007 17:05