| Структура программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Какой версией Delphi вы пользуетесь, Просто интересно знать... Округление чисел, Как округ число в большую сторону Как какой-либо переменной передать, все свойства какого-нибудь компонента? Можно ли открючить рамку у TRadioGroup? 3D-объекты События при изменении изображения на экр Как программно закрыть окно чужой программы?, Зная его заголовок. MessageDlg Научить приложение в Делфи говорить Монитор!!!, подскажите недотёпе Как передвигать программно курсор в TEdit-e Помогите Как обработать минимизацию формы?, Как обработать минимизацию формы? Компонент в RichEdit, Компонент в RichEdit мешает Полигон для формы, Создание, редактирование полигонов Аналоги процедур Задачка по программированию есть. Как попасть в ProgramFiles, Как попасть в ProgramFiles Виртуальные диски, и работа с ними Запуск программы с ограниченными правами, Win2003Server Ent + MSSQL и сетевой диск Файловый менеджер, Помогите может кто уже писал Как прекрепить файл к The Bat!, Не подскажите? длинная строка DELPHI 2005, Delphi 9 Telnet, про телнет Компоненты для плоского меню как присоединить поток к чужой проге? TeeChart 7.0 Pro, Качайте Как передать управление другой процедуре? Работа с типами данных, Single и array [0..3] of byte Компоненты для создания меню в стиле XP, Не знаете - есть ли они в природе? Как Вы относитесь к курящим девушкам? Как запаролить открытие формы в Delphi? Система ленейных уравнений, Метод Гаусса Данные по порту... Нужен ZIP компонент, позволяющий сжатие данных по блокам блокировка текстового файла, блокировка текстового файла DelphiX для Delphi 6 Компонент "богатый текст", написать его... Как записать динамический массив в бинарный файл. Как вставить файл WAVES.S3M в форму DBGrid, Проблема с настройками свойств Как запустить "'desk.cpl" расширение .cpl, расширение .cpl Создание события, Новое событие Задача на деревья, Может кто знает как решить это? Синтаксический и лексический анализаторы, Каков алгоритм их работы OLE и TWebBrowser, OLE и TWebBrowser ВЫзов Фукнкции, помогите высзвать функцию Как запустить файл из system32 расширения .msc Как отключить кнопку развернуть как в программе узнать запущена другая программа? Рисунок с рабочго стола по LAN, Рисунок с рабочго стола вот блин а Дельфи - это СЛОЖНАЯ ВЕЩЬ, и никто не предуредил Вложенные циклы, Кол-во вложенных циклов Строки, общая подстрока Как пройти из точки A(x1;y1) в точку B(x2;y2)..., ...по прямой линии Помогите найти ошибку в модуле компонента, для компиляции Image через Timer Написание Service Как копировать одну ячейку StringGrid'a? Системное время frames, or..? список MsSql серверов Скины для формы Ошибка в наследнике TStringGrid, Ошибка в наследнике TStringGrid Динамическое создание обьектов, как динамически создать обьект??? Динамическое создание форм Помогите пожалуйчта решить сложную задачку, из префиксной формы в постфиксную Работа с файлом, как проч. ф. по 20 симв. в строках screensaver Как к приложению прикрепить иконку? |
Платные хостинги Раскрутка сайта Книги по программированию как в программе узнать запущена другая программа?
- Здравствуйте . Прошу сообщить , как в программе узнать запущена другая программа или нет . - Как так?! Какая программа? Своя собственная?Можно поточнее... - а может через WinApi? Это сообщение отредактировал Ddddddelphi - 11.12.2004, 12:47 - Найди в нете такую хелпу как Kuliba. Там точно было.Способ еще зависит от того имеет ли др. приложение окно иил нет.Вот из кулибы."Получение списка запущеных приложенийIgor Nikolaev aKa The Sprite предлагает следующий код:-------------------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject);VARWnd : hWnd;buff: ARRAY [0..127] OF Char;beginListBox1.Clear;Wnd := GetWindow(Handle, gw_HWndFirst);WHILE Wnd <> 0 DO BEGIN {Hе показываем:}IF (Wnd <> Application.Handle) AND {-Собственное окно}IsWindowVisible(Wnd) AND {-Hевидимые окна}(GetWindow(Wnd, gw_Owner) = 0) AND {-Дочернии окна}(GetWindowText(Wnd, buff, sizeof(buff)) <> 0)THEN BEGINGetWindowText(Wnd, buff, sizeof(buff));ListBox1.Items.Add(StrPas(buff));END;Wnd := GetWindow(Wnd, gw_hWndNext);END;ListBox1.ItemIndex := 0;end; "Еще оттуда же."Как получить хэндлы всех пpоцессов, котоpые запущены на данный момент в системе?Nomadic отвечает:Под Windows 95 это возможно с использованием вспомогательных инфоpмационных функций (tool help functions).Для получения списка пpоцессов надо делать следующее:Cпеpва вызывается фукция -------------------------------------------------------------------------------- hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)// - получение снимка состояния системы Process32First() - получене инфоpмации о пеpвом пpоцессе в спискеДалее в цикле Process32Next() - получение инфоpмации о следующем пpоцессе в спискеПример:>== Режем pаз ==>-------------------------------------------------------------------------------- unit KernlUtl;interfaceuses TlHelp32, Windows, Classes, Sysutils;procedure GetProcessList(List: TStrings);procedure GetModuleList(List: TStrings);function GetProcessHandle(ProcessID: DWORD): THandle;procedure GetParentProcessInfo(var ID: DWORD; var Path: String);constPROCESS_TERMINATE = $0001;PROCESS_CREATE_THREAD = $0002;PROCESS_VM_OPERATION = $0008;PROCESS_VM_READ = $0010;PROCESS_VM_WRITE = $0020;PROCESS_DUP_HANDLE = $0040;PROCESS_CREATE_PROCESS = $0080;PROCESS_SET_QUOTA = $0100;PROCESS_SET_INFORMATION = $0200;PROCESS_QUERY_INFORMATION = $0400;PROCESS_ALL_ACCESS =STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $0FFF;implementationprocedure GetProcessList(List: TStrings);varI: Integer;hSnapshoot: THandle;pe32: TProcessEntry32;beginList.Clear;hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (hSnapshoot = -1) thenExit;pe32.dwSize := SizeOf(TProcessEntry32);if (Process32First(hSnapshoot, pe32)) thenrepeatI := List.Add(Format('%x, %x: %s',[pe32.th32ProcessID, pe32.th32ParentProcessID, pe32.szExeFile]));List.Objects[I] := Pointer(pe32.th32ProcessID);until not Process32Next(hSnapshoot, pe32);CloseHandle (hSnapshoot);end;procedure GetModuleList(List: TStrings);varI: Integer;hSnapshoot: THandle;me32: TModuleEntry32;beginList.Clear;hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, 0);if (hSnapshoot = -1) thenExit;me32.dwSize := SizeOf(TModuleEntry32);if (Module32First(hSnapshoot, me32)) thenrepeatI := List.Add(me32.szModule);List.Objects[I] := Pointer(me32.th32ModuleID);until not Module32Next(hSnapshoot, me32);CloseHandle (hSnapshoot);end;procedure GetParentProcessInfo(var ID: DWORD; var Path: String);varProcessID: DWORD;hSnapshoot: THandle;pe32: TProcessEntry32;beginProcessID := GetCurrentProcessID;ID := -1;Path := '';hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (hSnapshoot = -1) thenExit;pe32.dwSize := SizeOf(TProcessEntry32);if (Process32First(hSnapshoot, pe32)) thenrepeatif pe32.th32ProcessID = ProcessID thenbeginID := pe32.th32ParentProcessID;Break;end;until not Process32Next(hSnapshoot, pe32);if ID <> -1 thenbeginif (Process32First(hSnapshoot, pe32)) thenrepeatif pe32.th32ProcessID = ID thenbeginPath := pe32.szExeFile;Break;end;until not Process32Next(hSnapshoot, pe32);end;CloseHandle (hSnapshoot);end;function GetProcessHandle(ProcessID: DWORD): THandle;beginResult := OpenProcess(PROCESS_ALL_ACCESS, True, ProcessID);end;end. "P.S. седовательно надо это понимать так, что процесс иприложение не одно и то же. - |