Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 4, 2010 21:28:51

python4ik
От:
Зарегистрирован: 2010-01-05
Сообщения: 251
Репутация: +  0  -
Профиль   Отправить e-mail  

эмуляция

Конечно уже давно скачивал. Пробовал даже так: сначало установил Питон 1.4.5 в память телефона, а тот модуль keypress.sis как раз и устанавливается только в память телефона, так вот, установилось номально, находит Питон keypress. Но, как я уже помечал, не работает, выходит вообще из консоли. А потом пробовал также установить Питон 1.9.6 в память телефона. После установки keypress.sis Питон его не находит, потому что он в формате PYD, а ему надо формат pyc



Офлайн

#2 Авг. 5, 2010 09:35:54

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

эмуляция

python4ik
После установки keypress.sis Питон его не находит, потому что он в формате PYD, а ему надо формат pyc
ну что за бред… pyd это расширения питона, написанные на С.
Для 1.9.6 нужна своя версия keypress, посмотри по ссылке, которую я привел. И не забывай все подписать, так как для перехвата нажатий нужны более расширенные капабилити.



Офлайн

#3 Авг. 5, 2010 10:02:04

python4ik
От:
Зарегистрирован: 2010-01-05
Сообщения: 251
Репутация: +  0  -
Профиль   Отправить e-mail  

эмуляция

Вот он код keypress, откопал:

#include "Python.h"
#include "symbian_python_ext_util.h"
#include <e32keys.h>
#include <w32std.h>


extern "C" PyObject *
keypress_simulate_keymenu(PyObject* /*self*/)
{

RWsSession ws;
TKeyEvent key;
ws.Connect();

key.iCode = EKeyDevice1;
key.iScanCode = EStdKeyDevice1;
ws.SimulateKeyEvent(key);
ws.Close();
//Simulates key press on right menu key, for other keys see e32keys.h

return Py_BuildValue("i", 1);

}

/**
State of modifier keys and pointing device. Modifier keys are defined in TEventModifier.
TUint iModifiers;

Count of auto repeats generated.
0 means an event without repeats. 1 or more means "this many auto repeat events".
It is normal to ignore this value and treat it as a single event.
TInt iRepeats;
*/

extern "C" PyObject *
keypress_simulate_key(PyObject* /*self*/, PyObject *args)
{
TInt error;
int key_code;
int scan_code;

RWsSession ws;
TKeyEvent key;

if (!PyArg_ParseTuple(args, "ii", &key_code, &scan_code))
return NULL;

ws.Connect();

key.iCode = key_code;
key.iScanCode = scan_code;

Py_BEGIN_ALLOW_THREADS;
TRAP(error,ws.SimulateKeyEvent(key);ws.Close(););
Py_END_ALLOW_THREADS;
ws.Close();

if (error)
{
return SPyErr_SetFromSymbianOSErr(error);
}

return Py_BuildValue("i", 1);

}

extern "C" PyObject *
keypress_simulate_key3(PyObject* /*self*/, PyObject *args)
{
TInt error;
int key_code;
int scan_code;
int modifiers;

RWsSession ws;
TKeyEvent key;

if (!PyArg_ParseTuple(args, "iii", &key_code, &scan_code,&modifiers))
return NULL;

ws.Connect();

key.iCode = key_code;
key.iScanCode = scan_code;
key.iModifiers = modifiers;

Py_BEGIN_ALLOW_THREADS;
TRAP(error,ws.SimulateKeyEvent(key);ws.Close(););
Py_END_ALLOW_THREADS;

if (error)
{
return SPyErr_SetFromSymbianOSErr(error);
}

return Py_BuildValue("i", 1);

}

extern "C" {

static const PyMethodDef keypress_methods[] = {
{"simulate_keyMenu", (PyCFunction)keypress_simulate_keymenu, METH_NOARGS, NULL},
{"simulate_key", (PyCFunction)keypress_simulate_key, METH_VARARGS, NULL },
{"simulate_key_mod", (PyCFunction)keypress_simulate_key3, METH_VARARGS, NULL },

{NULL, NULL} /* sentinel */
};

DL_EXPORT(void) initkeypress(void)
{
PyObject *m;

m = Py_InitModule("keypress", (PyMethodDef*)keypress_methods);
}
} /* extern "C" */

GLDEF_C TInt E32Dll(TDllReason)
{
return KErrNone;
}
Подскажите, а есть прога? чтобы переделать этот код на язык Питона :) Как мне на его глянуть из Питона?



Офлайн

#4 Авг. 5, 2010 10:38:39

python4ik
От:
Зарегистрирован: 2010-01-05
Сообщения: 251
Репутация: +  0  -
Профиль   Отправить e-mail  

эмуляция

Ништяк.

Для 1.9.6 нужна своя версия keypress
Работает на 1.9.6, но Питон 1.4.5 всё равно ругается, тоесть после ввода кода например keypress.simulate_key(49,49) просто пишет что Питон закр. выходит вообще из консоли, но уже не важно это. На 1.9.6 пашет.
И ещё вопрос. Почему на эмуляторе смартфона СДК не устанавливается ни один сис. Тоесть Питон поставлен в нём, методом разброса попапкам файлов, Питон работает. После начала установки любого сис пишет сразу - File corrupted, хотя сис нормальный!
И всётаки интересует исходник keypress сишный. Как его на Питон переделать?



Офлайн

#5 Авг. 5, 2010 11:36:17

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

эмуляция

python4ik
Подскажите, а есть прога? чтобы переделать этот код на язык Питона :) Как мне на его глянуть из Питона?
facepalm.jpg



Офлайн

#6 Авг. 5, 2010 12:14:19

python4ik
От:
Зарегистрирован: 2010-01-05
Сообщения: 251
Репутация: +  0  -
Профиль   Отправить e-mail  

эмуляция

что за facepalm.jpg ? Похоже на ссылку какую-то неработающую



Офлайн

#7 Авг. 5, 2010 20:40:12

python4ik
От:
Зарегистрирован: 2010-01-05
Сообщения: 251
Репутация: +  0  -
Профиль   Отправить e-mail  

эмуляция

Реально? ли вообще разобраться самостоятельно в сишном коде. Вижу тот исходник немного похож с Питоном! Допустим может какая-то прога есть как-бы инструкция к Сишному коду. Что-то похожее на IDA есть? А то с меня и Ассемблера хватает, чтобы ещё учить С!



Офлайн

#8 Авг. 5, 2010 21:24:03

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

эмуляция

python4ik
Реально? ли вообще разобраться самостоятельно в сишном коде. Вижу тот исходник немного похож с Питоном!
ну что тут скажешь….
http://ru.wikipedia.org/wiki/Си_(язык_программирования)



Офлайн

#9 Авг. 7, 2010 10:41:21

python4ik
От:
Зарегистрирован: 2010-01-05
Сообщения: 251
Репутация: +  0  -
Профиль   Отправить e-mail  

эмуляция

Не понял! А что, Ассемблер не язык программирования ,Э?
Или понял, что ничего не понял :)
Раз уж зашла тема, а как можно Ассемблер использовать с Питоном вместе? Кроме corepy.



Отредактировано (Авг. 8, 2010 00:17:13)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version