Главная страница
    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.037 c
14-1108735519
TUser
2005-02-18 17:05
2005.03.13
Ищу Telnet-сервер ...


9-1102690640
WandR
2004-12-10 17:57
2005.03.13
GLScene 3ds и большие тормоза


8-1100757230
Centr
2004-11-18 08:53
2005.03.13
куда щелкнул юзер?


1-1109233490
TankMan
2005-02-24 11:24
2005.03.13
Можно ли скомпилировать проект без установленного дельфи?


1-1109396807
Dr. Genius
2005-02-26 08:46
2005.03.13
Была ли зарезервирована (хот кей) определенная клавиша





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский