CRIAR UM DRIVE DE IMPRESSÃO

JEVILLACA 29/12/2014 16:30:05
#443469
Já fiz uma pergunta aqui antigamente sobre montar no vb uma impressora virtual e agora este problema que não consegui resolver voltou !!!

o Problema é o seguinte:
Quando um programa de terceiro imprimir (exemplo: programa da receita federal (irpf)) eu quero que este seja impresso em um
drive de impressora virtual que eu criei, pois vou mostrar uma relação de nomes para o usuário selecionar e daí sim... de acordo com a
seleção vou salvar o relatório no caminho onde eu quero.

Alguém tem alguma ideia de como fazer isto ?

Obrigado.
TUNUSAT 30/12/2014 08:28:38
#443479
JEVILLACA,

Com certeza tem jeito de fazer!
Primeiro é preciso (1*) criar o drive virtual, depois é preciso (2*) ler os nomes dos arquivos que estão lá dentro ... vamos pesquisar!

(1*) Criar um drive virtual:
==============================================
methods in Visual Basic
http://reboot.pro/topic/18828-methods-in-visual-basic/

Private Sub MyApplicationLoad(sender as object, e as system.eventargs)Handles Me.Load
Dim deviceID As UInt32 = UInt32.MaxValue
CreateDevice(10485760, [Ô]X:[Ô], deviceID)
CreateMountPoint([Ô]X:[Ô], deviceID)
End Sub

==============================================
How to develop a virtual disk for Windows
http://www.codeproject.com/Articles/58950/How-to-develop-a-virtual-disk-for-Windows
==============================================
Create Virtual Drive (no subst.exe ... using API)
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=61198&lngWId=1
==============================================
How to Create a Virtual Windows Drive
http://stackoverflow.com/questions/1096788/how-to-create-a-virtual-windows-drive
==============================================
.NET DiscUtils
http://discutils.codeplex.com/
==============================================

*** EXTRA - Hum ... interessante isto... será que é possível gravar em uma Fila (spool) de impressão e segurar a fila para imprimir somente quando queremos?!? Talvez seja outra forma de resolver o problema!
==============================================
Writing a Virtual Printer in .NET
http://stackoverflow.com/questions/257768/writing-a-virtual-printer-in-net
==============================================

(2*) Agora é preciso ler o conteúdo de um drive...
==============================================
List Drives and Folders in a TreeView Using C#
http://codehill.com/2013/06/list-drives-and-folders-in-a-treeview-using-c/
==============================================
DriveInfo.GetDrives Method
http://msdn.microsoft.com/en-us/library/system.io.driveinfo.getdrives%28v=vs.110%29.aspx
==============================================
How to: Get Information About Files, Folders, and Drives (C# Programming Guide)
http://msdn.microsoft.com/en-us/library/6yk7a1b0.aspx
==============================================
Reading files from server is being mapped always C :\ drive
http://stackoverflow.com/questions/20138569/reading-files-from-server-is-being-mapped-always-c-drive
==============================================
Accessing a file on a network drive
http://stackoverflow.com/questions/2501278/accessing-a-file-on-a-network-drive
==============================================

Agora é preciso ler tudo isto e juntar em um programa que permita criar um drive e depois leia o conteúdo que for gravado lá.
é isto?

[][ô]s,
Tunusat.
JEVILLACA 13/05/2015 14:24:07
#446594
mas como vou fazer que um programa de terceiro chame o meu executável ?
TUNUSAT 13/05/2015 14:38:58
#446595
JEVILLACA,

[Ô]SHELL[Ô] serve para isso... Veja se funciona para você, por exemplo:
http://www.dotnetperls.com/shell

Module Module1
Sub Main()
[ô] Run this specific executable on the shell.
[ô] ... Specify that it is focused.
Shell([Ô]calc.exe[Ô], AppWinStyle.NormalFocus)
End Sub
End Module


Outro exemplo:

Como executar vários comandos de cmd em VB.net
http://pt.stackoverflow.com/questions/46622/como-executar-v%C3%A1rios-comandos-de-cmd-em-vb-net
é só colocar um [ô]&[ô] entre os comandos. No meu caso iria ficar assim:
Shell([Ô]CMD.EXE /c cd C:\LocalPath & mkdir Locale & cd Locale\[Ô])


é isso?

[][ô]s,
Tunusat.
Faça seu login para responder