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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2008, 15:39   #1
Son
Пользователь
 
Аватар для Son
 
Регистрация: 24.11.2008
Сообщений: 76
По умолчанию

Привет. Фукнция FindWindows возвращает хендел по названию или по классу окна. Как можно узнать класс окна, допустим зная его название? Задача: нужно обратиться к проигрывателю (Media Player Classic).

Вот код. Что ту неправильно?

Код:
procedure TForm1.Button2Click(Sender: TObject);
  var cl:PChar;idi:HWND;
begin
  idi:=FindWindow(nil,'Косынка');
  GetClassName(idi,cl,10);
  Memo1.Text:=cl;
end;
В результате: S‹Ш‹ГивО
Лучше сдохнуть, чем жить с иглой в яйце (Кащей Бессмертный)

Последний раз редактировалось rpy3uH; 24.11.2008 в 16:27.
Son вне форума Ответить с цитированием
Старый 24.11.2008, 16:31   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
  var cl:array[0..255] of char;
  idi:HWND;
begin
  idi:=FindWindow(nil,'Косынка');
  GetClassName(idi,@cl,10);
  ShowMEssage(cl);
end;
rpy3uH вне форума Ответить с цитированием
Старый 25.11.2008, 08:45   #3
Son
Пользователь
 
Аватар для Son
 
Регистрация: 24.11.2008
Сообщений: 76
По умолчанию

И вот еще какая проблема. Delphi 7 ругается на функцию GetModuleUsage.
[Error] Unit1.pas(40): Undeclared identifier: 'GetModuleUsage'.
Какой модуль необходимо подключить?
Лучше сдохнуть, чем жить с иглой в яйце (Кащей Бессмертный)
Son вне форума Ответить с цитированием
Старый 25.11.2008, 09:08   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

а такая функция вообще существует? а если существует, то из какой она операционной системы?
rpy3uH вне форума Ответить с цитированием
Старый 25.11.2008, 10:28   #5
Son
Пользователь
 
Аватар для Son
 
Регистрация: 24.11.2008
Сообщений: 76
По умолчанию

Вот пример http://www.delphiworld.narod.ru/base...other_app.html
Скачал функции API там тоже указана эта процедура.
Функция GetModuleUsage

Описание:
function GetModuleUsage(Module: THandle): Integer;
Считывает счетчик обpащений к модулю.
Паpаметpы:
Module: Идентификатоp модуля.
Возвpащаемое значение:
Значение счетчика обpащений.
Лучше сдохнуть, чем жить с иглой в яйце (Кащей Бессмертный)
Son вне форума Ответить с цитированием
Старый 25.11.2008, 11:29   #6
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию Запуск процесса и ожидание его завершения

эти функции старые и использовались в 16 битных Win 3.x
есть более современный вариант.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Rlst: LongBool;
  StartUpInfo: TStartUpInfo;
  ProcessInfo: TProcessInformation;
  Error: integer;
  ExitCode: Cardinal;
begin
  FillChar(StartUpInfo, SizeOf(TStartUpInfo), 0);
  StartUpInfo.cb := SizeOf(TStartUpInfo);
  StartUpInfo.dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
  StartUpInfo.wShowWindow := SW_SHOWNORMAL;

  Rlst := CreateProcess('C:\Windows\System32\calc.exe', nil, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo);
  WaitforSingleObject(ProcessInfo.hProcess, INFINITE); 
  ShowMessage('процесс звершён');
end;

Последний раз редактировалось rpy3uH; 25.11.2008 в 11:31.
rpy3uH вне форума Ответить с цитированием
Старый 25.11.2008, 11:52   #7
Son
Пользователь
 
Аватар для Son
 
Регистрация: 24.11.2008
Сообщений: 76
Хорошо

Все работает! спасибо большое rpy3uH!
Лучше сдохнуть, чем жить с иглой в яйце (Кащей Бессмертный)
Son вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить ping Маркъ Работа с сетью в Delphi 7 24.05.2011 17:51
Как определить координаты иконки приложения в system tray? SkAndrew Общие вопросы Delphi 5 18.08.2008 16:52
Среди 20 введёных чисел определить чётные, распечатать их, определить min Spade Помощь студентам 4 15.06.2008 18:39
Как определить хендл SeRhy Помощь студентам 1 20.11.2007 20:14
Смена иконки стороннего приложения Wiedzmin Win Api 2 01.05.2007 16:19