API do Windows
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
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
Curtidas 0
Respostas
Adriano Santos
16/08/2005
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?
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?
GOSTEI 0
Cassioflima
16/08/2005
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?
GOSTEI 0
Adriano Santos
16/08/2005
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:
Abra a unit SHDocVw e veja estas constantes. Tem várias lá, da prá fazer a festa. :lol:
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:
GOSTEI 0
Cassioflima
16/08/2005
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 :)
valeu :)
GOSTEI 0
Adriano Santos
16/08/2005
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.
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.
GOSTEI 0
Adriano Santos
16/08/2005
Consegui cara:
É bem fácil de fazer.
Função que muda o browser padrão
Só é necessário programar direitinho o seu browser para funcionar abrindo as páginas com recebimento de parâmetros, e já era.
É 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.
GOSTEI 0
Cassioflima
16/08/2005
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.
GOSTEI 0
Adriano Santos
16/08/2005
O que ocorre?
Quando vc abre uma página pelo seu browser que tem pop-up ele abre o pop-up no IE?
Quando vc abre uma página pelo seu browser que tem pop-up ele abre o pop-up no IE?
GOSTEI 0
Cassioflima
16/08/2005
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.
GOSTEI 0
Adriano Santos
16/08/2005
Esse prog é grande?
Quer mandar pra mim?
Só olhando agora, pq eu já esgotei meus conhecimentos em cima do caso.
Quer mandar pra mim?
Só olhando agora, pq eu já esgotei meus conhecimentos em cima do caso.
GOSTEI 0
Cassioflima
16/08/2005
qual o seu email?
GOSTEI 0