Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: Windows/protected mode
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Misha_cpp
Заблокирован
1

Как создать 5 процессов Калькулятора?

13.04.2014, 20:44. Просмотров 752. Ответов 5
Метки нет (Все метки)

Как создать 5 процессов Калькулятора . Делаю цикл , а всё равно лишь один процесс запускается .
Вот мой код:

Assembler
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
.686               ; директива визначення типу мікропроцесора
.model flat,stdcall ; завдання лінійної моделі пам’яті та угоди ОС Windows
option casemap:none          ; відмінність малих та великих літер
include \masm32\include\windows.inc   ; файли структур, констант …
include \masm32\macros\macros.asm
uselib kernel32, user32      ; макрос з підключеними бібліотеками
.data
programname db  "c:\windows\system32\calc.exe",0
;programname db  "1-1.exe",0
.data?
startInfo dd ?
processInfo PROCESS_INFORMATION <> ; інф. про процес і його первинну нитку
.code
start:
invoke GetStartupInfo,ADDR startInfo
mov ecx,5
m1:
push ecx
invoke CreateProcess, ADDR programname, 0,0,0,FALSE,\
NORMAL_PRIORITY_CLASS, 0,0, ADDR startInfo, ADDR processInfo
pop ecx
loop m1 
invoke Sleep, 3000
invoke  ExitProcess,0
end start
Подскажите, пожалуйста.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2014, 20:44
Ответы с готовыми решениями:

Множество процессов калькулятора
Доброго времени суток! Помогите, пожалуйста, решить проблему с процессами...

Самопроизвольное закрытие программ, штук 40 процессов калькулятора и прочие приколы
Доброго времени суток. Сам не знаю как, может быть с флешки, не-абы троянчик...

Как создать список запущеных процессов?
Как создать список запущеных процессов и по возможности поместить его в...

Как в проекте purebasic создать память, доступную для других внешних процессов?
как в проекте purebasic создать общедоступную память , доступный для других...

Создать программу двоичного калькулятора
создать программу двоичного калькулятора с кнопками:+-= два поля для вода и...

5
Not at all!
193 / 190 / 18
Регистрация: 06.10.2013
Сообщений: 360
13.04.2014, 21:26 2
Misha_cpp, внимательней читайте описание функций.
Assembler
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
.686               ; директива визначення типу мікропроцесора
.model flat,stdcall ; завдання лінійної моделі пам’яті та угоди ОС Windows
option casemap:none          ; відмінність малих та великих літер
include \masm32\include\windows.inc   ; файли структур, констант …
include \masm32\macros\macros.asm
uselib kernel32, user32      ; макрос з підключеними бібліотеками
.data
programname db  "c:\windows\system32\calc.exe",0
;programname db  "1-1.exe",0
.data?
startInfo STARTUPINFO <>
processInfo PROCESS_INFORMATION <> ; інф. про процес і його первинну нитку
.code
start:
invoke GetStartupInfo,ADDR startInfo
mov ecx,5
 
m1:
push ecx
invoke CreateProcess, ADDR programname, 0,0,0,FALSE,\
NORMAL_PRIORITY_CLASS, 0,0, ADDR startInfo, ADDR processInfo
invoke CloseHandle,processInfo.hThread
invoke CloseHandle,processInfo.hProcess
 
pop ecx
loop m1 
 
invoke  ExitProcess,0
end start
1
Misha_cpp
Заблокирован
13.04.2014, 21:45  [ТС] 3
Спасибо большое . Буду внимательней.
А можно ещё такой вопрос : как сделать так , чтобы все процессы завершились, например, через 3 с .

когда вставляю

Assembler
1
2
3
.....
loop m1 
 invoke Sleep,3000
то закрывается только окно консоли , а процессы остаются на месте

и есть ли такая возможность выделить какой-то процесс отдельно , и сделать так , чтобы он закрывался через 6 с ?
0
Not at all!
193 / 190 / 18
Регистрация: 06.10.2013
Сообщений: 360
13.04.2014, 22:44 4
Вам нужно в таком случае сохранить описатели всех процессов, полученные в результате использования функции CreateProcess и по истечении нужного периода времени завершить процессы функцией TerminateProcess.
1
Misha_cpp
Заблокирован
14.04.2014, 11:43  [ТС] 5
Я вот попробовал вот так написать , чтобы через определённое время закрылись все процессы:

Assembler
1
2
3
4
5
6
7
8
9
10
m1:
push ecx
invoke CreateProcess, ADDR programname, 0,0,0,FALSE,\
NORMAL_PRIORITY_CLASS, 0,0, ADDR startInfo, ADDR processInfo
invoke Sleep,3000
invoke TerminateProcess,processInfo.hProcess,0
invoke CloseHandle,processInfo.hThread
invoke CloseHandle,processInfo.hProcess
 pop ecx
loop m1
Но получается , что процесс создаётся , проходит n секунд, закрывается и появляется новый процесс
0
Not at all!
193 / 190 / 18
Регистрация: 06.10.2013
Сообщений: 360
14.04.2014, 16:50 6
Misha_cpp, а второй цикл завести не судьба? Я же писал, что нужно сохранять хэндлы процессов для их завершения в дальнейшем.
Assembler
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
.686               ; директива визначення типу мікропроцесора
.model flat,stdcall ; завдання лінійної моделі пам’яті та угоди ОС Windows
option casemap:none          ; відмінність малих та великих літер
include \masm32\include\windows.inc   ; файли структур, констант …
include \masm32\macros\macros.asm
uselib kernel32, user32      ; макрос з підключеними бібліотеками
.data
programname db  "c:\windows\system32\calc.exe",0
;programname db  "1-1.exe",0
.data?
startInfo STARTUPINFO <>
processInfo PROCESS_INFORMATION <> ; інф. про процес і його первинну нитку
hprocesses dd 5 dup (?)
 
.code
start:
invoke GetStartupInfo,ADDR startInfo
mov ecx,5
mov edi,offset hprocesses-4
 
m1:
push ecx
invoke CreateProcess, ADDR programname, 0,0,0,FALSE,\
NORMAL_PRIORITY_CLASS, 0,0, ADDR startInfo, ADDR processInfo
invoke CloseHandle,processInfo.hThread
pop ecx
mov eax,processInfo.hProcess
mov [edi+ecx*4],eax
loop m1
 
invoke Sleep,3000
 
mov esi,5
m2:
invoke TerminateProcess,dword ptr [edi+esi*4],0
dec esi
jnz m2
 
invoke  ExitProcess,0
end start
1
14.04.2014, 16:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2014, 16:50

Создать окно для калькулятора
Как рисовать окошки , закрашивать их и тп ? Например, мне нужно создать...

Создать скрипт my_calc.m, реализующий возможности калькулятора
Здравствуйте! На форуме не нашел ничего похожего, а нужно: Создать скрипт...

Создать класс калькулятора Calc с закрытой переменной accumulator и с интерфейсом
Самостоятельно создать класс калькулятора Calc с закрытой переменной ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru