Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как улучшить работу в текстовом режиме?

363
17 декабря 2002 года
Michael
132 / / 20.07.2000
Как улучшить работу в текстовом режиме?

1) Существуют ли функции в header iostream.h для обработки клавиатуры так, чтобы консоль закрывалась по нажатию любой клавиши? По типу getch(); //#include <conio.h>:

#include <iostream.h>
#include <conio.h>

void main(void)
{
cout << " forum.codenet.ru is the best place! " << endl;
getch(); //#include <conio.h>
}

2) Как "программно" развернуть консоль на весь экран(full screen mode)?

3) Как сделать консольное окно прозрачным? Например, с помощью AlphaBlind в Windows XP?

Буду рад вашим предложениям!
577
17 декабря 2002 года
Mozhay
81 / / 20.09.2000
Цитата:
Originally posted by Michael
1) Существуют ли функции в header iostream.h для обработки клавиатуры так, чтобы консоль закрывалась по нажатию любой клавиши? По типу getch(); //#include <conio.h>:



Во-первых, не используй iostream.h (это не по Стандарту), а используй iostream.

Во-вторых, ф-ции работы с клавиатурой, как и с любым другим железом, не входят в стандартную библиотеку C++, а значит в iostream (и в iostream.h) их нет. Так что conio.h - вполне логичное решение.

363
10 января 2003 года
Michael
132 / / 20.07.2000
2) Как "программно" развернуть консоль на весь экран(full screen mode)?

Я нашёл в Registry следующий параметр, изменяя который, я могу открывать Command Prompt (cmd.exe, XP/2k only) на весь экран:
[HKEY_CURRENT_USER\Console] "FullScreen"=dword:00000000 //window mode
[HKEY_CURRENT_USER\Console] "FullScreen"=dword:00000001 //full screen mode

Я не знаю, как записывать параметры в Registry, и надеюсь на вашу помощь в этом. Где модно найти подробное описание Registry API. Алгоритм таков:

2.1) Записать [HKEY_CURRENT_USER\Console] "FullScreen"=dword:00000001 //full screen mode;
2.2) работать с консольным I/O;
2.3) Записать [HKEY_CURRENT_USER\Console] "FullScreen"=dword:00000000 //window mode;
2.4) Завершить программу;




3) Как сделать консольное окно прозрачным? Например, с помощью AlphaBlind в Windows XP?

Возможно, вы видели подобное в KDE 3.0, когда Command Prompt может настраиваться прозрачным. Существует ли возможность сделать Windows Command Prompt (cmd.exe) прозрачным?
Если вы считаете что это невозможно, то посоветуйте как написать самостоятельное приложение использующее AlphaBlind для достижения прозрачности? В этом случае желательно наследовать I/O стандарт с cmd.exe, чтобы можно было выводить сообщения как в обычную консоль, типа cout << " forum.codenet.ru is the best place! " << endl;


Я заранее благодарю вас за понимание и помощь.
363
11 января 2003 года
Michael
132 / / 20.07.2000
Я нашёл следующие примеры, возможно, это наведёт кого-то на идею, как реализовать это в VC++:

Описание функции:
Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.

lRes = RegSetValueEx(rk, pEntries->szValue, 0, REG_BINARY, (const BYTE *)pEntries->pMember, pEntries->cb);

lRes = RegSetValueEx(rkParent, szValueName, 0, REG_BINARY, rgBinary, cbValDiv2);


А это non-C++ samples, но в С++ я пока аналогов не нашёл:

[Visual Basic]
Dim f As New RegistryPermission( _
RegistryPermissionAccess.Read, _
"HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0")
[C#]
RegistryPermission f = new RegistryPermission(
RegistryPermissionAccess.Read,
"HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");
[Visual Basic, C#] The following code adds permission to read from and write to the FloatingPointProcessor key to the RegistryPermission f.

[Visual Basic]
f.AddPathList( _
RegistryPermissionAccess.Write Or RegistryPermissionAccess.Read, _
"HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\FloatingPointProcessor\0")
[C#]
f.AddPathList(
RegistryPermissionAccess.Write | RegistryPermissionAccess.Read,
"HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor\\0");
[Visual Basic, C#] The RegistryPermission f now represents the permission to read from the CentralProcessor key and to read from and write to the FloatingPointProcessor key.



Я заранее благодарю вас за понимание и помощь.
363
12 января 2003 года
Michael
132 / / 20.07.2000
//My sample
#using <mscorlib.dll>
using namespace System;
using namespace Microsoft::Win32;

int main(void)
{
RegistryKey * pRegKey = Registry::CurrentUser;
pRegKey = pRegKey->OpenSubKey(L"Console");
Object *pValue = pRegKey->GetValue(L"FullScreen");
Console::WriteLine(L"The FullScreen value is: {0}.", pValue);
Object *pValue = pRegKey->GetValue(L"FullScreen");

pRegKey->SetValue(L"FullScreen", "1");
Console::WriteLine(L"The FullScreen value is: {0}.", pValue);
return 0;
}

Visual Studio .NET сообщает об ошибке:
Fatal Error C1190
managed targeted code requires '#using <mscorlib.dll>' and '/clr' option

А вот, что сказано в MSDN по этой проблеме:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcerrFatalErrorC1190.asp


Visual C++ Concepts: Building a C/C++ Program

Fatal Error C1190
managed targeted code requires '#using <mscorlib.dll>' and '/clr' option

You are using Managed Extensions for C++ constructs and the /clr compiler option, but you did not explicitly include mscorlib.dll.

The following sample generates C1190:

// C1190.cpp
// compile with: /clr
// uncomment the following line to resolve errors
// #using <mscorlib.dll>
__gc class A { // C1190
};

int main() {
}


Файл mscorlib.dll находиться по пути C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705, и этот путь указан в настройках Visual Studio .NET.

Так в чём же проблема? У кого какие мысли?
С уважением.
363
19 января 2003 года
Michael
132 / / 20.07.2000
Цитата:
Originally posted by Michael
Как улучшить работу в текстовом режиме?

1) Существуют ли функции в header iostream.h для обработки клавиатуры так, чтобы консоль закрывалась по нажатию любой клавиши? По типу getch(); //#include <conio.h>:

#include <iostream.h>
#include <conio.h>

void main(void)
{
cout << " forum.codenet.ru is the best place! " << endl;
getch(); //#include <conio.h>
}

2) Как "программно" развернуть консоль на весь экран(full screen mode)?

3) Как сделать консольное окно прозрачным? Например, с помощью AlphaBlind в Windows XP?

Буду рад вашим предложениям!





При компиляции под Apple инструкция getch(); //#include <conio.h> оказывается неправильной. Хотя на conio.h компилятор "согласился". Кто знаком с правильным способом её записи под Apple?


Существуют ли примеры программ, которые создают окно с помощью WinAPI подобное Command Prompt (Командная строка) с нуля?

С уважением.

363
19 января 2003 года
Michael
132 / / 20.07.2000
Как программно запустить командную строку с параметрами, например start cmd.exe /t:F0 ?
А далее осуществлять I/O.
363
20 января 2003 года
Michael
132 / / 20.07.2000
Цитата:
Originally posted by Michael
//My sample
#using <mscorlib.dll>
using namespace System;
using namespace Microsoft::Win32;

int main(void)
{
RegistryKey * pRegKey = Registry::CurrentUser;
pRegKey = pRegKey->OpenSubKey(L"Console");
Object *pValue = pRegKey->GetValue(L"FullScreen");
Console::WriteLine(L"The FullScreen value is: {0}.", pValue);
Object *pValue = pRegKey->GetValue(L"FullScreen");

pRegKey->SetValue(L"FullScreen", "1");
Console::WriteLine(L"The FullScreen value is: {0}.", pValue);
return 0;
}

Visual Studio .NET сообщает об ошибке:
Fatal Error C1190
managed targeted code requires '#using <mscorlib.dll>' and '/clr' option

А вот, что сказано в MSDN по этой проблеме:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcerrFatalErrorC1190.asp


Visual C++ Concepts: Building a C/C++ Program

Fatal Error C1190
managed targeted code requires '#using <mscorlib.dll>' and '/clr' option

You are using Managed Extensions for C++ constructs and the /clr compiler option, but you did not explicitly include mscorlib.dll.

The following sample generates C1190:

// C1190.cpp
// compile with: /clr
// uncomment the following line to resolve errors
// #using <mscorlib.dll>
__gc class A { // C1190
};

int main() {
}


Файл mscorlib.dll находиться по пути C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705, и этот путь указан в настройках Visual Studio .NET.

Так в чём же проблема? У кого какие мысли?
С уважением.






>> С добавлением опции /clr для компиляции, появляется ещё ошибка, а прежняя по-прежнему существует. Так каким путём эту проблему решить?
:-? :???:

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог