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

Вниз

Есть ли у процесса окно?   Найти похожие ветки 

 
Andriy   (2003-07-23 12:41) [0]

Так как отличить процесс, у которого есть окно, от процесса, у котрого его нет? Напр. Ексель.


 
Виктор Щербаков   (2003-07-23 12:53) [1]

EnumWindows
GetWindowThreadProcessId


 
Digitman   (2003-07-23 13:06) [2]


> Напр. Ексель


С каких это пор Excel перестал быть GUI-приложением и с тех пор, якобы, не имеет окна ?


 
Игорь Шевченко   (2003-07-23 13:27) [3]

А никак!


 
Andriy   (2003-07-23 16:06) [4]

Что означает "никак"?
For Digitman:
Я запускаю Ексел (CreateOleObject(...)), потом работаю с ним через вариант
средствами VisualBasic. Выхожу из него(XL.Quit; XL.Close;), а он с процесов
не снимается. Прикол или прокол?


 
clickmaker   (2003-07-23 17:06) [5]

А XL.Disconnect сделать ?


 
nikkie   (2003-07-23 17:17) [6]

XL := nil;


 
Игорь Шевченко   (2003-07-23 17:18) [7]

Andriy (23.07.03 16:06)

Никак означает никак. И больше ничего.


 
Andriy   (2003-07-23 18:41) [8]

Неужели всё так плохо и нет выхода?


 
clickmaker   (2003-07-23 19:11) [9]

XL := CreateOleObject(
try
...
finally
XL.Quit;
XL.Disconnect;
XL := nil;
end;

прекрасно работает, все открывает и закрывает


 
Song   (2003-07-23 20:23) [10]

Удалено модератором
Примечание: Offtopic


 
Andriy   (2003-07-24 10:55) [11]

Спасибо! Попробую.
Честно говоря, что-то похожее пробовал, только без
"XL := nil;".
А разве можно варианту присвоить nil?! У меня матерится на это.
Только что попробовал этот кусок. На "XL.Disconnect;" тоже матерится.
Может потому-что у меня XP Office?
Переменная XL у меня типа вариант!
Помогите снять висячий Ексель!


 
clickmaker   (2003-07-24 10:59) [12]

Варианту можно присвоить Null или Unassigned. Эффект тот же


 
Игорь Шевченко   (2003-07-24 11:02) [13]

XL := NULL


 
Andriy   (2003-07-24 14:12) [14]

Та делал я это ещё раньше - не помогает!


 
Игорь Шевченко   (2003-07-24 15:13) [15]

А XL.Quit тоже делал ?

<moderator>
И вообще, какое отношение имеет выяснение способа завершения работы с Excel к форуму WinApi ?
</moderator>


 
nikkie   (2003-07-24 15:21) [16]

>Andriy
У тебя остаются ссылки на объекты Excel, которые не освобождены. Надо освобождать.

Приведи (желательно минимальный) код, который приводит к тому, что Excel остается в памяти.


 
Digitman   (2003-07-24 15:27) [17]


> Andriy (23.07.03 16:06)
> Что означает "никак"?
> For Digitman:
> Я запускаю Ексел (CreateOleObject(...)), потом работаю с
> ним через вариант
> средствами VisualBasic. Выхожу из него(XL.Quit; XL.Close;),
> а он с процесов
> не снимается. Прикол или прокол?


К окнам-то, которые Excel открывает или не открывает, которые видны или не видны при работе с Excel как с сервером автоматизациии, это все какое отношение имеет ?


 
Andriy   (2003-07-24 15:49) [18]

>И вообще, какое отношение имеет выяснение способа завершения работы с Excel к форуму WinApi ?

Я же с начала писал, что хочу снять процесс, у которого нет окна.
Это потому, что Ексель Остаётбся в процессах. А если вслепую все Ексели снимать, то открытые пользователем тоже вырубаются. А зачем?

>Nikkie
Вот укороченый код. Спасибо за понимание! Все бы такими были хорошими!

procedure LoadFromExcel(MD: TdxMemData);
var XL: Variant;
Nom, I, Code: Integer;
begin
XL:=Unassigned;
Nom:=1;

if VarIsEmpty(XL) then try
XL:=CreateOleObject("Excel.Application");
XL.WorkBooks.Open(ExtractFileDir(Application.ExeName) +PathDelim+XLS_DIR+PathDelim+FILENAME);

Val(XL.WorkSheets[WORKSHEET].Range[ID+IntToStr(Nom)], I, Code);
while Code=0 do
begin
with MD do
begin
//
FieldByName("ID").AsInteger:=I;

Inc(Nom);
Val(XL.WorkSheets[WORKSHEET].Range[ID+IntToStr(Nom)], I, Code);
end;
finally
XL.WorkBooks.Close;
XL.Quit;
XL:=NULL;
XL:=Unassigned;
end;
end;


 
nikkie   (2003-07-24 16:26) [19]

>Все бы такими были хорошими!
А если бы все публиковали код, который по крайней мере компилялся бы, то я бы знаешь какой добрый был? Уууу...

У меня этот код excel97 в процессах не оставляет.


 
dick   (2003-07-24 16:43) [20]

Сделай Excel видимым и посмотри, что там происходит.
Может он у тебя подтверждение на сохранение просит.



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

Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.015 c
3-20438
McSimm2
2003-07-15 08:46
2003.08.07
Оптимизация запроса


1-20559
Alexxxx
2003-07-23 17:24
2003.08.07
Как сделать оброботчик события MouseEnter на Image


1-20607
GrBob
2003-07-24 17:04
2003.08.07
Out of memory while expanding memory stream


1-20542
lipskiy
2003-07-21 23:46
2003.08.07
TImage, TTolbar и 32-битные иконки


14-20771
Nikolay M.
2003-07-21 16:22
2003.08.07
Продолжение карьеры программиста - ?





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