To mój pierwszy post na tym forum, więc witam wszystkich.
Mam problem. Próbuję już drugi dzień stworzyć program, który będzie uruchamiał się przy starcie systemu (system to windows) i tworzył plik.
Zrobiłem coś takiego. Program pierwszy, dodający do rejestru program drugi i kopiujący program drugi na dysk C:
#include <windows.h>
bool zainstaluj( char * miejsce )
{
HKEY klucz;
LONG Wynik;
DWORD Nowy;
const BYTE * lpData =( const BYTE * ) "C:\\plikstart.exe";
Wynik = RegCreateKeyEx( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, & klucz, & Nowy );
if( Wynik == ERROR_SUCCESS )
{
RegSetValueEx( klucz, "kl2", 0, REG_SZ, lpData, 256 );
RegCloseKey( klucz );
}
else
{
return false;
}
return true;
}
int main()
{
CopyFileA("plikstart.exe","C:\\plikstart.exe", true );
char miejsce[50] = "C:\\plikstart.exe";
zainstaluj(miejsce);
}
Oraz program nr. 2, który tworzy plik, pisze coś w konsoli a potem czeka aż kliknę jakiś klawisz( to po to żeby sprawdzić czy w ogóle się uruchamia przy starcie systemu ):
#include <fstream>
#include <iostream>
#include <string.h>
int main()
{
std::fstream plik( "nazwa_pliku.txt", std::ios::out );
std::string napis = "Napis w pliku";
plik<<napis;
std::cout<<"Jakiś tam napis";
std::cin.get();
}
Wszystko pięknie. 0 błędów w kompilacji. Program kopiujący i dodający do rejestru działa bez zarzutu, ale gdy uruchomię ponownie komputer i gdy windows się włączy, program nr. 2 też się włącza, wyświetla okienko konsoli i napis, lecz nie tworzy pliku.
Próbowałem na dwa sposoby stworzyć pliki. Raz użyłem biblioteki fstream, a raz za pomocą chyba stdio.h. Nic nie dało.