Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа на Delphi должна вызвать Mathcad, ... но в скрытом (в свернутом) режиме 
:(
    Опции темы
bagira
Дата 10.7.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

Репутация: нет
Всего: 123



Здравствуйте! smile Давно не виделись!

Итак, инженеры наши разработали измерительный стенд и составили программу в Mathcad, которая обрабатывает результаты и выдает некие данные. Инженерам удобно - там много всего встроенного - интегралы, решение систем уравнений, и т.д.

Но с измерительным стендом должны в будущем работать лаборанты, рабочие, они совершенно не понимают  Mathcad, им очень неудобно, не нравится и не понятно. В общем, попросили меня переделать - "то же самое, но в удобном для понимания виде".

Я решила немного упростить себе задачу (в связи с ленивостью  smile ) - не переделывать программу целиком, а запускать из Дельфийской программы - Маткадовскую. 

Программка Маткадовская - берет текстовый файл, из него данные, и результаты опять-таки пишет в текстовый файл.
Получается просто - вызвать Маткадовскую из Дельфийской, использовать данные из входного файла, потом взять из выходного - вновь в Дельфи.... но вот проблема - нужно, чтобы при вызове окно было скрыто - не нужно ведь пугать рабочих Маткадом smile

Использую WinExec, вся придуманная хитрая система, вроде, работает, но вот проблема - никак не получается скрыть (минимизировать) окно Маткада.

Есть какие-то способы?

Спасибо за внимание smile
Заранее благодарна smile



Это сообщение отредактировал(а) bagira - 10.7.2008, 19:28


--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
VICTAR
Дата 10.7.2008, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



Код

var
  lWnd: HWND;
begin
  lWnd := FindWindow(nil, ЗАГОЛОВОК_ОКНА);
  if lWnd <> 0 then
    ShowWindow(lWnd, SW_MINIMIZE);

PM MAIL   Вверх
bagira
Дата 10.7.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

Репутация: нет
Всего: 123



Цитата(VICTAR @  10.7.2008,  21:37 Найти цитируемый пост)
lWnd := FindWindow(nil, ЗАГОЛОВОК_ОКНА);


Спасибо!
А заголовок окна, как определить заранее?


--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
VICTAR
Дата 10.7.2008, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



Цитата(bagira @  10.7.2008,  19:50 Найти цитируемый пост)
А заголовок окна, как определить заранее? 

Ну как бы посмотреть), хотя наверное не вариант, т.к. заголовок вроде меняется.
Лучше сделать через класс окна(первый параметр). 
Тогда функция примет вид:
lWnd := FindWindow(КЛАСС_ОКНА, nil);
PM MAIL   Вверх
bagira
Дата 10.7.2008, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2858
Регистрация: 25.10.2003
Где: в тайге Уральских гор

Репутация: нет
Всего: 123



VICTAR, спасибо! Попробую smile


--------------------
Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил...
Ф.Х. Дагларджа (Турция)
http://zveriolginovour.ru/
https://vmeste.yandex.ru/zveriolginovour 
PM MAIL WWW ICQ   Вверх
VICTAR
Дата 10.7.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



Не за что  smile 
PM MAIL   Вверх
Coder
Дата 11.7.2008, 06:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 5
Всего: 11



VICTAR, но в таком случае заставку пользователи все равно увидят.

Я думаю нужно использовать что-то вроде этого:

Код

procedure Start(S : String);
var
  si: TStartupInfo;
  p:  TProcessInformation;
  procID : HWND;
begin
  FillChar(Si,SizeOf(Si),0);
  with Si do begin
    cb := SizeOf( Si);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := SW_HIDE;
  end;
  Application.Minimize;
  Createprocess(nil,PCHAR(S),nil,nil,false,CREATE_DEFAULT_ERROR_MODE,nil,nil,si,p);
  Waitforsingleobject(p.hProcess,INFINITE);
  Application.Restore;
end;


Играться нужно с этими параметрами:
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := SW_HIDE;
PM MAIL   Вверх
VICTAR
Дата 11.7.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



Мне почему-то показалось, что сторонняя программа изначально уже была запущена.
PM MAIL   Вверх
Coder
Дата 11.7.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 5
Всего: 11



bagira, для разнообразия глянь вот это http://radiomaster.ru/cad/doc/DevRef/Automation.php
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0668 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.