pfad + dateiname , datei kopieren
-
hi,
ich möchte ein Programm programmieren, dass sich ins System-Verzeichnis kopiert (bzw. das was "GetSystemDirectory()" zurückgibt) und dann zwecks Autostart in die Registry schreibt.
Bis jetzt hab ich folgendes:
#define INFO_BUFFER_SIZE 32767 TCHAR infoBuf[INFO_BUFFER_SIZE]; GetSystemDirectory( infoBuf, INFO_BUFFER_SIZE ); /* Damit ich weiß wo das SystemDirectory ist */RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", &hkey); RegSetValueEx(hkey,"einname",0,REG_SZ,(LPBYTE)argv[2],strlen(argv[2])); RegCloseKey(hkey); /* Um den Registryschlüssel zu schreiben */Damit der Autostart funktioniert muss ich also erstmal die Datei in das Verzeichnis kriegen, was mir "GetSystemDirectory()" zurückgibt und den Registryschlüssel schreiben mit "(LPBYTE)argv[2]" den Pfad + Dateinamen (Dateiname aus argv[0] ?) anstatt argv[2]. Wie kriegt man Pfad + Dateinamen in ein Feld (wenn Feld da richtig ist) und kopiert die Datei ins Verzeichnis?
Danke schonmal

bye
-
1. WinAPI-Forum
2. Warum brauchst du argc/argv/Sachen in ein Fel dbekommen wenn du die WinAPI hast? Gibt sicher ne Funktion die deinen Pfad + Dateiname zurückgibt *leider keine MSDN zur Hand*Außerdem wäre es nett zu erfahren was du damit vorhast. Programme die sich selbst ins System-Verzeichnis kopieren halte ich schon nicht für sehr sinnvoll, schreiben sie sich auch noch ins Autostart-Verzeichnis - und das nur, weil der Ersteller den Code per Copy&Paste aus einem Internetforum holt - werde ich nachdenklich.
MfG Sidewinder
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Tut mir leid, dass ich den falschen Forenbereich erwischt hab.
2. Warum brauchst du argc/argv/Sachen in ein Fel dbekommen wenn du die WinAPI hast? Gibt sicher ne Funktion die deinen Pfad + Dateiname zurückgibt *leider keine MSDN zur Hand*
Hab auf der Seite (msdn.microsoft.com) noch keine passende Funktion dafür gefunden und ehrlich gesagt finde ich die Seite auch schrecklich.. und dachte halt, weil ich die passende Funktion nicht gefunden habe baue ich mir selber den kompletten Pfad + Dateinamen. Der Dateiname wird ja bei argv[0] mitgeliefert - wobei auch noch die Endung fehlt..
Außerdem wäre es nett zu erfahren was du damit vorhast.
Ich baue ein RAT (remote administration tool). Klar gibt es schon viele und man könnte auch die benutzen, aber möchte mir einfach mal selber eins bauen (lernt man ja auch was) und jetzt komme ich halt nicht mehr weiter wegen diesem Problem. WinApi ist für mich sowieso ziemlich neu (hab nur 1 Jahr C gelernt bis jetzt).
und das nur, weil der Ersteller den Code per Copy&Paste aus einem Internetforum holt
Man braucht ja nicht mit fertigen Code antworten. Ein paar Links zu den Seiten wo steht wie das geht wäre genauso gut.
Also danke (wenn noch einer antwortet - vielleicht werd ich ja auch verbannt?)
bye
-
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getmodulefilename.asp
oder
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getcurrentdirectory.aspstrcat zum zusammen kopieren
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_strcat.2c_.wcscat.2c_._mbscat.aspkopieren
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/copyfile.aspconcu schrieb:
hab nur 1 Jahr C gelernt bis jetzt
ohne jetzt dich zu beleidgen zu wollen, aber dann weisst du nicht wie man char arrays (c-string) zusammenkopiert

-
danke
