Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo Afonso Cordeiro

Utilizando Dialog

Recommended Posts

Pessoal, Me ajudem com essa intrigante dúvida. Estou utilizando o OPENDIALOG.Tenho vários servidores de arquivos mapeados em diferentes letras. Quando busco um caminho de um determinado arquivo ele busca pela Letra que está mapeada na estação.Por exemplo: H:\Arquivos\documentação.docFunciona perfeitamente no meu PC, mas em outros o mesmo drive pode estar mapeado de forma diferente.Por exemplo: Z:\Arquivos\documentação.docEu preciso de algum código delphi, ou alguma API que me retorne o nome do servidor independente da estação que está sendo executada a aplicação. Os mesmos exemplos acima deveria retornar algo do tipo:\\SERVERFILES\Arquivos\documentação.docVAleu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se lhe ajuda:

 

 

procedure TForm1.BitBtn1Click(Sender: TObject);var	x: integer;	caminho, drive: string;	tam: cardinal;	lista: TStringList;beginlista:=TStringList.Create;SetLength(caminho,255);tam:=255;for x:=0 to 25 do	begin	Drive:=Chr(Ord('A') + x) + ':';	if WNetGetConnection(PChar(Drive),PChar(Caminho),tam) = NO_ERROR then		if FileExists(PChar(Caminho) + '\Arquivos\documentação.doc') then			ShowMessage(PChar('Drive: ' + drive + #13 + 'Caminho: ' + caminho));	end;lista.Free;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara sua dica foi excelente!!!

 

Exatamente o que eu queria. Só que no meu caso não usei lista.

Tive alguns problemas com o a string gerada por apresentar lixo como '#0' e outros caracteres estranhos.

Ai fiz tratamento como PCHAR e funcionou.

 

procedure Tfrm_Conecta.sbnCaminhoAppClick(Sender: TObject);var  x: integer;  a, drive,  teste: string;  tam: cardinal;  lista: TStringList;begin  inherited;  with opgCaminhoApp do  begin	Execute;	SetLength(a, edtCaminho.MaxLength);	tam:=500;	Drive:=LeftStr(FileName, 1) + ':';	if WNetGetConnection(PChar(Drive), PChar(a), tam) = NO_ERROR then	  teste := StringReplace(a, Chr(0), '', [rfReplaceAll]) + RightStr(FileName, Length(FileName)-2);//	  edtCaminho.Text := StringReplace(a, Chr(0), '', [rfReplaceAll]) + RightStr(FileName, Length(FileName)-2);	edtCaminho.Text := teste;  end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.