escreva um evento para o visualizador de eventos
<p>encontrei um exemplo em c # como adicionar um novo evento ao event viewer. mas, preciso de um exemplo escrito em c++ (não .net) que crie um novo evento para o visualizador de eventos na parte "aplicativo".</p>
<p>você pode usar estas três funções da winapi:</p><ul> <li> <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa363678%28v=vs.85%29.aspx">registereventsource</a> </li> <li> <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx">reportevent</a> </li> <li> <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa363642%28v=vs.85%29.aspx">deregistereventsource</a> </li> </ul><p>aqui está um exemplo rápido de como usá-los e exibir mensagens corretamente no log de eventos (tratamento de erros geralmente ignorado por questões de brevidade).</p><p>crie um recurso que contenha informações da mensagem dos seguintes <code>event\_log.mc</code> arquivo:</p><pre><code>;#ifndef \_example\_event\_log\_message\_file\_h\_ ;#define \_example\_event\_log\_message\_file\_h\_ messageidtypedef=dword severitynames=(success=0x0:status\_severity\_success informational=0x1:status\_severity\_informational warning=0x2:status\_severity\_warning error=0x3:status\_severity\_error ) languagenames=(englishus=0x401:msg00401 dutch=0x113:msg00113 neutral=0x0000:msg00000 ) messageid=0x0 symbolicname=msg\_info\_1 severity=informational facility=application language=neutral %1 . messageid=0x1 symbolicname=msg\_warning\_1 severity=warning facility=application language=neutral %1 . messageid=0x2 symbolicname=msg\_error\_1 severity=error facility=application language=neutral %1 . messageid=0x3 symbolicname=msg\_success\_1 severity=success facility=application language=neutral %1 . ;#endif </code></pre><p>para criar o <code>.mc</code> arquivo e <code>.res</code> arquivo de recurso eu executei o seguinte:</p><pre><code>mc.exe -a -b -c -h . -r resources event\_log.mc rc.exe -foresources/event\_log.res resources/event\_log.rc </code></pre><p>isso criará um arquivo de cabeçalho chamado <code>event\_log.h</code> no diretório atual e em um diretório <code>resources</code> que contém um arquivo chamado <code>event\_log.res</code> que você deve vincular ao seu aplicativo binário.</p><p>exemplo <code>main.cpp</code>:</p><pre><code>#include &lt;windows.h&gt; #include "event\_log.h" void install\_event\_log\_source(const std::string&amp; a\_name) { const std::string key\_path("system\\currentcontrolset\\services\\" "eventlog\\application\\" + a\_name); hkey key; dword last\_error = regcreatekeyex(hkey\_local\_machine, key\_path.c\_str(), 0, 0, reg\_option\_non\_volatile, key\_set\_value, 0, &amp;key, 0); if (error\_success == last\_error) { byte exe\_path[] = "c:\\path\\to\\your\\application.exe"; dword last\_error; const dword types\_supported = eventlog\_error\_type | eventlog\_warning\_type | eventlog\_information\_type; last\_error = regsetvalueex(key, "eventmessagefile", 0, reg\_sz, exe\_path, sizeof(exe\_path)); if (error\_success == last\_error) { last\_error = regsetvalueex(key, "typessupported", 0, reg\_dword, (lpbyte) &amp;types\_supported, sizeof(types\_supported)); } if (error\_success != last\_error) { std::cerr &lt;&lt; "failed to install source values: " &lt;&lt; last\_error &lt;&lt; "\n"; } regclosekey(key); } else { std::cerr &lt;&lt; "failed to install source: " &lt;&lt; last\_error &lt;&lt; "\n"; } } void log\_event\_log\_message(const std::string&amp; a\_msg, const word a\_type, const std::string&amp; a\_name) { dword event\_id; switch (a\_type) { case eventlog\_error\_type: event\_id = msg\_error\_1; break; case eventlog\_warning\_type: event\_id = msg\_warning\_1; break; case eventlog\_information\_type: event\_id = msg\_info\_1; break; default: std::cerr &lt;&lt; "unrecognised type: " &lt;&lt; a\_type &lt;&lt; "\n"; event\_id = msg\_info\_1; break; } handle h\_event\_log = registereventsource(0, a\_name.c\_str()); if (0 == h\_event\_log) { std::cerr &lt;&lt; "failed open source '" &lt;&lt; a\_name &lt;&lt; "': " &lt;&lt; getlasterror() &lt;&lt; "\n"; } else { lpctstr message = a\_msg.c\_str(); if (false == reportevent(h\_event\_log, a\_type, 0, event\_id, 0, 1, 0, &amp;message, 0)) { std::cerr &lt;&lt; "failed to write message: " &lt;&lt; getlasterror() &lt;&lt; "\n"; } deregistereventsource(h\_event\_log); } } void uninstall\_event\_log\_source(const std::string&amp; a\_name) { const std::string key\_path("system\\currentcontrolset\\services\\" "eventlog\\application\\" + a\_name); dword last\_error = regdeletekey(hkey\_local\_machine, key\_path.c\_str()); if (error\_success != last\_error) { std::cerr &lt;&lt; "failed to uninstall source: " &lt;&lt; last\_error &lt;&lt; "\n"; } } int main(int a\_argc, char** a\_argv) { const std::string event\_log\_source\_name("my-test-event-log-source"); install\_event\_log\_source(event\_log\_source\_name); log\_event\_log\_message("hello, information", eventlog\_information\_type, event\_log\_source\_name); log\_event\_log\_message("hello, error", eventlog\_error\_type, event\_log\_source\_name); log\_event\_log\_message("hello, warning", eventlog\_warning\_type, event\_log\_source\_name); // uninstall when your application is being uninstalled. //uninstall\_event\_log\_source(event\_log\_source\_name); return 0; } </code></pre><p>espero que isso ajude, mas considere que essa abordagem foi descontinuada, conforme declarado por @cody gray.</p>
<p>boa noite, afrânio! como vai?</p>
<p>o <code>event</code> é um objeto javascript com informações relativas ao evento que acabou de acontecer ( <code>onchange</code> no caso desse exemplo ). o próprio javascript se encarrega de construir esse objeto sempre que ocorrer o tal evento. <strong>portanto</strong>, como vc mesmo falou, basicamente pegar o name e o value através do <code>event.target</code> que é o elemento ( o campo de texto, nesse caso ) que gerou o evento!</p>
<p>pegou a ideia? qualquer coisa é só falar!</p>
<p>grande abraço e bons estudos, meu aluno!</p> Não é exatamente o que você pediu, mas eu escrevi um Visual Studio Integration Package 2008, e se bem me lembro que eu poderia substituir o método "Add Reference", bem como herdar o "nó de referência" e, assim, mudar o seu comportamento, por exemplo seu construtor.


Esta funcionalidade pode estar faltando um add-in (que é mais limitada do que um pacote de integração), então você pode considerar escrever um pacote em seu lugar. <p><code>#pragma comment</code> é uma diretiva de compilador que indica o visual c++ para deixar um comentário no arquivo de objeto gerado. o comentário pode ser lido pelo vinculador quando ele processa arquivos de objeto.</p><p><code>#pragma comment(lib, libname)</code> informa ao vinculador para adicionar a biblioteca 'libname' à lista de dependências da biblioteca, como se você tivesse adicionado nas propriedades do projeto em <code>linker-&gt;input-&gt;additional dependencies</code></p><p>veja <a href="http://msdn.microsoft.com/en-us/library/7f0aews7(v=vs.120).aspx">#pragma comment</a> no msdn</p> <p>no chronoforms, você pode carregar o cssc em seus eventos de formulário. você deve ser capaz de substituir o gantry lá.</p> <p>dê uma olhada <a href="http://projecteuler.net/">project euler.</a> não há mais nada como ele para afiar suas habilidades de programação fundamental.</p> nesse exercício vamos usar laços em linguagem c.vamos precisar de dois laços. vamos ler os vetores a e b ao mesmo tempo que criamos e escrevemos o c.o código abaixo (comentado) faz o que se pede: <p>olá nádia,</p>
<p>muito interessante o atalho. o mesmo pode ser feito nos programas do pacote adobe ao apertar alt.</p>
<p>abçs,</p>
<p>gustavo diuana</p> arraylist::new é uma referência ao construtor da classe arraylist, essa sintaxe é chamada de method reference. 
existem quatro tipos de method reference: 


referência à um método estático de uma classe: 
nomedaclasse::nomedometodoestatico 


referência à um método de instância de uma classe: 
nomed… <p>fala ai allan, tudo bem? acredito que seja apenas uma questão de versão mesmo.</p>
<p><a href="https://www.electronjs.org/docs/api/browser-window#evento-close" rel="nofollow">https://www.electronjs.org/docs/api/browser-window#evento-close</a></p>
<p>nesse <em>link</em> informa que existe o evento <code>close</code>, ele será emitido quando a janela estiver para ser fechada.</p>
<p>espero ter ajudado.</p> descobri como fazer…

criei um bloco intermediário, onde a condição de saída direciona de acordo com o valor da variável. :smiley: