Ir para conteúdo
Fórum Script Brasil
  • 0

problema com inserção de string em system


Ronaldo Lanhellas

Pergunta

bom, estou com o seguinte problema, uso o comando system abaixo;

system("copy C:\\VNC\\DTI.exe C:\\\"Documents and Settings"\\%s\\Desktop",username);

a variavel username é uma a qual consegui criar para pegar o usuario logado atualmente, se eu der um printf da na variavel ele me mostra o usuario logado pois guardei nela o nome do usuario, porém nós sabemos que todo fim da string tem 1 campo a mais, esse campo que diz que a string acabou. isto é se o nome do usuario tiver 5 letras, a string deve ter 6 posições para guardar o ultimo campo que diz que a string acabou.

O problema é que ao por essa string no meu comando acima ele está pegando tambem este ultimo campo, impossibilitando que o meu codigo copie no local certo, o que eu gostaria é saber se tem alguma forma de eu poder tirar esse final da string para que possa ficar apenas o nome do usuário e eu consigo acessar a pasta certa pelo meu comando system.

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

não e correto você fazer isso deixa seu codigo vulneravel por que o system usa comandos do sistema e não do programa deixando vulneravel e acho que isso

system("copy C:\\VNC\\DTI.exe C:\\\"Documents and Settings"\\%s\\Desktop",username);

esta errado mande o codigo completo para ver que posso fazer por você

Editado por Jonathan Queiroz
Remover quote desnecessário (Jonathan)
Link para o comentário
Compartilhar em outros sites

  • 0

bem, na verdade o programa está seguro sim pois estou fazendo este programa na minha empresa e uso um dominio onde nenhum usuario da minha rede pode modificar sua senha ou outra coisa do tipo, mais voltando ao assunto abordado no post, só queria uma forma de não pegar o caracter de parada da string e sim apenas as letras em sim.

já tentei um strlen(username) e depois criar uma outra string com o tamanho do strlen do username, mais ele continua pegando o caracter de parada.

Link para o comentário
Compartilhar em outros sites

  • 0

pode me enviar esse pedaço do codigo para eu ver que posso fazer ? mais tente jogar toda a string em um array de caracter por que array de caracter não armazena o \1 no final ai você teria que jogar o array todo no system lá

Editado por ce1o2e
Link para o comentário
Compartilhar em outros sites

  • 0

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

int main(){ 
    int var1,i=0,j=0,tamanho=0;
    char comando[200],comando2[600],usuario[20],ch,username[30],username_final[30],auxiliar;
    FILE *arquivo;

var1 = system("cd C:\\VNC");    

    if(var1 != 0){
            
    system("cls");    
    system("md C:\\VNC");  
    system("copy Y:\\VNC\\*.* C:\\VNC");          
    system("cls");
  
   sprintf(comando2,"set username > C:\\VNC\\confuser.rl");
   system(comando2);    
    if ((arquivo = fopen("C:\\VNC\\confuser.rl","r"))==NULL){
    printf("Arquivo não pode ser aberto");        
}
  


ch = getc(arquivo);
while( ch != EOF ){
ch = getc(arquivo);
username[i] = ch;
i++;
}
fclose(arquivo);

for (i=0;i<strlen(username);i++){
if(i>=8){
auxiliar = username[i];
username_final[j] = auxiliar;
j++;
}
}


i=0;
char username_pronto[30];
while (username_final[i] != EOF){
auxiliar = username_final[i];
if (auxiliar != ' '){
username_pronto[i] = auxiliar;
}
i++;
}
    
    
    
sprintf(comando,"copy C:\\VNC\\DTI.exe C:\\\"Documents and Settings\"\\%s\\Desktop",username_pronto);

getch();
system(comando);    
getch();
system("cls");
system("net use Y: /delete");   
getch();
system("rd C:\\InstalaVNC /s /q");
getch();
system("regedit /s C:\\VNC\\vnc_conf.reg");
getch();
}
                    
                    
  else{
    system("net use Y: /delete");   
    system("rd C:\\InstalaVNC /s /q");
    }   

  
           
}

todo meu codigo esta ae

Link para o comentário
Compartilhar em outros sites

  • 0

@edit

desculpe mais e melhor você refazer seu codigo achei muitos erros tentei arruma o maximo que pode mais esta muito ruim tente usar o sistema da fstream que e melhor de vez usar o system por que o system não e seguro como te falei ... e ainda o system so aceita comando via cmd ele não serve para criar pasta e jogar comandos dentro o recomendado e o fstream

Editado por ce1o2e
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...