Обсуждение Программирование на C/C++

вот у меня прога регагирует на нажатие F5. я хочу изменять эту клавишу. чтобы запомнить сочетание, использутеся THotKey.
регистрирую
bool RHKret = RegisterHotKey(Form1->Handle, 0x01D, NULL, 0x74); - регаю F5.
как мне зарегать то сочетание, что указано в HotKey?
 
Буду очень признателен тем кто сможет выложить чёнить про работу с треем......ну иконки, меню и т.п. только по подробней желательно.....:D
Visual C++
Добавляем иконку в System Tray
Класс для управлением иконками в system tray
Динамические иконки
Builder C++
Как запихнуть программу в трей?
Barlad Dert написал(а):
указывал......всё равно не робит.......прям после загрузки, а если вручную запустить то норм....я даж незнею что там ещё может быть то...
приведи текст программки где открываешь файл.

переменная определена как глобальная
String text;
если она инициализируется строкой длиной 10 символов, а потом ей надо присвоить строку длиной 20 символов, нужно ли что-то с ней делать(ранее работал с char*, там нужно сначала выделить память под 10 символов, потом еще под 10)? и нужно ли в конец работы проги особождать память, используемую переменной(или прога совободит сама)?
выделять память ненадо.
можешь вызвать text.clear(); строка будет нулевого размра.
Код:
#include "stdio.h"
#include <string>
using namespace std;
//---------------------------------------------------------------------------
 
int main(int argc, char* argv[])
{
string str;
str = "asdf";
printf("str = %s, size = %d\n",str.c_str(),str.size());
str = "qwerty";
printf("str = %s, size = %d\n",str.c_str(),str.size());
str.clear();
printf("str = %s, size = %d\n",str.c_str(),str.size());
        return 0;
}
Горячие клавиши
 
Вот кусок кода корочь:
Код:
void __fastcall TGreateningWnd::FormCreate(TObject *Sender)
{
        GreateningWnd->Position = poDesktopCenter;
        TRegistry *Registry = new TRegistry;
        Timer1->Enabled = false;
        bool b = Registry->OpenKey("Software\\VM\\DATA", false);
        if(b)
        {
                Timer->Enabled = true;
                Timer1->Interval = Registry->ReadInteger("INTERVAL");
                Timer1->Enabled = true;
        }
        delete Registry;
}
//---------------------------------------------------------------------------
void __fastcall TGreateningWnd::Timer1Timer(TObject *Sender)
{
        C = fopen("Comp.vmr","rt");
        if(C == 0)
        {
                Application->MessageBoxA("Файл Comp.vmr ненайден.Приложение будет закрыто!","Ахтунг!!!",MB_OK);
                GreateningWnd->Close();
        };
С имеет тип FILE
Вот вощем в этом куске гдетьо ошибка видать......когда просто приложение запускаешь - фсё норм, а када оно само запускается - лажа палучается.....:sorry::idontno:
 
Мож я че то не пойму, иль не весь код здесь, но, при создании формы, ты запускаеш таймер, который с некоторой периодичностью открывает файл comp.vmr для чтения. При первом срабатывании таймера, файл открывается, а второе срабатывание пытается открыть уже открытый файл? Так?
 
Вот кусок кода корочь:
С имеет тип FILE
Вот вощем в этом куске гдетьо ошибка видать......когда просто приложение запускаешь - фсё норм, а када оно само запускается - лажа палучается.....:sorry::idontno:
ну из этого куска можно только сделать вывод что совету gureedo ты не последовал. Помещая в реестр на автозапуск свою программку винда пускает ее от имени пользователя под которым входишь в систему не из каталога где лежит программка а из каталога пользователя "C:\Documents and Settings\User" там она и ищет твой Comp.vmr.
Замени
C = fopen("Comp.vmr","rt");
на
C = fopen("Comp.vmr","w");
и посмотри где она его создаст после старта.
 

    Barlad Dert

    очки: 5
    Спс огромное.....действительно прога в левом месте искала файлег......=)
как можно найти определение стандартных классов С++? например String
 
исполбзуя поисковик. если среда разработки не позволяет конечно переходить к определениям функций и классов.
В билдере _string.h, в VS xstring
по стандарту string.h
 
имеется HotKey1. Как скопировать текст из него? Например значение HotKey = F5, но это тип int, и при присваивании строке str = HotKey1->HotKey получаются цифры, а мне нужно текст. пробовал (string)HotKey1->HotKey - ничего
 
попробуй
string str;
int a =128;
char str1[4];
sprintf(str1,"%d",a);
str=str1;
а по string смотри лучше всего здесь. самое простое и понятное :)
 
I

IVIaX

имеется HotKey1. Как скопировать текст из него? Например значение HotKey = F5, но это тип int, и при присваивании строке str = HotKey1->HotKey получаются цифры, а мне нужно текст. пробовал (string)HotKey1->HotKey - ничего

Как бы хоткеи идут кодами, а не названием клавиш. Так что только забивай табличку с соответствиями.
 
Обьясните что нужно сделать, чтоб работали функции ToolHelp.....просто нужно процессы в системе просматривать, а везде только эти функции советают, а они чёт не робят....:idontno:
 
I

IVIaX

Обьясните что нужно сделать, чтоб работали функции ToolHelp.....просто нужно процессы в системе просматривать, а везде только эти функции советают, а они чёт не робят....:idontno:

Почему "не робят"? В каком смысле? Как запускал?
ЗЫ: там вроде как "фотографию" (snapshot) делать надо... Делал?
 
I

IVIaX

Делаешь Snapshot, потом Process32First (c указателем на структуру PROCESSENTRY32, из неё чиатешь всё, чё надо, и хэндлом "фотки" :)). Потом Process32Next (с теми же параметрами вроде как) .
 
Как можно сохранить содержимое журнала событий винды(просмотр событий в mmc)?:)
 
Делаешь Snapshot, потом Process32First (c указателем на структуру PROCESSENTRY32, из неё чиатешь всё, чё надо, и хэндлом "фотки" :)). Потом Process32Next (с теми же параметрами вроде как) .
Мне компилятор жалуется на Process32Next и PROCESSENTRY32, ну и подобные структуры и функции.......грит незнаю я токого.....:idontno:.....вобщем все функции грит неизвестны......у Рихтера написано подключать #include <tlhelp32.h>, дык он даж это грит незнаю.......
 

CrazyBolt

Ословед
Мне компилятор жалуется на Process32Next и PROCESSENTRY32, ну и подобные структуры и функции.......грит незнаю я токого.....:idontno:.....вобщем все функции грит неизвестны......у Рихтера написано подключать #include <tlhelp32.h>, дык он даж это грит незнаю.......
для этого дела наверное нужен Windows Platform SDK
 
I

IVIaX

Мне компилятор жалуется на Process32Next и PROCESSENTRY32, ну и подобные структуры и функции.......грит незнаю я токого.....:idontno:.....вобщем все функции грит неизвестны......у Рихтера написано подключать #include <tlhelp32.h>, дык он даж это грит незнаю.......

Нутк ищи тада в инете заголовок. Либо сам сделай (в хелпе описание должно быть). Библиотеку тоже сам можешь сделать, накрайняк из асма выдернуть могу.
 
А мошь у кого есть рабочий откомпилированный пример.....на Builder C++ 6 или 2006......скиньте....просто у меня есть порект, но не откомпилированный.......я даж его скомпилить немогу.....:idontno:.....просто очень нужно разобраться
 
попробуй так подключать #include <psdk\tlhelp32.h>
если не получится попробуй поискать этот файли в папке с билдером, подпапке Include
 
Сверху