
Мерлин
23.03.2017
20:04:20
И напоследок вот эта прелесть
https://github.com/maxim2266/strit?utm_source=golangweekly&utm_medium=email

ainu
24.03.2017
06:15:28
Обожаю GO
Сегодня пришел на работу без 15 9.
за 15 минут с нуля сделал программу для удаленного управления презентацией powerpoint с мобильного телефона

Google

ainu
24.03.2017
06:16:16
включая клиент.

Peter
24.03.2017
06:16:19

ainu
24.03.2017
06:16:36
так мы с 9 работаем

Peter
24.03.2017
06:17:01
Жесть

Oleg
24.03.2017
06:17:56

ainu
24.03.2017
06:19:30
поднимает http сервер
принимает GET/POST запросы
эмулирует нажатие кнопок клавиатуры
я ему /send?key=RIGHT
он эмулирует вправо
На клиенте вебстраничка с двумя кнопками которая аяксом шлет эти запросы.
всё =)

Sergey
24.03.2017
06:20:57
А как паверпоинт то меняет слайд?

Google

ainu
24.03.2017
06:21:00
вебстраничку стилизируй как хочешь брендируй как хочешь - это клиент который открывается в браузере телефона
паверпоинт думает что пользователь нажал вправо с клавиатуры

Sergey
24.03.2017
06:21:32
Ну а как ты это гошкой провернул
Вот открыл я документ
И? :-) что за магия дальше? )

ainu
24.03.2017
06:22:07
https://github.com/micmonay/keybd_event
kb, err := keybd_event.NewKeyBonding()
kb.SetKeys(keybd_event.VK_RIGHT)
kb.Launching()
Эти тро строки сэмулируют нажатие вправо на клавиатуре
поверпоинт переключт слайд
там в либе три варианта для трёх OS. Под windows у меня это вызов WinAPI через user32.dll

Andrew
24.03.2017
06:26:06
?

Oleg
24.03.2017
06:30:43
Если я правильно понимаю, Powerpoint тут ни при чем.
То есть программа позволяет удаленно эмулировать нажатие кнопок на клавиатуре компьютера с телефона.
Осталось добавить обратную связь в виде передачи изображения с компьютера на телефон, и получится альтернатива Teamviewer (ну, или троянчик)

Sergey
24.03.2017
06:32:28
О, понял ) спасибо )

Oleg
24.03.2017
06:34:11
@ramainen, Я верно понял?

ainu
24.03.2017
06:38:43
Суть в том что программ для управления презентацией хоть и много для андроида.
Но работающих 40%, а бесплатных 2
родная от MS требует блютус на ноуте
И самое главное
ни одна из них не может управлять презентацией на impress.js (а у меня именно на ней)

Google

ainu
24.03.2017
06:41:47
Да и суть не в этом. Суть в 15 минутах.

Andrew
24.03.2017
07:00:29
Сила opensource!

Daniil
24.03.2017
07:07:29

Andrew
24.03.2017
07:09:44

Daniil
24.03.2017
07:10:16
Страничку что отдаёт http сервер

Andrew
24.03.2017
07:11:33

ainu
24.03.2017
07:11:41
На мобиле вот оно
https://artklen.ru/storage/keys/
обычный html javascript ничего особенного

Andrew
24.03.2017
07:12:35
Да уж, сейчас без js никуда :)

ainu
24.03.2017
07:13:05
Поделитесь?)
Пожалуйста https://gist.github.com/ramainen/0edfd365ef55bf2f9df9a59a8fd0b116
но так проще

Daniil
24.03.2017
07:14:53

ainu
24.03.2017
07:16:04

Andrew
24.03.2017
07:16:18

ainu
24.03.2017
07:16:19
Идеально сделать манифест, тогда оффлайн будет работать на смартфоне

Andrew
24.03.2017
07:16:45
Или wifi принести с собой

Google

ainu
24.03.2017
07:16:46
Я на проведении презентаций или так делал, или раздавал вайфай с смарта №1, подключался к нему с ноута и смарта №2

Andrew
24.03.2017
07:17:38

ainu
24.03.2017
07:18:22
Я буду через две недели проводить презентацию, хочу с поверпоинта на impress перейти
Хотя это оффтоп

Andrew
24.03.2017
07:19:12
Я в своё время для презентаций юзал аппаратное решение - беспроводную мышь.

Daniil
24.03.2017
07:22:02

Andrew
24.03.2017
07:23:28
Придётся её покупать)
Согласен. Также от этого решения нет морального удовлетворения, как от проги на Go ?

ainu
24.03.2017
07:24:05
Задачка. Как при помощи winapi получить аннотации текущего слайда уже запущенной powerpoint презентации?
судя по всему, для документирвоанного подхода надо запускать OLE с указанием пути к презентации (т.е. открыть файл должна Go программа). А это жуть как неудобно

Andrew
24.03.2017
07:25:03

ainu
24.03.2017
07:25:37
Если бы у аннотаций было свое окно, его можно ыбло бы получить через HWND

Andrew
24.03.2017
07:25:42

ainu
24.03.2017
07:25:50
Но весь поверпоин (почти) - это один контрол большой.

Andrew
24.03.2017
07:26:08
Думаю нужно поискать решение на VBA, а потом его под Go + OLE адаптировать

ainu
24.03.2017
07:27:00
хм.
Тоже вариант
Еще мысль делать скриншот (если есть второй экран с аннотациями), распознавать текст, и слать клиенту
А ну в попу.

Google

ainu
24.03.2017
07:29:04
Сделаю на Impress, аннотации встрою в слайды кодом.

Andrew
24.03.2017
07:29:12

Ighar
24.03.2017
07:29:15

Andrew
24.03.2017
07:29:53
А чо - сейчас бы но нейронных сетей товарищ дошёл бы ?

ainu
24.03.2017
07:29:54
В конце концов презентацию можно сделать в pdf, pdf открывать в браузере
нейронные сети на go делаюьтся=) правда не сверточные
кирпичики в Go друг к другу цепляются идеально. Хочешь - сайт будет рендерить 3D модели? Да пожалуйста

s3rj1k
24.03.2017
07:50:44
И че реально на го на мастдай можно писать?
Шок

ainu
24.03.2017
08:05:09
var dll = syscall.NewLazyDLL("user32.dll")
var procKeyBd = dll.NewProc("keybd_event")
func downKey(key int) {
vkey := key + 0x80
procKeyBd.Call(uintptr(key), uintptr(vkey), 0, 0)
}
func upKey(key int) {
vkey := key + 0x80
procKeyBd.Call(uintptr(key), uintptr(vkey), _KEYEVENTF_KEYUP, 0)
}

Daniil
24.03.2017
08:06:13
@ramainen Подскажите зачем задержка на Linux в две секунды?

ainu
24.03.2017
08:06:15
import (
"syscall"
)

Daniil
24.03.2017
08:06:41

ainu
24.03.2017
08:06:44
// For linux, it is very important wait 2 seconds
if runtime.GOOS == "linux" {
time.Sleep(2 * time.Second)
}
Почему не сказано

Daniil
24.03.2017
08:34:44

Greg
24.03.2017
08:57:08
Какие-то кнопки юзал, фу :D
Давно нужно было определять направления свайпа
Было бы сенсорное переключение

Andrew
24.03.2017
09:01:45