Что нового

[Сеть, интернет] проверка подключения пользователя к интернету

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Здравствуйте.
Задача: в локальной корпоративной сети не имеющей доступа к интернету (запрещено), на компьютерах юзверей в автозагрузку помещается данный скрипт, и ч-з определенное время проверяет подключение к интернету, и выдает сообщение, с сохранением лога.

Накидал такой скриптик:
Код:
Opt("TrayIconHide", 1)
$sec = 30
While 1
; Пинг
$iPing = Ping("yandex.ru", 250)
If $iPing Then
    MsgBox(262144, "Внимание", "ВЫ ПОДКЛЮЧИЛИСЬ К СЕТИ ИНТЕРНЕТ" & @CRLF & "ДАННОЕ СООБЩЕНИЕ ОТПРАВЛЕНО АДМИНИСТРАТОРУ")

$sPath = 'c:\Program Files\'
$file = FileOpen($sPath & 'Alarm' & '.txt', 1)
; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $file = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf
FileWrite($file, 'Подключение к сети Интернет ' & ' Имя пользователя - ' & @UserName & @CRLF & 'Имя компьютера - ' & @ComputerName & @CRLF & 'IP адрес - ' & @IPAddress1 & @CRLF & @MDAY & ' ' & @MON & ' ' & @YEAR & '   ' & @HOUR & '-' & @MIN & '-' & @SEC & @CRLF & @CRLF & @CRLF)
FileClose($file)

Else

EndIf
Sleep($sec*1000)
WEnd


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

СН3СН2ОН

Знающий
Сообщения
78
Репутация
12
Вот накидал в KODA + чтение справки
Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 666, 449, 192, 114,$WS_DISABLED + $WS_MAXIMIZE)
GUISetBkColor(0x000000)
$Label1 = GUICtrlCreateLabel("ЗА ВАМИ ВЫЕХАЛИ", 160, 184, 326, 40)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
В принципе в справке все есть

А вот и программа ))
Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#Region ### START Koda GUI section ### Form=

Opt("TrayIconHide", 1)


;~ $sPath = 'c:\Program Files\'
;~ $sFile = 'Alarm.txt'

$sPath = @ScriptDir
$sFile = 'Alarm.txt'

If Not FileExists($sPath & '\' & $sFile) Then
	_FileCreate($sPath & '\' & $sFile)
EndIf

$sec = 30
While 1
	; Пинг
	$iPing = Ping("yandex.ru", 250)
	If $iPing Then
		MsgBox(262144, "Внимание", "ВЫ ПОДКЛЮЧИЛИСЬ К СЕТИ ИНТЕРНЕТ" & @CRLF & "ДАННОЕ СООБЩЕНИЕ ОТПРАВЛЕНО АДМИНИСТРАТОРУ")
		$file = FileOpen($sPath & '\' & $sFile, 1)
		; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
		If $file = -1 Then
			MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
			Exit
		EndIf
		FileWrite($file, 'Подключение к сети Интернет ' & ' Имя пользователя - ' & @UserName & @CRLF & 'Имя компьютера - ' & @ComputerName & @CRLF & 'IP адрес - ' & @IPAddress1 & @CRLF & @MDAY & ' ' & @MON & ' ' & @YEAR & '   ' & @HOUR & '-' & @MIN & '-' & @SEC & @CRLF & @CRLF & @CRLF)
		FileClose($file)

	Else

		If FileGetSize($sPath & '\' & $sFile) > 0 Then

			$Form1 = GUICreate("Form1", 666, 449, 192, 114, $WS_DISABLED + $WS_MAXIMIZE)
			GUISetBkColor(0x000000)
			$Label1 = GUICtrlCreateLabel("ЗА ВАМИ ВЫЕХАЛИ", 160, 184, 326, 40)
			GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
			GUICtrlSetColor(-1, 0xFF0000)
			GUISetState(@SW_SHOW)
			#EndRegion ### END Koda GUI section ###

			While 1
				$nMsg = GUIGetMsg()
				Switch $nMsg
					Case $GUI_EVENT_CLOSE
						;EXIT

				EndSwitch
			WEnd
		EndIf

	EndIf
	Sleep($sec * 1000)
WEnd

Поторопился вот точно в продакшн
Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#Region ### START Koda GUI section ### Form=

Opt("TrayIconHide", 1)


;~ $sPath = 'c:\Program Files\'
;~ $sFile = 'Alarm.txt'

$sPath = @ScriptDir
$sFile = 'Alarm.txt'

If Not FileExists($sPath & '\' & $sFile) Then
	_FileCreate($sPath & '\' & $sFile)
EndIf

$sec = 30
While 1
	; Пинг
	$iPing = Ping("yandex.ru", 250)
	If $iPing Then
		MsgBox(262144, "Внимание", "ВЫ ПОДКЛЮЧИЛИСЬ К СЕТИ ИНТЕРНЕТ" & @CRLF & "ДАННОЕ СООБЩЕНИЕ ОТПРАВЛЕНО АДМИНИСТРАТОРУ")
		$file = FileOpen($sPath & '\' & $sFile, 1)
		; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
		If $file = -1 Then
			MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
			Exit
		EndIf
		FileWrite($file, 'Подключение к сети Интернет ' & ' Имя пользователя - ' & @UserName & @CRLF & 'Имя компьютера - ' & @ComputerName & @CRLF & 'IP адрес - ' & @IPAddress1 & @CRLF & @MDAY & ' ' & @MON & ' ' & @YEAR & '   ' & @HOUR & '-' & @MIN & '-' & @SEC & @CRLF & @CRLF & @CRLF)
		FileClose($file)

	Else



	EndIf

	_FSB()

	Sleep($sec * 1000)
WEnd

Func _FSB()
			If FileGetSize($sPath & '\' & $sFile) > 0 Then

			$Form1 = GUICreate("Вы злостный хулиган", 666, 449, 192, 114, $WS_DISABLED + $WS_MAXIMIZE)
			GUISetBkColor(0x000000)
			$Label1 = GUICtrlCreateLabel("ЗА ВАМИ ВЫЕХАЛИ", 160, 184, 326, 40)
			GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
			GUICtrlSetColor(-1, 0xFF0000)
			GUISetState(@SW_SHOW)
			#EndRegion ### END Koda GUI section ###

			While 1
				$nMsg = GUIGetMsg()
				Switch $nMsg
					Case $GUI_EVENT_CLOSE
						;EXIT

				EndSwitch
			WEnd
		EndIf
EndFunc

Хотя программа так каждые 30 секунд читает файл, это плохо лучше хранить данные в реестре.
Или изменить алгоритм
+ код требует аудита от гуру, в тонкостях gui не силен, может где и ошибся
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
спасибо, буду пробовать


Добавлено:
Сообщение автоматически объединено:

получилось так:
файл слежения (закинуть в автозагрузку)
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt("TrayIconHide", 1)
$sec = 300
While 1
; Пинг
$iPing = Ping("yandex.ru", 250)
If $iPing Then
	SplashTextOn("ВНИМАНИЕ", "ВЫ ПОДКЛЮЧИЛИСЬ К СЕТИ ИНТЕРНЕТ" & @CRLF & "ДАННОЕ СООБЩЕНИЕ ОТПРАВЛЕНО АДМИНИСТРАТОРУ", 2000, 1000, -1, -1, 32, "", 24)
	GUISetState(@SW_SHOW)

FileCopy ('c:\Program Files\Alarm.exe', @ScriptDir)

$sPath = 'c:\Program Files\'
$file = FileOpen($sPath & 'Alarm' & '.txt', 1)
; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $file = -1 Then

    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf
FileWrite($file, 'Подключение к сети Интернет ' & ' Имя пользователя - ' & @UserName & @CRLF & 'Имя компьютера - ' & @ComputerName & @CRLF & 'IP адрес - ' & @IPAddress1 & @CRLF & @MDAY & ' ' & @MON & ' ' & @YEAR & '   ' & @HOUR & '-' & @MIN & '-' & @SEC & @CRLF & @CRLF & @CRLF)
FileClose($file)

Else

EndIf
Sleep($sec*1000)
WEnd


файл блокировки (закинуть в C:\Program Files\)

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
	SplashTextOn("ВНИМАНИЕ", "ВЫ ПОДКЛЮЧИЛИСЬ К СЕТИ ИНТЕРНЕТ" & @CRLF & "ОБРАТИТЕСЬ К АДМИНИСТРАТОРУ" & @CRLF & "", 2000, 1000, -1, -1, 32, "", 24)
	GUISetState(@SW_SHOW)
While Sleep(1000)
WEnd
 
Верх