Главная страница
    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.009 c
1-20536
The X
2003-07-26 17:41
2003.08.07
Как узнать количество символов (с пробелами) в TMemo или TDBMemo?


11-20459
lamachok
2002-12-01 22:41
2003.08.07
Трей


14-20809
No
2003-07-21 09:48
2003.08.07
*.EXE файл


4-20868
Sergey
2003-06-05 04:34
2003.08.07
как программно выключить компьютер с Win XP?


14-20704
Andreson
2003-07-23 14:46
2003.08.07
Как записать таблицу формата <B>*.dbf </B>в текстовый файл?





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