Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

Как узнать, открыт ли 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.032 c
4-1107175604
mbIkola
2005-01-31 15:46
2005.03.13
Как определить факт закрытия сессии в терминальном режиме.


1-1109645574
msgipss
2005-03-01 05:52
2005.03.13
Подскажите интерпретаторы для использования в Delphi 6 и выше


1-1109666619
paule
2005-03-01 11:43
2005.03.13
Маска в Edit


14-1108882090
SOFS
2005-02-20 09:48
2005.03.13
Какие языки програмрования будут востребованы в будущем?


4-1106937007
Лёха
2005-01-28 21:30
2005.03.13
Функция wsprintf...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский