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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2011, 20:43   #11
JetUS
Пользователь
 
Аватар для JetUS
 
Регистрация: 23.09.2009
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Der_G()RuNu(h Посмотреть сообщение
Пепел Феникса, этот вариант тоже не прокатил...
Ты для начала без сети попробуй всё это передать, локально. А потом уже по сети работай.
JetUS вне форума Ответить с цитированием
Старый 22.06.2011, 13:31   #12
Der_G()RuNu(h
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 37
По умолчанию

Цитата:
Сообщение от JetUS Посмотреть сообщение
Ты для начала без сети попробуй всё это передать, локально. А потом уже по сети работай.
при чем тут это?

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
показывайте как делали.
Код:
function ASCIItoVK(code: integer): Cardinal;
function ASCIItoVK(code: integer): Cardinal;
begin
  Result:= 0;
  if Code=8 then
    Result:= VK_BACK;
  if Code=9 then
    Result:= VK_TAB;
и так для каждой клавиши, кроме цифр и букв - там вообще непонятно как делать...

Последний раз редактировалось Stilet; 22.06.2011 в 14:55.
Der_G()RuNu(h вне форума Ответить с цитированием
Старый 22.06.2011, 14:36   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
функция для преобразования символа в вирт-код клавиши
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.06.2011, 13:15   #14
Der_G()RuNu(h
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
функция для преобразования символа в вирт-код клавиши
не понял... где она она там? точнее какая?
Der_G()RuNu(h вне форума Ответить с цитированием
Старый 23.06.2011, 19:29   #15
Der_G()RuNu(h
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 37
По умолчанию

ничего не работает... пробовал и с той функцией...
Der_G()RuNu(h вне форума Ответить с цитированием
Старый 23.06.2011, 19:37   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

странный вопрос про функцию, там итак она одна...

показывайте весь код эмуляции нажатия клавиши.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.06.2011, 21:13   #17
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка Прогон калькулятора :)

Это ли, не?
Код:
...
procedure presskey(key:word);
begin
 keybd_event(key,0,0,0);
end;
procedure releasekey(key:word);
begin
 keybd_event(key,0,KEYEVENTF_KEYUP,0);
end;
procedure clickkey(key:word);
begin
 keybd_event(key,0,0,0);
 keybd_event(key,0,KEYEVENTF_KEYUP,0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShellExecute(handle,'open','calc',nil,nil,SW_RESTORE);
 Sleep(1000);
 clickkey(VK_MENU);
 Sleep(1000);
 clickkey(VK_RIGHT);
 Sleep(1000);
 clickkey(VK_DOWN);
 Sleep(1000);
 clickkey(VK_DOWN);
 Sleep(1000);
 clickkey(VK_RETURN);
 Sleep(1000);
 clickkey(VK_NUMPAD9);
 Sleep(1000);
 clickkey(VK_NUMPAD9);...
С Word'ом делал аналогично - даже регистр чётко работает
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 23.06.2011, 21:18   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

почти оно, но у вас не реализовано для букв.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.06.2011, 21:22   #19
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка Прогон Word'a

Код:
...
procedure presskey(key:word);
begin
 keybd_event(key,0,0,0);
end;
procedure releasekey(key:word);
begin
 keybd_event(key,0,KEYEVENTF_KEYUP,0);
end;
procedure clickkey(key:word);
begin
 keybd_event(key,0,0,0);
 keybd_event(key,0,KEYEVENTF_KEYUP,0);
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
 clickkey(VK_RETURN);
end;

procedure sword(s:string);
var i:integer;
begin
 for i:=1 to length(s) do
  begin
   if i= 1 then
    begin
     Sleep(500);
     presskey(VK_SHIFT);
    end
    else
    releasekey(VK_SHIFT);
   Sleep(500);
   clickkey(ord(s[i]));
  end;
end;

procedure down(i:integer);
begin
 for i:=1 to i do
  begin
   Sleep(500);
   clickkey(VK_DOWN);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Sleep(500);
 ShellExecute(handle,nil,'winword.exe',nil,nil,SW_RESTORE);
 Sleep(500);
 sword('DBHEC DBHEC DBHEC DBHEC DBHEC DBHEC DBHEC DBHEC DBHEC DBHEC DBHEC');
 Sleep(500);
 clickkey(VK_RETURN);
 Sleep(500);
 presskey(VK_MENU);
 Sleep(500);
 clickkey(VK_SHIFT);
 Sleep(500);
 releasekey(VK_MENU);
 sword('IF SAVE THEN BORODA');
 presskey(VK_MENU);
 Sleep(500);
 clickkey(VK_F4);
 Sleep(500);...
Если нужно - прикреплю все примеры архивом.
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 24.06.2011, 12:25   #20
Der_G()RuNu(h
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
показывайте весь код эмуляции нажатия клавиши.
Код:
function ASCIItoVK(code: integer): Cardinal;
begin
  Result:= 0;
  if Code=8 then
    Result:= VK_BACK;
  if Code=9 then
    Result:= VK_TAB;
  if Code=13 then
    Result:= VK_RETURN;
  if Code=16 then
    Result:= VK_SHIFT;
  if Code=17 then
    Result:= VK_CONTROL;
  if Code=18 then
    Result:= VK_MENU;
  if Code=19 then
    Result:= VK_PAUSE;
  if Code=20 then
    Result:= VK_CAPITAL;
  if Code=27 then
    Result:= VK_ESCAPE;
  if Code=32 then
    Result:= VK_SPACE;
  if Code=33 then
    Result:= VK_PRIOR;
  if Code=34 then
    Result:= VK_NEXT;
.....
procedure TMainForm.IdTCPServer1Execute(AThread: TIdPeerThread);
var
  strText: string;
  width, height, i: integer;
  dc: HDC;
  xx,yy: integer;
  Pt: TPoint;
  f: TextFile;
  key: integer;
  ch: char;
  Inp: TInput;
  //s: string;
begin
 Inp.Itype:= INPUT_KEYBOARD;
      Inp.ki.wVk:= MapVirtualKey(key, 0);
      Inp.ki.dwFlags:= 0;
      SendInput(1, Inp, SizeOf(Inp));
      Inp.Itype:= INPUT_KEYBOARD;
      Inp.ki.wVk:= MapVirtualKey(key, 0);
      Inp.ki.dwFlags:= KEYEVENTF_KEYUP;
Der_G()RuNu(h вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие кнопок мыши в чужом приложении Der_G()RuNu(h Работа с сетью в Delphi 16 25.05.2011 13:09
как узнать произошло ли нажатие на кнопку в чужом окне(приложении) Dim969 Общие вопросы C/C++ 1 18.12.2010 15:05
Долгое нажатие клавиши в KeyDown как одно нажатие marina15056 Общие вопросы Delphi 7 16.08.2009 00:22
Окно в чужом приложении? Volkogriz Общие вопросы Delphi 3 10.02.2009 18:22
Не срабатывает программное нажатие кнопки в чужом окне alxsev Общие вопросы Delphi 3 29.01.2009 20:32