|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.02.2009, 19:08 | #11 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
тогда получай полный список процессов и смотри есть ли там нужный тебе и все
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
28.02.2009, 19:10 | #12 |
Пользователь
Регистрация: 13.02.2009
Сообщений: 10
|
наконец-то нашел работающую функцию, однако, интересная вещь данная функция неможет найти процесс taskmnr даже если он запущен почему так незнаю...
uses SysUtils, tlhelp32; function IsRunning(sName: string): boolean; // проверяет, запущен ли процесс sName var han: THandle; ProcStruct: PROCESSENTRY32; sID: string; begin Result := false; han := CreateToolhelp32Snapshot(TH32CS_SNA PALL, 0); if han = 0 then exit; ProcStruct.dwSize := sizeof(PROCESSENTRY32); if Process32First(han, ProcStruct) then begin repeat sID := ExtractFileName(ProcStruct.szExeFil e); if uppercase(copy(sId, 1, length(sName))) = uppercase(sName) then begin Result := true; Break; end; until not Process32Next(han, ProcStruct); end; CloseHandle(han); end; |
01.03.2009, 01:27 | #13 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
может потому что он пишется taskmgr.exe
именно вместе с расширением, хотя в данной функции расширение не обязательно кстати лучше немного её изменить так как она иногда будет давать неверные результаты (например есть приложение Primer1.exe, а в функции ищем Primer, и функция выдаст true) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 01.03.2009 в 01:57. |
04.03.2009, 01:12 | #14 |
Регистрация: 12.11.2007
Сообщений: 4
|
Просто создать припустим 5-сокетов, которые должны слушать 5-разных портов. И создай багатопоточный сервер. Там вить все просто... Вот пример простого сервера. Один поток. WinSock Application.
program Server; ///Done by Zastavnyi Oleh uses SysUtils, WinSock; const PORT=1845; BackLog=1; var _wData:WSAData; _POPsocket,ListenSocket:TSocket; _Server_Addr:sockaddr_in; _Err:Integer; ServInf:Array[1..64]of char; function MakeWord(A, B: Byte): Word; begin Result := A or B shl 8; end; begin ServInf:='Example Worck With WinSocket Application. Done By Zastavnyi Oleh'; if WSAStartup(MakeWord(1,1), _wData) <> 0 then writeln('Init - Bad') else writeln('Init - OK'); _POPsocket:=Socket(PF_INET,SOCK_STR EAM,IPPROTO_IP); if _POPsocket= SOCKET_ERROR then writeln('Socket Crated - Bad') else writeln('Socket Crated - OK'); _Server_Addr.sin_family:=AF_INET; _Server_Addr.sin_port:= htons(Port); _Server_Addr.sin_addr.S_addr:=INADD R_ANY; _Err:=bind(_POPsocket,_Server_Addr, sizeof(_Server_Addr)); if _Err=0 then Writeln('Bind - OK') else Writeln('Bind - Bad'); _Err:=listen(_POPsocket,BackLog); if _Err=0 then Writeln('Listen Startup - OK') else Writeln('Listen Startup - Bad'); _POPsocket:=accept(_POPsocket,0,0); if _POPsocket=INVALID_SOCKET then Writeln('Accept - Bad') else Writeln('Accept - OK [Connectded [1] ]'); _Err:=send(_POPsocket,ServInf,Sizeo f(ServInf),0); if _Err<>-1 then Writeln('Send Info - OK ', _Err,' byte') else Writeln('Send Info - Bad'); readln; end. |
04.03.2009, 18:11 | #15 |
Пользователь
Регистрация: 13.02.2009
Сообщений: 10
|
Увы, с правельным написанием таскменеджера у меня всегда были проблеммы но как бы я не извращался с написанием данного процесса ничего хорошего не вышло.....и функция его все равно не нашла....
|
04.03.2009, 18:53 | #16 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вот еще вариант, но в нем строго нужно писать имя приложения полностью вместе с .exe и лучше проверять начинай с explorer.exe
Код:
на всякий случай вот исходный вариант(почти!!!) Код:
Uses SysUtils, tlhelp32; само собой необходимо Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
06.03.2009, 17:24 | #17 |
Пользователь
Регистрация: 13.02.2009
Сообщений: 10
|
Спасибо, действительно данная функция находит таскменеджер
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[TcpClient, TcpServer] или [ServerSocket, ClientSocket] работа через прокси | DOLBY | Работа с сетью в Delphi | 2 | 17.09.2009 05:46 |
Работа с USB или COM портами | АлександрСергеевич | Общие вопросы Delphi | 2 | 26.12.2008 04:48 |
одновременная печать формы и Webbrowser | tigr1991 | Общие вопросы Delphi | 5 | 01.10.2008 14:43 |
Работа с ServerSocket и ClientSocket | AlDelta | Работа с сетью в Delphi | 12 | 28.09.2008 11:18 |
Работа с Clientsocket и Serversocket | prizrak1390 | Работа с сетью в Delphi | 3 | 26.04.2008 22:59 |