Форум: "Начинающим";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];
ВнизКак узнать, что запущено сторонее приложение? Найти похожие ветки
← →
Гость22 (2005-09-23 10:01) [0]Например, Ворд.
← →
гость333 (2005-09-23 10:08) [1]
procedure TForm1.Button2Click(Sender: TObject);
var
handler:thandle;
data:TProcessEntry32;
function return_name:string; // Вспомоготельная функция получения имени
var
i:byte;
names:string;
begin
names:="";
i:=0;
while data.szExeFile[i] <> "" do
begin
names:=names+data.szExeFile[i];
inc(i);
end;
return_name:=names;
end;
begin //Основная функция перечисления процессов
handler:=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
if Process32First(handler,data) then
begin
memo1.lines.add(return_name);
while Process32Next(handler,data) do
memo1.lines.add(return_name);
end
else
showmessage("Ошибка получения информации :)");
CloseHandle(handler); //Хендл закрывать обязательно!!
end;
вот функция которая выводит список процессов в мемо, может поможет?
← →
umbra © (2005-09-23 10:57) [2]Если речь идет об офисных приложениях, так они все - сервера COM и узнать, запущены они или нет можно функцией GetActiveOLEObject
procedure IsWordRunning;
begin
try
GetActiveOleObject("Word.Application");
except
on OleSysError do ShowMessage("Ворд не запущенэ);
end;
end;
← →
Гость22 (2005-09-23 11:41) [3]Спасибо!
А как узнать, открыт ли определенный документ Ворд?
← →
pavel_guzhanov © (2005-09-23 11:49) [4]В заголовке ворда пишется Microsoft Word + название документа. По этому заголовку можно определить хендл окна... Если он допустимый, то значит этот документ открыт, если нет - то...
← →
Гость22 (2005-09-23 11:59) [5]
> По этому заголовку можно определить хендл окна...
подскажите, как это сделать.
← →
ssk © (2005-09-23 12:01) [6]Примерно так:
function FindOpenDocumentInWord(aString: string): HWND;
var
Buffer: array[0..255] of char;
begin
Result := 0;
repeat
Result := FindWindowEx(0, Result, nil, nil);
GetWindowText(Result, Buffer, SizeOf(Buffer));
if StrPos(AnsiStrUpper(Buffer), PChar(AnsiUpperCase(aString))) <> nil then
Break;
until Result = 0;
end;
Пример:var
H: HWND;
begin
H := FindOpenDocumentInWord("Документ1");
if H <> 0 then
ShowMessage("Документ уже открыт");
end;</
← →
ssk © (2005-09-23 12:04) [7]по большому счету так можно найти не только ворд, но и любое другое окно
← →
umbra © (2005-09-23 12:09) [8]Если тебе нужно узнать, открыт ли какой нибудь программой какой-нибудь файл, то смотри сюда:
http://delphimaster.net/view/4-1127290638/
Там в первом же ответе есть код. Документ Ворд может быть открыт не только вордом но и другими прогаммами (OpenOffice.org, напрмер, или какой нибудь твоей прогой.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.054 c