Как развернуть полноэкранное DOS – окно?
От: Sharp Eye Россия  
Дата: 29.08.04 15:42
Оценка:
Полноэкранное DOS – приложение минимизировано, и нужно из Windows – программы развернуть его. Пробовал ::SetForegroundWindow(DOSWin), ::ShowWindow(DOSWin, SW_RESTORE), SendMessage(Hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0)... не помогло.
Re: Как развернуть полноэкранное DOS – окно?
От: Burd Украина http://proxysearcher.sourceforge.net
Дата: 29.08.04 15:46
Оценка:
Здравствуйте, Sharp Eye, Вы писали:

SE>Полноэкранное DOS – приложение минимизировано, и нужно из Windows – программы развернуть его. Пробовал ::SetForegroundWindow(DOSWin), ::ShowWindow(DOSWin, SW_RESTORE), SendMessage(Hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0)... не помогло.


А поиском кто пользоватся будет?

здесь
Автор: Burd
Дата: 03.08.04
Любая задача имеет решение, даже когда решения не существует
Re[2]: Как развернуть полноэкранное DOS – окно?
От: Sharp Eye Россия  
Дата: 29.08.04 16:16
Оценка:
Здравствуйте, Burd, Вы писали:

B>Здравствуйте, Sharp Eye, Вы писали:


SE>>Полноэкранное DOS – приложение минимизировано, и нужно из Windows – программы развернуть его. Пробовал ::SetForegroundWindow(DOSWin), ::ShowWindow(DOSWin, SW_RESTORE), SendMessage(Hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0)... не помогло.


B>А поиском кто пользоватся будет?


B>здесь
Автор: Burd
Дата: 03.08.04


Опишу ситуацию. Windows – программа(MFC) запускает DOS – программу, причем DOS – программа в полноэкранном режиме. В процессе работы необходимо переключаться между этими программами.
Re[3]: Как развернуть полноэкранное DOS – окно?
От: Burd Украина http://proxysearcher.sourceforge.net
Дата: 29.08.04 16:25
Оценка:
#include "stdafx.h"
#include "afx.h"

typedef BOOL (WINAPI *CHANGESTATECONSOLE)(HANDLE,DWORD,LPDWORD);
typedef BOOL (WINAPI *GETSTATECONSOLE)(LPDWORD);
        
int main(int argc, char* argv[])
{    
    DWORD state;
    DWORD dwOldMode;

    CHANGESTATECONSOLE SetConsoleDisplayMode;
    GETSTATECONSOLE GetConsoleDisplayMode;
    
    HMODULE hKernel32 = GetModuleHandle("kernel32");
    
    SetConsoleDisplayMode = (CHANGESTATECONSOLE)
        GetProcAddress(hKernel32,"SetConsoleDisplayMode"); 
    GetConsoleDisplayMode = (GETSTATECONSOLE)
        GetProcAddress(hKernel32,"GetConsoleDisplayMode"); 
    
   HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    
    GetConsoleDisplayMode(&state);

    printf("state = %ld", state );
    
    SetConsoleDisplayMode(hOut,1,&dwOldMode); 

    GetConsoleDisplayMode(&state);
    printf("\nstate = %ld\n", state );

    return 0;
}


Сам не пробовал, но ИМХО выделенную строчку нужно заменить таким образом, чтобы получить хендел потока досовского окна. Посмотрите еще здесь
Автор: Burd
Дата: 03.08.04
. Этот код работает только под Windows 9x
.
Любая задача имеет решение, даже когда решения не существует
Re[4]: Как развернуть полноэкранное DOS – окно?
От: Sharp Eye Россия  
Дата: 29.08.04 17:11
Оценка:
Здравствуйте, Burd.

Под Windows 98 выдает предложение завершить программу.
HWND для DOS – окна у меня есть и в оконном режиме получается все… А вот в полноэкранном режиме максимум что получается, это выделить иконку на панели задач.
Re[4]: Как развернуть полноэкранное DOS – окно?
От: Sharp Eye Россия  
Дата: 29.08.04 17:26
Оценка:
Здравствуйте, Burd.

Я пишу под Windows 2000, а программа должна работать под Windows 98.
::SendMessage(hWnd,WM_COMMAND,ID_SWITCH_CONSOLEMODE,0);
Значение ID_SWITCH_CONSOLEMODE не определяется.
Re[5]: Как развернуть полноэкранное DOS – окно?
От: Burd Украина http://proxysearcher.sourceforge.net
Дата: 29.08.04 17:30
Оценка:
Здравствуйте, Sharp Eye, Вы писали:

SE>Здравствуйте, Burd.


SE>Я пишу под Windows 2000, а программа должна работать под Windows 98.

SE>::SendMessage(hWnd,WM_COMMAND,ID_SWITCH_CONSOLEMODE,0);
SE>Значение ID_SWITCH_CONSOLEMODE не определяется.

Капец, я извиняюсь, но define там для чего?
Любая задача имеет решение, даже когда решения не существует
Re[6]: Как развернуть полноэкранное DOS – окно?
От: Аноним  
Дата: 29.08.04 17:38
Оценка: +1
Здравствуйте, Burd, Вы писали:

B>Здравствуйте, Sharp Eye, Вы писали:


SE>>Здравствуйте, Burd.


SE>>Я пишу под Windows 2000, а программа должна работать под Windows 98.

SE>>::SendMessage(hWnd,WM_COMMAND,ID_SWITCH_CONSOLEMODE,0);
SE>>Значение ID_SWITCH_CONSOLEMODE не определяется.

B>Капец, я извиняюсь, но define там для чего?


Извиняюсь, ступил.
Re[6]: Как развернуть полноэкранное DOS – окно?
От: Sharp Eye Россия  
Дата: 29.08.04 18:30
Оценка:
Спасибо, всё работает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.