Páginas

Mostrando postagens com marcador Artigos. Mostrar todas as postagens
Mostrando postagens com marcador Artigos. Mostrar todas as postagens

terça-feira, 7 de junho de 2011

Configurando a tela remota do Vitualbox

Começo este post dizendo, se você possui uma licença da VMware, parabéns, você possui a melhor ferramenta de virtualização do mercado. Entretanto se você usa Vmware craqueada, você é meio tonto, pois o virtualbox e tão bom quanto e é free.

Vamos ao que interessa.

Recentemente, por motivos de estudos tive que criar uma maquina virtual com o Linux enterprise para nela instalar uma base oracle. Como minha maquina local era deveras limitada, resolvi cria-la num servidor.
Eu poderia acessa-la via terminal service no servidor, mas isso ocuparia uma sessão, impedido o administrador de rede de usar o servidor.

Como resolvi isso? Simples, ativei o recurso de tela remota do virtualbox:
Selecionando a maquina que desejo acessar remotamente e clicando em “configurações”:

Depois em “Tela”, na aba “Tela Remota”, selecionando uma porta, no meu caso 18000 método de autenticação nula.


Com isso ao subir a maquina virtual será possível controla-la remotamente.
Para isso entre no terminal service digite o IP da maquina hospedeira e a porta.
Importante, deve ser o IP da maquina hospedeira e não da maquina virtualizada.

E então:



Lembrando que este serviço é provido pelo Virtualbox e não pela maquina virtualizada, e na minha humilde opinião não é muito seguro, pois não pede um usuário ou uma senha para logar. Como no meu caso se trata apenas de um ambiente de estudo segurança não é prioridade.
Se você precisar de níveis mais seguros de acesso remoto, use os métodos disponíveis no sistema operacional virtualizado.

quarta-feira, 18 de maio de 2011

Criar arquivos PDF usando Progress (OpenEdge)

Pessoal, recentemente tive que gerar um arquivo PDF e como sabemos a PDFinclude.i é cheia de limitações. Então pesquisando, descobri que é possível utilizar o PDFCreator para fazer esta tarefa sem dor de cabeça.
Para usar este programa é necessário ter instalado o PDFCreator na maquina que irá imprimir em pdf. disponível em: http://www.pdfforge.org/.

Segue o Exemplo:
/*matar qualquer processo referente ao PDFCreator*/
DOS Silent VALUE("taskkill /F /IM PDFCreator.exe /T").

/*Variáveis de instancia*/
DEFINE VARIABLE pdf AS COM-HANDLE      NO-UNDO.
DEFINE VARIABLE pdfop AS COM-HANDLE      NO-UNDO.
CREATE "PDFCreator.clsPDFCreator" pdf NO-ERROR.
CREATE "PDFCreator.PDFCreatorOptions" pdfop NO-ERROR.

/*configuração do PDFCreator*/
PDF:cStart(,).
ASSIGN
    pdfop = PDF:cOptions
    PDFop:AutosaveDirectory = "c:\"
    PDFop:AutosaveFilename = "nome.pdf"
    PDFop:UseAutosave = 1
    PDFop:UseAutosaveDirectory = 1
    PDFop:AutosaveFormat = 0
    PDF:cOptions = PDFop
    PDF:cDefaultPrinter = "PDFCreator"
    PDF:cPrinterStop = FALSE.

/*comando para imprimir*/
PDF:cPrintFile("c:\teste.doc").

/*é possível imprimir do Excel, Word, etc.
basta substituir a linha acima pelo comando
de impressão desejado */

/*encerrar processo*/
PDF:cClose.
RELEASE OBJECT pdf.
RELEASE OBJECT pdfop.
DOS Silent VALUE("taskkill /F /IM PDFCreator.exe /T").

Também descobri que é possível mesclar com outros componentes .ocx para gerar a impressão. Segue um exemplo usando o Excel: 
/*matar qualquer processo referente ao PDFCreator*/
DOS Silent VALUE("taskkill /F /IM PDFCreator.exe /T").

/*Variáveis de instancia PDFCreator*/
DEFINE VARIABLE pdf AS COM-HANDLE      NO-UNDO.
DEFINE VARIABLE pdfop AS COM-HANDLE      NO-UNDO.
CREATE "PDFCreator.clsPDFCreator" pdf NO-ERROR.
CREATE "PDFCreator.PDFCreatorOptions" pdfop NO-ERROR.

/*Variáveis de instância excel*/
DEFINE VARIABLE chExcelApplication  as COM-HANDLE.
DEFINE VARIABLE arquivo             AS COM-HANDLE.
DEFINE VARIABLE aba                 AS COM-HANDLE.
CREATE 'Excel.Application' chExcelApplication.

/*configurações excel*/
ASSIGN
    chExcelApplication:VISIBLE = FALSE
    chExcelApplication:DisplayAlerts  = FALSE
    chExcelApplication:ScreenUpdating = FALSE
    arquivo = chExcelApplication:Workbooks:add("")
    aba = arquivo:sheets:ITEM(1)
    aba:cells(1,1):VALUE = "teste".

/*configuração do PDFCreator*/
PDF:cStart(,).
ASSIGN
    pdfop = PDF:cOptions
    PDFop:AutosaveDirectory = "c:\"
    PDFop:AutosaveFilename = "nome.pdf"
    PDFop:UseAutosave = 1
    PDFop:UseAutosaveDirectory = 1
    PDFop:AutosaveFormat = 0
    PDF:cOptions = PDFop
    PDF:cDefaultPrinter = "PDFCreator"
    PDF:cPrinterStop = FALSE.

/*comando excel para imprimir*/
aba:PrintOut(,,,,,,,,).

/*while para aguardar a impressão do arquivo*/
DO WHILE SEARCH("c:\nome.pdf") = ?:
END.

/*encerrar processo*/
PDF:cClose.
RELEASE OBJECT pdf.
RELEASE OBJECT pdfop.
DOS Silent VALUE("taskkill /F /IM PDFCreator.exe /T").

chExcelApplication:QUIT.
RELEASE OBJECT arquivo.
RELEASE OBJECT aba.
RELEASE OBJECT chExcelApplication.[/code]


Qualquer duvida, porte nos comentários.