понедельник, 28 мая 2018 г.

Vb net process waitforexit não funciona


Desafio.


Acompanhar respostas em algumas dificuldades de codificação.


PDF com impressão silenciosa usando gsprint e fontes truetype adicionais.


No meu projeto mais recente, um dos requisitos dos aplicativos era renderizar relatórios usando o SQL Report Services em um formato PDF e imprimir esses arquivos PDF em uma impressora de rede.


O PDF também contém uma seção de código de barras, pois os relatórios impressos serão processados ​​por uma máquina de classificação que preenche automaticamente os envelopes com os relatórios, com base em seu código de barras, é claro.


Ao examinar as opções de impressão de um arquivo PDF a partir do código, as únicas abordagens viáveis ​​são:


1) usar o Adobe Acrobat Reader como pipeline para abrir o arquivo e enviá-lo para a impressora.


2) usando o gsprint, um executável que vem com o Ghostview (a GUI do GhostScript) e que é capaz de enviar arquivos PS e PDF para qualquer impressora que suporte a impressão de arquivos PS / PDF.


No começo, eu tentei o jeito do Adobe Reader. Isso, no entanto, provou-me alguns problemas. Por um lado, para poder imprimir usando o Adobe Reader, ele precisa de uma janela ativa. Portanto, isso resulta em ter o Adobe aparecendo em primeiro plano ao imprimir arquivos. Ou, pior ainda, piscando ao imprimir vários arquivos em rápida sucessão, pois a Adobe continua abrindo e fechando cada arquivo PDF que você envia. Então, indo isso não permitirá que você os arquivos de impressão de forma silenciosa.


A segunda desvantagem ao usar o Adobe é o fato de que quando os arquivos precisam ser impressos muito rapidamente em uma determinada ordem, a Adobe decide a ordem dos arquivos que envia para a impressora criando sua própria fila (ou assim parece). Isso resulta em uma série de arquivos impressos na ordem errada, embora você os tenha enviado na ordem correta para o processo da Adobe.


Então, que tal ferramentas de terceiros? Hmm, não estávamos pensando em pagar as licenças de $ 1000 para imprimir um arquivo PDF.


E quanto às bibliotecas de código aberto, como o PDFSharp? Bem, eu olhei para eles, e no fundo tudo o que eles fazem é abordar o Adobe Reader como um processo e executar as mesmas ações que eu descrevi acima, com as mesmas desvantagens como resultado.


Então, hora de procurar outra solução!


Depois de um pouco mais de roaming na internet, em busca de uma solução para o meu problema, me deparei com o gsprint. exe, um executável sob Free Public License, que vem com o Ghostview.


Esta é uma GUI, em execução no GhostScript, um interpretador para a linguagem PostScript e para arquivos PDF.


Em seguida, tentarei explicar como configurar e usar essas ferramentas para imprimir.


Ambos os programas podem ser baixados dos links fornecidos na seção de algumas linhas de volta. Baixe e instale esses programas. Eu usei os locais padrão no procedimento de instalação, portanto, vou usar esses locais pelo restante do post.


Em primeiro lugar, ao usar as versões mais recentes dos aplicativos, a documentação sobre as fontes tornou-se obsoleta. Portanto, a adição de fontes adicionais deve ser feita manualmente.


Para poder imprimir nossos códigos de barras nos relatórios com êxito, precisávamos da fonte instalada e disponível para o GhostView no PC cliente.


Como o GhostView não adiciona automaticamente nenhuma fonte disponível na máquina, precisamos adicioná-la manualmente em sua configuração.


Eu copiei o arquivo de fonte TrueType para o diretório C: \ Program Files \ gs \ fonts. Se o & # 8216; fonts & # 8217; sob sua pasta gs (GhostScript) não existe, crie-a.


Em seguida, abra o GhostView (você deve ter uma seção GhostGum adicionada em Iniciar & # 8211; Todos os Programas)


No GhostView, vá para Opções e vá para Configuração avançada & # 8230;


Aqui você pode configurar algumas opções com as quais o GhostScript irá trabalhar.


Como queremos que o GhostScript reconheça nossa fonte TrueType e a substitua por uma de suas fontes conhecidas, adicionaremos a localização à nossa fonte:


Ok, temos o GhostScript / GhostView (e, portanto, o gsprint) configurado. Agora é hora de fazer algumas codificações simples para fazer essas coisas funcionarem & # 8230;


Tenha em atenção que o gsprint deve ser abordado através da linha de comandos e não imprime automaticamente o ficheiro na orientação correta (retrato ou paisagem). A orientação, no entanto, pode ser ajustada chamando a opção - landscape / - portrait na linha de comando. No entanto, o gsprint não tem suporte para controle de margem e não ajusta automaticamente seu PDF ao tamanho de papel usado. Portanto, você deve ter certeza de que eles estão definidos em seu arquivo PDF corretamente.


De qualquer forma, aqui está o meu código que eu uso para imprimir meus arquivos PDF corretamente:


public static void UseGSPrint (string Nome_da_impressora, string Nome_do_arquivo, bool Retrato)


gsArguments = string. Format ("- noquery - portrait - printer \" \ "\" \ "", PrinterName, nome do arquivo);


gsLocation = @ "C: \ Arquivos de programas \ Ghostgum \ gsview \ gsprint. exe";


gsArguments = string. Format ("- noquery - landscape - printer \" \ "\" \ "", PrinterName, nome do arquivo);


gsLocation = @ "C: \ Arquivos de programas \ Ghostgum \ gsview \ gsprint. exe";


gsProcessInfo = new ProcessStartInfo ();


catch (exceção ex)


ExceptionPolicy. HandleException (ex, "Política do Cliente");


Como Tiago pediu, adicionarei um exemplo de como chamar o método acima:


public void PrintTheFile ()


String filename = @ "C: \ mytestfile. pdf";


Printername de cadeia = @ "\\ MyHomeNetwork \ HP3650";


UseGSPrint (printername, filename, true);


Espero que este post tenha sido um tanto útil, já que este foi meu primeiro post cobrindo um assunto real. Funcionou muito bem para mim, já que eu não tenho mais popups irritantes da Adobe, e posso descansar assim que a minha ordem de impressão será mantida da maneira que eu enviar para o pipeline & # 8230;


Introdução.


Sendo este o meu primeiro post, uma pequena introdução estaria em ordem.


Meu nome é Wouter Alleweireldt, morando na Bélgica, me casei no verão passado e atualmente ajudo na construção de nossa casa.


Comecei a trabalhar como desenvolvedor há cerca de 3,5 anos, como consultor na ArcelorMittal, principalmente aplicativos de suporte ao sistema de programação / SQL no VB 1.1 e 2.0.


Enquanto isso, cresci para um nível de consultor de nível médio, concentrando-me mais em C # 3.5, tentando usar as tecnologias mais recentes, quando aplicável.


A principal razão pela qual eu comecei um blog, é compartilhar minha experiência quando se trata de lidar com dificuldades técnicas que não têm uma solução clara na internet (ou pelo menos, nenhuma que eu possa encontrar)


O blog também me fornece um histórico de dificuldades que resolvi no passado e poderia me servir novamente no futuro & # 8230;


Eu espero que você goste de algumas das postagens, eu farei o meu melhor para mantê-las atualizadas!


Transferências de arquivos SFTP em.


As técnicas demonstradas por este artigo são implementadas para você no assembly do WinSCP. Usar a montagem é uma abordagem recomendada sobre a implementação dessas técnicas por conta própria.


Este guia descreve como implementar a transferência de SFTP no aplicativo usando o WinSCP.


WinSCP é um cliente SFTP com interface de script que você pode usar para automatizar muitas operações que ele suporta, incluindo transferências de arquivos, sincronização e outras. Portanto, o WinSCP em si não é uma biblioteca (por exemplo, assembly) que você pode chamar diretamente. Embora este guia mostre como usá-lo sem problemas a partir do código.


Antes de começar.


Antes de começar você deve:


Usando WinSCP do código.


Executando o processo WinSCP.


Para executar o winscp use System. Diagnostics. Process. Esta classe permite executar qualquer executável, possivelmente redirecionando sua entrada e saída padrão para um fluxo acessível a partir do código. Código abaixo espera que winscp (ProcessStartInfo. FileName) pode ser encontrado no diretório de trabalho atual ou no caminho de pesquisa. Você precisa fornecer o caminho completo caso contrário.


Alimentando comandos de script usando entrada padrão.


Você pode usar o redirecionamento de entrada padrão (ProcessStartInfo. RedirectStandardInput) para alimentar comandos de script, dispensando a necessidade de montar o arquivo de script temporário.1.


Para alimentar comandos para entrada padrão, use o fluxo Process. StandardInput:


Capturando saídas do processo WinSCP.


Embora você possa redirecionar a saída padrão do processo WinSCP, na verdade não é muito útil, já que a saída do WinSCP não possui nenhum formulário predefinido (não pode ser analisado). Embora possa ser útil capturá-lo, caso deseje mostrá-lo a um usuário em sua GUI ou para fins de diagnóstico.


Se você quiser coletar a saída, redirecione a saída padrão antes de iniciar o WinSCP (ProcessStartInfo. RedirectStandardOutput) e leia o fluxo de saída (Process. StandardOutput). Você precisa coletar continuamente a saída enquanto o script está sendo executado. O fluxo de saída tem capacidade limitada. Depois de preenchido, o WinSCP trava à espera de espaço livre, nunca terminando. Isso significa que você não pode usar Process. WaitForExit por conta própria para aguardar a conclusão do script. Alternativa conveniente é StreamReader. ReadToEnd:


Usando o arquivo de log.


Para capturar os resultados do script, você pode usar o log XML. Para isso, você precisa instruir o WinSCP a armazenar o arquivo de log usando o parâmetro de linha de comando / xmllog (ProcessStartInfo. Arguments).


Se você precisar ler o arquivo de log continuamente, precisará usar o analisador baseado em fluxo (como XmlReader). Consultar exemplo.


O exemplo a seguir mostra como usar a análise baseada em árvore usando o XPathDocument:


Em caso de erro, você pode verificar se há elementos de mensagem para capturar qualquer mensagem de erro associada:


Em caso de sucesso, você pode, por exemplo extrair listagem de diretórios gerada pelo comando ls dentro do elemento ls:


Aguardando o script ser concluído.


Use Process. WaitForExit para aguardar o processo WinSCP concluir.


Se você tiver redirecionado o fluxo de saída, primeiro precisará ler o fluxo de saída até o final.


Uma boa prática é fechar o fluxo de entrada também, se você tiver redirecionado.


Verificando o código de saída.


Quando o script WinSCP for concluído, verifique o código de saída (Process. ExitCode) do processo:


Exemplo C # completo.


Partes individuais deste exemplo são explicadas no capítulo anterior.


Exemplo completo de VB.


Partes individuais deste exemplo são explicadas no primeiro capítulo. Observe que o exemplo VB não foi testado. É baseado no exemplo C # acima, que foi. Sinta-se à vontade para consertá-lo.


Desenvolvendo Matt.


Meu diário técnico.


Descompacte e o comando copyHere (com vOptions vUseless)


Se você quiser copiar um arquivo de um local para outro, certamente poderá fazê-lo usando um objeto de shell de pasta. Um bônus: usando o objeto shell permite que você copie de um local zipado. isso é ótimo até que você precise usá-lo como um processo oculto que não requer entrada do usuário. O problema é que, se o arquivo que você está descompactando já existir, você receberá uma solicitação perguntando se deseja substituí-lo. A solução que não funciona: o shell32.folder. copyhere (sourcefolder, vOptions) tem um vOptions que permite responder "sim a todos os & # 8217; para todos os prompts de substituição. Deixe-me poupar algum tempo: ao contrário do artigo do msdn, ele não funciona. Minha solução: criar um aplicativo de descompactação e chamá-lo de outro aplicativo como um processo & # 8230; definindo a propriedade visible como false.


Descompacte o script vb:


Dim sourcefile As String = Command $ ()


If Right (sourcefile, 1) = & # 8220; \ & # 8221; Então sourcefile = Left (sourcefile, Len (sourcefile) & # 8211; 1)


Dim sPath As String = Left (sourcefile, InStrRev (sourcefile, & # 8220; \ & # 8221;))


Dim myShell como novo Shell32.Shell.


Dim sourceFolder Como Shell32.Folder = myShell. NameSpace (sourcefile)


Dim destinationFolder Como Shell32.Folder = myShell. NameSpace (sPath)


Dim i As Integer.


Para i = 0 Para sourceFolder. Items. Count & # 8211; 1


Se System. IO. File. Exists (destinationFolder. Items. Item. Path & amp; & # 8220; \ & # 8221; & amp; sourceFolder. Items. Item (i).Name) Em seguida, _.


Console. WriteLine (& # 8220; Descompactado & # 8221; & sourceFolder. Items. Item (i).Name & amp; & # 8221; para & # 8221; & amp; destinationFolder. Items. Item. Path)


Captura ex como exceção.


Console. WriteLine (& # 8220; Não foi possível descompactar de & # 8221; & sourcefile & amp; & # 8221; para & # 8221; & amp; destinationFolder. Items. Item. Path)


Depois de criar este exe, você pode chamá-lo como um processo:


Dim iProcess As New System. Diagnostics. ProcessStartInfo (AppDomain. CurrentDomain. BaseDirectory + & # 8220; unzip. exe & # 8221;)


Dim Args As String = ZippedFile.


Dim p As New System. Diagnostics. Process.


Dim s As Integer = p. ExitCode.


editar 1/13/2011: por favor, leia todos os comentários, pois alguns outros postaram ótimas adições a este método e o tornaram ainda melhor. Obrigado a todos pela ótima entrada !!


Relacionado


Pós-navegação.


Deixe uma resposta Cancelar resposta.


Este é um post antigo, mas mal posto a solução para quem talvez tenha os mesmos problemas.


O coletor de lixo dessa função não funciona. A variável transmitida pertence ao local para o qual você está tentando copiar, e não ao espaço temporário temporário das funções. A primeira vez que você usar esta função, ela funcionará, mas se você tentar executá-la várias vezes a partir do mesmo arquivo zip, você receberá "o arquivo existente" & # 8221; erro porque o espaço de rascunho já contém um arquivo com esse nome. Fica confuso e com erros com "o arquivo existe" # 8221;


Vá para "c: \ documents and settings \ nome do usuário \ localsettings \ temp \ diretório temporário xx para whatever. zip \ & # 8221;


Excluir todo o diretório temporário "&" de & # 8221; diretórios e executá-lo novamente e funcionará.


grande informação. Obrigado por postar.


Obrigado & # 8211; Eu executo o CopyHere em um script powershell, que parou de funcionar misteriosamente devido a esse erro.


Muito obrigado & # 8211; Eu tenho tido esse problema por dias e ainda estou puxando meu cabelo até ver este post. Que salva-vidas Obrigado novamente.


Obrigado por este post maravilhoso & # 8230;


Obrigado. Meu cabelo ficou cinza na minha tentativa e erro para resolver este problema. Você realmente fez o meu dia!


Muito obrigado pela informação! Eu não fui capaz de resolver o problema limpando o & # 8220; temp & # 8221; diretórios, mas pelo que você explicou, eu assumi que se eu mudasse o nome da pasta zip, então isso poderia resolver o problema & # 8211; o que aconteceu! Obrigado novamente.


Como devemos nos livrar do diretório temporário mencionado na solução que é criada sempre que descompactamos, o que está causando o erro do arquivo. O diretório será criado no mesmo local em todos os sistemas operacionais Windows? Isso pode ser programaticamente excluído em vez de operação manual. Ou existe alguma opção para não criar o diretório temporário?


Do aplicativo externo, eu recomendaria o gerenciamento do gerenciamento de arquivos. Em outras palavras, verifique o arquivo, descompacte e, em seguida, limpe. Separar esse processo permite que você tenha um pouco mais de flexibilidade de gerenciamento sobre o problema de arquivos bloqueados.


isso limpará o diretório temporário imediatamente:


Private Sub cleanTemp ()


Dim wshNet, objFolder, fsoObj, objFolderLoop.


Definir wshNet = CreateObject (& # 8220; Wscriptwork & # 8221;)


Definir fsoObj = CreateObject (& # 8220; Scripting. Filesystemobject & # 8221;)


Defina objFolder = fsoObj. GetFolder (& # 8220; c: \ documents and settings \ & # 8221; & amp; wshNet. UserName & amp; & # 8220; \ configurações locais \ temp \ & # 8221;)


For Each objFolderLoop Em objFolder. subfolders.


If (InStr (1, objFolderLoop. Name, & # 8220; Diretório Temporário & # 8221;) & gt; 0) Então.


fsoObj. DeleteFolder & # 8220; c: \ documents and settings \ & # 8221; & amp; wshNet. UserName & amp; & # 8220; \ configurações locais \ temp \ & # 8221; & amp; objFolderLoop. Name, 1.


Defina wshNet = Nada.


Definir fsoObj = Nothing.


Definir objFolder = Nothing.


Definir objFolderLoop = Nothing.


Eu sei que um ano atrasado, mas o único problema com esse método de exclusão é que você pode acabar excluindo algo que ainda é necessário. Seria bom se as opções especificadas pelo MS funcionassem e, em segundo lugar, se houvesse um switch de limpeza para o folder. copyhere. Eu estou no processo de escrever um método para fazer isso, e vou postar se eu terminar.


Como prometido, aqui está o código que eu usei. Altere CompressedFileName como uma entrada, deve ser o nome do CEP original. Isso deve ser suficiente para limpar.


// Onde estão os arquivos tmp?


string TMPUnzipFolder = Caminho. GetTempPath ();


// Obtenha uma lista dos diretórios.


Listar dirs = Directory. GetDirectories (TMPUnzipFolder);


// Coloque um wrapper try no lugar, mas não execute nada que falhe, não é necessário.


// Agora, limpe o diretório temporário deixado pelo windows.


foreach (string dirName no dirs)


// É o diretório o que acabamos de descompactar?


Obrigado turbo! Coisas boas. Obrigado por tomar o tempo para tornar este código melhor! Você é demais!!


O que eu amo em fóruns e blogs é como as pessoas contribuem com código de graça ". Apenas por uma questão de aprendizagem. Obrigado MR. anônimo nospam @ dontemailme (aasdf) para o código de limpeza! Muito alturista de você.


OI eu tenho um problema quando uma tentativa de descompactar no windows server vc sabe se precisa instalar alguma coisa, quando eu testar no win 7 ele funciona.


Questões de entrevista.


Compartilhar isso:


Relacionado


Pós-navegação.


Deixe uma resposta Cancelar resposta.


A janela de fechamento parece funcionar para o primeiro PDF a ser impresso, mas não fecha a janela do segundo PDF com o AdobeReader 7.0. Alguma ideia?


Eu estava pesquisando na web para imprimir um arquivo pdf, dando nome à impressora. Eu vim em seu artigo. Eu estou tentando fazer isso no Visual Basic 6.0. Você tem alguma idéia de como isso pode ser feito?


Olá Ripal Soni,


Primeiro de tudo, ripalsoni. wordpress é um excelente site para respostas de perguntas de entrevista.


Isso é o que eu estava procurando.


Eu tenho um requisito semelhante, mas eu tenho que imprimir um arquivo RTF para fora, então este lil beleza trabalho para isso também?


Obrigado Ripel, me salvou de codificação. Funciona bem.


Eu preciso imprimir a primeira página do meu pdf na bandeja 1 (é uma bandeja nomeada) e o resto das minhas páginas pdf na 2ª bandeja & # 8230 ;. alguma ideia?


Eu tentei esse código, mas nada acontece quando eu o executo. Eu não recebo erros e nada é impresso.


rooz, algum sucesso com a impressão de múltiplas bandejas? Eu também tenho um relatório que precisa imprimir a partir de 2 bandejas diferentes.


Eu consegui imprimir vários arquivos pdfs. Funciona. Os primeiros arquivos pdf impressos perfeitamente. Mas segundo pdf, o tamanho da fonte do conteúdo e tamanho das imagens reduzidas (tornam-se menores). A seguir está meu código. Conselho por favor.


Enquanto intArrayCount & gt; intCounter.


Comando Dim Como Processo = Novo Processo.


Ótimo artigo. Mas o meu está agindo estranhamente & # 8230;


Funciona com todas as minhas impressoras reais, mas falha com qualquer impressora virtual.


\\ server3 \ HP Color LaserJet 2600n.


\\ server5 \ HP LaserJet série 1200 PCL.


& # 8230; funciona perfeitamente.


mas se eu passar as impressoras virtuais.


Microsoft Office Document Image Writer.


A Adobe lança o erro:


& # 8220; Ocorreu um erro ao abrir este documento. Este arquivo não pode ser encontrado & # 8221;


Alguma ideia? obrigado!


seu código funciona na abertura do arquivo pdf, mas o.


a impressão não é iniciada, embora nenhum erro seja.


Desde já, obrigado .


Como você sabe o caminho para o AcroRd32.exe instalado localmente?


o em Pathtoexecutable você só precisa dar o seu nome exe que você deseja executar, eu acho que ele vai encontrar o caminho por si só, o lugar geral onde isso deveria ser é c: programfiles ou c: pasta acrobat.


Eu quero imprimir um documento do Word em impressora Adobe PDF e deseja salvar o arquivo de saída automaticamente. Qual será o processo para isso?


Desde já, obrigado.


É possível alterar o tamanho da fonte antes de imprimir.


Olá, o código acima & # 8220; Imprima os arquivos PDF, selecionando o nome da impressora & # 8221; funciona bem.


Mas, adicionalmente, se eu quiser abortar o processo de impressão entre então como posso implementá-lo.


Esta é minha exigência.


Isto é sudhakar, tenho requisito como imprimir um arquivo pdf em diferentes bandejas de uma única impressora.


Suponha que um arquivo pdf tenha 100 páginas. e uma impressora tem 3 bandejas.


nosso Serviço deve ser capaz de imprimir 1 a N na bandeja 1,


N + 1 a M na bandeja2 e.


M + 1 a 100 na bandeja3.


Onde N e M são números inteiros no intervalo de 2 a 99.


Você pode me ajudar.


desde já, obrigado.


Como posso selecionar uma bandeja específica para impressão de PDF?


Olá & # 8211; Eu apenas tentei usar sua solução, infelizmente ela não funciona no Acrobat 8. Eu vi uma mensagem postando no site da Adobe de um membro da equipe do Adobe, dizendo que há um bug no Reader 8.0.


hiiiiiii eu quero imprimir o arquivo word e pdf em vb. arquivo pdf é impresso. mas com arquivo de palavras não está funcionando.


Dim psi As New ProcessStartInfo.


com este arquivo doc code não é impresso. não é obter arquivo do sistema.


plz me ajude o mais breve possível.


com o documento do word, esse tipo de erro é exibido.


win32 excaption foi cought.


O sistema não pode encontrar o arquivo especificado.


você tentou imprimir o arquivo de palavras usando o código dado neste post?


tente abaixo código, que pode ajudá-lo, se não me avise.


Dim pathToExecutable As String = “word. exe” (deve ser o nome da palavra Microsoft exe & # 8211; você pode encontrá-lo na pasta C: \ programmefiles \ Microsoftword)


Dim sReport = “C: Test. doc” ‘Nome completo / caminho do documento do word.


Dim SPrinter = “HP Officejet 5600 seriese” ‘Nome da impressora.


Iniciador Dim Como Novo ProcessStartInfo (pathToExecutable, “/ t“ + sReport + ”“ + sPrinter + “”)


Dim Processar como novo processo ()


Process. StartInfo = starter Process. Start ()


‘Tente fechar o processo com 20 segundos de atraso.


Dim iLoop As Int16 = 0.


"Verifique se o processo foi encerrado ou não.


Se Process. HasExited = False Então.


"Se não, dê um loop por 100 vezes para tentar fechar o processo" com 10 segundos de atraso.


While Not Process. HasExited.


iLoop = CShort (iLoop + 1)


Se iLoop & gt; = 100 Então.


Minha exigência é imprimir um documento do word para imprimir no sistema do cliente. Significa que eu quero imprimir um documento aberto pelo usuário usando o editor ajax (estou exibindo o conteúdo do editor como documento word e quero imprimir esse documento). Quando eu escrevo código em c # ele está funcionando quando eu corro no sistema local, mas quando eu publicar, não está funcionando, porque ele está tentando acessar a impressora conectada ao servidor web.)


Você pode por favor me dizer se usar o script C # que você forneceu irá resolver o meu problema.


Desde já, obrigado.


obrigado por me enviar code. its trabalho nesse código. Eu tento em primeiro lugar este código, mas eu não consigo encontrar todo o caminho da palavra. então com o verbo é feito. seu erro na minha palavra doc. its currupted. Está bem. obrigado.


Process. StartInfo = starter Process. Start ()


Eu não sei porque tenho erro final inesperado ocorrendo nesta declaração?


Coloque-os em uma linha separada como esta: & # 8211;


Para todos vocês que isso não irá funcionar no Acrobat 8.0. A solução que encontrei está nos argumentos de linha de comando do acrobat. / t deve estar no formato.


(AcroRd32.exe / t caminho printername drivername portname) Isso funcionou para mim. Encontrou a informação @ planetpdf / forumarchive / 49365.asp.


Só notei que o documento a que me referi foi escrito em 2002. No entanto, até eu adicionar os parâmetros drivername portname ao comando, ele não seria impresso. Pode ter a ver com a impressão em uma impressora compartilhada, eu não sei. Eu estou apenas compartilhando as poucas informações que recebi 🙂


😦 😦 Ainda não consigo imprimir.


É assim que meu aplicativo supostamente funciona.


Eu tenho uma pasta que eu tenho que monitorar, cada vez que um novo PDF é carregado eu tenho que imprimi-lo.


Eu acho que a parte com a qual muitas pessoas estão tendo problema são caminhos longos que possuem espaços, ao configurar isso no VB você precisará incluir as aspas na string. Aqui está o que eu comecei a trabalhar:


Dim pathToExecutable As String = & # 8220; AcroRd32.exe & # 8221;


Dim sReport = & # 8220; C: \ Dell \ My review. pdf & # 8221; & # 8216; Nome completo / caminho do arquivo PDF.


Dim SPrinter = & # 8220; Black Ice ColorPlus & # 8221; & # 8216; Nome da impressora.


Dim Processar como novo processo ()


Espero que isto ajude.


p. s. isso também mata as instâncias do adobe, então se você estiver configurando isso como um serviço, você não terá várias janelas do adobe para cima.


Usando o passo acima, documento aberto em pdf. Mas não é impresso. Por favor, deixe-me saber como ele deve ser impresso também.


Eu tentei usar esse código Mas eu encontrei o erro na linha.


O sistema não pode encontrar o arquivo especificado.


Eu verifiquei o arquivo está lá. Você pode me dizer por que estou recebendo esse erro.


Oi Feejaz vc deve colocar o símbolo @ antes do caminho do arquivo.


Caro Ripal Soni,


Abaixo está o meu código em C # para impressão de arquivos PDF no servidor de rede. O arquivo está sempre imprimindo apenas na impressora padrão, que está definida na minha máquina local. Não está imprimindo na impressora especificada no código abaixo. Por favor, deixe-me saber a solução para isso.


String pathToExecutable = @ & # 8221; AcroRd32.exe & # 8221; ;


String s1Reports = @ & # 8221; D: \ TestDocs \ PrintScreenUI. pdf & # 8221 ;;


String SPrinter = @ & # 8221; \\ ccrnt008 \ HPLaser2F & # 8221 ;;


ProcessStartInfo starter = new ProcessStartInfo (pathToExecutable, & # 8220; / t & # 8221; + s1Reports + & # 8221; & # 8221; + SPrinter + & # 8221; & # 8220;);


Processo ps = new Process ();


Você poderia postar ou me enviar seu código por e-mail.


Obrigado pela ajuda antecipadamente.


Eu tenho o mesmo problema.


do ASP (Framework 1.1), página da web eu quero silenciosamente imprimir um pdf (sem abrir PDF).


o código acima está funcionando (significa que ele acabou de abrir o arquivo PDF) no dot net 2005, mas não em 2003.


Como posso começar a trabalhar com o Word & # 8230; .. não posso fornecer uma impressora a partir da linha de comando. Com a palavra, qualquer outro parâmetro enviado é interpretado como outro documento. Eu não quero ter a impressora padrão como o escritor PDF & # 8230; ..


Como posso ignorar a palavra e apenas enviar um arquivo. doc para a impressora que eu quero & # 8230;


Você pode especificar o número de cópias?


Sua resposta ajudaria muito e seria muito apreciada.


Eu tenho uma pergunta:


Quando eu abro o documento pdf eu preciso salvar o documento pdf em algum outro formato como o. tiff. pode me dizer agora para fazer isso & # 8230;


desde já, obrigado.


Isto é o que eu tenho que roda sem erro e começa o Adobe, mas nada é impresso. o que estou perdendo?


Dim pathToExecutable As String = adobeVer.


Dim SPrinter = impressora & # 8216; Nome da impressora.


Dim SDriver = driver.


Dim SPortName = port.


Dim Processar como novo processo ()


Eu quero imprimir o documento em HTML.


use o controle webBrowser para exibir o conteúdo html.


e para impressão use o abaixo.


Bom blog sobre impressora. Eu tenho um monte de problemas com a minha impressora de escritório. Eu apoio e preciso resolver qualquer problema. Você tem alguma sugestão sobre o site de guias de impressão? Muito obrigado.


Esta foi exatamente a minha exigência. Eu apenas fui em frente para tentar isso. Mas sem sorte !.


Quando eu trabalho com o editor (c # asp 3.5) (converti os códigos para c #) (visual studio 2008) ele funciona perfeitamente.


Mas quando publico os códigos em uma máquina diferente OU mesmo na mesma máquina que um diretório virtual, isso não funciona.


Nenhum erro, mas não imprime.


Qualquer solução? Por favor ajude.


my acrobat reader installation é o caminho usual em c: \ arquivos de programas & # 8230; .. e impressora é uma impressora de rede, pdf está disponível no caminho menthioned no código ..


Esta foi exatamente a minha exigência. Eu apenas fui em frente para tentar isso. Mas sem sorte !.


Quando eu trabalho com o editor (c # asp 3.5) (converti os códigos para c #) (visual studio 2008) ele funciona perfeitamente.


Mas quando publico os códigos em uma máquina diferente OU mesmo na mesma máquina que um diretório virtual, isso não funciona.


Nenhum erro, mas não imprime.


Qualquer solução? Por favor ajude.


my acrobat reader installation é o caminho usual em c: \ arquivos de programas… .. e printer é uma impressora de rede, pdf está disponível no caminho menthioned no código ..


Seu código funcionou perfeitamente para mim, mas você sabe como imprimir o código nos dois lados do papel?


Opção estrita em.


Option Explicit On.


Public Class Form1.


Private TotalToPrint As Integer = 0.


IPageNumber Privado Como Integer = 0.


Private blnPrintPreview As Boolean = False.


PdPrinter privado como PrintDocument.


PPvwPrinter privada como PrintPreviewDialog.


Private Sub Button1_CLick (PorVal remetente como objeto, ByVal e como System. EventArgs) manipula Button1.Click.


pdPrinter = Novo PrintDocument.


ppvwPrinter = New PrintPreviewDialog.


AddHandler pdPrinter. BeginPrint, AddressOf TestDuplex_BeginPrint.


AddHandler pdPrinter. PrintPage, AddressOf TestDuplex_PrintPage.


AddHandler pdPrinter. EndPrint, AddressOf TestDuplex_EndPrint.


Se blnPrintPreview = True Então.


pdPrinter. PrintController = New StandardPrintController & # 8216; impressão silenciosa.


RemoveHandler pdPrinter. BeginPrint, AddressOf TestDuplex_BeginPrint.


RemoveHandler pdPrinter. PrintPage, AddressOf TestDuplex_PrintPage.


RemoveHandler pdPrinter. EndPrint, AddressOf TestDuplex_EndPrint.


Private Sub TestDuplex_BeginPrint (PorVal remetente como objeto, ByVal e como System. Drawing. Printing. PrintEventArgs)


pdPrinter. DocumentName = & # 8220; Teste duplex & # 8221;


Private Sub TestDuplex_PrintPage (PorVal remetente como System. Object, ByVal e como PrintPageEventArgs)


e. Graphics. DrawString (& # 8220; PAGE & # 8221; & iPageNumber. ToString, New Font (& # 8220; Arial & # 8221 ;, 8, FontStyle. Bold), Brushes. Black, 20, 20)


Se iPageNumber & lt; TotalToPrint Então.


Private Sub TestDuplex_EndPrint (PorVal remetente como objeto, ByVal e como System. Drawing. Printing. PrintEventArgs)


& # 39; limpe aqui, se necessário.


Estou tão interessado em seu código para imprimir pdf & # 8217; s. Você sabe, em geral, como podemos configurar a impressão? Por exemplo, como podemos controlar o estilo de impressão? Se temos impressora poderosa que pode ajudar a grampear e perfurar materiais impressos,


Como podemos usar essas funções? Eu realmente apreciaria se você pudesse me ajudar.


pode me ajudar?


como imprimir um pdf sem dar o nome completo exato do pdf ??


Im usando vb 2008, a seguinte linha de código não está funcionando para mim.


Process. StartInfo = starter Process. Start ()


Process. StartInfo = O iniciador Process. Start () deve ter duas linhas.


Pessoal preciso de ajuda eu quero codificar um botão em vb 2 print para que eu não inicie a ajuda.


Eu tentei esse método e ele não funciona.


Ao abrir o Adobe, ele mostra a mensagem:


& # 8220; Um erro ocorreu. O arquivo não pode ser encontrado & # 8221;


Quando eu removo o sPrinter da linha 07.


Iniciador Dim Como Novo ProcessStartInfo (pathToExecutable, & # 8220; / t & # 8221; + sReport + & # 8221; & # 8221; + sPrinter + & # 8220; & # 8221;)


ele encontra o arquivo normalmente, mas o nome da impressora é importante e eu tenho que enviá-lo para o adobereader.


Para a maioria das notícias atualizadas você tem que pagar uma visita rápida na web e na internet eu encontrei este site.


como um melhor site para as atualizações mais recentes.


o código funciona bem para mim, mas só funciona para a configuração padrão da impressora. por exemplo, a bandeja de impressora padrão é a bandeja 1. mas quando eu altero a bandeja padrão para a bandeja 2, o código não funciona.


como selecionar a bandeja da impressora no código desde que a função Iniciar Novo ProcessStartInfo (pathToExecutable, “/ t” + sReport + ”” + sPrinter + “”) obtenha apenas o nome do arquivo e o nome da impressora.


Sua postagem, “Imprimir arquivo PDF em VB, fornecendo Nome da impressora .


NET Interview Questions ”acabou valendo muito a pena comentar aqui na seção de comentários!


Basicamente desejei anunciar que você realmente fez um excelente trabalho.


Eu aprecio isso, Debra.


Olá pessoal, parece que esse código não está funcionando. Ele continua dizendo "O sistema não pode encontrar o arquivo especificado & # 8221; quando na verdade o arquivo está lá. Este código é muito buggy.


ShellExecute no VB.


Dim caminho como String.


Dim dispositivo como String.


Dim sucesso como longo.


device = Microsoft. VisualBasic. Left (caminho, 3)


Se (sucesso & lt; = 32) Então.


Facebook Twitter LinkedIn especialistas-troca / perguntas / 20422866 / ShellExecute-in-VB-net. html cópia.


visão de fundo (2 comentários)


'Veja também & quot; Aguardando que o processo seja concluído & quot ;:


'Nota: Você pode passar o nome de um programa ou documento: & quot; Notepad. exe & quot; ou "MyDocument. doc".


'Retorna um objeto Process associado ao novo processo.


Você provavelmente também quer:


Process. WaitForExit Method () para aguardar a conclusão,


e Process. ExitCode Property para obter o código de retorno quando estiver pronto.


Dim startInfo As New ProcessStartInfo.


Tente perguntar novamente como uma pergunta original para que mais pessoas a vejam.


(1) Se você tentar clicar com o botão direito do mouse em um arquivo *.htm e selecionar "imprimir", o arquivo html será impresso? No meu sistema, primeiro aparece uma caixa de diálogo Imprimir. Se a impressão & quot; imprime & quot; verbo também está trazendo um diálogo (talvez até mesmo um que você não pode ver), você precisaria de alguma forma responder a esse diálogo.


System. Windows. Forms. SendK eys. SendWa (& quot;)


Postagem em destaque


Assuma o controle da Web Hosting para seus clientes.


Como um desenvolvedor da Web ou administrador de TI, gerenciar com êxito várias contas de clientes pode ser um desafio. Neste webinar, veremos as ferramentas fornecidas pela Media Temple e pelo Plesk para facilitar o gerenciamento da hospedagem de seus clientes.


System. NullReferenceException & # 8211; Referência de objeto não definida para uma instância de um objeto. 3 causas comuns no VB.


De vez em quando, você se depara com essa exceção:


System. NullReferenceException - “Referência de objeto não definida para um.


exemplo de um objeto. ”Você vê as pessoas perguntando sobre isso.


em toda parte; sobre por que eles estão recebendo esse erro. Abaixo estão a.


algumas causas comuns para isso.


Observe que, independentemente do cenário, a causa é sempre a mesma em:


Você está tentando usar uma variável de referência que é o valor de.


Nada / nulo. Quando o valor é Nothing / null para a referência.


variável, isso significa que não está realmente mantendo uma referência a um.


instância de qualquer objeto que existe no heap. Você nunca.


atribuído algo à variável, nunca criou uma instância do.


valor atribuído à variável, ou você define a variável igual a.


Nada / null manualmente, ou você chamou uma função que define a variável.


para Nothing / null para você.


1. No VB, você está tentando acessar uma string.


que não foi inicializado. Em c #, isso não é possível.


Você não pode nem mesmo compilar o código como o seguinte em c #


C # não conseguiu compilar isso.


private void TestString ()


No entanto, no VB, você pode compilar o equivalente, e isso leva até um caminho para a exceção mencionada.


VB irá compilar, mas lançar uma exceção de tempo de execução.


Private Sub TestString ()


Dim a As String.


Se a. Comprimento = 0 Então.


Lembre-se, uma string é um tipo de referência (uma matriz de caracteres) que possui.


ter um valor. Você não precisa usar a palavra-chave "nova", mas sim.


Por padrão, o valor é Nothing / null. Você teria que pelo menos.


inicialize para a = String. Empty, ou para algum outro valor real, antes.


ele será compilado em C # ou executado sem exceção no VB.


Para corrigir esse problema acima no VB, defina [a = “alguma coisa”] antes de tentar fazer qualquer coisa com ele.


2. Você nunca criou uma nova instância de um.


objeto. Novamente, este é o código que o C # não irá compilar, mas o VB.


vai, e lançar um erro de execução. O mesmo que uma string, qualquer referência.


tipo deve ser inicializado. Cordas e alguns outros CTS.


tipos têm um equívoco de serem tipos de valor, como Inteiros e.


C # não irá compilar.


private void TestObject ()


Aqui está o equivalente VB, que irá compilar, mas lançar a exceção mencionada.


VB irá compilar mas lançar uma exceção.


Private Sub TestObject ()


Dim b Como ArrayList.


Para corrigir o problema, você precisa dizer [Dim b As New ArrayList] no código acima.


3. Você criou o objeto, mas o matou cedo demais. Aqui está um exemplo simples disso.


Não mate objetos cedo demais.


Private Sub Form1_Load (pelo remetente ByVal como System. Object, ByVal e como System. EventArgs) manipula MyBase. Load.


Dim b As New ArrayList.


Private Sub TestObject ()


Private Sub ShowCount ()


Um exemplo mais complexo seria que você descartou uma classe que.


talvez você use para acessar o banco de dados. Isso matou a conexão.


e objetos de comando. Mas então, em outro lugar, você tentou ligar.


um método dessa classe que usou esses objetos que não mais.


existe. Novamente, a mesma exceção é lançada, mas vem de.


dentro da própria classe instanciada.


c = a. GetOrders () lançará uma exceção.


Classe Pública Class2.


Dim a As New MyDataAccessObjects. Customers.


Private Sub LoadData ()


Dim b como nova coleção.


Private Sub LoadMoreData ()


Dim c como nova coleção.


A função GetOrders dentro de clientes requer uma instância de um.


conexão, mas você descartou os objetos necessários para acessar.


o banco de dados faz backup em LoadData () quando você chama a. Dispose ().


Tenha cuidado ao limpar suas instâncias, que você não está usando.


eles novamente em algum lugar. Isso é mais comum nas aulas em que você.


estão usando objetos instanciados em toda a classe. Se você criar e soltar.


seus objetos dentro de cada método, isso não vai ser um problema, e.


você está seguindo uma diretriz melhor criando no último.


momento necessário, e destruindo no primeiro momento possível, não para.


mencionar evitando possíveis exceções como InvalidReferenceException.


164 respostas para System. NullReferenceException & # 8211; Referência de objeto não definida para uma instância de um objeto. 3 causas comuns no VB.


Thanks for article but i think that if microsoft give us the name of null variable in System. NullReferenceException our problems shold be very smaller, many times the worst part is discovery what object is null, mainly in multitheaded code.


obrigado por compartilhar.


I am getting this problem: ” Referência de objeto não definida para uma instância de um objeto.


Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


Exception Details: System. NullReferenceException: Object reference not set to an instance of an object.


Line 63: End Sub.


Line 64: Private Sub AddNewRecord(ByVal name As String)


Line 65: Dim connectionString As String = ConfigurationManager. ConnectionStrings(“ConnectionString”).ConnectionString.


Line 66: Dim myConnection As New Data. SqlClient. SqlConnection(connectionString)


Line 67: Dim query As String = “INSERT INTO tblSupplier(Name) VALUES(@Name) ”


I have this code behind:


Private Sub BindData()


Dim connectionString As String = ConfigurationManager. ConnectionStrings(“ConnectionString”).ConnectionString.


Dim myConnection As New Data. SqlClient. SqlConnection(connectionString)


Dim ad As New Data. SqlClient. SqlDataAdapter(“SELECT * FROM tblSupplier”, myConnection)


Dim ds As New Data. DataSet()


Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)


& # 8216; We are checking against the “ADD”


If emandName = “New” Então.


Dim name As String = (DirectCast(GridView1.FooterRow. FindControl(“txtName”), TextBox)).Text.


Private Sub AddNewRecord(ByVal name As String)


Dim connectionString As String = ConfigurationManager. ConnectionStrings(“ConnectionString”).ConnectionString.


Dim myConnection As New Data. SqlClient. SqlConnection(connectionString)


Dim query As String = “INSERT INTO tblSupplier(Name) VALUES(@Name)”


Dim myCommand As New Data. SqlClient. SqlCommand(query, myConnection)


Pingback from Back to BACK and INSERT again! & laquo; System. Errors + brickbats..


Hi, get the null reference exception when running the application from the server, when i run it on my local machines i dont get such error. I need your help what can i do?


Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


Exception Details: System. NullReferenceException: Object reference not set to an instance of an object.


An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


[NullReferenceException: Object reference not set to an instance of an object.]


extranet. expandasign. epages. agents. generatequote. productAddDlg_DialogClosed(Object sender, DialogResultEventArgs e) in c:\_development\applications\expand_a_sign\applications\extranet\expanda_extranet\agents\generatequote. aspx. cs:1145.


MetaBuilders. WebControls. DialogWindowBase. OnDialogClosed(DialogResultEventArgs e) +22.


MetaBuilders. WebControls. DialogWindowBase. System. Web. UI. IPostBackEventHandler. RaisePostBackEvent(String eventArgument) +38.


System. Web. UI. Page. RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13.


System. Web. UI. Page. RaisePostBackEvent(NameValueCollection postData) +175.


System. Web. UI. Page. ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565.


Thanks Raymond this fixed my problem too.


I get the null reference exception when running the application from server, but I don’t get the exception when running in the local host, any idea.


I run an app logged in as me on my pc and it works fine. I log onto another’s pc as me and run the SAME EXACT CODE, dlls and everything, and I get the null reference exception. The dll’s are pulled into the local machines from the same folder by an installer program. Every single dll is the same in both instances. Why would this happen when there is no difference in the code?


I’m passing to a function an object, which has one property set on null. Could it be the reason of the exception??


Thank you, and sory if my english is not so well.


Great page. Muito obrigado. Was doing a tutorial for uni and couldn’t figure out what it was. Read this, then realised I had the code back to front so string was a null value. So yea, thanks.


public void BindAssignments()


User currentUser = (User)PersistanceManager. GetPersistedObject(“VirtualCampus. BusinessObjects. User”);


wsAssignmentResult[] arrAssignments = Service. InstantiateVCServiceClient().getAssignments(currentUser. UserID, Convert. ToInt32(SubjectSelector1.EnrollmentID), Convert. ToInt32(SubjectSelector1.SubjectID));


I get the error “Object reference not set to an instance of an object. & # 8221; on the send line of this code….plz help.


hi raymond, i just went through all the blogs, i would love to know the concept of breakpoint, debugging and using your locals and watch windows, please send the references to the following anil. srishti24@gmail.


thank you so much..


Hi Raymond, am getting following error in my vb can you plz help me out..System. NullReferenceException: Object reference not set to an instance of an object.


at ClassLibrary1.Class1.Initialize(IMapWin MapWin, Int32 ParentHandle)


at MapWindow. Plugins_IPlugin. StartPlugin(String Key)


I get the error below when trying to get on my college web page?? I don’t know much about computer programming, and reading the responses above, I really feel dumb about the computer. Is there any way you can help me in terms I can understand? Obrigado.


Referência de objeto não definida para uma instância de um objeto.


Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


Exception Details: System. NullReferenceException: Object reference not set to an instance of an object.


An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


[NullReferenceException: Object reference not set to an instance of an object.]


StudentSpace. studenthome. Page_Load(Object sender, EventArgs e) +1440.


System. Web. UI. Control. OnLoad(EventArgs e) +67.


I am getting this System. NullReferenceException error in my VB code.


Dim strProducts As String = “”


Response. Write(“Domain ” & Domain. SelectedItem. Text. ToString()) ravindra says:


i couldnt figure out whre i went wrong..but getting that error.


Dim i as integer.


Dim j as integer.


Dim count as integer =1.


Dim list() as integer.


Console. writeline(“\n enter the range of numbers u want to check”)


Dim k as string.


Console. writeline(“\n now enter the values”)


Do while count count+=1.


if list(count) > j then j= list(count)


Console. writeline(“the greatest number is ”,j)


If you get this error first thing is : Make sure that you use NEW keyword to create the object that you are refered to…


thank you for information.


System. NullReferenceException: Object reference not set to an instance of an object. at VBookRooms. btnBookRooms_Click(Object sender, EventArgs e)


Can any one help me to get out from this. Am getting this error when am using my application remotely , but its works in local machine.


I have written a small application in 1.1 (VS2003 C#) that retrieves user ID from the database. The application has one button and on click event that does everything. This application works fine. But if there is no user activity for five minutes and the user clicks the button the.


“[NullReferenceException: Object reference not set to an instance of an object.]” error occurs.


What is wrong and how can I fix it.


public class Default_View : PortletViewBase.


protected System. Web. UI. WebControls. Label Label0;


protected System. Web. UI. WebControls. Button Submit;


protected System. Web. UI. WebControls. Label lblSSN;


protected System. Web. UI. WebControls. TextBox txtSSN;


protected System. Web. UI. WebControls. Label lblBirthDate;


protected System. Web. UI. WebControls. TextBox txtBirthDate;


protected System. Web. UI. WebControls. Label lblBirthPl;


protected System. Web. UI. WebControls. TextBox txtBirthPl;


protected System. Web. UI. WebControls. Label Label1;


private void Page_Load(object sender, System. EventArgs e)


private void Submit_Click(object sender, System. EventArgs e)


CConnection = new OdbcConnection(CConnectString);


CCommand = new OdbcCommand();


string dbUserID = Cresult[“id”].ToString();


i have also the same problem while i compile my website.


I have an exception please help me to solve this.


Server Error in ‘/skagway’ Aplicação.


Referência de objeto não definida para uma instância de um objeto.


Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


Exception Details: System. NullReferenceException: Object reference not set to an instance of an object.


Line 320: imageMyReg2.Visible = labelMyReg2.Visible = true;


Line 322: string adminUser = ConfigurationManager. AppSettings[“AdminUser”].ToString();


Line 323: string password = ConfigurationManager. AppSettings[“AdminPassword”].ToString();


Source File: e:\ajayWork\HV\Skagway\ImportSCPData. aspx. cs Line: 322.


[NullReferenceException: Object reference not set to an instance of an object.]


ImportSCPData. linkButtonImportDataFromSCP_Click(Object sender, EventArgs e) in e:\ajayWork\HV\Skagway\ImportSCPData. aspx. cs:322.


System. Web. UI. WebControls. LinkButton. OnClick(EventArgs e) +105.


System. Web. UI. WebControls. LinkButton. RaisePostBackEvent(String eventArgument) +107.


System. Web. UI. WebControls. LinkButton. System. Web. UI. IPostBackEventHandler. RaisePostBackEvent(String eventArgument) +7.


System. Web. UI. Page. RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11.


System. Web. UI. Page. RaisePostBackEvent(NameValueCollection postData) +174.


System. Web. UI. Page. ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102.


Version Information: Microsoft Framework Version:2.0.50727.42; ASP Version:2.0.50727.42.


I am creating one Ajax enabled website in that. I have taken.


Ajax controls in fallowing way.


The problem is that.


DataValueFi eld = ds. Tables[0].Columns[“Div_Id”].ToString();


Works fine in debug mode when I run it by pressing F11 but in release mode it gives me fallowing error .


Referência de objeto não definida para uma instância de um objeto.


Can any one help me.


i have a dataGridView on main page and in that dataGridView i m showing some records. Now on click on the index of the dataGridView dataGridView1_RowHeaderMouseClick event is fire to edit that perticular row. A new window will open with the same no of texbox as the columns with the old data to edit.


private void dataGridView1_RowHeaderMouseClick_1(object sender, DataGridViewCellMouseEventArgs e)


if (checkBox1.Checked == true)


Form2 obj = new Form2();


Code for f Main window:–


public partial class DataGridViewPractice : Form.


string connString = @”Provider=Microsoft. Jet. OLEDB.4.0;user id=admin;password=;data source=c://test. mdb”;


DataSet ds = new DataSet();


private void DataGridViewPractice_Load(object sender, EventArgs e)


private void LoadGrid()


DataSet ds1 = new DataSet();


ds1 = retrieveRecord(“select * from emp”);


public DataSet retrieveRecord(string sql)


con = new OleDbConnection(connString);


cmd = new OleDbCommand(sql, con);


da = new OleDbDataAdapter(cmd);


private void dataGridView1_RowHeaderMouseClick_1(object sender, DataGridViewCellMouseEventArgs e)


if (checkBox1.Checked == true)


Form2 obj = new Form2();


Now the code of Sub form:—–


but in the secind form that is sub form there is an error is coming System. NullReferenceException – Referência de objeto não definida para uma instância de um objeto. in the line:—


Im getting this “object reference not set to an instance of an object ” Error when I try to redirect to a custom error aspx page from the Application_Start method in global. asax file. Because of this exception the control goes to Application_error method. Also similar thing happens when I try to redirect from my custom error page to the Login page upon certain conditions. Due to which it goes back to the Application_Error method and thsu goes into a loop. Kindly help resolve this problem. Its ver very urgent… gentilmente ajude & # 8230; desde já, obrigado.


thanks for this, made me realise what I was doing wrong keep up the good work sir.


I am trying to migrate my VB6 project to VB.


I have an interface MyApp. I am implemeting this interfave in another project TViewAL and also have set the reference to interface MyApp as it is present in different project.


My Framework is creating object of TViewAL without adding reference for TViewAL but adding reference to MyApp.


when I try to run.


I get error Object reference not set to an instance of an object.


Any Help is appreciated !


Here is the Stack trace… for my previous send commnet.


at System. Windows. Forms. DataGridViewImageCell. PaintPrivate(Graphics g, Rectangle clipBounds, Rectangle cellBounds, Int32 rowIndex, DataGridViewElementStates elementState, Object formattedValue, String errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts, Boolean computeContentBounds, Boolean computeErrorIconBounds, Boolean paint)


at System. Windows. Forms. DataGridViewImageCell. Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, Int32 rowIndex, DataGridViewElementStates elementState, Object value, Object formattedValue, String errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)


at System. Windows. Forms. DataGridViewCell. PaintWork(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, Int32 rowIndex, DataGridViewElementStates cellState, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)


at System. Windows. Forms. DataGridViewRow. PaintCells(Graphics graphics, Rectangle clipBounds, Rectangle rowBounds, Int32 rowIndex, DataGridViewElementStates rowState, Boolean isFirstDisplayedRow, Boolean isLastVisibleRow, DataGridViewPaintParts paintParts)


at System. Windows. Forms. DataGridViewRow. Paint(Graphics graphics, Rectangle clipBounds, Rectangle rowBounds, Int32 rowIndex, DataGridViewElementStates rowState, Boolean isFirstDisplayedRow, Boolean isLastVisibleRow)


at System. Windows. Forms. DataGridView. PaintRows(Graphics g, Rectangle boundingRect, Rectangle clipRect, Boolean singleHorizontalBorderAdded)


at System. Windows. Forms. DataGridView. PaintGrid(Graphics g, Rectangle gridBounds, Rectangle clipRect, Boolean singleVerticalBorderAdded, Boolean singleHorizontalBorderAdded)


at System. Windows. Forms. DataGridView. OnPaint(PaintEventArgs e)


at System. Windows. Forms. Control. PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)


at System. Windows. Forms. Control. WmPaint(Message& m)


at System. Windows. Forms. Control. WndProc(Message& m)


at System. Windows. Forms. DataGridView. WndProc(Message& m)


at System. Windows. Forms. Control. ControlNativeWindow. OnMessage(Message& m)


at System. Windows. Forms. Control. ControlNativeWindow. WndProc(Message& m)


at System. Windows. Forms. NativeWindow. DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


at System. Windows. Forms. UnsafeNativeMethods. DispatchMessageW(MSG& msg)


at System. Windows. Forms. ApplicationponentManager. System. Windows. Forms. UnsafeNativeMethods. IMsoComponentManager. FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)


at System. Windows. Forms. Application. ThreadContext. RunMessageLoopInner(Int32 reason, ApplicationContext context)


at System. Windows. Forms. Application. ThreadContext. RunMessageLoop(Int32 reason, ApplicationContext context)


at System. Windows. Forms. Application. Run(ApplicationContext context)


at Microsoft. VisualBasic. ApplicationServices. WindowsFormsApplicationBase. Run(String[] commandLine)


at SalesDatabase. My. MyApplication. Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81.


at System. AppDomain._nExecuteAssembly(Assembly assembly, String[] args)


at System. AppDomain. nExecuteAssembly(Assembly assembly, String[] args)


at System. Runtime. Hosting. ManifestRunner. Run(Boolean checkAptModel)


at System. Runtime. Hosting. ApplicationActivator. CreateInstance(ActivationContext activationContext, String[] activationCustomData)


at System. Runtime. Hosting. ApplicationActivator. CreateInstance(ActivationContext activationContext)


em System. Threading. ThreadHelper. ThreadStart_Context (estado do objeto)


em System. Threading. ExecutionContext. Run (ExecutionContext executionContext, retorno de chamada de ContextCallback, estado do objeto)


Waiting for responce.


I am building a windows application using vb..


In that application I am accessing a our client side( there are four clients) and updating our product prices according to client product prices in a datagrid column ,, as there may be number of products I am using a background worker for each client to speed up process ,, till the prices are available i am displaying a gif image in a datagrids price cell and as soon as prices are available I am replacing gif to prices..


My problem is .. sometime I am getting an “Object reference not set to an instance of an object”, but error is not comming on any specific line.. I am not able to trace error line..


Can any one know .. in this kind of situation ,, How can I trap the exact error line… I user try catch for ecery block of code but no use…..


Hoping quick reply …..


Ok, please explain why the following line:


Causes a NullReferenceException…


I gave up trying to get the variable that is supposed to be in the place of “HON” & # 8230; but how retarded…. the blatent hard coding of it doesn’t work either!


even Iam getting the same error while uploading, can anybody help me out and here is my code.


if ((File1.PostedFile != null)&& (File1.PostedFile. ContentLength > 0))


string fn = System. IO. Path. GetFileName(File1.PostedFile. FileName);


int a =String. Empty.


Response. Write(“The file has been uploaded.”);


catch (exceção ex)


//Note: Exception. Message returns a detailed message that describes the current exception.


//For security reasons, we do not recommend that you return Exception. Message to end users in.


//production environments. It would be better to put a generic error message.


Response. Write(“Please select a file to upload.”);


//This code first verifies that a file has been uploaded. If no file was selected, you receive the “Please select a file to upload” mensagem. If a valid file is uploaded, its file name is extracted by using the System. IO namespace, and its destination is assembled in a SaveAs path. After the final destination is known, the file is saved by using the File1.PostedFile. SaveAs method. Any exception is trapped, and the exception message is displayed on the screen.


//6. Verify that the Submit1 subroutine appears as follows:


private void Submit1_ServerClick(object sender, System. EventArgs e)


if ((File1.PostedFile != null) && (File1.PostedFile. ContentLength > 0))


string fn = System. IO. Path. GetFileName(File1.PostedFile. FileName);


Response. Write(“The file has been uploaded.”);


catch (exceção ex)


//Note: Exception. Message returns detailed message that describes the current exception.


//For security reasons, we do not recommend you return Exception. Message to end users in.


//production environments. It would be better just to put a generic error message.


Response. Write(“Please select a file to upload.”);


Partial Class AduanHeader_Default.


Public SQL As String.


Protected Sub btnHantar_Click(ByVal sender As Object, ByVal e As System. EventArgs) Handles btnHantar. Click.


If btnHantar. Text = “Simpan Data” Então.


If txtNoKadPengenalan. Text = “” Então.


ClientScript. RegisterStartupScript(Me. GetType(), “ErrUser”, MyScript)


ElseIf txtNama. Text = “” Então.


ClientScript. RegisterStartupScript(Me. GetType(), “ErrUser”, MyScript)


ClientScript. RegisterStartupScript(Me. GetType(), “ErrSave”, MyScript)


If txtNoKadPengenalan. Text = “” Então.


ClientScript. RegisterStartupScript(Me. GetType(), “ErrUser”, MyScript)


ElseIf txtNama. Text = “” Então.


ClientScript. RegisterStartupScript(Me. GetType(), “ErrUser”, MyScript)


‘ClientScript. RegisterStartupScript(Me. GetType(), “ErrSave”, MyScript)


btnHantar. Text = “Simpan Data”


Protected Sub SimpanAduan()


Dim sDB As String = ConfigurationManager. ConnectionStrings(“AduanPelajar”).ConnectionString.


Dim Conn As SqlConnection = New SqlConnection(sDB)


Dim SQL As SqlCommand = New SqlCommand.


SQLmandText = “INSERT Into ad_AduanHdr VALUES(‘” + txtIdAduan. Text + “‘,'” + ddlKategori. SelectedValue + “‘,'” + txtNoKadPengenalan. Text + “‘,'” + txtNama. Text + “‘,'” + _.


& # 8216;.Parameters. Add(New SqlParameter(“@sNoID”, txtNoKadPengenalan. Text))


& # 8216;.Parameters. Add(New SqlParameter(“@sNama”, txtNama. Text))


Captura ex como exceção.


Response. Write(“Proses tidak berjaya. Sila hubungi Pengurus Sistem dengan menyalin Ralat berikut :


What’s wrong with this coding? i use Sybase as database and this is my webconfig.


So it appears I have to catch the exception if the object is null; no other way around it.


God, this really is a great example of ignorance. You ppl really should try and learn the very basics of asp before you’re starting to spam ppl that actually explain things. And second of all, learn to read. Raymond’s already stated TWICE that he doesn’t have time to answer all your questions (Really, did you _really_ think a person with the same amount of hours on his day had time to answer all of this? I mean, come on. Half of you can’t explain, let alone grasp the very basics it seems.).


Take the advice added above and go buy a book about asp and start from there. That way you won’t have to come here for the next error you get aswell.


To Raymond – Artigo incrível. Keep up the good job and /ignore the drones.


i have received that error but when i am trying to trust assembly from ( Microsoft Framework 1.1 Wizards )


/*To make the group links visible when hovered on them */

Комментариев нет:

Отправить комментарий