1 (изменено: Foma, 2015-04-07 01:42:05)

Тема: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Я уже пытался реализовать что-то подобное AHK: Передача данных через общую папку в локальной сети, но слишком медленно получается. Паузы то 1 секунда, а то и 3. А надо-то всего передать 40-50 символов.
Какими способами с помощью AHK можно это осуществить?

2

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Foma, ознакомьтесь с оформлением ссылок, отредактируйте свой пост.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Спасибо.

4 (изменено: YMP, 2015-04-07 07:54:36)

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Если IP второго компьютера известен, то можно использовать сокеты. Например, разобраться-таки с AHKsock или что-то своё сымпровизировать.

Вероятно, нужно ещё будет разрешить там входящее подключение в фаерволе. А может, и исходящее на первом компьютере, смотря что за фаервол.

5

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Судя по тому, что там 12 страниц обсуждения, даже с английским там будет не просто разобраться. А уж без, и шанса нет. Всё же попробую, а пока вопросы по другим способам.

  Если купить место под сайт на сервере и через него обмениваться? IP там будет постоянный всегда. Как тогда  можно будет передавать и читать информацию? Создавать файл, отправлять, скачивать, читать? Можно этот процесс сократить по времени в 1-2 секунды?
  А ещё варианты есть?

6

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Как я уже предлагал, установить какой-нибудь чат.

7

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Foma пишет:

  Если купить место под сайт на сервере и через него обмениваться? IP там будет постоянный всегда.

А что, у ваших компьютеров в локальной сети IP непостоянные?

8

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

А этот код не работает?
http://forum.script-coding.com/viewtopi … 302#p56302

9

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

ypppu пишет:

Как я уже предлагал, установить какой-нибудь чат.

   А примеры можно? Хочется видеть, как это реализовано. Как-то мне сомнительно, что это будет достаточно скрыто.

10

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

YMP пишет:
Foma пишет:

  Если купить место под сайт на сервере и через него обмениваться? IP там будет постоянный всегда.

А что, у ваших компьютеров в локальной сети IP непостоянные?

  Это не проблема. Мне кажется, что тут с фаерволом больше проблем будет. Но главное суметь реализовать. Я в этих AHKsocks ничего не понял.

11

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Malcev пишет:

А этот код не работает?
http://forum.script-coding.com/viewtopi … 302#p56302

  Тщательно не просматривал, там вроде тема несколько  другая.

12

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Скачиваете какой-нибудь простой чат вроде этого. Устанавливаете его на двух компьютерах. Далее 1ый скрипт посылает сообщения и нажатия кнопок, а 2ой считывает текст периодически либо по извещению. Окно чата можно скрыть, нажатия посылать командой ControlSend.

13

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Тот, что по ссылке не работает. Не хочется использовать общеизвестные программы. На AHK ничего близкого не написано?

14

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Тщательно не просматривал, там вроде тема несколько  другая.

А по-моему та же. Только допилить надо.

15

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Malcev пишет:

А этот код не работает?
http://forum.script-coding.com/viewtopi … 302#p56302

  Посмотрел код, ничего не понял. Запустил, ничего не происходит. Комментариев не нашёл. Что-то посоветуете?

16

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

http://forum.script-coding.com/viewtopic.php?id=9074

17

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Хм... Можно сделать с GUI , считывая и записывая ini файл.

18

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

  Спасибо, но там всё-таки вышли из локалки, плюс использовали сторонний общеизвестный софт.

19

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Может им это оказалось удобнее.
Но я сам долгое время пользуюсь скриптом от Александра_ и меня все устраивает.

20 (изменено: Malcev, 2016-03-24 05:42:38)

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Понадобилось передавать компьютерам не локальной сети сообщения.
Фтп отпадает, так как ненадежный он у меня и притормаживает.
Порты открывать мне никто не даст.
Ничего другого не придумал, как постить информацию на какой-нибудь сервис и оттуда считывать.
Решил на github, так как вроде отсутствует капча.
В итоге отправляет примерно за 1100-1300мс.

Global http := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
Global access_token := "9879876097097097097"   ; ваш token
number := "6876969869869"     ;   номер Gista
newText := "Privet"

codes := net("Get","https://api.github.com/gists/" number)
for a,b in {url:"raw_url",currentfile:"filename",currentid:"id"}
{
   RegExMatch(codes,"U)"Chr(34) b Chr(34) ":" Chr(34) "(.*)" chr(34),found)
   %a%:=found1
}
;msgbox % net("GET",url)    ;  получение текста
newText := RegExReplace(newText,"([" Chr(34) "\\])","\$1")
for a,b in {"`n":"\n","`t":"\t","`r":""}
   StringReplace,newText,newText,%a%,%b%,All
json=
(
{"description":"testing","public":false,"files":{"%currentfile%":{"content":"%newText%"}}}
)
net("PATCH", "https://api.github.com/gists/" currentid, json)
msgbox Done
return


net(verb,url,code="")
{
   http.open(verb,url)
   http.SetRequestHeader("Authorization","Bearer " access_token)
   http.send(code)
   return http.ResponseText
}

Скомуниздил отсюда:
https://gist.github.com/maestrith/6041876

21 (изменено: Malcev, 2017-11-30 23:29:28)

Re: AHK: Как быстро и незаметно обмениваться информацией в локальной сети?

Сейчас попробовал снова - столкнулся с лимитом максимального количества обращений не более 60 за час.
А на днях вообще апи у них не работал.
Переписал без апи:

login := "login"
password := "pass"
gist := "gist id"
filename := "file name"
NewText := "privet!"

HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")

; логинимся
HTTP.Open("GET", "https://github.com/login", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.send()
HTTP.WaitForResponse()
token := RegexReplace(HTTP.ResponseText, "s)^.*<input name=""authenticity_token"" type=""hidden"" value=""(.+?)"".*$", "$1")
token := URIEncode(token)
Post := "commit=Sign+in&utf8=`%E2`%9C`%93&authenticity_token=" token "&login=" login "&password=" password

HTTP.Open("POST", "https://github.com/session", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
HTTP.send(Post)
HTTP.WaitForResponse()

; переходим к гистам
HTTP.Open("GET", "https://gist.github.com", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.send()
HTTP.WaitForResponse()

; редактируем гист
HTTP.Open("GET", "https://gist.github.com/" login "/" gist "/edit", true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.send()
HTTP.WaitForResponse()
token := RegexReplace(HTTP.ResponseText, "s)^.*<input name=""authenticity_token"" type=""hidden"" value=""(.+?)"".*$", "$1")
token := URIEncode(token)
NewText := URIEncode(NewText)
gistLink := RegexReplace(HTTP.ResponseText, "s)^.*gist\[contents]\[]\[oid]"" value=""(.+?)"".*$", "$1")
Post := "utf8=`%E2`%9C`%93&_method=put&authenticity_token=" token "&gist`%5Bdescription%5D=&gist`%5Bcontents`%5D`%5B`%5D`%5Boid`%5D=" gistLink "&gist`%5Bcontents`%5D`%5B`%5D`%5Bname`%5D=" filename "&new_filename=" filename "&content_changed=true&gist`%5Bcontents`%5D`%5B`%5D`%5Bvalue`%5D=" NewText

HTTP.Open("POST", "https://gist.github.com/" login "/" gist, true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
HTTP.send(Post)
HTTP.WaitForResponse()

; читаем измененный гист
HTTP.Open("GET", "https://gist.github.com/" login "/" gist, true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko)")
HTTP.SetRequestHeader("Pragma", "no-cache")
HTTP.SetRequestHeader("Cache-Control", "no-cache")
HTTP.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")
HTTP.send()
HTTP.WaitForResponse()
msgbox % ResponseText := RegexReplace(HTTP.ResponseText, "s)^.*<textarea class=""form-control js-task-list-field d-none"" name=""gist\[content]"">(.*?)</textarea>.*$", "$1")
return


URIEncode(str, encoding := "UTF-8")  {
   VarSetCapacity(var, StrPut(str, encoding))
   StrPut(str, &var, encoding)

   While code := NumGet(Var, A_Index - 1, "UChar")  {
      bool := (code > 0x7F || code < 0x30 || code = 0x3D)
      UrlStr .= bool ? "%" . Format("{:02X}", code) : Chr(code)
   }
   Return UrlStr
}