none
Funções de arquivo não funcionam logo após a inicialização RRS feed

  • Pergunta

  • Olá, estava criando um programa e precisei coloca-lo na inicialização automática, porém quando ele está sendo iniciado uma das primeiras coisas que ele faz é abrir um arquivo para escrita e leitura, quando eu inicio o programa ele funciona normal, mas na auto inicialização ele retorna um erro quando tenta abrir o arquivo e GetLastError retorna 5(acesso negado), utilizei o WinDBG para ver um pouco mais do erro e mesmo após reiniciar o programa(a mesma instância pelo WinDBG) ele trava no mesmo ponto, o que me faz pensar que é algo relacionado ao modo como ele foi iniciado, para configurar a inicialização automática eu criei uma nova chave em CURRENT_USER\Microsoft\Windows\CurrentVerion\Run, alguém saberia me dizer o que pode estar ocasionando isso? Agradeço a atenção.

    void set_auto_start(){
    	HKEY key;
    	unsigned char path[MAX_PATH];
    
    	GetModuleFileNameA(NULL, path, MAX_PATH);
    
    	RegCreateKeyA(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", &key);
    	RegSetValueExA(key, "my_program", 0, REG_SZ, path, strlen(path));
    	RegCloseKey(key);
    }
    
    void open_file(){
    	char name[9] = {"info.dat"};
    	
    	file = fopen(name, "a+b");
    
    	if (file == NULL){
    		char error[10];
    		sprintf(error, "%d", GetLastError());
    		MessageBoxA(NULL, error, "Erro", MB_OK);
    		exit(1);
    	}
    
    	fseek(file, 0, SEEK_END);
    }



    domingo, 20 de setembro de 2015 17:03

Todas as Respostas

  • Tente executar o aplicativo com o runas na inicialização do Window$:

    Exemplo: runas /user: <localmachinename> \administrator alicativo.exe

    https://technet.microsoft.com/pt-br/library/cc771525(v=ws.10).aspx


    terça-feira, 29 de setembro de 2015 01:33