@gogolang

Страница 196 из 1630
Мерлин
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
Сегодня пришел на работу без 15 9.
Чё так рано? Жаворонок?

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

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

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
Да и суть не в этом. Суть в 15 минутах.
Справедливости ради, лишь частичная заслуга Go, а также добрых людей, создавший либу для управления клавой.

Сила opensource!

Andrew
24.03.2017
07:09:44
включая клиент.
На мобиле тоже Go?

Daniil
24.03.2017
07:10:16
На мобиле тоже Go?
Мне кажется речь идёт про веб-клиент

Страничку что отдаёт 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

Да уж, сейчас без js никуда :)
Можно без JS, form target iframe, POST в Go

но так проще

Daniil
24.03.2017
07:14:53
Пожалуйста https://gist.github.com/ramainen/0edfd365ef55bf2f9df9a59a8fd0b116
Спасибо. А то защищаться на днях, думаю заюзать.

ainu
24.03.2017
07:16:04
Спасибо. А то защищаться на днях, думаю заюзать.
Не забудьте сделать клиентскую часть. Моя на коленке сделана и с хоста удалю.

Andrew
24.03.2017
07:16:18
Спасибо. А то защищаться на днях, думаю заюзать.
На компах для защиты есть выход и инет с белым ip?

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

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

Google
ainu
24.03.2017
07:16:46
На компах для защиты есть выход и инет с белым ip?
Там не так работает. Смартфон и комп должны быть в одной сети. Обычно вайфай.

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

Andrew
24.03.2017
07:17:38
Там не так работает. Смартфон и комп должны быть в одной сети. Обычно вайфай.
Вот поэтому и спросил у Данила его схему подключения

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

Хотя это оффтоп

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

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

ainu
24.03.2017
07:24:05
Задачка. Как при помощи winapi получить аннотации текущего слайда уже запущенной powerpoint презентации?

судя по всему, для документирвоанного подхода надо запускать OLE с указанием пути к презентации (т.е. открыть файл должна Go программа). А это жуть как неудобно

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

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, аннотации встрою в слайды кодом.

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
Давно нужно было определять направления свайпа
Создавайте репу на github'е, будем пулреквестить. ))

Страница 196 из 1630