« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга


ПнВтСрЧтПтСбВс
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        
    Популярное
Налог по основному месту работы

Сканер портов? ЛЕГКО!

Создание установочной дискеты

Макросы в MS Office для начинающих

Экспорт новостей в XML-формате с удаленного сайта

Функция AccessResource

Основные принципы выбора прикладного программного обеспечения для построения корпоративной информационной системы

В погоне за качеством кода: Безопасное программирование с помощью АОП

ГОСТ 19.101-77 Единая система программной документации

FAQ по работе со временем и датой




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 168
Пользователей: 0

Статьи:: C/С++ :: C++ Builder :: Разные вопрос и ответы по C++ Builder



отправить ссылку другу версия для печати  Обсудить на форуме

Разные вопрос и ответы по C++ Builder



  1. Регистрация редактора свойства типа AnsiString
  2. Мигание иконкой в панели задач
  3. Запуск скринсейвера из программы
  4. Скрытие таскбара
  5. Переключение раскладки клавиатуры (конкретный язык)
  6. Переключение раскладки клавиатуры
  7. Программная очистка корзины (для Windows 98)
  8. Запуск браузера
  9. Запуск почтового клиента
  10. Как добавить код на ассемблере
  11. Как сделать Shutdown (закрыть все запущенные приложения)
  12. Какая программа активна
  13. Блокировка клавиатуры и мыши
  14. Как из тела программы запустить обработчик события (как функцию)
  15. Определение количества элементов в массиве
  16. Имитации нажатия левой кнопки мыши
  1. Регистрация редактора свойства типа AnsiString

    // Регистрация редактора свойства типа AnsiString производится следующим образом. Напишите вспомогательную функцию:
    TTypeInfo *AnsiStringTypeInfo(void)
    {
    TTypeInfo *typeinfo = new TTypeInfo;
    typeinfo->Kind = tkLString;
    typeinfo->Name = "AnsiString";
    return typeinfo;
    }
    // ... и используйте ее в вызове RegisterPropertyEditor
    // (где TMyComponent - имя класса компонента,
    // MyStringProperty - имя свойства типа AnsiString,
    // TMyStringPropertyEditor - имя класса редактора свойства
    // типа AnsiString).
    RegisterPropertyEditor(AnsiStringTypeInfo(),
    __classid(TMyComponent), "MyStringProperty",
    __classid(TMyStringPropertyEditor));

  2. Мигание иконкой в панели задач

    // Чтобы помигать иконкой приложения в панели задач, разместите на форме компонент TTimer (Timer1) и напишите следующий обработчик события OnTimer (предварительно выставив интервал таймера и сделав его активным):
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
    FlashWindow(Application->Handle, false);
    FlashWindow(Application->Handle, true);
    }

  3. Запуск скринсейвера из программы

    // Следующий код запустит скринсейвер Handle - дескриптор окна вашей программы (программисты на C++Builder могут использовать Application->Handle):
    SendMessage(Handle, WM_SYSCOMMAND, SC_SCREENSAVE, 0);

  4. Скрытие таскбара

    // Напишите следующий код:
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    HWND H;
    H=FindWindow("Shell_TrayWnd",NULL); //находим хандл окна таскбара
    ShowWindow(H, SW_HIDE);//делаем его невидимым
    Sleep(2000);
    ShowWindow(H, SW_SHOW);//делаем его видимым
    }

  5. Переключение раскладки клавиатуры (конкретный язык)

    // Напишите следующий код:
    LoadKeyboardLayout("00000409", KLF_ACTIVATE);// Английская
    LoadKeyboardLayout("00000419", KLF_ACTIVATE);// Русская

  6. Переключение раскладки клавиатуры

    // Напишите следующий код:
    ActivateKeyboardLayout(0, 0);

  7. Программная очистка корзины (для Windows 98)

    // Напишите следующий код:
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    /* Очистка корзины
    Есть флаги - NULL - как обычно, т.е. по умолчанию
    SHERB_NOCONFIRMATION 0x00000001 - без запроса на удаление
    SHERB_NOPROGRESSUI 0x00000002 - без показа удаления
    SHERB_NOSOUND 0x00000004 - без звука
    при желании флаги можно сочетать через | */

    char sh[500];
    SHEmptyRecycleBin(Handle, sh, SHERB_NOSOUND|SHERB_NOCONFIRMATION);
    }

  8. Запуск браузера

    // Напишите следующий код:
    void __fastcall TForm1::Label1Click(TObject *Sender)
    {
    ShellExecute(Handle, "open", "http://google.com/",
    0, 0, SW_SHOWNORMAL);
    }

  9. Запуск почтового клиента

    // Напишите следующий код:
    void __fastcall TForm1::Label1Click(TObject *Sender)
    {
    ShellExecute(Handle,NULL,"mailto:newcb@narod.ru?subject=Tema",
    NULL,NULL,SW_SHOWNORMAL);
    }

  10. Как добавить код на ассемблере

    // Ассемблеровские вставки делаются так:
    asm {
    // код ассемблера
    }

  11. Как сделать Shutdown (закрыть все запущенные приложения)

    // напишите следующий код:
    
    HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
    // Get a token for this process.
    if (!OpenProcessToken(GetCurrentProcess(),
    TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
       ShowMessage("OpenProcessToken");
    // Get the LUID for the shutdown privilege.
    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
       &tkp.Privileges[0].Luid);
    tkp.PrivilegeCount = 1; // one privilege to set
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    // Get the shutdown privilege for this process.
    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
       (PTOKEN_PRIVILEGES)NULL, 0);
    // Cannot test the return value of AdjustTokenPrivileges.
    if (GetLastError() != ERROR_SUCCESS)
       ShowMessage("AdjustTokenPrivileges");
    // Shut down the system and force all applications to close.
    if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE , 0))
       ShowMessage("ExitWindowsEx");


  12. Какая на программа активна

    // Для того что бы узнать какая программа активна кинте на форму таймер Timer1 и метку Label1 напишите следующий код:
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
    HANDLE hWnd;
    hWnd = GetForegroundWindow();
    char szTitle[41] = {0};
    GetWindowText(hWnd,szTitle,40);
    Label1->Caption = AnsiString(szTitle);
    }

  13. Блокировка клавиатуры и мыши

    // Для блокировки клавиатуры и мыши напишите следующий код:
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    HINSTANCE hDll;
    //ниже прототип будущей функции
    DWORD __stdcall (*BlockInput)(bool Status);
    DWORD Result;
    Memo1->Lines->Add("");
    Memo1->Lines->Add("Загрузка функции BlockInput()...");
    hDll = LoadLibrary("User32.dll");
    Memo1->Lines->Add("hDll = " + IntToHex(int(hDll), 8));
    BlockInput = (DWORD __stdcall (*)(bool Status))GetProcAddress(hDll,
    "BlockInput");
    Memo1->Lines->Add("BlockInput = " + IntToHex(int(BlockInput), 8));
    if(!BlockInput)
    {
    Memo1->Lines->Add("Ошибка!!!");
    FreeLibrary(hDll);
    return;
    }
    Memo1->Lines->Add("Выполняем BlockInput(true)...");
    Result = BlockInput(true);
    Memo1->Lines->Add("Result = " + IntToStr(Result));
    if(Result)
    {
    Memo1->Lines->Add("Теперь клиатура и мышь доступны только, если нажать CTRL+ALT+DEL");
    Memo1->Lines->Add("Ждем 15 сек...");
    Sleep(15000);
    }
    else Memo1->Lines->Add("Ошибка!!!");
    Memo1->Lines->Add("Восстанавливаем все как было...");
    BlockInput(false);
    FreeLibrary(hDll);
    Memo1->Lines->Add("Готово.");
    }

  14. Как из тела программы запустить обработчик события (как функцию)

    // напишите следующий код в нужном месте:
    {
    ...
    Form1->Button1Click(Form1);
    ...
    }

  15. Определение количества элементов в массиве

    Чтобы в Run Time определить количество элементов в массиве, можно воспользоваться макросом ARRAYSIZE, определённым в файле sysopen.h следующим образом:
    #define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))

  16. Имитации нажатия левой кнопки мыши

    // Напищите слеующий код в нужном месте:
    INPUT inp[2];
    memset(inp,0,sizeof(inp));
    inp[0].type=INPUT_MOUSE;
    inp[0].mi.dwFlags=MOUSEEVENTF_LEFTDOWN;
    inp[1].type=INPUT_MOUSE;
    inp[1].mi.dwFlags=MOUSEEVENTF_LEFTUP;
    SendInput(2,inp,sizeof(INPUT));



Рубрика: C++ Builder




Вышел MySQL 5.1.30, первый стабильный рели....

MySQL

После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:


Подробнее... | Рубрика: MySQL | Добавлено: 28.11.2008

Тестирование параллельных программ.

Тестирование

Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.


Подробнее... | Рубрика: Тестирование | Добавлено: 28.11.2008

Архитектура AMD64 (EM64T).

Архитектура AMD

Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.


Подробнее... | Рубрика: Архитектура AMD | Добавлено: 27.11.2008

Остальные статьи:

Платформа 2009. Определяя будущее
Windows Vista Bridge Sample Library - упра...
Оптимизация 64-битных программ
Подгрузка через AJAX HTML-кода, содержащег...
Обзор нового релиза самой мощной Ajax библ...
Firebug 1.3 и 1.4 alpha — что нового и инт...
Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новы...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейс...
Генераторы отчетов FastReport 4 и QuickRep...


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия