powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DOS - WINDOWS - DOS
54 сообщений из 54, показаны все 3 страниц
DOS - WINDOWS - DOS
    #35052448
UNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNP
Гость
Здравствуйте!
Вопрос следующий: имеется ли возможность из под WIN98 - WINXP с помощью функций API (или другим способом) из всех запущенных приложений выделить только те, которые работают под DOS-ом. Окна с этими приложениями надо сворачивать в пиктограмму, а затем разворачивать. Пытаюсь это сделать через дескрипторы виндовых окон - получается плохо. Может кто подскажет более лучшее решение.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35052570
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DOS задачи выполняются под процессом NTVDM.EXE (только под 2000/XP), смотри привязку окна к процессу.

Поспрошай в форуме по С++. Работа с WinAPI им лучше известна.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35052686
UNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNP
Гость
Если можно, поточнее...
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35052807
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опишите задачу, которую пытаетесь решить, что-то мне кажется, что есть более простой способ её решения.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35053052
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNPЕсли можно, поточнее...
Искать некогда, если память не изменяет, то по окну можно узнать поток, к которому оно привязано, по потоку процесс, по процессу смотришь какой EXE его запустил. Если NTVDM.EXE (это виртуальная DOS-машина) то значит прога ДОСавая. Но это только для 2000/XP так.

Может есть другие признаки, не знаю, редко с WinAPI работаю.

Я бы посоветовал это на Си написать и в DLL/FLL обернуть. Там много работы со структурами, а из фокса тяжело со структурами работать.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35053061
UNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNP
Гость
Задача следующая: из DOS-приложения запускается WIN-приложение. В момент запуска, DOS-приложение должно быть свернуто. После завершения WIN-приложения, DOS-приложение должно быть развернуто.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35053119
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNPЗадача следующая: из DOS-приложения запускается WIN-приложение. В момент запуска, DOS-приложение должно быть свернуто. После завершения WIN-приложения, DOS-приложение должно быть развернуто. Так бы сразу и сказал.
Сделай помежуточное консольное приложение на Си, которое вызовет твое WIN-приложение.
У меня так из полноэкранного дос окна работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
typedef BOOL (WINAPI *ASFW)(DWORD);

int main(int argc, char* argv[])
{
	HWND hWnd = GetConsoleHwnd();
	// Разрешаем перехват ввода всплываюшими окнами для  2000 /XP
	ASFW AllowSetForeWindow = NULL;
	HMODULE hUser32 = GetModuleHandle("user32");
	AllowSetForeWindow = (ASFW) GetProcAddress(hUser32, _T("AllowSetForegroundWindow"));
	if(AllowSetForeWindow != NULL) AllowSetForeWindow(- 1 );

	// Запуск WinEXE и ожидание завершения
...
	// Возврат консольного окна в исходное состояние
	SetForegroundWindow(hWnd);
	ShowWindow(hWnd , SW_SHOWMAXIMIZED);
	return  0 ;
}
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35053415
UNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNP
Гость
Дима! Приложения на разных языках, Поэтому из WIN-приложения мне надо определить все запущенные DOS-ие приложения и свернуть их окна, а затем, при завершении WIN-приложения, восстановить свернутые окна.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35053461
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNPДима! Приложения на разных языках, Поэтому из WIN-приложения мне надо определить все запущенные DOS-ие приложения и свернуть их окна, а затем, при завершении WIN-приложения, восстановить свернутые окна.
Дос прога запускает "переходник" (заготовку исходника на Си я привел).
Переходник - это консольное Win-приложение, т.е. при запуске ОС дает ему окно ДОС-приложения, потом он запускает твое Win-приложение, ждет пока оно отработает, после разворачивает свое окно и завершается. А так как он в окне дос-проги, то дос прога оказывается обратно развернутой.
Консольное приложение на фоксе не сделать, я на MS VC++ делаю.

У меня так библиотека сбербанка для расчетов по картам из кассовой проги (в полноэкранном режиме) на FPD вызывается.
Работа с Win-драйвером фискального регистратора через COM тоже через консольную прогу из доса.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35053494
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще
сворачивание ДОС-окна:
Код: plaintext
1.
	ShowWindow(hWnd , SW_SHOWMINIMIZED);

Поизучай сказанное. Если не разберешься пиши завтра к вечеру. Время будет слеплю тебе прогу которая сворачивает свое окно, запускает другую (переданную как параметр), ждет завершения и разворачивает окно обратно.

Не заметил. GetConsoleHwnd() не WinAPI функция.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
//*******************************************************************
// Получение хэндла консольного окна
HWND GetConsoleHwnd(void)
{
#define MY_BUFSIZE  1024  // Buffer size for console window titles.
HWND hwndFound; // This is what is returned to the caller.
char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
// WindowTitle.
char pszOldWindowTitle[MY_BUFSIZE]; // Contains original
// WindowTitle.

// Fetch current window title.

GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);

// Format a "unique" NewWindowTitle.

wsprintf(pszNewWindowTitle,"%d/%d",
GetTickCount(),
GetCurrentProcessId());

// Change current window title.

SetConsoleTitle(pszNewWindowTitle);

// Ensure window title has been updated.

Sleep( 40 );

// Look for NewWindowTitle.

hwndFound=FindWindow(NULL, pszNewWindowTitle);

// Restore original window title.

SetConsoleTitle(pszOldWindowTitle);

return(hwndFound);
}
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35054831
UNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNP
Гость
Дима! Приложение на VFP9 я вызываю из FPD2 и для чего переходник на СИ? DOS-ское окно с приложением сворачивается и разворачивается нормально если оно в оконном режиме. Проблемы начинаются, если изначально DOS-ское окно полностью развёрнуто. В этом случае в первый раз его нужно свернуть с клавиатуры (только после этого формируется нормальный дескриптор окна). При последующих вызовах VFP9, DOS-ское окно сворачивается нормально, но при завершении работы приложения VFP9, DOS-ское окно не могу развернуть, хотя знаю его дескриптор.
И ещё, уточните, что Вы понимаете под консольным WIN приложением.
Ниже программный код:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

****** Сначала сворачиваем все окна с DOS режимом. После завершения программы
****** восстанавливаем их первоначальный размер

DECLARE Integer GetTopWindow IN Win32API Integer nHwndTop
DECLARE Integer GetWindow IN Win32API Integer nHwndOrig, Integer nRelFlag
DECLARE Integer GetWindowText IN Win32API Integer nHwnd, String cTextBuff, Integer nMaxCountBuff
DECLARE INTEGER CloseWindow IN Win32API INTEGER hWnd
DECLARE INTEGER OpenIcon IN Win32API INTEGER hWnd
DECLARE INTEGER ShowWindow IN user32 INTEGER hwnd, INTEGER nCmdShow
DECLARE INTEGER SetWindowText IN user32 INTEGER hWnd, STRING lpString

LOCAL lcTextBuffer, lnHwndChild
lcTextBuffer = SPACE (100) &&Пустая строка

lnHwndChild = GetTopWindow (0) &&Получить указатель активного окна
lnHwndChild = GetWindow (lnHwndChild, 0) &&Получить указатель активного окна

*** Свернуть все окна с DOS режимом

DO WHILE lnHwndChild # 0 && Просмотреть все окна
lcTextBuffer = SPACE (100) && Пустая строка
GetWindowText (lnHwndChild, @lcTextBuffer, 100) && Получить строку заголовка окна
lcTextBuffer = ALLTRIM (lcTextBuffer)

IF "cmd.exe" $ lcTextBuffer && В заголовке окна вызова режима DOS есть такая подстрока
CloseWindow (lnHwndChild) && Свернуть окно с DOS
ENDIF
lnHwndChild = GetWindow (lnHwndChild, 2) && Получить дескриптер следующего окна
ENDDO

DO FORM WTK WITH cNameWinFile && Вызов приложения на VFP 9.0

READ EVENTS
CLOSE DATABASES ALL

*** Восстановить размеры всех окон с DOS режимом

lnHwndChild = GetTopWindow (0) &&Получить указатель активного окна
lnHwndChild = GetWindow (lnHwndChild, 0)

DO WHILE lnHwndChild # 0 && Просмотреть все окна
lcTextBuffer = SPACE (100) &&Пустая строка
GetWindowText (lnHwndChild, @lcTextBuffer, 100) &&Получить Title окна
lcTextBuffer = ALLTRIM (lcTextBuffer)

IF "cmd.exe" $ lcTextBuffer && В заголовке окна вызова режима DOS есть такая подстрока

* = OpenIcon (lnHwndChild) && Восстановить первоначальные размеры окна с DOS
= ShowWindow(lnHwndChild, 9)

ENDIF

lnHwndChild = GetWindow (lnHwndChild, 2) && Получить дескриптер следующего окна
ENDDO

CLEAR DLLS && Закрываем функции API
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35055123
ValeraSH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaTПоизучай сказанное. Если не разберешься пиши завтра к вечеру. Время будет слеплю тебе прогу которая сворачивает свое окно, запускает другую (переданную как параметр), ждет завершения и разворачивает окно обратно.
Дима и могли бы вы слепить такую программку, я лично был бы очень вам благодарен...
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35056563
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNPИ ещё, уточните, что Вы понимаете под консольным WIN приложением.
Что и все.
Консольное приложение - это Win приложение без графического интерфейса с выводом в текстовую консоль (например FAR). Подробности в инете.

Одна из особенностей работы консольных приложений - если одно вызывает второе, то второму ОС дает эту же консоль. На этом и построен мой пример.

ValeraSHДима и могли бы вы слепить такую программку, я лично был бы очень вам благодарен... Сделаю. Если сегодня не успею то завтра выложу сюда
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35056737
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все в архиве. Запускать из FPD:
Код: plaintext
!RunWin notepad.exe

PS Исходники на MS VC6 там же
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35060088
ValeraSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaT, спасибо за программку - помогла.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35064549
UNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNP
Гость
Дима! За программу спасибо - отличная. Только есть нюанс:
Вашу программу вызываю из FPD (в полноэкранном режиме) несколько раз, при её вызове в первый раз, экран (с FPD) не сворачивается - приходится его свернуть ручками, при последующих вызывах всё работает (экран сворачивается и разворачивается) нормально. Как победить это?
У меня: WIN XP SP2, FPD 2.0, VFP 9.0 SP2
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35064661
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нету у меня такой проблемы

Тест: Запускаю FoxPro.exe test.prg (FPD 2.6) В ярлыке поставил полноэкранный режим. XPHE SP2
Test.prg
Код: plaintext
1.
2.
3.
wait
!runwin notepad.exe
wait
quit
Появляется "Press any key..."
нажимаю, окно FPD сворачивается, запускается блокнот. Блокнот закрываю, FPD открывается на весь экран.

Попробуй как я написал проверить, на другом компе.

Может в VFP коде что-нибудь осталось от твоего перебора окон.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35065298
UNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNP
Гость
Дима! Большое спасибо. Все свои проблемы победил!
С уважением UNP
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35448618
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просьба к Dima T.
Не могли бы Вы доработать свою утилиту RunWin, включив обработку еще одного параметра.
Допустим :
1 - родительское окно сворачивается всегда (текущий режим
работы утилиты)
2 - родительское окно не сворачивается, но разворачивается если в результате работы
свернулось (нужно для запуска консольных win приложений, при запуске которых иногда
окна fpd сворачиволось)
3 - (если возможно) родительское окно сворачивается если оно было полноэкранным,
если нет , то = пар.2
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35448636
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boban52 - родительское окно не сворачивается, но разворачивается если в результате работы
свернулось (нужно для запуска консольных win приложений, при запуске которых иногда
окна fpd сворачиволось)
Это добавлю

Boban53 - (если возможно) родительское окно сворачивается если оно было полноэкранным,
если нет , то = пар.2
Это пока не знаю. Если найду как проверить полноэкранный режим или окно, то добавлю.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35448834
ValeraSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Было бы неплохо...
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35449198
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправил. В архиве RunWin.exe и исходники.

Командная строка такая
1. Как было. Свернулся - запустил
RunWin.exe [PATH]\\Name.exe

2. Без минимизации окна
RunWin.exe [PATH]\\Name.exe NOMIN

3. Без минимизации окна если в оконном режиме
RunWin.exe [PATH]\\Name.exe NOMINWIN

PS В третьем случае тип окна определяется только для 2000/XP. Для 95/98 решения не нашел, под 95/98 прога всегда считает что она в полноэкранном режиме.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35449383
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Сейчас потестим...
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35449990
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Boban5Спасибо. Сейчас потестим...

А можно добавить параметр управление параметрами окна запускаемых Win приложений (максимизировано, минимизировано) ? А то некоторые вьюверы придется распахивать вручную.

P.S. Не спец в C.
P.P.S. Аппетит приходи во время тестирования 8-)
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35451987
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boban5А можно добавить параметр управление параметрами окна запускаемых Win приложений (максимизировано, минимизировано) ? А то некоторые вьюверы придется распахивать вручную.
Можно, только позже, пока некогда.

Boban5P.S. Не спец в C.
Может уже пора начинать осваивать потихоньку?

PS Может пора уже думать как с FPD расстаться, а не навешивать на него всякую всячину?
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35453336
Фотография Эрик Скабичевский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T Boban5А можно добавить параметр управление параметрами окна запускаемых Win приложений (максимизировано, минимизировано) ? А то некоторые вьюверы придется распахивать вручную.
Можно, только позже, пока некогда.

Boban5P.S. Не спец в C.
Может уже пора начинать осваивать потихоньку?

PS Может пора уже думать как с FPD расстаться, а не навешивать на него всякую всячину?

У меня в сусеках лежит декомпилятор FPD/VFP.
Достаточно адекватно разбирает практически все готовые системы до исходников ...
Вариант - выложить для дальнейшего использования ?
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35454464
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эрик Скабичевский
У меня в сусеках лежит декомпилятор FPD/VFP.
Достаточно адекватно разбирает практически все готовые системы до исходников ...
Вариант - выложить для дальнейшего использования ?

Как это относится к теме топика ?
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35456036
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boban5А можно добавить параметр управление параметрами окна запускаемых Win приложений (максимизировано, минимизировано) ? А то некоторые вьюверы придется распахивать вручную.


Добавил. Командная строка немного изменилась.
Поправил. В архиве RunWin.exe и исходники.

1. Как было. Свернулся - запустил
RunWin.exe [PATH]\\Name.exe

2. Без минимизации окна
RunWin.exe /NOMIN [PATH]\\Name.exe

3. Без минимизации окна если в оконном режиме
RunWin.exe /NOMINWIN [PATH]\\Name.exe

4. Развернуть запускаемое на весь экран
RunWin.exe /MAXCHILD [PATH]\\Name.exe

5. Свернуть запускаемое
RunWin.exe /MINCHILD [PATH]\\Name.exe

Можно комбинировать:
RunWin.exe /NOMINWIN /MAXCHILD [PATH]\\Name.exe
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35456087
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо ! Разбитые остатки армии fpd программистов (да и клиперистов тоже)
упомянут Вас в своих завещаниях ! 8-)
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35456141
ValeraSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да... Осталось дождаться нашей смерти :)
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35475625
ValeraSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T , извиняйте за наглость :)
У меня есть еще один вопрос, на некоторых машинах при вызове Word, в оконный режим сворачивается Dos приложение как ни крути, но если еще пару раз запустить, то нормально срабатывает. Стоит перезагрузить машину, как всё повторяется вновь. Можно ли добавить фичу - принудительно разворачивать в полноэкранный режим, если это необходимо ( Alt+Enter многие боятся нажимать)
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35475710
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть , проверять статус вызывающего окна после отработки и , если он изменился, восстанавливать (оконный в полноэкранный, если вызов происходил из полноэкранного). В Win98, Вы писали, не определяется оконный режим - значит в случае этой оси чтобы фича не работала.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35477887
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeraSh Dima T , извиняйте за наглость :)
У меня есть еще один вопрос, на некоторых машинах при вызове Word, в оконный режим сворачивается Dos приложение как ни крути, но если еще пару раз запустить, то нормально срабатывает. Стоит перезагрузить машину, как всё повторяется вновь. Можно ли добавить фичу - принудительно разворачивать в полноэкранный режим, если это необходимо ( Alt+Enter многие боятся нажимать)

Не совсем понял что происходит. Окно FPD само из полноэкранного в оконный режим переключается?

Поподробней опиши последовательность операций, и какой Win. Попытаюсь повторить у себя. С переключением окошек разных программ есть проблемы в XP - он не всегда делает то что прога от него хочет.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35478081
ValeraSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, окно само переключается в оконный режим. ОС есть как и WinXp, и Win2000.
Есть полноэкранное окно (правда, Clipper). Вызываю из Dos Word.
Пример:
PutWord='C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE '
PutRtf=F_path(K_sab)+"flp.rtf"
StrocaW='"'+PutWord+PutRtf+'"'
!RunWin &StrocaW

Так вот у меня самого на компе ни разу! не было проблем. Но у некоторых происходит вышестоящая ситуация. Причем, не поддается никакой логической цепочке. Бывает, запустил "справку Word", окно стало в оконном режиме, закрыл Word, вернулся в Dos, нажал Alt+Enter, потом снова вызвал Word - уже нормально всё срабатывает...
Надеюсь, пояснил...
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35478329
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю получится проверка перед запуском и после. Если был полноэкранный, а стал оконный то разворот в полноэкранный.

ValeraShТак вот у меня самого на компе ни разу! не было проблем.
Знакомая ситуация. Сталкивался с похожим, есть юзеры-оптимизаторы, которые неосознанно находят порой такие комбинации клавиш или действий, что долго голову ломаешь как им удалось такой глюк устроить. Однажды заметили что иногда в FPD не отрабатывает VALID после ввода в поле, полдня пришлось сидеть смотреть пока не увидел что в какой последовательности давят.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35478400
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TДумаю получится проверка перед запуском и после. Если был полноэкранный, а стал оконный то разворот в полноэкранный.

В Windows 98 (Me) проверка , по видимому, не нужна. Вы сами писали о некорректном определении статуса окна. Поэтому нужно дополнительно определять версию ОС
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35478451
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boban5 Dima TДумаю получится проверка перед запуском и после. Если был полноэкранный, а стал оконный то разворот в полноэкранный.

В Windows 98 (Me) проверка , по видимому, не нужна. Вы сами писали о некорректном определении статуса окна. Поэтому нужно дополнительно определять версию ОС
Помню :)
Проверка просто невозможна в этих ОС, там нет нужной WinAPI-функции. Если бы внимательно выше почитал, то там я писал что в 95/98 (Me) проверка определит "полноэкранный" независимо от того какой реально. Поэтому проверять дополнительно версию ОС не обязательно.

PS Пока не до того, еще не смотрел есть ли вообще возможность программно в полноэкранный режим переключится.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35478639
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
PS Пока не до того, еще не смотрел есть ли вообще возможность программно в полноэкранный режим переключится.

"Некрасивый" вариант - макрос на нажатие Ctrl-Enter.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35478653
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alt-Enter , конечно.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35478745
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boban5"Некрасивый" вариант - макрос на нажатие Ctrl-Enter.
Некрасивый и нерабочий. Почитал немного на эту тему. Этот вариант сработает только в 95/98/Me. В NT/2000/XP обработка виндовых сочетаний клавиш по другому устроена и их просто так не сэмулировать программно.
MS так активно хоронит все что с DOS`ом связано, что не документирует многие имеющиеся функции работы с консолью. Функция разворота есть, по описаловке MS только для XP/Vista, по другим источникам в 2000 тоже есть но недокументирована. Еще поизучаю - сделаю. 2000 у меня нет, на нем сами проверять будете :)
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35481645
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeraShДа, окно само переключается в оконный режим. ОС есть как и WinXp, и Win2000.
Есть полноэкранное окно (правда, Clipper). Вызываю из Dos Word...
Попробовал запускать runwin "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE", у меня runwin его вообще не ждет.
Похоже ворд как-то по-хитрому стартует.

Вобщем добавил ключик /RESTORESCREEN - по окончанию проверяет тип окна, если поменялся, то возвращает в исходное состояние. Пробуй.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35482915
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lcRun = [run RunWin.exe /NOMIN /RESTORESCREEN ]+;
["D:\Program Files\Microsoft Office\OFFICE11\winword.EXE E:\PROGRAM1\su1\111.RTF"]
&lcRun

При выполнении Word не вызывается. А вот так - вызывается.

lcRun = [run RunWin.exe /NOMIN ]+;
["D:\Program Files\Microsoft Office\OFFICE11\winword.EXE E:\PROGRAM1\su1\111.RTF"]
&lcRun

C /RESTORESCREEN косяк ?
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35482925
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас Excel проверил - то же самое, плюс пишет на скрине досовской задачи "Программа не умещается в памяти"
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35483173
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boban5Сейчас Excel проверил - то же самое, плюс пишет на скрине досовской задачи "Программа не умещается в памяти"
Есть такое. Только это косяк FPD. Ругается на то что в памяти не умещается командная строка. Так у меня работает:
Код: plaintext
1.
2.
lcRun = [run RunWin.exe /NOMIN /RESTORESCREEN ]+;
["D:\Program Files\Microsoft Office\OFFICE11\winword.EXE"]
&lcRun

Сделаю короткие аналоги ключам, из 2-3 символов.

Рекомендую брать DOS-пути, типа "D:\PROGRA~1\MICROS~2\OFFICE11\winword.EXE", посмотреть можно напимер фарой нажав Ctrl+N, только при одинаковых Win-путях их DOS варианты могут быть разными на разных компах.
RunWin.exe можно переименовать в RW.exe - 4 символа съэкономится.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35483196
Boban5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже все дело в длине run команды. Буквально символа 3-4 перебор для запуска Word.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35483681
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил сокращенные аналоги ключей:
ПолныйКраткий/NOMIN/NM/NOMINWIN/NMW/MINCHILD/MNC/MAXCHILD/MXC/RESTORESCREEN/RS
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35483818
ValeraSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Качаем и тестим. Сенкс!
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35485394
Ивановна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, пожалуйста, а можно RUNWIN включить в свой .EXE в виде .OBJ и использовать как функцию, а не как внешний модуль?
Уважаемый Дима Т, нельзя ли выложить RUNWIN.OBJ ?
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35485458
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИвановнаСкажите, пожалуйста, а можно RUNWIN включить в свой .EXE в виде .OBJ и использовать как функцию, а не как внешний модуль?
Уважаемый Дима Т, нельзя ли выложить RUNWIN.OBJ ?
В архиве RunWin.obj только непонятно зачем это надо? Свой EXE на чем написан?
Не силен в скрещивании кода через OBJ, но думаю для DOS приложений этот OBJ врядли подойдет.
Для Win - иcходники есть в каждом RunWin.zip, кода не много, можно просто переписать под нужный язык.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35485924
Ивановна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо, Дима. Мне это нужно под Clipper, т.к.
RUN runwin.exe "winword.exe /mmyMacros" - проходит, а
OVERLAY("runwin.exe 'winword.exe /mmyMacros'" - не проходит. Но с RUN не всегда хватает памяти.
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35486497
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ивановнас RUN не всегда хватает памяти.
Никогда с клипером не работал. Подобная проблема была и в FPD, там для этого был FOXSWAP.COM, который расчищал память, а затем запускал нужную прогу.
Пользовались им так:
Код: plaintext
Run FoxSwap.com RunWin.exe ...
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35489377
UNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNP
Гость
Дима, здравствуйте!
Большая просьба к Вам: если Вы будете модифицировать свою программу, добавить ещё один параметр, чтобы строка запуска из Foxа выглядела примерно так:
RUN RUNWIN.EXE [вызываемое приложение] [новый параметр]
- новый параметр - это строка, которая передаётся в вызываемое приложение
А вообще Ваша программа работает прекрасно и устойчиво. Ещё раз спасибо за неё!!!!!!!
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35489422
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNPДима, здравствуйте!
Большая просьба к Вам: если Вы будете модифицировать свою программу, добавить ещё один параметр, чтобы строка запуска из Foxа выглядела примерно так:
RUN RUNWIN.EXE [вызываемое приложение] [новый параметр]
- новый параметр - это строка, которая передаётся в вызываемое приложение
А вообще Ваша программа работает прекрасно и устойчиво. Ещё раз спасибо за неё!!!!!!!

Имя вызываемой проги в кавычках пиши вместе с параметрами:
Код: plaintext
RUN RUNWIN.EXE "[вызываемое приложение] [первый параметр] [второй параметр]"
...
Рейтинг: 0 / 0
DOS - WINDOWS - DOS
    #35489488
UNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UNP
Гость
Спаибо! Всё работает!
...
Рейтинг: 0 / 0
54 сообщений из 54, показаны все 3 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DOS - WINDOWS - DOS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]