powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проверить наличие работающего лоадера?
17 сообщений из 42, страница 2 из 2
Проверить наличие работающего лоадера?
    #33529554
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boogiman> To Zizu А вы уверены, что даёте правильный совет!
Я нет, если не сталкивались с лоадерами, то не давайте безолаберных советов! У меня в этом лоадере стоят сотни insert in log, вставка записей в файл о промежуточной работе лоадера! Каждый раз левый thread появляется на одном и том же месте: ровно перед HaltClose (итоговым закрытием приложения). Такое чуство, как будто один раз из 1000 HaltClose - не отрабатывает! Ладно я сам докапаюсь! Всё равно спасибо!да делал я такие лоадеры, и никогда не варубал их через HaltClose .
ищи проблему в лоадере своем.
да, и ник мой zuzu
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #33530226
Фотография AIZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть утилита pskill.exe
ls_process = "myprocess.exe"
RUN("pskill " + ls_process)

Убивает процесс без лишних вопросов по его имени.

Модератор: Вложение удалено.
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #33530777
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> To Aiz Спасибо, попробую!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проверить наличие работающего лоадера?
    #37519657
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никто случайно не использовал CreateMutexA на 11-м билдере?
а то пробую, а оно что-то не хочет у меня работать

возможно еще что винда x64
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37519683
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CreateMutexW тоже пробовал
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37519837
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoRникто случайно не использовал CreateMutexA на 11-м билдере?
а то пробую, а оно что-то не хочет у меня работать

возможно еще что винда x64
Использовал, все работает. Думаю, что и на x64. Как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
FUNCTION ulong CreateMutex (ulong lpMutexAttributes, boolean bInitialOwner, REF string lpszName) LIBRARY "kernel32.dll" alias for "CreateMutexW"
FUNCTION long GetLastError() LIBRARY "kernel32.dll"
constant ulong ERROR_ALREADY_EXISTS =  183 
constant ulong SUCCESSFUL_EXECUTION =  0 
//
ulong lul_mutex
ulong lpsa
ulong lul_last_error
boolean lb_ret = FALSE
string ls_appname

IF NOT (Handle(GetApplication()) =  0 ) THEN
   ls_appname = "..."
   lul_mutex = CreateMutex(lpsa, FALSE, ls_appname)
   lul_last_error = GetLastError()
   lb_ret = NOT (lul_last_error = SUCCESSFUL_EXECUTION)
END IF
//

if lb_ret then
	MessageBox("Ошибка","Нельзя запускать несколько копий программы.")
	return
end if
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37519860
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а да... работает.. спасибо!

просто пытался запихнуть кусок кода не в Open аппликэйшена, а уже гораздо позже, когда прога уже давно запущена
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37519868
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoRникто случайно не использовал CreateMutexA на 11-м билдере?
а то пробую, а оно что-то не хочет у меня работать

возможно еще что винда x64
А на не x64 работает? А вне среды разработки РВ?
Возможно не работает только из среды разработки, т.к. в среде РВ конструкция (Handle(GetApplication()) всегда =0.
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37519886
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AISА на не x64 работает? А вне среды разработки РВ?
Возможно не работает только из среды разработки, т.к. в среде РВ конструкция (Handle(GetApplication()) всегда =0.
на x64 точно работает... только вот проверил
на не x64... Марк написал, что работает

>т.к. в среде РВ конструкция (Handle(GetApplication()) всегда =0
это в курсе... поэтому пробовал на скомпиленном ехе
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37519942
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто подскажет, как после определения через CreateMutex (что ПО уже запущено) открыть старый экземпляр ПО, передать ему фокус и потом закрыть новый?
Помню когда-то пробывал разные вариации с функциями:
Код: plaintext
1.
WaitForSingleObject, SetWindowPos, SetForegroundWindow, ShowWindow, SendMessage
но так и не получилось. :(
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37519949
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,
забыл:
кроме фокуса + ещё вывести старое ПО на передний план.
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37519958
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AISА кто подскажет, как после определения через CreateMutex (что ПО уже запущено) открыть старый экземпляр ПО, передать ему фокус и потом закрыть новый?
Помню когда-то пробывал разные вариации с функциями:
Код: plaintext
1.
WaitForSingleObject, SetWindowPos, SetForegroundWindow, ShowWindow, SendMessage
но так и не получилось. :(
Function uLong BringWindowToTop(long hWnd)Library "user32"

вот типа пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
	hWnd = FindWindowA(ls_null, ls_null)
	do while hWnd >  0 
		ls_name = Fill(" ", 260 )
		ll_cnt =  260 
		GetWindowTextA(hWnd, ls_name, ll_cnt)
		if pos (ls_name, "BusinessBuilder") >  0  then // Нашли, что искали
			SEND(hWnd,  1024 ,  0 , ll_doc_id)
			BringWindowToTop(hWnd)
			return
		end if
		hWnd = GetWindow(hWnd,  2 )
	loop
	// Не нашли, прийдется запускать
	ShellExecute(handle(this), "open", ls_path, ls_line, ls_dir,  1 )
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37519960
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,

WaitForSingleObject вообще здесь ни при делах никак. У меня на сайте в библиотеке WinAPI.pbl есть объект, который переключает фокус на окно своего приложения. Можно творчески доработать с использованием FindWindow...
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37520001
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoR, Локшин Марк,
спасибо, сегодня посмотрю и попробую.
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37520013
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот интересно стало:
А определить (запретить) запускать N-е количество экземпляров ПО, тоже через CreateMutex делается? (т.е. ограничить кол-во рабочих мест).
Или все-таки подсчет через запущенные процессы? Либо как-то иначе?
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37520176
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,

Считающий мьютекс - это семафор.
...
Рейтинг: 0 / 0
Проверить наличие работающего лоадера?
    #37520264
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк,
о-о точно, уже вспомнил.
Уже не интересною :)
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проверить наличие работающего лоадера?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]