На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! user posted image
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Соблюдайте общие правила форума

Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство)
... (продолжение следует) ...

Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки - бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

Модераторы: Rouse_, Krid
  
> Как узнать запущена ли рабочая книга
    Я в процедуре запускаю Excel и ищу там строку. Потом не закрывая Excel я осуществляю поиск еще раз, но вылетает ошибка. Т.е. мне надо тогда знать открыта ли рабочая книга с которой я работаю и если открыта, то ищу, а если нет то открываю. Как узнать открыта ли она. :'(
      Цитата Smoke, 06.11.2005, 12:11:03, 907422
      Потом не закрывая Excel я осуществляю поиск еще раз, но вылетает ошибка
      - а в первый раз не вылетает ошибка? Если ты открываешь рабочую книгу, то значит, ошибка не в этом. Попоробуй искать сначала листа или в обратном направлении. Ну а если хочешь знать, открыта ли твоя рабочая книга, можешь попробовать GetActiveOleObject или, наверное, лучше FindWindow
        Смотри. В первый раз я запускаю Excel и рабочую книгу с именем OrgName, там я ищу нужную строку. Потом допустим я ищу другую строку, тут я опять проверяю, а открыта ли рабочая книга OrgName? Т.е. пользователь мог закрыть Excel после первого поиска, тогда все просто, мы опять создаем CreateOLEobject. А если пользователь не закрыл Excel, то нам же его не надо опять криэйтить. Тогда мы проверяем а запущен ли он. Но этого мало, нужно еще знать окрыта ли рабочая книга, что бы еще раз ее не открывать, а работать с ней же. Вот это мне и нужно. Как узнать открыта ли рабочая книга OrgName в Excel?
          ExpandedWrap disabled
            var
             Excel, WorkBooks: variant;
             OrgNameOpened: boolean;
             i: integer;
            begin
             OrgNameOpened := false;
             try
               // Получаем открытый Excel
               Excel := GetActiveOleObject('Excel.Application');
               // Проверяем все открытые рабочие книги, и если в названии одной из них
               // есть 'OrgName', то искомая книга открыта
               WorkBooks := Excel.WorkBooks;
               for i := 1 to WorkBooks.Count do
                if Pos('OrgName', WorkBooks.Item[i].Name) > 0 then
                 begin
                  OrgNameOpened := true;
                  Break;
                 end;
             
              except
             
              end;
             Excel := Unassigned;
             WorkBooks := Unassigned;
             
             // Если книга не открыта, то открываем ее
             if not OrgNameOpened then
              begin
               CreateOleObject...
              end;
            end;
            СПАСИБО!!!!
            Без тебя я бы это сделал намного позднее! :D
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0200 ]   [ 15 queries used ]   [ Generated: 19.05.24, 13:24 GMT ]