Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Как узнать, открыт ли Excel?   Найти похожие ветки 

 
}|{yk ©   (2005-02-28 17:11) [0]

Собственно.


 
}|{yk ©   (2005-02-28 17:18) [1]

Можна например так
GetPidFromProcessName("EXCEL.EXE")  <> $FFFF
но это как-то неправильно...


 
MU   (2005-02-28 17:21) [2]

может,
function GetActiveOleObject(const ClassName: string): IDispatch;


 
wild_arg ©   (2005-02-28 17:22) [3]

if MessageDlg("А не открыт ли у Вас Excel?", mtConfirmation, [mbYes,mbNo],0)=mrYes
then
 //открыт
else
 //не открыт

:) сорьки, не удержался...


 
pasha_golub ©   (2005-02-28 17:25) [4]

wild_arg ©   (28.02.05 17:22) [3]
LOL

MU   (28.02.05 17:21) [2]
ИМХО, не пойдет. Ибо откроет новое и скажет, шо есть..


 
Ольга   (2005-02-28 17:27) [5]

function GetActiveOleObject в отношении к EXCEL работает некорректно. Я и сама в этом убедилась, а потом нашла в книге "СОМ-технологии" подтверждение, авторы пишут "... по непонятным причинам"


 
MU   (2005-02-28 17:28) [6]

2 pasha_golub ©
 подойдет


 
ArchValentin ©   (2005-02-28 18:10) [7]

не гони, всё можно намутить гораздо проще, перебираешь все окошки FindWindow, и проверяешь если первые n букв в названии равны "MS Exel" то => он открыт иначе нихрена подобного.


 
Ольга   (2005-02-28 18:25) [8]

А если смотреть в корень: зачем вам знать открыт ли Excel? Может нужно просто корректно закрывать "свои" Excel-и, а то можно закрыть открытый пользователем Excel, не имеющий никакого отношения к вашему приложению.


 
aus   (2005-02-28 18:30) [9]

ArchValentin ©   (28.02.05 18:10) [7]
не гони, я ведь имею право свой хелловорлд назвать "MS Exel"


 
Алхимик ©   (2005-02-28 18:40) [10]


> [3] wild_arg ©   (28.02.05 17:22)
> if MessageDlg("А не открыт ли у Вас Excel?", mtConfirmation,
> [mbYes,mbNo],0)=mrYes
> then
>  //открыт
> else
>  //не открыт

С точки зрения программиста, пользователь - это периферийное устройство,
вводящее набор символов в ответ на команду READ. :)


 
GanibalLector ©   (2005-03-01 02:10) [11]

Вариант№1(облегченный)

 var Excels:Variant;
begin
 try
   try
     Excels:=GetActiveOleObject("Excel.Application");
   finally
     //значит есть ;)
     Excels:=Unassigned;
   end;
 except
   MessageDlg("Нет его тут!",mterror,[MbOk],0);
 end;
end;


 
GanibalLector ©   (2005-03-01 02:16) [12]

Вариант №2(с коннектом)
 var Excels:Variant;
     n:integer;
begin
 try
   try
     Excels:=GetActiveOleObject("Excel.Application");
     Caption:="Найдено документов:"+ IntToStr(Excels.WorkBooks.Count);
     for n:=1 to Excels.WorkBooks.Count do
     begin
       if AnsiSameText("E:\Kharkov.xls",Excels.Workbooks[n].FullName) then
       begin
         // тут работаем
         Excels.WorkBooks[1].WorkSheets[1].Name:="Привет из Харькова!";
         //
       end;
     end;
   finally
     Excels:=Unassigned;
   end;
 except
   MessageDlg("Excel не найден!",mterror,[MbOk],0);
 end;
end;


 
GanibalLector ©   (2005-03-01 02:22) [13]

2 }|{yk ©
И еще,хотел поинтересоваться...
В статье http://www.delphimaster.ru/articles/frames/index.html Вы работаете с INI на мой взгяд не корректно.Ведь не всегда есть права на запись! Тут бы try ... except не помешали .
З.Ы.Пардон,если что...


 
ArchValentin ©   (2005-03-01 03:41) [14]


> aus   (28.02.05 18:30) [9]

...и сколько ты видел программ с заголовком "Microsoft Exel"? если не секрет. Вот мне только некая прога из какого-то Office"a попадалась :)))



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
1-1109502439
Viktop
2005-02-27 14:07
2005.03.13
Цветные ячейки в StringGrid


3-1108127226
Max Zyuzin
2005-02-11 16:07
2005.03.13
Посоветуйте чем лучше состыковывать Delphi 7 и MSSQL


14-1109146008
}|{yk
2005-02-23 11:06
2005.03.13
Тестирование ПО


1-1109255995
AdmeraL
2005-02-24 17:39
2005.03.13
REGISTRY


1-1109453949
StarLit
2005-02-27 00:39
2005.03.13
Как лучше организовать список из двух