Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2010, 11:05   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию Найти окно программы если запущен exe

Всем привет!
Возник вопрос, как найти окно другой программы, если запущен её(др. программы exe).

Хочу изменить заголовок, а как как его нет, то нужно его получить по hwnd окна, которое тоже надо найти. Из всего этого известно только что запущен exe программы.

Как искать?

Последний раз редактировалось Человек_Борща; 28.08.2010 в 20:51.
Человек_Борща вне форума Ответить с цитированием
Старый 28.08.2010, 12:24   #2
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

тыц
На заметку: у одного процесса может быть очень много окон

Последний раз редактировалось r9m; 28.08.2010 в 12:33.
r9m вне форума Ответить с цитированием
Старый 28.08.2010, 12:39   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Спасибо=)

Хм просто хочу задать имя окну которое принадлежит процессу, через CreateProcess это сделать можно?

И так, пошёл другим путём через CreateProcess в потоке:
Код:
var
SI:TstartupInfo
begin
...
        if Length(AppInfo.AppOtherCaption) > 0  then
        begin
        SI.lpTitle:= //это как я понял и есть заголовок
        end;

      CreateProcess(
        PChar(AppInfo.AppExe),
        PChar(AppInfo.AppParamStr), nil, nil,
        False, GetPriority(AppInfo.AppPriority), nil,
        PChar(ExtractFileDir(AppInfo.AppExe)), SI, PI);
      SetProcessAffinityMask(pi.hProcess, AppInfo.AppCPUAffinity);
      WaitForSingleObject(pi.hProcess, INFINITE);
      CloseHandle(pi.hProcess);
      CloseHandle(pi.hThread);
как туда передать текст из параметра AppOtherCaption структуры:
Код:
type
  {класс информации о программе}
  TAppInfo = record
    AppName: string; // Имя
    AppExe: string; // Полный путь до ехе
    AppParamStr: string; // Параметры закуска
    AppOtherCaption:string; //Заголовок другой.
    AppPriority: Integer; // Приоритет
    AppFirstStart: Integer; // Первый запуск через
    AppSecondStart: Integer; // Второй запуск через
    AppRestart: Integer;
    AppRestartInTime: TTime; // Перезапуск после ошибки
    AppStart: Boolean; // Стартовать после окея?
    AppCPUAffinity: Cardinal; // Запуск на ядре
    AppStartMin: Boolean; // Запуск свёрнутым
  end;
  PAppInfo = ^TAppInfo;

Последний раз редактировалось Stilet; 30.08.2010 в 09:07.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выскакивает окно при запуске операционки: Windows не удаётся найти 'svchost.exe'..... СисТемникс Windows 2 15.08.2010 09:23
Как удалить exe если он запущен? jone Общие вопросы Delphi 31 07.06.2010 13:33
Нужно программно найти окно программы и нажать на нем кнопку SeRыЙ Win Api 23 09.03.2010 08:00
Помогите Каждый час вылазиет окно DOS файл smd.exe не может найти папка c:\Documents and Settings\Network Carlson25 Windows 5 30.03.2009 21:27
создать папку в том месте откуда запущен exe Stanislav Общие вопросы Delphi 1 22.11.2007 17:58