С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для scripVB
6 / 6 / 2
Регистрация: 06.03.2013
Сообщений: 79

Как правильно записать событие?

28.02.2017, 23:06. Показов 747. Ответов 16

Студворк — интернет-сервис помощи студентам
Доброго времени суток!!! Такой вопрос не получается правильно записать событие вообщем: через апи проверят запущен ли такой-то такой-то процесс(notepad.exe) или такой-то такой-то (calc.exe) если нет ни того ни того тогда запускаем любой из них если если есть хоть один то ничего не делаем. Беда как я полагаю в самом событии if >>>>
Visual Basic
1
2
3
4
if pcs("notepad.exe")=0 And pcs("calc.exe")=0 then
shell("calc.exe") 'или нотепад тут я через рандом делаю
else
end if
дак вот беда в том что пока рандомно появляется блокнот то он запускается всего лишь раз как только выпадает калькулятор
и если запустить событие еще раз (с работающим процессом калькулятор) то он снова запустит что ни будь рандомно помогите кто чем может

Добавлено через 37 секунд
Пример если кто не понял могу скинуть
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.02.2017, 23:06
Ответы с готовыми решениями:

Как правильно выполнить событие?
Доброго времени суток народ! Очередная задача моего извращенного мозга :D допустим есть таймер или цикл! Допустим таймер проверяет...

Как правильно записать условие?
В листе Excel есть 3 ячейки - A2 (дата начала), B2 (дата завершения), C2 (текущая дата) и ячейка "состояние", куда записывается...

Как правильно записать Ln(Sin x)
Подскажите пожалуйста как правильно записать Ln(Sin x). Я сделал log(x)/log(Sin(x)) но че то не идет. Заранее огромное спасибо.

16
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
01.03.2017, 06:55
Попробуйте условие заключить в скобки. Или лучше вынести вызовы pcs перед условием - может там тормозит проверка:
Visual Basic
1
2
3
4
5
b = pcs("calc.exe"): a = pcs("notepad.exe")
If (a = 0 And b = 0) Then
Shell ("calc.exe") 'или нотепад тут я через рандом делаю
Else
End If
1
 Аватар для scripVB
6 / 6 / 2
Регистрация: 06.03.2013
Сообщений: 79
01.03.2017, 07:38  [ТС]
Pro_grammer, все тщетно((

Добавлено через 3 минуты
так же запускает и блокнот а потом может и калькулятор второй раз вызвать
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
01.03.2017, 07:38
scripVB, покажите функцию pcs .
1
 Аватар для scripVB
6 / 6 / 2
Регистрация: 06.03.2013
Сообщений: 79
01.03.2017, 07:40  [ТС]
SoftIce, вот
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Private Const MAX_PATH = 260
Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
End Type
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
'Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
Dim VL As Integer
Public Function PCS(ByVal Proc As String)
On Error Resume Next
Dim ProcessID As Long, ExeName As String
Dim hSnapShot As Long, nProcess As Long
Dim uProcess As PROCESSENTRY32
Dim hProcess As Long
hSnapShot = CreateToolhelpSnapshot(2, 0)
uProcess.dwSize = LenB(uProcess)
nProcess = Process32First(hSnapShot, uProcess)
Do While nProcess
EN = Left(uProcess.szExeFile, InStr(1, uProcess.szExeFile, String(1, 0), vbBinaryCompare) - 1)
If EN = Proc Then
ProcessID = uProcess.th32ProcessID
VL = 1
Exit Do
Else
VL = 0
End If
nProcess = Process32Next(hSnapShot, uProcess)
Loop
PCS = VL
End Function
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
01.03.2017, 08:20
Так, я у себя проверил, все работает хорошо.

Вам нужно посмотреть в Диспетчере задач точное название процессов( не путайте с именами файлов).

Например, у меня процесс называется "Калькул.exe".
1
 Аватар для scripVB
6 / 6 / 2
Регистрация: 06.03.2013
Сообщений: 79
01.03.2017, 09:12  [ТС]
SoftIce, попробуйте в таймер проверку поставить

Добавлено через 14 минут
что то все равно не так( он бывает и calc и notepad запускает
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
01.03.2017, 09:57
Цитата Сообщение от scripVB Посмотреть сообщение
в таймер проверку поставить
Нет, все правильно работает. Интервал таймера = 1000
Миниатюры
Как правильно записать событие?  
1
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
01.03.2017, 10:02
1
70 / 62 / 19
Регистрация: 03.05.2013
Сообщений: 397
07.03.2017, 16:58
Цитата Сообщение от scripVB Посмотреть сообщение
Добавлено через 14 минут
что то все равно не так( он бывает и calc и notepad запускает
судя по условию
Цитата Сообщение от scripVB Посмотреть сообщение
через апи проверят запущен ли такой-то такой-то процесс(notepad.exe) или такой-то такой-то (calc.exe) если нет ни того ни того тогда запускаем любой из них
вам нужно Or вместо And
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
07.03.2017, 17:09
Цитата Сообщение от CRIDEL Посмотреть сообщение
вам нужно Or вместо And
Нет, не надо вводить в заблуждение.
0
70 / 62 / 19
Регистрация: 03.05.2013
Сообщений: 397
07.03.2017, 17:12
Цитата Сообщение от SoftIce Посмотреть сообщение
Нет, не надо вводить в заблуждение.
условие было или
Цитата Сообщение от CRIDEL Посмотреть сообщение
через апи проверят запущен ли такой-то такой-то процесс(notepad.exe) или такой-то такой-то (calc.exe)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
07.03.2017, 17:14
CRIDEL, ну а дальше прочитать можете?
Цитата Сообщение от scripVB Посмотреть сообщение
если нет ни того ни того тогда запускаем любой из них если если есть хоть один то ничего не делаем
Что тут непонятного?
0
70 / 62 / 19
Регистрация: 03.05.2013
Сообщений: 397
07.03.2017, 17:29
Цитата Сообщение от SoftIce Посмотреть сообщение
Что тут непонятного?
- ни того ни другого - Or
-и того и другого - And
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
07.03.2017, 17:38
Вы неправы, и сами это знаете, но похоже Вы из той породы людей, кто не умеет признавать свою неправоту. Я пас.
0
70 / 62 / 19
Регистрация: 03.05.2013
Сообщений: 397
07.03.2017, 17:39
SoftIce, можно и как вы сказали, но я бы сделал так:

Visual Basic
1
2
3
4
5
b = pcs("calc.exe"): a = pcs("notepad.exe")
If not (a = 0 or b = 0) Then
else
Shell ("calc.exe") 'или нотепад тут я через рандом делаю
End If
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
08.03.2017, 06:17
Цитата Сообщение от CRIDEL Посмотреть сообщение
calc.exe
Эо вообще стандартная программа Windows, ее можно вызвать даже без всяких путей, даже без расширения .exe
calc и notepad
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.03.2017, 06:17
Помогаю со студенческими работами здесь

Как правильно записать простейшие функции VB?
Привет всем. Подскажите плз, как правильно записать операторы сложения, а то память напрочь отшибло :- Private Sub CMD1_Click() A =...

Как правильно записать arcsin и arccos?
Помогите! В проге нужно использовать arcsin и arccos, а я не знаю как их написать на VB.

Как правильно записать опоздание функции через функцию-ножницы, если t!=0 при t>4? Как правую часть записать?
Нужно найти изображение оригинала. Всю суть проблемы написал в заголовке.

Как правильно вызвать событие ?
Добрый день. Использую контрол типа TCSpinEdit в связке с кнопкой TButton. После ввода или изменения числа в SpinEdit, по нажатию...

Как правильно организовать событие
Добрый день. Подскажите пожалуйста, как правильно организовать событие. Существует основной модуль в нем прописано обработка полей в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru