Здравствуйте, гость ( Вход | Регистрация )

2 страниц V < 1 2  
Ответить в эту темуОткрыть новую тему
> Работа с базой TXT
cirus
сообщение 11.3.2019, 14:03
Сообщение #21


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Цитата
отправлят то все равно пилотовскими функциями будем

SendMessageW для lua нет? Можно WM_CHAR отправлять.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.3.2019, 17:25
Сообщение #22


***********

Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27680
Пользователь №: 11.279



Вот так попробуй:
Код
do
    local back = package.path
    package.path = "luaPlugins\\winapi\\?.lua;"..package.path
    setfenv(1, require'winapi')
    local window = require[[winapi.window]]
    package.path = back
end

SendMessagePtr(hwnd, WM, wParam, lParam)

Какие параметры туда пихать я хз. Открыл справку майкрософта - проблевался и ушел. Появилось стойкое желание убивать.
Цитата
wParam

Type: WPARAM

Additional message-specific information.

lParam

Type: LPARAM

Additional message-specific information.

Примеры дайте. Куда какие коды помещать. В каких случаях. У них то первые два байта бесполезные то вторые, в каком виде. Справка охренительная - в параметры помещаются параметры. Правда?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.3.2019, 20:39
Сообщение #23


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21046
Пользователь №: 16.156



Что-то ты прям обгадил мелкомягких. Нехорошо. И зря.

Не с того края ты начал. Начинать надо с того, что за оконная система и как она работает.

Так как у нас оконная система, то управляется она посылкой сообщений. Сообщения делятся на системные и юзерские. Т.к. число только системных сообщений велико уже само по себе, то для охвата всех вообще был придуман SendMessage() с двумя параметрами опционными. Отсюда вытекает, что вот этой функции вообще пофиг что слать и смотреть то надо на само сообщение, как например на WM_CHAR, где в красках все проиллюстрировано.


В юзерских мессаджах это дает маршалинг любых данных между окошками.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.3.2019, 21:41
Сообщение #24


***********

Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27680
Пользователь №: 11.279



тогда уж https://docs.microsoft.com/en-us/windows/de...tdev/wm-unichar
Цитата
Не с того края ты начал. Начинать надо с того, что за оконная система и как она работает.

Я знаю что это и как это работает. Но честно, я не переношу на дух мсовские хелпы. Если на англ еще что-то понятно, то когда они начинают придумывать собственную терминологию давно прижившихся определений (см русские хелпы) или делать хелпы для галочки с названием "моя_великая_галка": включает и выключает "мою_великую_галку", либо выкдивает сообщения "позовите адмнинистратора" мне хочется убивать. Да, может они великие и прекрасные, но не для меня. Я когда-то по апи много читал, и кой что писал, но, к сожалению, читать обычно можно все что угодно, но только не родные маны. Все выше сказанное мои личные тараканы, не на что больше это не претендует и заведомо не претендовало, в т.ч. в ранее написанных постах.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.3.2019, 21:52
Сообщение #25


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21046
Пользователь №: 16.156



Так русские хелпы машиным переводом сделаны ? По крайней мере около года назад было уведомление. И если на английском понятно, то не понимаю изначально суть претензии к мс по поводу что куда.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.3.2019, 3:09
Сообщение #26


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Цитата
Примеры дайте. Куда какие коды помещать.

Код
SendMessagePtr(workwindow(), 0x0102, 0x41, 1)   -- англ. буква 'А'
SendMessagePtr(workwindow(), 0x0102, 0x410, 1)  -- русская буква 'А' (смотрим таблицу кодов символов юникод)

Ругается на первый параметр. Что должно быть?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 12.3.2019, 6:32
Сообщение #27


***********

Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27680
Пользователь №: 11.279



Цитата
Так русские хелпы машиным переводом сделаны ?

они не ограничиваются msdn'ом, но еще и поставляются с по и имеют локализацию.
Цитата
Ругается на первый параметр. Что должно быть?

Вообще хендл =)
Код
function SendMessagePtr(hwnd, WM, wParam, lParam)
    if wParam == nil then wParam = 0 end
    if type(lParam) == 'nil' then lParam = 0 end
    return C.SendMessageW(hwnd, flags(WM),
        ffi.cast('WPARAM', wParam),
        ffi.cast('LPARAM', lParam))
end

Это собственно вся функция.
Ругается оно на невозможность привести число к укащателю структуру. Структура объявлена:
struct HWND__ { int unused; }; typedef struct HWND__ *HWND;

Сообщение отредактировал DarkMaster - 12.3.2019, 6:49


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 12.3.2019, 7:05
Сообщение #28


***********

Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27680
Пользователь №: 11.279



https://docs.telerik.com/teststudioapi/html..._Win32_HWND.htm
Properties
Name Description
Public property Children
Public property ClassName
Public property Descendants
Public property HINSTANCE
This is useful because some frameworks store their DLL instance handle here, allowing you to loosely identify the framework that is managing the window.
Public property Id
Public property IsEnabled
Public property IsNull
Public property IsWindow
Public property Owner
Public property Parent
Public property ProcessId
Public property Root
Public property RootOwner
Public property Text
Public property ThreadId
Public property WindowRect
Gets or sets the dimensions of the bounding rectangle of the specified window. The dimensions are given in screen coordinates that are relative to the screen origin.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 12.3.2019, 9:16
Сообщение #29


***********

Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27680
Пользователь №: 11.279



Напрямую можно вот так дергать функцию:
C.SendMessageW


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
rinat84
сообщение 12.3.2019, 10:44
Сообщение #30


*

Registred
Сообщений: 9
Регистрация: 3.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.664



WM_CHAR отправляет в окна символы от 0 до 254, то есть у кодов выше 255 будет обрезаться верхняя часть.
можно обойти разбив код символа на 2 части по 2 байта и отправлять 2 раза WM_CHAR на один Unicod символ
(IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 12.3.2019, 11:00
Сообщение #31


***********

Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27680
Пользователь №: 11.279



Осталось понять каким образом дернуть hwnd в пределах Lua. EnumWindows и FindWindow вроде как отсутсвуют. GetFocus();GetActiveWindow(); возвращают null.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.3.2019, 11:12
Сообщение #32


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Цитата
WM_CHAR отправляет в окна символы от 0 до 254

Это SendMessageA. SendMessageW нормально отправляет коды символов юникода.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Чекист
сообщение 5.4.2019, 18:50
Сообщение #33


***

Novice
Сообщений: 76
Регистрация: 2.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.534



Ребята, используя скрипт:

Код

load_array %arr "D:\Работа\uopilot\insta\tovar.txt"  
    kleft 155, 145 abs
    for #i 1 size(%arr)
    send %arr [#i]
    sendex {Enter}
    end_for
end_script    




Как мне сделать так, что бы он брал текст с tovar.txt первую строку, копировал ее, после чего, я ее вставлял куда надо, и записать этот скопированный текст с первого блокнота в другой блокнот tovar2.txt, а потом пилот должен удалить первую строку с tovar.txt (использованный текст) и сместить второй текст со второй строки на первую в tovar.txt.


Как я понял, старт этой темы был именно про это, но я так и не догнал как это сделать...


Заранее, очень благодарен за ответ!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 6.4.2019, 1:36
Сообщение #34


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Код
load_array %arr "D:\Работа\uopilot\insta\tovar.txt"  // загрузить массив

//log %arr[1]    // первая строка из файла
write ("D:\Работа\uopilot\insta\tovar2.txt" %arr [1]\r\n)   // записываем в файл tovar2.txt
delete_array %arr -1  // удалить первую строку из массива
save_array %arr "C:\Users\yacir\Desktop\tovar.txt"  // записать массив в файл
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V < 1 2
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 19.4.2024, 7:23
Designed by Nickostyle