Создание Эльфов : Эльфостроение : Форум

Страница 192 из 211: « 1 ... 188 189 190 191 [192] 193 194 195 196 ... 211 »

 Metaler:
08.11.11, 22:11
 Подскажите в чём проблема:
хотел использовать в эльфе функцию
Код:
StringInput_GetCursorPosition(GUI*, u16 pos, char _zero);

но при её вызове ребут. Написал отдельно эльф для проверки, вот часть кода, непосредственно использующего ф-ю:
Код: 

if(key==KEY_VOL_UP && mode==KBD_SHORT_PRESS && !(isKeylocked()) )                                                                        
     {
        u16 c_pos;
        wchar_t * src=new wchar_t[256];
        StringInput_GetCursorPosition( DispObject_GetGUI(Display_GetFocusedDispObject(0)), &c_pos, 0 );
        snwprintf(src, 255, L"%i", c_pos ); 
        MessageBox(EMPTY_TEXTID,TextID_Create(src,ENC_UCS2,TEXTID_ANY_LEN),NOIMAGE,1,0,0);
        delete src;
        return(-1);
      } 

так же при вызове ребут. При использовании, например
Код:
StringInput_GetStringAndLen( GUI*, wchar_t**, u16* );

всё нормально.
P.S.: Проверял на 3 телефонах.

 Joker XT:
08.11.11, 23:11
 из VEFa
Код: 
void EditFile_SetCursor(BOOK *MsgBxBook, GUI *gui_si)
{
  wchar_t *InputText;
  u16 len;
  StringInput_GetStringAndLen(gui_si, &InputText, &len);
  
  u16 current_cur_pos;
  char zero;
  StringInput_GetCursorPosition(gui_si, &current_cur_pos, &zero);
  
  second_strinp = CreateStringInputVA(0,
                      VAR_BOOK(MsgBxBook),
                      VAR_STRINP_MODE(IT_INTEGER),
                      VAR_OK_PROC(SetCursor_ActionOk),
                      VAR_PREV_ACTION_PROC(SetCursor_ActionBack),
                      VAR_STRINP_SET_INT_VAL(current_cur_pos),
                      VAR_STRINP_MIN_INT_VAL(0),
                      VAR_STRINP_MAX_INT_VAL(len),
                      0);
}


 IDOL1234:
25.11.11, 17:33
 Как сэмулировать нажатие клавиши?
Как сгенерировать эвент?

 Rc:
25.11.11, 18:37
 
IDOL1234 пишет:
Как сэмулировать нажатие клавиши?
Как сгенерировать эвент?

Переназначение клавиши - return (NEEDED_KEY) в кейхуке, но только для достаточно новых ревизий ЭП
Нажатие для конкретного disp_obj
Код:
DISP_OBJ_ONKEY_METHOD onmykey=DispObject_GetOnKey (Display_GetFocusedDispObject(0));
onmykey (Display_GetFocusedDispObject(0),NEEDED_KEY,0,0,0);
onmykey (Display_GetFocusedDispObject(0),NEEDED_KEY,0,0,3);

Не знаю, работает ли с современными ревизиями инклудов

Для ивентов кури функи UI_Event

 IDOL1234:
25.11.11, 19:18
 Спасибо большое!
А то я уже пытался генерировать эвент нажатия клавиши и ловить это нажатие кейхуком :-o
----
Скажите, можно ли как-нибудь отключить кейхук с ошибочным условием, из-за которого всегда возвращается (-1), без перезагрузки телефона?
----
Не.. То ли я туплю, то ли что-то не так.
Код: 
      if (x > 1000)
      {
         // MessageBox(EMPTY_TEXTID,STR("Hello Wordl!\n\nExample elf.."), NOIMAGE, 1, 500,NULL);
          //UI_Event( OPERATORKEY_PRESSED_EVENT );
        
           DISP_OBJ_ONKEY_METHOD onmykey=DispObject_GetOnKey (Display_GetFocusedDispObject(0));
           onmykey (Display_GetFocusedDispObject(0),KEY_LEFT,0,0,0);
           onmykey (Display_GetFocusedDispObject(0),KEY_LEFT,0,0,3);
        
      }

Месседж, если его раскомментировать, появляется, а кнопка не срабатывает. Я правильно заменил KEY_NEEDED на код клавиши?

[ Редактировано IDOL1234 в 25.11.11 19:30 ]

 SERGK393:
25.11.11, 19:57
 
IDOL1234 пишет:
Месседж, если его раскомментировать, появляется, а кнопка не срабатывает.

IDOL1234, Правильно, потому что он генерирует нажатие, когда мессадж в фокусе. Это тебе надо сначала клавиши сэмулировать, а потом вывести сообщение.

 IDOL1234:
25.11.11, 20:15
 Ненене, я его затем и закомментировал, чтобы такого не происходило. А до этого я его специально написал, чтобы проверить, срабатывает ли условие.
----
Можно ли получить текст из "чужого" поля ввода (Например, при редактировании sms) при помощи StringInput_GetStringAndLen?

[ Редактировано IDOL1234 в 25.11.11 20:32 ]

 Metaler:
26.11.11, 00:34
 IDOL1234, можно

 IDOL1234:
26.11.11, 20:42
 Так всё же, как сгенерировать нажатие на кнопку? Интересуют кнопки влево, вправо, вверх, вниз. Приведённый выше код почему-то не работает.

 Metaler:
27.11.11, 01:22
 IDOL1234, вот так примерно
Код: 
int MyKey(int key,int r1,int mode,LPARAM,DISP_OBJ*dispobj)

  if(key==KEY_DIGITAL_0+2 && mode==KBD_SHORT_PRESS)                                                                        
  {  
    return( KEY_UP );
  }
}

int main (void)
{
   ModifyKeyHook(MyKey,KEY_HOOK_ADD,NULL);
   return(0);

Страница 192 из 211: « 1 ... 188 189 190 191 [192] 193 194 195 196 ... 211 »

URL этой темы:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=2479&start=1910

© 2005-2018 supertrubka.org