amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Exectuable Pfad und Icon [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

04.05.2007, 14:28 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Hallo!

Wie ist denn die eleganteste und sauberste Methode,

a) den Pfad+Datei der eigenen Exectubale herauszufinden...

b) das Icon herauszufinden über das man gestarted wurde,
was ja nicht notwendigerweise exe+".info" sein muss,
bei Projekt Icons kann es ja auch einen anderen Namen tragen.

Vielen Dank schonmal für eure Hilfe,
auch bei früheren Fragen habt ihr mir hier sehr geholfen!
--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 15:49 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Der_Wanderer:
a) den Pfad+Datei der eigenen Exectubale herauszufinden...

Reicht statt des richtigen Pfades auch HOMEDIR:? Eventuell kann man darüber auch den wirklichen Pfad ermitteln. Den Namen des Programmes rauszufinden, ist schon schwieriger. Bei Standard-C ist der in argv[0] zu finden (eventuell sogar mit Pfad) ;-) Ansonsten im Icon (WB) oder in der CLI-Struktur nachschauen. Dafür gibt es seit 2.0 auch spezielle Zugriffsfunktionen in der dos.libary (Get...).
Zitat:
b) das Icon herauszufinden über das man gestarted wurde, was ja nicht notwendigerweise exe+".info" sein muss, bei Projekt Icons kann es ja auch einen anderen Namen tragen.
Vorausgesetzt das Programm ist über die WB gestartet worden, kann man doch alles aus WBStartup rauskramen? An des Projekttool sollte man auch bei Projekticons rankommen.

[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 15:58 Uhr

thomas
Posts: 7675
Nutzer
@Der_Wanderer:

sm_ArgList[0] ist immer das Program-Icon. Wenn du von einem Project gerufen wurdest, steht das in sm_ArgList[1].

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 16:30 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Gut, man könnte ein GetNameFromLock machen auf einen Lock auf ProgDir:.

Es gibt doch aber auch functionen direkt in der dos.inlcude dafür, oder?

@thomas:

Wo bekomme ich diese Structure her und wie heist sie ?
Und woher weiss ich, wo ich suchen muss ? Also woher wiess ich, ob mein Prog aus der CLI, als WB Project oder als WB Program gestartet wurde ?

Mir geht es hauptsächlich darum, das richtige Icon für die Tooltypes auszuwählen, und evtl. relative Pfade korrekt zu finden.


--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 17:05 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Der_Wanderer:
Gut, man könnte ein GetNameFromLock machen auf einen Lock auf ProgDir:.

Oops, richtig ich meinte PROGDIR: :-P
Zitat:
Es gibt doch aber auch functionen direkt in der dos.inlcude dafür, oder?
Hast Du kein NDK? Da stehen doch alle Funktionen drin ;) AFAIR, seit 2.0 gibt es GetProgramDir(), das Dir eventuell weiterhilft.
Zitat:
Also woher wiess ich, ob mein Prog aus der CLI, als WB Project oder als WB Program gestartet wurde ?
WB oder CLI unterscheidet man mittel pr_CLI aus der Prozeßstruktur. Wenn der Eintrag NULL ist, dann wurde der Prozeß von der WB gestartet und man muß die WB-Message einsammeln. Ist das nicht Amiga-Grundwissen? ;-)

[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 17:32 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ja, die Frage ist mir ja auch entsetzlich peinlich ;-)

aber bisher hat Onkel Basic das immer für mich gemacht. Nur bekomme ich immer den Namen der Exectuable zurück, aber ich komme nicht an das Icon, von dem aus es gestertet wurde. Bisher hatte ich dann immer exe+".info" angenommen, was aber im Falle eines Projektes eben nicht geht. Da bekomme ich dann ähnlich zu C das Icon als 1tes CLI Argument geliefert. Aber ich kann nicht detectieren, ob mein Prog jetzt von einem Projekt oder einem Program Icon gestarted wurde.

Das Brauche ich eben teilweise für die Deficons, damit mein Texteditor die eigenen Tooltypes richtig auslesen kann, aber auch Tooltypes aus dem Projekt Icon. etc.

--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 19:04 Uhr

thomas
Posts: 7675
Nutzer
Zitat:
Wo bekomme ich diese Structure her und wie heist sie ?

code:
#include <workbench/startup.h>

int main (int argc, char **argv)

{
if (argc == 0) /* Start von Workbench */
   {
   wbmsg = (struct WBStartup *) argv;
   progdir  = wbmsg->sm_ArgList[0].wa_Lock:
   progname = wbmsg->sm_ArgList[0].wa_Name:

   oldcd = CurrentDir (progdir);
   icon = GetDiskObject (progname);

...


Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 19:24 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@thomas

... und wenn dir C den Pointer nicht in argv vorlegt ?
Gibts dann noch eine Möglichkeit ? Ich nutze ja AB2...

--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

04.05.2007, 19:43 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ok, Habs gefunden. Es gibt einen AB2 Befehl "WBMessage".
--
Thilo Köhler, Author von:
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Exectuable Pfad und Icon [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2022 by amiga-news.de - alle Rechte vorbehalten.
.