die gestartete .exe datei sich selbst nach z:\chattest\ kopieren!!???



  • hi leute!!
    gibs einen befehl damit die gestartete .exe datei sich selbst nach z:\chattest kopiert??? ich brauch das um das file im netzwerk automatisch zu verteilen...das erleichtert die arbeit!!

    mfg surf.



  • Hast du es mal mit GetModuleFileName und CopyFile(Ex) versucht - allerdings könnte ich mir vorstellen, dass es Probleme gibt, wenn eine Datei, auf die gerade zugegriffen wird kopiert wird 🙄



  • AnsiString source="C:\\Datei.exe";
    AnsiString target="Z:\\temp\Datei.exe";
    
    CopyFile(source.c_str(), target.c_str(), false); //durch "false" wird eine evtl. vorhandene Zieldatei überschrieben
    

    was meisnt du dazu?
    wie funzt das mit GetModuleFileName und CopyFile(Ex)?

    cu



  • AnsiString target="Z:\\temp\\Datei.exe";
    


  • BOOL GetExeName(
    HINSTANCE hInst,
    TCHAR* pszExeName)
    {
    BOOL bOk = FALSE;
    TCHAR szPath[MAX_PATH];
    TCHAR szName[64];
    TCHAR szFileExt[64];
    if (NULL != pszExeName)
    {
    pszExeName[0] = 0;
    bOk = (0 != GetModuleFileName(hInst, szPath, MAX_PATH));
    if (bOk)
    {
    _tsplitpath(szPath, NULL, NULL, szName, szFileExt);
    lstrcpy(pszExeName, szName);
    lstrcat(pszExeName, szFileExt);
    }
    }
    return bOk;
    }
    

    meinst du so?

    mfg



  • Eigentlich brauchst du nur GetModuleFileName - den Rest kannst du weg lassen, da du ja eh nur den vollständigen Pfad der exe benötigst 😉



  • was willst du mit GetModuleFileName machen?? name der exe ermitteln???

    mfg surf.



  • Genau! Bzw. besser gesagt: den kompletten Pfad 😉



  • ja warum muss man das wissen???

    mfg surf.



  • TCHAR szPath[MAX_PATH];
    TCHAR szName[64];
    TCHAR szFileExt[64];
    GetModuleFileName(hInst, szPath, MAX_PATH);

    AnsiString source=MAX_PATH;
    AnsiString target="Z:\\temp\Datei.exe";

    CopyFile(source.c_str(), target.c_str(), false); //durch "false" wird eine evtl.
    vorhandene Zieldatei überschrieben



  • surf. schrieb:

    wie funzt das mit GetModuleFileName und CopyFile(Ex)?

    char FileName[1000];
    GetModuleFileName(NULL,FileName,1000);
    CopyFile(FileName,"Z:\\chattest\sonstewas.exe ",NULL);
    

    So funktioniert das! Geht sogar obwohl die exe ja eigentlich gerade geöffnet ist. Wundert mich.



  • surf. schrieb:

    AnsiString source=MAX_PATH;

    😮 🙄



  • GetModuleFileName(NULL,FileName,1000);

    wie bekommt ich da nur den programmnamen ohne pfad??

    mfg surf



  • PathFindFileName oder mit strrchr selber basteln 😉



  • gibs keinen anderen befehl das mir den namen vom ausgeführten programm zurückgibt? muss ich da GetModuleFileName nehmen? wäre ja umständlich...wie soll ich das machen???
    C:\neuer ordner\programm.exe
    C:\programm.exe

    ich weiß ja nie wie tief der pfad ist!! weil also nicht wie viele \ zeichen ich hab!!

    cu surf.



  • surf schrieb:

    ich weiß ja nie wie tief der pfad ist!! weil also nicht wie viele \ zeichen ich hab!!

    Guck dir strrchr doch nochmal genau an 😉 !



  • strchr such nach einen bestimmten zeichen in einer zeichenkette..string!
    ja klass was soll ich suchen?*g*
    1 fall: C:\neuer ordner\Programm.exe
    2 fall: C:\programme\temp\files\Programm.exe

    cu surf.



  • strrchr sucht nach dem letzten Vorkommen eines Zeichens in einem String!
    ➡ also suchst du natürlich nach '\'



  • Oder er benutzt, wie flenders schon in diesem Thread schrieb, PathFindFileName

    🙄



  • das is gut;-) aber ich brauch \ nicht \\
    wie kopier ich dann das in den string???

    passt das so:

    char *str="C:\neuer ordner\software\programm.exe";
    char dateiname[30];
    dateiname[0]=0;
    dateiname=strrchr(str,'\');
    

Log in to reply