Fórum API do Windows #291870

16/08/2005

0

Em um formulário usei o componente webBrowser para navegar na web, quando eu pressiono as teclas ctrl+P chamo a janela de impressão do windows. Como faço para chamar essa tela através de um menu?
Gostaria de usar tbm a função copiar e colar do windows através de uma procedure. Alguém sabe como faço?
Valeu,
Cássio


Cassioflima

Cassioflima

Responder

Posts

16/08/2005

Adriano Santos

Ué cara, não entendi.
Se conseguiu colocar um CTRL+P para chamar a janela (que por entre aspas seria até mais difícil) por que não consegue colocar no Menu?
Coloque a função que chama a impressão em um item de menu, vá nas propriedades deste item e olhe a propriedade ShortCut. Configure-a com o atalho que você quer CTRL+P, acabou o problema.

Quanto a copiar, o que exatamente quer copiar? Texto? Arquivo?


Responder

Gostei + 0

16/08/2005

Cassioflima

as teclas ctrl+P funcionam como atalho para impressão do windows, sem que eu precise programar nada, isso vem de herança do windows, o que eu não consigo é fazer com que isso funcione através de programação delphi, como manipular a api do windows, entedeu?


Responder

Gostei + 0

16/08/2005

Adriano Santos

Ahhhh, agora entendi. O CTRL + P já é herdado por default no componente TWebBrowser né? É verdade, pensei que você tivesse programado isso em algum local do seu sistema, desculpe.

Bom, neste caso você pode usar o seguinte:

procedure TfPrincipal.Button2Click(Sender: TObject);
var
  vaIn, vaOut: OleVariant;
begin
  WebBrowser1.ControlInterface.ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
  //OLECMDID_OPEN
  //OLECMDID_NEW
  //OLECMDID_SAVE
  //OLECMDID_SAVEAS
  //OLECMDID_SAVECOPYAS
  //OLECMDID_PRINT
  //OLECMDID_PRINTPREVIEW
  //OLECMDID_PAGESETUP
  //OLECMDID_SPELL
  //OLECMDID_PROPERTIES
end;


Abra a unit SHDocVw e veja estas constantes. Tem várias lá, da prá fazer a festa. :lol:


Responder

Gostei + 0

16/08/2005

Cassioflima

excelente ajuda!!! e aproveitando seus conhecimentos, se eu quiser fazer outra coisa por exemplo: fazer com que novas páginas que são abertas exemplos pop-up serem abertos no meu browser, no mesmo esquema porexemplo do iexplorer, vc sabe como?
valeu :)


Responder

Gostei + 0

16/08/2005

Adriano Santos

Cara, preciso dar uma olhada, mas adiantando acredito que você possa registrar no Windows (regedit) como browser padrão, assim como faz outros browsers que você instala no computador.

Ex.: Quando você instala o FireFox e abre ele a primeira vez, ele te pergunta se você que ele seja o ´visualizador´ padrão de páginas. Se responder sim ele registra no Regedit do Windows e ai só alegria. Provavelmente terá que fazer isso, só é necessário descobrir qual chave é usada para isso no Regedit.


Responder

Gostei + 0

17/08/2005

Adriano Santos

Consegui cara:

É bem fácil de fazer.

//Firefox
MudarBrowserPadrao(´C:\ARQUIV~1\MOZILL~1\FIREFOX.EXE -url "¬1"´);

//Internet Explorer
MudarBrowserPadrao(´C:\Arquivos de programas\Internet Explorer\IEXPLORE.EXE -nohome´);

//Seu browser
MudarBrowserPadrao(ParamStr(0));


Função que muda o browser padrão

procedure MudarBrowserPadrao(APath: String);
begin
  Ini := TRegistry.Create;
  Ini.RootKey := HKEY_CLASSES_ROOT;
  Ini.OpenKey(´HTTP\SHELL\OPEN\COMMAND´, False);
  Ini.WriteString(´´,APath);
  Ini.Free;
end;



Só é necessário programar direitinho o seu browser para funcionar abrindo as páginas com recebimento de parâmetros, e já era.


Responder

Gostei + 0

17/08/2005

Cassioflima

Fiz o que vc disse, declarando a variável Ini do tipo Tregistry e tbm declarando Registry em uses. Tbm deixei o browser recebendo parametro, mas quando é aberto um novo pop-up continua sendo aberto pelo iexplorer.


Responder

Gostei + 0

17/08/2005

Adriano Santos

O que ocorre?
Quando vc abre uma página pelo seu browser que tem pop-up ele abre o pop-up no IE?


Responder

Gostei + 0

17/08/2005

Cassioflima

isso mesmo. Acessei o Regedit e em todos os lugares que estava sendo chamado o iexplorer.exe alterei para browser.exe mas mesmo assim ficou o iexplorer.


Responder

Gostei + 0

17/08/2005

Adriano Santos

Esse prog é grande?
Quer mandar pra mim?
Só olhando agora, pq eu já esgotei meus conhecimentos em cima do caso.


Responder

Gostei + 0

17/08/2005

Cassioflima

qual o seu email?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar