Announcement

Collapse
No announcement yet.

"Masterprogramm" feststellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • "Masterprogramm" feststellen

    Hallo,

    folgendes Problem:
    Mein Programm soll sich - abhängend davon, ob es über die Registry oder durch den Anwender (Startmenü, Explorer) aufgerufen wurde - unterschiedlich verhalten. Es muß also irgendwie das aufrufende Programm ermitteln bzw. erkennen, ob es über die Registry gestartet wurde.
    Läßt sich das realisieren?

    Für Tips bin ich dankbar.

    Grüße, Reimund

  • #2
    Hi

    Was verstehst Du unter "aus der registry gestartet" ?
    Grundsätzlich übernimmt IMMER die Shell den Startprocess, also ob als Link oder "RunOnce" der registry.
    Die Lösung dürfte aber einfach sein:

    Im Link übergibst Du einen anderen Startparameter als in der registry.

    <pre>

    im link als Path

    C:\programme\myApp\myApp.exe LINK

    und in der registry

    c:\programme\myApp\myApp.exe REG

    in der Projectsource

    begin
    Application.Initialize;

    if AnsiUpperCase(ParamStr(1)) = 'LINK' then ... else
    if AnsiUpperCase(ParamStr(1)) = 'REG' then ....
    else ...

    Application.CreateForm(...);
    Application.Run;
    end.

    </pre>

    Gruß Hage

    Comment


    • #3
      Hi Hagen,
      auf das naheliegenste kommt man (sprich ich) natürlich mal wieder nicht, sondern denkt viel zu kompliziert an irgendwelche komplizierten API-Aufrufe mit kryptischen Parametern, die mein Problem lösen könnten.
      Aber dein Vorschlag ist schlicht, einfach, leicht zu programmieren und funktioniert bestens.
      Danke dir.

      Gruß, Reimun

      Comment


      • #4
        Hi

        Danke

        Aber laß mal, mir erging es nicht anders, bis ich feststellte das ein gestartetes Program KEINERLEI Möglichkeiten hat SEINEN aufrufenden Process abzufragen (ich meine auf legalem Wege . Ok, es gibt das ToolHlp-API aber sonst wars das auch schon. Nun, wenn das nicht geht, dann geht einzig und alleine mein obiger Vorschlag.

        Gruß Hagen

        PS: auf dem "illegalen" Weg gibt es natürlich sehr gute Möglichkeiten in den Win95 Derivaten, so daß man OHNE igendwelche DLL's/API etc. direkt den Aufrufenden Process/Path, Debuging etc. herrausfindet oder modifiziert Als Hint, die ProcessDatabase, ThreadDatabase

        Comment

        Working...
        X