Форум сайта python.su
Конечно уже давно скачивал. Пробовал даже так: сначало установил Питон 1.4.5 в память телефона, а тот модуль keypress.sis как раз и устанавливается только в память телефона, так вот, установилось номально, находит Питон keypress. Но, как я уже помечал, не работает, выходит вообще из консоли. А потом пробовал также установить Питон 1.9.6 в память телефона. После установки keypress.sis Питон его не находит, потому что он в формате PYD, а ему надо формат pyc
Офлайн
python4ikну что за бред… pyd это расширения питона, написанные на С.
После установки keypress.sis Питон его не находит, потому что он в формате PYD, а ему надо формат pyc
Офлайн
Вот он код 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;
}
Офлайн
Ништяк.
Для 1.9.6 нужна своя версия keypressРаботает на 1.9.6, но Питон 1.4.5 всё равно ругается, тоесть после ввода кода например keypress.simulate_key(49,49) просто пишет что Питон закр. выходит вообще из консоли, но уже не важно это. На 1.9.6 пашет.
Офлайн
python4ikfacepalm.jpg
Подскажите, а есть прога? чтобы переделать этот код на язык Питона :) Как мне на его глянуть из Питона?
Офлайн
что за facepalm.jpg ? Похоже на ссылку какую-то неработающую
Офлайн
Реально? ли вообще разобраться самостоятельно в сишном коде. Вижу тот исходник немного похож с Питоном! Допустим может какая-то прога есть как-бы инструкция к Сишному коду. Что-то похожее на IDA есть? А то с меня и Ассемблера хватает, чтобы ещё учить С!
Офлайн
python4ikну что тут скажешь….
Реально? ли вообще разобраться самостоятельно в сишном коде. Вижу тот исходник немного похож с Питоном!
Офлайн
Не понял! А что, Ассемблер не язык программирования ,Э?
Или понял, что ничего не понял :)
Раз уж зашла тема, а как можно Ассемблер использовать с Питоном вместе? Кроме corepy.
Отредактировано (Авг. 8, 2010 00:17:13)
Офлайн