Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2012, 16:50   #1
Miller-1981
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 89
По умолчанию Регистрация программы в меню ПУСК

Делаю регистрацию вот так
Код:
bool TInstallerForm::ProgCommand(AnsiString sCommand)
{
 char  macrocmd[255];
 TDdeClientConv *DdeClient;
 DdeClient = new TDdeClientConv(0);
 DdeClient->SetLink("PROGMAN","PROGMAN");
 DdeClient->OpenLink(); // Устанавливаем связь по DDE
 strcpy(macrocmd,("["+sCommand+"]").c_str()); //{ Подготавливаем ASCIIZ строку }
 bool PC=DdeClient->ExecuteMacro(macrocmd,false);
 DdeClient->CloseLink();// { Закрываем связь по DDE }
 delete DdeClient;
 return PC;
}
 
 AnsiString path = edtInstallFolder->Text+"\\";
  AnsiString path1 = path+"SaveFlash.exe";
  AnsiString path2 = path+"UnInstall.exe";
  ProgCommand("CreateGroup(SaveFlash,)");
  AnsiString str="AddItem("+path1+",SaveFlash,"+path1+",0,,,"+path+",,)";
  ProgCommand(str);
  str="AddItem("+path2+",UnInstall,"+path2+",0,,,"+path+",,)";
  ProgCommand(str);
Все бы хорошо, но есть одно но: когда Имя каталога превышает какую то длину то не происходит регистрации подразела. Например для path=C:\\Program Files (x86)\\SaveFlash подразделы(AddItem) не добавляются а для path=C:\\Temp\\Prog File - происходит нормально

кто сталкивался с этим подскажите пожалуйста.

Последний раз редактировалось Stilet; 08.08.2012 в 20:36.
Miller-1981 вне форума Ответить с цитированием
Старый 08.08.2012, 23:24   #2
nuqta
 
Регистрация: 07.08.2012
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Miller-1981 Посмотреть сообщение
Делаю регистрацию вот так
Код:
bool TInstallerForm::ProgCommand(AnsiString sCommand)
{
 char  macrocmd[255];
 TDdeClientConv *DdeClient;
 DdeClient = new TDdeClientConv(0);
 DdeClient->SetLink("PROGMAN","PROGMAN");
 DdeClient->OpenLink(); // Устанавливаем связь по DDE
 strcpy(macrocmd,("["+sCommand+"]").c_str()); //{ Подготавливаем ASCIIZ строку }
 bool PC=DdeClient->ExecuteMacro(macrocmd,false);
 DdeClient->CloseLink();// { Закрываем связь по DDE }
 delete DdeClient;
 return PC;
}
 
 AnsiString path = edtInstallFolder->Text+"\\";
  AnsiString path1 = path+"SaveFlash.exe";
  AnsiString path2 = path+"UnInstall.exe";
  ProgCommand("CreateGroup(SaveFlash,)");
  AnsiString str="AddItem("+path1+",SaveFlash,"+path1+",0,,,"+path+",,)";
  ProgCommand(str);
  str="AddItem("+path2+",UnInstall,"+path2+",0,,,"+path+",,)";
  ProgCommand(str);
Все бы хорошо, но есть одно но: когда Имя каталога превышает какую то длину то не происходит регистрации подразела. Например для path=C:\\Program Files (x86)\\SaveFlash подразделы(AddItem) не добавляются а для path=C:\\Temp\\Prog File - происходит нормально

кто сталкивался с этим подскажите пожалуйста.
Есть такая проблема, нужно следить что-бы длина не превышало 64 символов.
nuqta вне форума Ответить с цитированием
Старый 08.08.2012, 23:29   #3
Miller-1981
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 89
По умолчанию

а если превышает тогда как быть?
Miller-1981 вне форума Ответить с цитированием
Старый 09.08.2012, 19:28   #4
Miller-1981
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 89
По умолчанию

Вопрос актуален. выяснились некоторые особенности. Не от длины зависит оказывается а не воспринимаются скобки "(" ")" кто знает как это обойти?
Miller-1981 вне форума Ответить с цитированием
Старый 09.08.2012, 21:14   #5
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Можно попробовать экранировать их. "\("
Drugnir вне форума Ответить с цитированием
Старый 09.08.2012, 21:24   #6
Miller-1981
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 89
По умолчанию

не помогло
Miller-1981 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить появление меню Пуск tsar_ Общие вопросы Delphi 4 14.03.2011 12:50
Проблема с меню пуск. sinobithug Операционные системы общие вопросы 3 13.01.2011 21:24
Свой рисунок в меню пуск Win 7 alebed Windows 2 25.06.2010 17:03
Меню Пуск->Программы Котовский Общие вопросы Delphi 5 26.01.2009 12:52
аналог меню пуск RammFan Общие вопросы Delphi 14 27.02.2007 08:49