Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Program uruchamiany z systemem nie tworzy plików [C++]

Ostatnio zmodyfikowano 2015-10-29 17:25
Autor Wiadomość
Winner_Of_Death
Temat założony przez niniejszego użytkownika
Program uruchamiany z systemem nie tworzy plików [C++]
» 2015-10-28 22:25:06
Witam.
Napisałem aktualizator, który działa, jeżeli odpali się go ręcznie.
Jeżeli doda się go do autostartu (przez rejestr, bądź poprzez wrzucenie do folderu `Autostart`), program nie tworzy plików, które są niezbędne do jego poprawnego funkcjonowania. Sądziłem, że przyczyną są uprawnienia, lecz nawet gdy jest on uruchamiany jako administrator (co jest uciążliwe - start systemu i zezwalanie na program?) nie funkcjonuje poprawnie.
Próbowałem zrobić to samo z prymitywnym kodem:
C/C++
#include <fstream>

int main()
{
    std::fstream plik;
    plik.open( "test.txt", std::ios::out );
    plik << "test";
    plik.close();
}
Jednak również nie działa - plik nie jest tworzony.
P-139314
darko202
» 2015-10-29 11:28:02
1.
 sprawdź, czy program uruchamia się przy autostarcie.
 np. dodając linię
  cout >> "program X uruchomił się \n";

2.
 sprawdź czy uzyskałeś dostęp do pliku
  np.
C/C++
std::fstream plik;
plik.open( "nazwa_pliku.txt", std::ios::in | std::ios::out );
if( plik.good() == true )
{
    std::cout << "Uzyskano dostep do pliku!" << std::endl;
    //tu operacje na pliku
} else std::cout << "Dostep do pliku zostal zabroniony!" << std::endl;

przykład z
z http://cpp0x.pl/kursy/Kurs-C++​/Obsluga-plikow/305

3.
  .
z ww. strony 
Kiedy nie uzyskamy dostępu do pliku
Próba odczytu:
•Plik nie istnieje na dysku;
•Nie posiadamy uprawnień odczytu do pliku.
Próba zapisu:
•Nie posiadamy uprawnień pozwalających nam modyfikować plik;
•Nie posiadamy uprawnień do katalogu w którym chcemy utworzyć plik;
•Nośnik, na którym chcemy dokonać zapisu jest tylko do odczytu.

dodatkowo
sprawdź użyte flagi - tworzenia nowego pliku

4.
 ? wydaje mi się  :)  , że popełniasz błąd w analizie stwierdzając
  * "napisany program aktualizator działa !"
  * "a załączony przykładowy program nie działa !"
 to są dwa różne programy !, choć może mają ten sam kod,
ale może też nie ? :)
P-139330
Monika90
» 2015-10-29 16:39:32
Program próbuje utworzyć plik w swoim katalogu bieżącym, to niekoniecznie jest ten katalog w którym znajduje się plik exe, to może być np. C:/windows/system, czy coś tam. Spróbuj użyć ścieżki bezwzględnej.
P-139340
Winner_Of_Death
Temat założony przez niniejszego użytkownika
» 2015-10-29 17:25:11
Program tworzył plik, ale do tej pory nie wiem gdzie (znalazłem raz w `.../Windows/SystemWOW64`, ale usunąłem go, zrestartowałem komputer, i drugi raz już sie tam nie pojawił - nie wiem skąd się tam wziął).
Użyłem ścieżki bezwględnej do folderu `.../AppData/Local` (gdyż nie trzeba się tam bawić z uprawnieniami ;p) i wszystko poprawnie funkcjonuje.

Dziękuję za pomoc ;)
P-139345
« 1 »
  Strona 1 z 1