Announcement

Collapse
No announcement yet.

externes Programm starten

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

  • externes Programm starten

    Wenn man ein anderes programm starten will, kann man dies mit:
    ShellExecute(NULL, "open", "LW:\\PFAD\\PRG.exe", NULL, NULL, SW_SHOWNORMAL);
    machen. Aber wenn der pfad nicht bekannt ist - was dann? Ich soll Winamp "fernstarten". Wenn ich über START->AUSFÜHREN geh, im WinMenu, wird Winamp auch gefunden. Aber wenn ich es aus dem CBuilder aufrufen will, klappt das nicht.

    Was kann ich machen?

  • #2
    Hi,

    das Anwendung wird im Windows Verzeichnis (ich glaube, das es dort ist) unter Ausführen gefunden, weil dieses registriert ist. In der C++ Builder Anwendung läuft es halt nicht. Du kannst aber den Pfad des Windows Verzeichniches mit einigen API herausfinden und hiermit den Pfad einer Anwendung zusammenbasteln. Wenn du sonst bei einer Anwedung nur weist, das sie existiert, aber nicht wo, dann könntest du die Datei suchen und mittels ShellExecute ausführen lassen.

    Philip

    Comment


    • #3
      Hi, <br>
      Christian<br>
      Versuch doch mal anstatt<br>
      Registry->ReadString("(Standard)")<br>;
      mit einer Leerkette, wie :<br>
      Registry->ReadString("");<p>
      Bei mir funktionierts<p>
      Gruß Mai

      Comment


      • #4
        <b>Naja, das problem ist immer noch aktuell. Nen Bissel hab ich ja selbst gemacht:</b><p>

        AnsiString TForm1::GetRegistry_Winamp_Dir()
        {
        AnsiString S;
        TRegistry *Registry = new TRegistry;

        try
        {
        Registry->RootKey = HKEY_LOCAL_MACHINE;

        Registry->OpenKeyReadOnly("\\Software\\CLASSES\\Directory\\ shell\\Winamp.Play\\command");
        S = Registry->ReadString("(Standard)");
        }
        __finally
        {
        delete Registry;
        }
        return S;
        }
        <p>
        Trotzdem liefert mir diese Funktion immer nur ne NULL zurück

        Comment

        Working...
        X