[amirus] Re: PROGRAM name

  • From: Alexey Ivanov <amis@xxxxxxxxxxxx>
  • To: amirus@xxxxxxxxxxxxx
  • Date: Sat, 07 May 2005 11:00:27 +0300

Hello 4afc, 

On 06.05.05, 4afc wrote:

>>> Вам удавалось узнать имя своей запущенной из WB программы через wa_Name?
>>> У меня этот параметр содержит что угодно но не указатель на путь/имя.
>> А разве там долно быть имя твоей программы? :-()
>> я использовал это поле когда ловил получение от WB файла дропнутого на мою 
>> иконку.

> Я не пользуюсь workbench.library.

> Хохма в том, что многие программы берут оттуда имя, от него открывают
> иконку и ищут тултайпы.

Я так делал в eNote вспомнил смотри фрагмент кода!

> Например:

> CompactPlayer: icon=GetDiskObject(_WBenchMsg->sm_ArgList->wa_Name));
> UChess:        startmsg = (struct WBStartup *)aargv;
>                mywbptr = startmsg->sm_ArgList;
>                icon = GetDiskObject (mywbptr->wa_Name));

> Проблема в том, что argv у меня равен нулю при запуске из WB.

> Кстати в Rusifier DM не решил эту задачу и использует
> "PROGDIR:Rusifier", пожалуй и я так пока буду делать,
> нефиг переименовывать проги.

А вот так делать не нужно...
> Кроме того FindToolType возвращает не ноль, если такой файлтип есть.
> Но это число ни к селу не к городу, не указатель на строку и никто его
> не понимает. Прикольно.

    SysBase = *((struct Library **)4L);
    
     thistask = (struct Process *)(WheelHandlerData.eNoteTask = FindTask(NULL));

    if(!(thistask->pr_CLI))
    {
        WaitPort((struct MsgPort *)&(thistask->pr_MsgPort));
        WB_Msg = (struct WBStartup *)GetMsg((struct MsgPort 
*)&(thistask->pr_MsgPort));
        enote_name = WB_Msg->sm_ArgList->wa_Name;
    }




Regards



Other related posts: