Что нового

Не запускать скрипт при найденых процессах.

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Снова зравствуйте, второй день мучаюсь не могу решить задачу...
Помогите решить.
Есть примерный код:
Код:
Primer()
Func Primer()
If ProcessExists("notepad.exe") Then
MsgBox(4096, "Пример", "Выходим.")
Exit
Else
MsgBox(4096, "Пример", "Продолжаем.")
EndIf
MsgBox(4096, "Пример", "Выполнено!")
EndFunc


В данном примере скрипт запускаеться только в том случаи если не открыт процесс блокнота.
Необходимо добавить еще около 5-8 процессов, что бы при присутсвии одного из них о не смог запуститься дальше.
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
:rofl:ESTROYx [?]
скрипт запускаеться только в том случаи если не открыт процесс блокнота
Вообще-то, скрипт запускается в любом случае. А при наличии процесса скрипт завершается.

добавить еще около 5-8 процессов
Код:
If ProcessExists("notepad.exe") Or ProcessExists("wordpad.exe") Or ProcessExists("calc.exe") Or ProcessExists("sidebar.exe") Then
 
Автор
xDESTROYx

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Вы генний спасибо, а я так долго мучался.
Скрипт да выполняеться, не так выразился просто, суть в том, что бы не запускался на виртуальных машинах.
Поэтому нужно указать процессы самих машин.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Код:
$Proc_1 = "notepad.exe"
$Proc_2 = "opera.exe"
$Proc_3 = "avp.exe"
$Proc_4 = "winlogon.exe"
$Proc_5 = "taskmgr.exe"

If ProcessExists($Proc_1) Or ProcessExists($Proc_2) Or ProcessExists($Proc_3) _
Or ProcessExists($Proc_4) Or ProcessExists($Proc_5) Then
   MsgBox(16, "Нет доступа", "Выход")
Else
   MsgBox(64, "Ok", "Поехали")
EndIf
 
Автор
xDESTROYx

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Yuriy, хм тоже интересно, спасибо)
А можно еше реализовать на присутсвие определеных файлов и окон?
типа:
Код:
If NOT FileExists("C:\sample.exe") Then
If NOT FileExists("C:\joebox\joeboxserver\test.exe") Then
If NOT FileExists("C:\analysis\log") Then
If NOT WinExists("The Wireshark Network Analyzer") Then
If NOT WinExists("Process Explorer") Then

Тоесть при присутсвии тоже не запускаеться дальше.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Код:
$Proc_1 = "notepad.exe"
$Proc_2 = "opera.exe"
$Proc_3 = "avp.exe"
$Proc_4 = "winlogon.exe"
$Proc_5 = "taskmgr.exe"
$File_1 = "D:\IO.sys"
$File_2 = "C:\IO.sys"

If ProcessExists($Proc_1) Or ProcessExists($Proc_2) Or ProcessExists($Proc_3) _
Or ProcessExists($Proc_4) Or ProcessExists($Proc_5) Or Not FileExists($File_1) _
Or Not FileExists($File_2) Then
   MsgBox(16, "Нет доступа", "Выход")
Else
   MsgBox(64, "Ok", "Поехали")
EndIf


Код:
Not FileExists()

Без Not фигня получается
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
:rofl:ESTROYx
Код:
Global $ProcArray[5] = ["notepad.exe","opera.exe","avp.exe","winlogon.exe","taskmgr.exe"]
Global $FileArray[3] = ["C:\sample.exe","C:\joebox\joeboxserver\test.exe","C:\analysis\log"]
Global $WinsArray[2] = ["The Wireshark Network Analyzer","Process Explorer"]

For $i = 0 To UBound($ProcArray) - 1
  If ProcessExists($ProcArray[$i]) Then Exit
Next
For $i = 0 To UBound($FileArray) - 1
  If FileExists($FileArray[$i]) Then Exit
Next
For $i = 0 To UBound($WinsArray) - 1
  If WinExists($WinsArray[$i]) Then Exit
Next
 
Автор
xDESTROYx

xDESTROYx

Новичок
Сообщения
18
Репутация
0
InnI,
Код:
$ProcArray[5]
$FileArray[3]
$WinsArray[2]

- Цифры отвечают за количество, процессов, файлов и окон?
Это обязательно?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Цифры отвечают за количество, процессов, файлов и окон?
В данном случае - да.
Смотри массивы.
Я специально не стал пример с массивами тебе давать.
 
Автор
xDESTROYx

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Полистал справку по массивам нечего не нашел.
Ну ладно, все равно спасибо.
Еще вопрос "ProcArray" - переименовать можно или это переменная? тоже не нашел в справке.
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
:rofl:ESTROYx [?]
Это обязательно?
Да. Так создаются массивы. Если вы добавите ещё элементов (через запятую) или удалите, то и цифру нужно изменить в соответствии с полученным количеством.

"ProcArray" - переименовать можно или это переменная?
Это переменная. Имя массива. Переименовать можно.

Yuriy [?]
Я специально не стал пример с массивами тебе давать.
А я не знал, что рано ещё :whistle:


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

:rofl:ESTROYx [?]
по массивам нечего не нашел.
http://autoit-script.ru/autoit3_docs/keywords/Dim.htm
 
Автор
xDESTROYx

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Ясно, спасибо, пойду учить, я просто через офлайн версию искал)
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Так все же правильней выходит :stars:
Код:
$Proc_1 = "notepad.exe"
$Proc_2 = "1opera.exe"
$Proc_3 = "1avp.exe"
$Proc_4 = "1winlogon.exe"
$Proc_5 = "taskmgr.exe"
$File_1 = "C:\IO.sys"
$File_2 = "C:\IO.sys"

If ProcessExists($Proc_1) Or ProcessExists($Proc_2) Or ProcessExists($Proc_3) _
Or ProcessExists($Proc_4) Or ProcessExists($Proc_5) Or FileExists($File_1) = 0 _
Or FileExists($File_2) = 0 Then
   MsgBox(16, "Нет доступа", "Выход")
Else
   MsgBox(64, "Ok", "Поехали")
EndIf


Результат теста показал, что лучше сравнивать с нулем
Код:
Or FileExists($File_1) = 0
 
Автор
xDESTROYx

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Блин ребят, спасибо все сделал, работает прекрасно) что же сразу не написал 2 дня убил)
Еще остлось доделать одну деталь.

Есть скрипт с GUI в нем чебоксы, каждый чебокс отвечает за вызов опреденой функции, тоесть выбираю чебокс "установка" подключаеться функция установки,если не выбрать то код просто находиться в скрипте не активным.
Можно такое реализовать?
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
:rofl:ESTROYx [?]
Можно такое реализовать?
Ну конечно можно. Только данный вопрос к теме не имеет отношения. Можете предупреждение получить.
OffTopic:
Читайте в справке примечания к функции
Код:
GUICtrlRead()
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
:rofl:ESTROYx [?]
Еще остлось доделать одну деталь.
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.
 
Верх