Comment obtenir le nom de l’executable sous AmigaOS ?

12 sujets de 1 à 12 (sur un total de 12)

  • Rmais96

      #831

      Salut,

      Afin de déduire le nom de l’icône associée à un programme, j’aurais

      besoin de récupérer le nom de l’executable lancé depuis le Shell ou le

      Workbench.

      Avec gcc pour MorphOS, la variable “_ProgramName” présente dans

      libnix me fournit cela.

      Avec gcc pour AmigaOS, il n’y a rien de tel dans cette librairie

      Pour un lancement depuis le shell, il y a toujours argv[0]

      pour obtenir le nom de la commande, mais pour le lancement depuis le

      Workbench, cela ne marche plus.

      Quelqu’un aurait-il une solution pour ce problème ?

      Merci d’avance.

      anonyme

        #22666

        La variable _ProgramName fournit le chemin complet ou seulement le nom de l’exécutable ?

        @+,

        Léo.

        Rmais96

          #22668

          @Léo: Juste le nom de l’exécutable.

          Christophe.

          anonyme

            #22669

            if(argc > 0)

            {

            //shell

            name=argv[0];

            }

            else

            {

            //wb

            struct WBStartup *wbench_msg = (struct WBStartup *) argv;

            name=wbench_msg->sm_ArgList->wa_Name;

            }

            je suppose qu’avec un Examine() sur

            wbench_msg->sm_ArgList->wa_Lock

            on doit pouvoir trouver le path

            Gofromiel

              #22670

              Rolala non !! C’est tout pourri les gars !

              #include

              #include

              void main(void)

              {

              STRPTR buf_path;

              if (buf_path = AllocMem(1024,MEMF_CLEAR))

              {

              STRPTR buf_file;

              if (buf_file = AllocMem(1024,MEMF_CLEAR))

              {

              BPTR lock;

              if (lock = GetProgramDir())

              {

              NameFromLock(lock,buf_path,1024);

              Printf(“Chemin: ‘%s’n”,buf_path);

              }

              GetProgramName(buf_file,1024);

              Printf(“Fichier ‘%s’n”,buf_file);

              AddPart(buf_path,buf_file,1024);

              Printf(“Chemin complet: ‘%s’n”,buf_path);

              FreeMem(buf_file,1024);

              }

              FreeMem(buf_path,1024);

              }

              }

              Voilà :-D C’est plu joli comme ça 8-)

              anonyme

                #22671

                C’est mieux mais ca peux être encore mieux:

                int main(void)

                et ajouter des return 0 ou code d’erreur si les AllocMem fail.

                Au pourrait aussi testé le code de retour des Printf! :-)

                Gofromiel

                  #22672

                  Rooooooo, lo’t comme y s’moque :-D Cela dit j’utilise jamais “int main(void)”

                  krabob

                    #22673

                    Et pour les développeur amiga il y a l’excellent site francophone:

                    http://www.guru-meditation.net

                    stan

                      #22674

                      Oui mais là on va te demander à quoi sert le forum développement d’AmigaImpact si à chaque fois que quelqu’un pose une question on lui dit d’aller voir sur GuruMed.

                      :)

                      Rmais96

                        #22675

                        Malheureusement la fonction GetProgramName() ne donne le nom que si

                        l’application est lancée depuis le Shell.

                        Visiblement, sous AmigaOS, l’accès au nom de l’exécutable peut être

                        récupéré par :

                        Pour un lancement depuis le Workbench

                        FindTask(NULL)->tc_Node.ln_Name

                        Pour un lancement depuis le Shell

                        GetProgName(Buffer, MaxSize) ou argv[0]

                        A plus.

                        Yomgui

                          #22676

                          je te fourni le code ce soir… j’ai ça à la maison pour le prog de leo1024 qui permet de faire un switch cyclique des fenêtres et écrans.. je l’ai modifié pour afficher le noms des programmes dans la fenêtre…

                          stan

                            #22677

                            J’en profite pour signaler que le “prog de leo” n’est pas de leo mais de Matteo Cortese. Leo a soigneusement omis de mentionner l’auteur original dans son readme. A moins qu’il n’ait eu l’accord de l’auteur, il n’a d’ailleurs probablement pas le droit de distribuer son alttabber modifié.

                          12 sujets de 1 à 12 (sur un total de 12)

                          • Vous devez être connecté pour répondre à ce sujet.

                          Forums AmigaOS, MorphOS et AROS Développement Comment obtenir le nom de l’executable sous AmigaOS ?

                          Amiga Impact