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.exeich 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.execu 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,'\');