1

Тема: AHK: Присвоить значение переменной в уже запущенном скрипте

Уважаемые коллеги, прошу совета
Есть скрипт, который запускается на удаленном компьютере, работающий в фоновом режиме:


file01:="\\computer\InOut\Files4AHK\Unknown.txt"
OnExit, ext
Loop
{
	IfExist, %file01%
	{
		Gosub, Unknown
				
	}

sleep, 20000
}	

;-----------------------------------------------------------------------	Unknown
Unknown:
records=0
Loop, read, %file01%
	{

	records:=records+1
	}
	
	SplashTextOn, 150, 100,, %records% записей на обновление
	sleep, 4000
	SplashTextOff
	
Run, programma.exe, C:\ScriptsAHK\Programma

sleep, 300
Send, login
sleep, 300
Send, {Tab}
Sleep, 500
Send, psswrd
sleep, 300
Send, {Enter}
sleep, 300

; остальное содержание скрипта

FileDelete, %file01%
return
;-----------------------------------------------------------------------	Unknown

;-----------------------------------------------------------------------	waitcursor
waitcursor:
loop
	{
	Sleep , 100
	MouseMove, 8,8
	IF A_Cursor=Arrow
		{
		Sleep , 1000
		break
		}
	}
	
return
;-----------------------------------------------------------------------	waitcursor	

OnExit, ext
F11::Pause
F12::ExitApp
ext:
WinClose, Program ,
ExitApp

Его задача отслеживать появление файла с определенным именем в определенной расшаренной в сети папке, и как только файл появился, обработать его, запустив определенную программу. Для запуска программы требуется логин и пароль. После обработки скрипт закрывает запущенную программу,  удаляет файл, и снова ожидает появления этого файла.



Так же я сделал программу-клиент, которая запускается на другом компьютере в той же сети:


	okno:
	{
	Gui, Destroy
	Gui, Add, DropDownList, gChoice x150 y15 w300 h250  Choose1, Присвоить UNKNOWN|Запуск 
	Gui, Add, Text, x30 y43 w500 h13,  Код     Страт
	Gui, Add, edit,x20 y60 w560 h330 vtxt,
	Gui, Add, Button, Default x250 y400 gSubmitGUI, Подтвердить
	Gui, Show, xCenter yCenter w600 h450, Введите данные
	}
	Return
		
	Choice:
	if A_GuiControl = Присвоить UNKNOWN
	{
	file:="\\computer\Files4AHK\Unknown.txt"
	Gui, Add, Text, x30 y43 w500 h13,  Код       Страт
	Gui, Add, Text, x30 y43 w500 h13,  Код       Страт
	}
		
	if A_GuiControl = Запуск 
	{
	file:="\\computer\InOut\Files4AHK\raspor.txt"
	Gui, Add, Text, x30 y43 w500 h13,  Номер 
	Gui, Add, Text, x30 y43 w500 h13,  Номер 
	}
			
	Return
			
	SubmitGUI:
	{
	Gui, submit, NoHide
	Gui, Destroy
	If file=
	{
	file:="\\computer\InOut\Files4AHK\Unknown.txt"	
	}
	If txt=
	{
	sleep, 100
	MsgBox, Файл не может быть пустым!
	Goto, okno
	}
	
	sleep, 100
	;FileDelete,%file%
	;
	sleep, 100
	FileAppend,%txt%, %file%
	}
		
	ExitApp
	
	GuiClose:
	ExitApp		

Ее задача сформировать файл, который будет обрабатывать скрипт на сервере.
Сейчас в скрипте-сервере жестко зашит логин и пароль.
Я хочу вместо этого в скрипте-сервере ввести две переменные для логина и пароля, а сами логин и пароль вводить в окне скрипта-клиента, чтобы при нажатии кнопки "подтвердить", логин и пароль передавались по сети скрипту-серверу, и он его подхватывал, записывал в эти переменные и использовал при запуске программы.
Самый простой вариант, который напрашивается - прописывать их в обрабатываемый файл, но этот вариант не годится, так как несекьюритно. Подскажите, какие еще есть варианты, и есть ли они вообще?
Заранее благодарю

2

Re: AHK: Присвоить значение переменной в уже запущенном скрипте

Расшарить папку с доступом только для сервера или открыть порты в фаерволе и общаться по ним.

3 (изменено: belyankin12, 2017-06-08 08:50:47)

Re: AHK: Присвоить значение переменной в уже запущенном скрипте

Записать логины и пароли в гугл-документе и либо скачивать весь документ куда-нибудь в temp для чтения а потом удалять, либо читать напрямую из гугл-документа (но тогда нужно будет макросс ещё в гугл-докс писать). А чтобы было секрьюрити пароли в документе нужно хранить зашифрованными, а скрипт должен их расшифровывать.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

4

Re: AHK: Присвоить значение переменной в уже запущенном скрипте

belyankin12, вы невнимательны, пароли вводят на компьютерах-клиентах.
Даже если раздать каждому клиенту уникальный ключ шифрования, то проще будет писать зашифрованный пароль в тот же текстовый файлик.

5

Re: AHK: Присвоить значение переменной в уже запущенном скрипте

Не понял что вам нужно.
Если догадался верно то вот:


gui,add,Edit,x1	w100 h20 vLogin,myLogin
gui,add,Edit,x1 w100 h20 vPassword,myPassword
gui,add,button,x1  w100 h20 vButton1 gButton1,Подтвердить
gui show
return
button1:
gui,submit,nohide
MsgBox,login=%login%`npassword=%password%

А там используйте эти переменные как хотите.