Escape() de JavaScript em c# – um c# equivalente para o escape ()-Funktion

csharp_vs_javascript Isso. NET Framework fornece um grande número de maneiras de codificar o HTML e URLs. Havia, por exemplo, Uri.EscapeDataString(), Uri.EscapeUriString(), System.Web.HttpUtility.UrlEncode(), System.Web.HttpUtility.UrlPathEncode(), System.Web.HttpUtility.HtmlEncode() ou System.Web.HttpUtility.HtmlAttributeEncode().

Se você tem no entanto uma funcionalidade equivalente ao escape() do JavaScript está procurando, então você vai ficar desapontado por todas essas funções. Nenhum por padrão pela. Funções NET framework fornecida é equivalente para o JavaScript de escape ()-Funktion.
Para esclarecer, eu fiz uma vez o exemplo a seguir:

Original Ausgangsstring / / Raffi mais irritante c# Teststring/Testcode.// JS original (produzido por escape()) / / Raffi%27s%20%E4rgerlicher%20C%23%20Teststring/Testcode.// Uri.EscapeDataString(): / / % 20% C3% A4rgerlicher % C 20% 23% 20Teststring % do Raffi 2FTestcode.// Uri.EscapeUriString(): / / Raffi’s%20%C3%A4rgerlicher%20C#%20Teststring/Testcode.// System.Web.HttpUtility.UrlEncode(): / / Raffi%27s+%c3%a4rgerlicher+C%23+Teststring%2fTestcode.// System.Web.HttpUtility.UrlPathEncode(): / / % 20% c3 do Raffi %a4rgerlicher%20C#%20Teststring/TestCode.// System.Web.HttpUtility.HtmlEncode(): / / Raffi mais irritante c Teststring/Testcode.// System.Web.HttpUtility.HtmlAttributeEncode(): / / c# mais irritante do Raffi teste/teste de código.

Mas eu seria o blog se eu não tinha nem uma solução à mão. E isso não é tão complicado.

Etapa 1:

Adiciona uma referência para Microsoft. JScript para seu projeto.

Adicionar o Microsoft jscript referência

Etapa 2:

Agora é a função de Microsoft.JScript.GlobalObject.escape() disponível. Isto converte uma cadeia de caracteres passada exatamente como faz o JavaScript de escape ()-Funktion. (Isto é porque, se acessar usando esse método em motor proprietário de JScript da Microsoft.) E agora, o exemplo acima funciona usando esta função.

Original Ausgangsstring / / Raffi mais irritante c# Teststring/Testcode.// JS original (produzido por escape()) / / Raffi%27s%20%E4rgerlicher%20C%23%20Teststring/Testcode.// Microsoft.JScript.GlobalObject.escape(): / / Raffi % 27s % 20-% E4rgerlicher % 20% 23% Código 20Teststring/teste.

Espero que eu poderia de uma ou ajudar outras pessoas a vê-lo. Sabe que talvez outra ou talvez a melhor forma para recriar o JavaScript de escape ()-Funktion em c#?

Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter

1SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail

Artigo convidado: Smart Dialer – ferramenta útil para os fãs de Android

O seguinte artigo é um artigo de comentários escrito por terceiros.

Logotipo de discador inteligente procura uma proteção confiável de spam para o seu Smartphone? Ou você quer ser deixado permanentemente pela mãe sozinha? Então vale a pena uma olhada no app discador inteligente. A ferramenta útil protege não só contra os chamadas de spam, mas bastante aliás também ainda detectar usando fontes diferentes números de telefone.

Se, no entanto, você tem um iPhone, o app não vai ajudá-lo. O discador inteligente está disponível apenas para Android. A ascensão rápida nas paradas do app é motivo suficiente para lidar com as seguintes perguntas: o que pode das obras discador e vale a pena uma instalação?

O que pode o discador?

Antes de eu morar lá, o que pode o discador, eu gostaria de salientar, primeiramente, não: os chamadores anônimos do discador inteligentes não consegue detectar. Estes dados não permitem nenhuma inferência sobre a pessoa, de onde eles provêm. A este respeito nenhum app Dialer do mundo pode exibir a identidade de um chamador, se o número de telefone é suprimido. Uma crítica não autorizada então, contra é que deve ajudar o desenvolvedor do app gratuito de novo, se um sobrevoa as clientes na loja de peça de Google. -Deve ser claramente diferenciada entre números anônimos e desconhecidos. O app muito fiável detecta números de telefone desconhecido e também a proteção de spam faz o que deve. No pós-chamada, então depois que a chamada for concluída, o usuário do app tem a oportunidade de avaliar o número de chamada só, para bloquear e gerenciar. Se isso for feito, a base de todo fã de lucros o app e um efeito de bola de neve positiva pode ser produzida. Antes de você é assim no caso e pressupõe-se, por exemplo, uma chamada de telefone de spam o app avisa. Número um foi adicionado à lista de bloqueio, ser rejeitado no futuro diretamente e, portanto, também popularmente-indesejável sogra tem permanentemente no intervalo. Uma função inteligente!

Como é que funciona?

Para a identificação do chamador, o aplicativo de versão 1.7 para os dados do portal Internet Yelp reverte para integrar uma outra fonte para o identificação do chamador. Até agora, os usuários com as actuais fontes como “Lista telefônica” e “Google Places” teve de se contentar. A vantagem para a concorrência: O aplicativo funciona com fontes diferentes e não é dependente de um provedor. Isso se reflete também na identificação de números. Pelo menos 17 por cento do chamador desconhecido identificado pelo app. Dez por cento delas são atribuídos à categoria de spam. Isto emerge de um gráfico de informação, que foi recentemente dividido da festa no Facebook. Também é interessante: 79% de chamadas de entrada são os contactos do livro de telefone pessoal e apenas 5 por cento para suprimir o seu número de telefone. O resto são chamada desconhecida. Irritantes chamadas de call centers – por exemplo, pelas empresas de comunicação de telefonia – assim, pertencem ao passado sem ter de se inscrever antecipadamente para o app.

Infográfico de discador inteligente

Vale a pena uma instalação?

O aplicativo tem mais de 60.000 instalações e é um aplicativo compatível com privacidade-lei, que ainda está livre na loja do app disponível. O servidor e o operador do app, o validio & GmbH Co KG, sentado em Nuremberg – isto é só a partir de um proteção de dados ponto de vista para o app. A concorrência internacional, tais como, por exemplo, TrueCaller, muito solto vê a questão de privacidade. Finalmente, o operador de TrueCaller situa-se algures na Escandinávia. As pancadas de dados sobre o aplicativo aqui é uma tarefa fácil. No entanto, a empresa que o discador inteligente estava por trás disso, devemos distinguir mais claramente é infelizmente também em Nuremberg – se pelo Instituto de pesquisa de mercado Valido GmbH-.Quanto mais “eu” em nome de lá não é suficiente e lidera em fóruns de pensar maus brincalhões.

Os dados da chave de relance:

  • O discador inteligente é uma aplicação para dispositivos Android que identificam os chamadores desconhecidos e protege contra spam indesejado chamadas ao mesmo tempo e custo de armadilhas.
  • O aplicativo gratuito é baseado em diferentes fontes, como out – contanto que isso não é suprimido, por exemplo, Yelp, Google e o livro de telefone, o número de telefone do chamador.
  • Irritantes chamadas de call centers, portanto, pertencem ao passado, sem ter de se inscrever antecipadamente para o app.
  • Smart Dialer agora tem mais de 60.000 instalações – e subindo.
  • O aplicativo está disponível, além de Alemanha, Reino Unido, CH e em
  • O app foi programado por validio GmbH & Co. KG, estabelecida em Nuremberg. Você percebeu móveis projetos desde a criação e o desenvolvimento para implementação. Das dez equipes irão incidir de acordo com a página Internet do Java e desenvolvimento Android.

Recursos anunciados para a próxima versão:

  • Chamador ID amarelo páginas
  • Recomendação do aplicativo na caixa de diálogo estressado através do Whatsapp
  • Doxter entradas grátis datas são exibidas no futuro após a chamada
  • No Reino Unido, CH e AT que os códigos de área telefone fixo deve ser reconhecidos por isso pelo menos mostra o chamador vem de onde

Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter

2SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail

Referência: strtotime() vs vs DateTime DateTime::getTimestamp em PHP

Última escrevi sim, como você pode implementar as comparações de data em PHP. No artigo, apresentei duas abordagens. Com a ajuda do strtotime ()-Methode e no outro com a classe DateTime.

Nos comentários eu estava apontada para fora, em seguida, por Christoph, que o strtotime ()-Variante foi provavelmente mais rápido. Ele no entanto não era tão completamente seguro próprio também, então eu decidi um pequeno teste de desempenho, os resultados dos quais eu gostaria de apresentá-lo aqui em breve vezes.

O que eu testei?

Desde a pergunta sobre o strtotime() vs objectivos DateTime, fornece mais funcionalidade para a classe DateTime no contrário para o strtotime ()-Funktion no entanto, criar o objeto DateTime com a classe DateTime + medido a saída dos carimbos de hora. Então o tempo para a saída idêntica é medido.
Como entrada, tomei uma data sem um tempo – diz uma parte do dia, mês e ano. Também mandei ainda uma terceira função na corrida. Vou explicar o que é exatamente com o getTimestamp ()-Funktion para, mais para baixo no artigo. As três chamadas de método comparativo para meu teste são os seguintes:

strtotime () $a = strtotime (“2012-05-28”); //datetime$date=new = DateTime (“2012-05-28”); $a $date-> getTimestamp (); $a (//getTimestamp) campos = getTimestamp(“2012-05-28”);

Como eu testei?

Como referência, eu queria mostrar um período de tempo em segundos. A tempo, eu usei as seguintes funções:

Tempo antes da execução de uma variante$ startTime = microtime(true); / * * * variante/teste * ///Zeitpunkt após o fim do teste$ endTime = microtime (true); //Zeitspanne do teste$ elapsedTime = abs ($) startTime – $endTime);

Cada uma das funções foi chamada em um loop de 100.000 vezes e o tempo limite para as 100.000 chamadas. Para compensar flutuações e medição imprecisões do caminho para ir, foi realizada a medição para cada variante 20 vezes e a média de 20 medições feitas. Finalmente, o código para medição de uma variante olhou como segue:

$total = 0; para (= 0; $runs $runs< 20;="" $runs++){="" $starttime="microtime(true);" for="" ($i="0;" $i="">< 100000;="" $i++)="" {="" funktion/variante="" ausführen="" }="" $endtime="microtime(true);" $total="" +="abs($startTime" -="" $endtime);}$elapsedtime="sprintf("%.4f" sec.",="">

Também acrescentei a seguinte linha de código no início dos scripts de referência para definir o fuso horário para o strtotime ()-bem como a variante de DateTime.

date_default_timezone_set(“Europe/Berlin”);

Escrito que eu tenho que correr o servidor de Web Express de código de teste no Web Matrix 2 e também através de seu IIS fornecido com. O ambiente de teste de hardware olhou como segue:

  • Acer Aspire 5740 G (caderno)
  • Intel Core i3 M 330 @ 2.13 GHz
  • 8 GB DE RAM
  • Windows 8 Pro (64 bits)

Como é o resultado da falha?

Então, o resultado foi como ele já tinha suspeitado Christoph. A variante de DateTime foi cronometrada (se também bastante escassa) por trás do strtotime ()-Funktion. A () getTimestamp-Funktion levou o segundo lugar. Na inicial testes nesta seção nem tão bem, que fez o primeiro lugar. No entanto, aqui está alguns cálculos que eles finalmente tem catapultado para segundo lugar estavam faltando.

Eu já resumi o tempo todo em dois pequenos gráficos.

php_date_to_timestamp_benchmark1

php_date_to_timestamp_benchmark_percent

O que é o getTimestamp ()-Funktion para?

A () getTimestamp-Funktion não é função oficial de PHP, mas um pequeno desenvolvimento in-house por mim. Depois que eu tinha feito alguns testes com o strtotime ()- e a variante de DateTime, queria ver se pode me fazer nem sequer uma variante mais rápida. Como mostrado nos gráficos acima, que infelizmente não é bem sucedido em mim.Em testes iniciais isto tinha trabalhado para fora embora, mas eu fui alertado nos comentários sobre ele que o getTimestamp ()-Funktion retornaria valores não é sempre corretos.
Depois que eu adicionei ainda a transição para o tempo de verão e de inverno (para o nosso espaço – na América serão convertidos para outro dados!), minha função agora é mais lenta que o strtotime ()-Funktion.

Minha função getTimestamp parecido com este:

função getTimestamp($timeStr) {$daysInMonth = array(0,31,59,90,120,151,181,212,243,273,304,334); $dateArr = $days explode (“-“, $timeStr); //Tag adicionar anos para definir o ano = ($dateArr [0] -1970) * adicionar 365; //Schaltjahrestage para ($i = 1972; $i) <= $datearr[0];="" $i+="4)" {="" if="" (($i%4="=0" &&="" $i%100="" !="0)" ||="" $i%400="=0)" $days++;="" }="" tage="" bis="" zum="" 31.03.="" des="" jahres="" $daystimeswitch="$days" +="" 90;="" per="" mod="" +="" 3="" wochentag="" bestimmen.="" (+3="" da="" 01.01.1970="Donnerstag)" wochentag="" vom="" 31.="" abziehen="letzter" sonntag="" im="" monat="">Horário de verão $daySummertime = 31 – ((($daysTimeswitch %7) + 3) %7); //Tage a partir de 31 de março do ano $daysTimeswitch $days = + 304; //Per MOD + 3 determinar o dia da semana. (+ 3 da 01.01.1970 = Donnerstag) retirar //Wochentag até o 31 = último domingo do mês => horário de verão $dayWintertime = 31 – ((($daysTimeswitch %7) + 3) %7); Se ((3 > $dateArr [1] && $dateArr [1] < 10)="" ||="" ($datearr[1]="=" 3="" &&="" $datearr[2]=""> $daySummertime) |) ($dateArr [1] = = 10 & $dateArr [2] <= $daywintertime))="" {="" $summerwintertime="3600;" }="" else{="" $summerwintertime="0;" }="" schaltjahr-tag="" abziehen,="" wenn="" monat="" februar="" des="" laufenden="" jahr="" nicht="" inkludiert="" $days="" -="(($dateArr[0]%4==0" &&="" $datearr[0]%100="" !="0)" ||="" $datearr[0]%400="=0)" ($datearr[1]="">2)? 0: 1:0, //Tage por meses do ano atual Adicionar + $days = item $daysInMonth [$dateArr -1 [1]]; //Tage do ano atual Adicionar $days + = $dateArr [2] – 1; / / remove 3600 segundos para o tempo de deslocamento. (Unix-timestamp/UTC) retornar $days * 86400-3600-$summerWinterTime;}

Quem leu o código-fonte da função, vai querer chorar agora, mas talvez “segurar vezes…”. Sim, corretamente devo admitir que minha função apenas sob certas circunstâncias fornece valores corretos. Seguintes condições devem ser atendidas:

  • A data deve ser passada no formato AAAA-MM-DD
  • A data não deve ser mais velha, a partir de 1 de janeiro de 1970

O strtotime ()-Funktion leva, por exemplo, dados em outros formatos e pode calcular um determinado âmbito de também timestamps para dados anteriores a 1 de janeiro de 1970. Aqui a minha função é claramente em desvantagem, e você pode se perguntar se a comparação é então não injustificada. No entanto, um deve lembrar que a classe DateTime por sua vez oferece maior funcionalidade do que o strtotime ()-Funktion.
E como foi no benchmark simplesmente para gerar um timestamp de uma determinada data, acho que minha função tem sua raison d’ ‘ être. Porque corretamente o cálculo de UNIX-timestamp começa a 1 de janeiro de 1970, e, portanto, a minha função atende os requisitos básicos para o cálculo de um timestamp UNIX.

Conclusão

Esse strtotime() é mais rápido que DateTime, podiam ser cobertas no teste. Eu também poderia determinar que, pelo menos para mim, não é possível escrever um mais rápido a função de strtotime(). No início dos testes, eu pensei que se eu iria restringir ao mínimo, eu poderia escrever uma função mais rápida. Finalmente, o strtotime ()-Funktion pode mais do que minha getTimestamp() algumas coisas. No entanto, não funcionou.

Em última análise, a escolha do método no contexto do projeto deve ser feita. Em que formato (s) são os dados? Eu cobraria talvez ainda mais do que apenas o carimbo de hora?

Finalmente, outra questão na rodada: alguém de vocês já tentou uma função mais rápida do que to escrever o strtotime ()-Funktion? E se então, que te fez ir e o que problemas você tem encontrado?

Sobre o autor: Este artigo, bem como outros 363 artigos no bloco de código.NET, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter


1SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail

1 e 0 para true e false convertem para JS

1 e 0 para true e false em JavaScript Hoje só um post muito curto. Há certamente muitas maneiras de converter 0 e 1 em JavaScript para true e false.

O caminho a seguir que eu vi hoje é provável, mas provavelmente o mais curto e também elegante. Além disso, ele trabalha não somente para valores inteiros, mas também para as representações de sequência de caracteres de 0 e 1.

Presumo que algo aqui sob “Pérolas de programação”…

0 e 1 para verdadeiro e falso

Converter inteiro para 0 e 1 para Boolean, basta duas vezes para usar o não operador.

var thisIsFalse =! 0; falsevar thisIsTrue =! 1; true

Por que isso funciona? Vamos dar o exemplo a seguir. 1 é um valor válido e, portanto, é verdade. Se nós agora! 1 escrever, então podemos negar o verdadeiro do falso e preservada. Com um segundo! Então! 1 nós anular o falso existente e assim obter verdadeiro para 1. Exatamente o contrário, ele procura a 0. Assim, 0 é equivalente a uma falsa. Dementsprechen! 0 verdadeiro e! 0 um falso.

“0” / “1” – cordas true e false

E o que, se 0 e 1 como sequências de caracteres, porque vem de um mau definida como cadeia de caracteres JSON, por exemplo? Nada poderia ser mais simples do que usando o + cordas do operador podem ser convertidas para int. Esta solução para uma sequência de caracteres é como segue:

var thisIsFalse =! + “0”; falsevar thisIsTrue =! + “1”; true

Três personagens, tornar-se um valor booleano de uma sequência de caracteres (com um valor de “0” ou “1”). Acho muito mais elegante, já não é. Mas é nunca é tarde para aprender. Você conhece uma solução melhor?

Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter

4SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail

Manipular qualquer programa usando c#

Manipular os programas via c# - usando o exemplo do bloco de notas No artigo a seguir para ir é sobre, como outros programas de controle, ajuste usando c# e estender. Como um exemplo de cenário, queremos expandir o programa incluído por padrão com o Windows “Notepad” usando um aplicativo translation from VPE for Csharp pequeno para uma função adicional.

Especificamente o aplicativo c# em aberto todas as instâncias, o que adiciona um novo botão interface e interceptação de vincular o bloco de notas clica neste botão. Ao clicar no botão, o texto da caixa de texto do bloco de notas na nossa aplicação enviadas e por meio de um analisador de descontos (o que é o Markdown?) ser convertido em HTML.

Em seguida, o produto final acabado de nosso artigo deve olhar como mostrado no vídeo abaixo que eu criei para você.

No contexto do artigo, vamos construir o programa passo a passo. Quem quer ter o código-fonte completo, role até o final do artigo. Lá é o completo c# código. Alternativamente, um download de solução do Visual Studio está disponível.

Manipular outros programas através de c#

No início, nós criamos um novo projeto Windows Forms no Visual Studio. No designer de GUI, podemos adicionar um RichTextBox no formulário, nomeá-lo como “richTextBoxInfo” e definir o atributo de doca para “Preencher”. Agora, o formulário deve olhar como mostrado na imagem.

Na próxima etapa, adicionamos duas novas referências no Solution Explorer sob referências através do botão direito. Uma referência para o WindowsBase. dll, que através da “constatação é .NET”-Reiter e uma referência a “MarkdownSharp.dll” na “busca” – guia. O MarkdownSharp.dll pode ser baixado a partir da página do projeto MarkdownSharp. Isto é feito, podemos começar fora da programação do programa.

Na primeira etapa, adicionamos três novos usando referências: System.Runtime.InteropServices, System. Diagnostics e MarkdownSharp. Precisamos chamar métodos de não-gemanagetem (unmanaged) código InteropService e System. Diagnostics necessidade podemos enumerar processos e avaliar markdown é necessário mais tarde para a análise de texto do Markdown.

Na segunda etapa, adicionamos um latte de todo a “código não gerenciado”-métodos, constantes e variáveis auxiliares adicionadas. Que parte do que vai dar certo no decorrer do artigo. Portanto, podemos copiar por agora com segurança fora da caixa de código a seguir.

Pequena dica sobre a borda: quem pede, como você sabe como, então uma assinatura do método nativo/não gerenciado deve procurar, pode até dar uma olhada pinvoke.net.

Nosso código deve ficar assim:

usando o sistema utilizando System.Collections.Generic usando System. ComponentModel; using System. Data; usando System. Drawing; usando System. Linq; usando System. Text; usando System.Windows.Forms; usando System.Runtime.InteropServices; usando System. Diagnostics; usando MarkdownSharp; namespace NotepadEnhanced {classe parcial pública Form1: formar {[DllImport(“user32.dll”)] privada extern static int GetWindowText (IntPtr hWnd, StringBuilder texto, int count);} [DllImport(“User32.dll”)] privada estática extern IntPtr GetMenu (IntPtr hWnd); [DllImport(“User32.dll”)] privada estática extern bool CMenu (hMenu IntPtr, Int32 wPosition, Int32 wFlags, Int32 wIDNewItem, string lpNewItem); [DllImport(“User32.dll”)] privada extern static int GetMenuItemCount (IntPtr hMenu); [DllImport(“User32.dll”)] privada estática extern bool DrawMenuBar (IntPtr hWnd); [DllImport (“user32. dll”, SetLastError = true)] privada estática extern IntPtr FindWindowEx (IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, IntPtr lpszWindow); [DllImport (“user32. dll”, EntryPoint = “SendMessage”)] extern estático privado IntPtr SendMessageGetTextW (IntPtr hWnd, uint msg, wParam UIntPtr, StringBuilder lParam); [DllImport (“User32. dll”, EntryPoint = “SendMessage”)] extern privada estática int SendMessageGetTextLength (IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); [DllImport (“user32.dll”)] [retornar: MarshalAs(UnmanagedType.Bool)] privada estática extern bool SetForegroundWindow (IntPtr hWnd);] [DllImport(“User32.dll”)] static extern IntPtr SetWinEventHook (uint eventMin uint eventMax, IntPtr hmodWinEventProc, WinEventDelegate lpfnWinEventProc, uint idProcess, uint idThread, uint dwFlags); [DllImport(“User32.dll”)] static extern bool UnhookWinEvent (IntPtr hWinEventHook); delegate void WinEventDelegate (IntPtr hWinEventHook, eventType uint, IntPtr hwnd, int idObject, idChild int, uint dwEventThread, uint dwmsEventTime); WinEventDelegate procDelegate; IntPtr hhook; uint const EVENT_OBJECT_INVOKED = 0 x 8013; uint const WINEVENT_OUTOFCONTEXT = 0; _CustomMenuID privada de Int32 const = 1000; MF_BYPOSITION privada de Int32 const = 0x400; privado WM_SYSCOMMAND const de Int32 = 0 x 112. Lista handlesNp = novo lista(); {{HandlesNpEdit dicionário = novo dicionário(); Form1() pública {InitializeComponent () ;}}}

Identificar processos e alças Leia

Agora podemos criar um manipulador para o evento load do nosso formulário principal (Form1). Se você fizer à mão ou usando o designer de Visual Studio, não desempenha qualquer papel.

Dentro do método de carga podemos recuperar todos os processos de bloco de notas no sistema e armazená-los em uma lista. Finalmente, sim, precisamos saber a janela do programa, se queremos expandi-lo.

Então vamos a lista de todas as instâncias da janela do bloco de notas. Aqui, nós primeiro recuperar o texto que está disponível no título da janela e gastá-lo em nossa casa formar no richTextBoxInfo.

Então pedimos uma referência à caixa de texto da janela do bloco de notas. Precisamos disto para ter acesso ao texto na janela do bloco de notas mais tarde.

Finalmente, podemos verificar quanto botões tem a janela do bloco de notas, na barra de menus. Se tem menos de 6 botões, então ele não foi manipulado ainda. Neste caso, nós adicionamos o nosso botão.

É percorrer a lista de todas as janelas do bloco de notas, nós ainda somos uma EventHook. Isto nós ligar no sistema e pode interceptar as mensagens do Windows.

O código no método de carga é o seguinte. (Use os comentários que você pode monitorar novamente, o que acontece em cada etapa).

Private void Form1_Load (object sender, EventArgs e) {//Die consultar janela alças de todos os processos de bloco de notas e salvar handlesNp = Process.GetProcessesByName(“notepad”).} Selecione (x => x.MainWindowHandle). ToList(); Durchlaufe todos encontrados instâncias do bloco de notas richTextBoxInfo.Text = “encaixado na janela seguinte: \r\n”; foreach (var npHandle em handlesNp.Select => novo ((x, i) {identificador = x, índice eu =})) {//Gebe o nome da instância atual do bloco de notas do StringBuilder sb novo StringBuilder(); = GetWindowText (npHandle.Handle, sb, 200); var windowTitle = sb. ToString (); richTextBoxInfo.Text + = windowTitle + “\r\n”; Localizar o identificador da caixa de texto da instância atual do bloco de notas //und salvá-lo para ler o texto posterior handlesNpEdit.Add (npHandle.Handle, FindWindowEx (npHandle.Handle, “Editar”, IntPtr, IntPtr. zero)); Identificador do menu da instância atual do bloco de notas encontrar var sysMenu = GetMenu(npHandle.Handle); Se o menu não tiver recebido nenhum botão adicional, //füge adicionar o novo botão e menu desenhar novo se (GetMenuItemCount(sysMenu)! = 6) {CMenu (sysMenu, 4, MF_BYPOSITION, _CustomMenuID, “MD para HTML”); DrawMenuBar(npHandle.Handle); Colocar //Hook {}}, para interceptar o Windows mensagens procDelegate = novo WinEventDelegate(WinEventProc); hHook = SetWinEventHook (EVENT_OBJECT_INVOKED, EVENT_OBJECT_INVOKED, IntPtr. zero, procDelegate, 0, 0, WINEVENT_OUTOFCONTEXT);}

Se nós agora tentar compilar o programa, então Visual Studio irá gerar uma mensagem de erro agradável ao redor das orelhas nos. Isto é devido a seguinte linha de código que temos escrito no final do método load.

procDelegate = novo WinEventDelegate(WinEventProc);

Aqui, passamos por um método chamado “WinEventProc”, que no entanto ainda não existe em nosso programa como um parâmetro.Portanto, nós agora aplicar este método na próxima etapa e preenchê-lo com a “Vida”.

Interceptar as mensagens do Windows com c#

Porque esse método captura um monte de mensagens do Windows, queremos entrar, mas apenas sobre aqueles que foram levantadas, clicando no nosso botão recém-adicionado no bloco de notas, nós primeiro filtrar somente as mensagens relevantes usando um if consulta. Para fazer isso, nós primeiro verifique se vem a notícia de uma das instâncias do bloco de notas, escrevemos para o load método em nossa lista (handlesNp.Contains(hwnd)) e, em segundo lugar, se a mensagem foi desencadeada por nosso botão (= = _CustomMenuID idChild).

Se assim for, podemos obter o texto da caixa de texto o bloco de notas usando o GetWindowText ()-Methode. Em seguida, criamos uma instância do Markdown e converter o texto do bloco de notas Markdown para HTML.

Agora vamos criar uma nova janela/forma e coloque um navegador da Web e um RichTextBox que passado tanto nosso fresco só analisado HTML.

Finalmente, podemos abrir a nova janela e trazê-lo à tona. O código para isso se parece com isto:

void WinEventProc (IntPtr hWinEventHook, uint, eventType, IntPtr hwnd, int idObject, idChild, uint dwEventThread de int, uint dwmsEventTime) {//Überprüfe se vem notícia do bloco de notas e através de nosso //eigenen foi botão acionado. se (handlesNp.Contains(hwnd) & _} CustomMenuID = = idChild) {//Hole = texto de Notepad texto campo var markdownText GetWindowText(handlesNpEdit[hwnd]); //Rende texto de Markdown para HTML Markdown mds = novo Markdown(); var htmlOutput = htmlBody.Replace ({html_body}, mds.} Transform(markdownText)); Nova janela/formulário fWeb criar formulário = novo form(); fWeb.Size = new System.Drawing.Size (800, 600); fWeb.StartPosition = FormStartPosition.CenterScreen; fWeb.Text = “O bloco de notas – extensão do Markdown”; Adicionar um navegador da Web para o Windows e //HTML no navegador da Web navegador carregando wb = novo WebBrowser(); WB. Dock = DockStyle. Fill; WB. ScriptErrorsSuppressed = true; WB. DocumentText = htmlOutput; Uma caixa de texto adicionar a janela e carregando //HTML in a TextBox RichTextBox rtHtml = novo RichTextBox(); rtHtml.Dock = DockStyle. Fill; rtHtml.Text = htmlOutput; Navegador de ordem e 50/50 no TableLayoutPanel janela texto caixa tlp = novo TableLayoutPanel(); TLP. Dock = DockStyle. Fill; TLP. ColumnCount = 1; TLP. ColumnStyles.Add (novo System.Windows.Forms.ColumnStyle (System.Windows.Forms.SizeType.Percent, 100F)); TLP. RowCount = 2; TLP. RowStyles.Add (novo System.Windows.Forms.RowStyle (System.Windows.Forms.SizeType.Percent, 50F)); TLP. RowStyles.Add (novo System.Windows.Forms.RowStyle (System.Windows.Forms.SizeType.Percent, 50F)); TLP. Controls.AddRange (novo controle [] {wb, rtHtml}); fWeb.Controls.Add(tlp); Mostrar fWeb.Show(); SetForegroundWindow(fWeb.Handle); }}

Clique em F5, executando o compilador e… Erro! Desta vez temos o método de gancho, por isso que temos apenas usa um novo método, que ainda não existe. Por esta razão, agora adicionamos o ausente (GetWindowText)-Implementierung.

sequência de caracteres estática pública GetWindowText (IntPtr hwnd) {int len = SendMessageGetTextLength (hwnd, 14, IntPtr, IntPtr. zero) + 1;} StringBuilder sb = novo StringBuilder(len); SendMessageGetTextW (hwnd, 13, Nova UIntPtr((uint)len), sb); retorne sb. ToString ();}

Uma variável também ainda está desaparecida. E embora a sequência de caracteres htmlBody. Contém HTML – e o código CSS para a representação do nosso texto no WebBrowser. (Porque o código é um pouco mais, eu tenho recolhido abaixo o bloco de código. Clique em ajuda de caixa o código.)

#region markdown / CSS codeString htmlBody = @” “

6. o; padding-top: 10px; Padding-bottom: 10px; cor de fundo: branco; Padding: 30px; } corpo > *: primeiro filho {margem-top: 0! importante;} corpo > *: última-criança {margem-fundo: 0! importante;} um {cor: 4183 # 4;} a.absent {cor: #cc0000;} a.anchor {exibir: block; padding-left: 30px; margem esquerda:-30px; cursor: ponteiro; posição: absolute; top: 0; esquerdo: 0;} parte inferior: 0; } h1, h2, h3, h4, h5, h6 {margem: 20px 10px 0; padding: 0; font-weight: negrito; webkit-fonte – suavização: antialiased; cursor: texto; posição: relativo;} h1: hover a.anchor, h2: focalizar a.anchor, h3: focalizar a.anchor, h4: focalizar a.anchor, h5: focalizar a.anchor, h6: paire a.anchor {} fundo: url(‘..) /.. / images/modules/styleguide/para.pn’) centro de não-repetição 10px; text-decoration: none; } h1 tt, código h1 {-tamanho da fonte: herdar;} tt h2, h2 código {-tamanho da fonte: herdar;} tt h3, h3 código {-tamanho da fonte: herdar;} tt h4, h4 código {-tamanho da fonte: herdar;} h5 tt, h5 código {-tamanho da fonte: herdar;} tt h6, h6 código {-tamanho da fonte: herdar;} h1 {font-size: 28px; cor: preto;} h2 {-tamanho da fonte:} 24px; border-bottom: 1px sólidos #cccccc; cor: preto; } h3 {-tamanho da fonte: 18px;} h4 {-tamanho da fonte: 16px;} h5 {font-size: 14px;} h6 {cor: #777777; font-size: 14px;} p blockquote, ul, ol, dl, li, tabela, pre {margem: 15px 0;} hr {fundo: transparente url(‘..)} /.. / images/modules/pulls/dirty-shade.png’) repeat-x 0 0; fronteira: 0 nenhum; cor: #cccccc; altura: 4px; Padding: 0; } corpo > h2: primeiro filho {margem-top: 0; padding-top: 0;} corpo > h1: primeiro filho {margem-top: 0; padding-top: 0;} corpo > h1: primeiro filho + h2 {margem-top: 0; padding-top: 0;} corpo > h3: primeiro filho, corpo > h4: primeiro filho, corpo > h5: primeiro filho, corpo > h6: primeiro filho {margem-top: 0} ; padding-top: 0; } h1 r: primeiro filho r: primeiro filho h2 r: primeiro filho h3, r: primeiro filho h4, h5 primeiro filho,: r: primeiro filho h6 {margem-top: 0; padding-top: 0;} h1 p, h2 h3 p p, p h4, p h5, h6 p {margem-top: 0;} li p.first {exibir: inline – bloco;} ul, ol {padding-left: 30px;} ul: primeiro filho , ol: primeiro filho {margem-top: 0;} ul: último-criança, ol: última criança {margem-fundo: 0;} dl {estofamento: 0;} dl dt {-tamanho da fonte: 14px; fonte-peso: negrito; font – style: itálico; preenchimento: 0; margem: 0 15px 5px;} dl dt: primeiro filho {estofamento: 0;} dl dt >: primeiro filho {margem-top: 0;} dl dt >: último-criança {margem-fundo: 0;} dl dd {margem: 0 15px 0; padding: 15px 0;} dl dd >: primeiro filho {margem-top: 0;} dl dd >: última-criança {margem-fundo: 0;} BLOCKQUOTE {fronteira-esquerda: 4px sólido #dddddd; estofamento: 15px 0; cor: #777777;} BLOCKQUOTE >: primeiro filho {margem-top: 0;} bloco relação >: última-criança {margem-fundo: 0;} tabela {estofamento: 0;} tabela tr {border-top: 1px sólido #cccccc; cor de fundo: branco; margem: 0; padding: 0;} tabela tr:nth-child(2n) {cor de fundo: #f8f8f8;} tabela tr th {fonte-peso: negrito; fronteira: 1px solid #cccccc; text-align:} à esquerda; margem: 0; Padding: 6px 13px; } table tr td {fronteira: 1px solid #cccccc; alinhamento de texto: esquerda; margem: 0; padding: 6px 13px;} tabela tr th: primeiro filho, table tr td: primeiro filho {margem-top: 0;} tabela tr th: última-criança, table tr td: última-criança {margem-fundo: 0;} img {largura máxima: 100%;} span.frame {exibir: block; ov} erflow: oculto; } span.frame > abrangem {fronteira: sólido de 1px #dddddd; exibir: bloquear; flutuar: esquerda; estouro: oculto; margem: 13px 0 0; padding: 7px; largura: auto;} span.frame span img {exibir: bloquear; flutuar: à esquerda;} span.frame span span {clear: ambos; cor: #333333; exibição: block; estofamento: 5px 0 0;} abrangem .Align centro {exibir: bloquear; estouro: oculto; clara: ambos;} span.align-Centro > span {exibir: bloquear; estouro: oculto; margem: 13px auto 0; text-align: centro;} span.align-centro span img {margem: 0 auto; text-align: centro;} span.align-direito {exibir: bloquear;} estouro: oculto; clara: ambos; } span.align-direito > abrangem {exibir: bloquear; estouro: oculto; margem: 13px 0 0; text-align: direito;} span img span.align-direito {margem: 0; text-align: direito;} span.float-esquerda {exibir: block; margem direita: 13px; estouro: oculto; flutuar: à esquerda;} abrangem.flutuar a esquerda extensão {margem: 13px 0 0;} span.float-direito {exibir: block; margem esquerda: 13px; estouro: oculto; flutuador: direito;} span.float-direito > abrangem {exibir: bloquear; estouro: oculto; margem: 13px auto 0; text-align: direito;} código, DD {margem: 2px 0; padding: 0 5px; espaço em branco:} NoWrap; Border: 1px solid #eaeaea; cor de fundo: #f8f8f8; border-radius: 3px; } código pré {margem: 0; padding: 0; espaço em branco: pré; fronteira: none; fundo: transparente;} pre .highlight {cor de fundo: #f8f8f8; fronteira: 1px sólido #cccccc; font-size: 13px; linha-altura: 19px; estouro: auto; estofamento: 6px 10px; border-radius: 3px;} pre {} cor de fundo: #f8f8f8; Border: 1px sólidos #cccccc; font-size: 13px; linha-altura: 19px; overflow: auto; Padding: 6px 10px; border-radius: 3px; } código pré, pre tt {cor de fundo: transparente; fronteira: none;}$_{html_body}“; #endregion”

Estamos quase terminando. Na última etapa, acrescentamos o “fechamento do formulário” nosso manipulador de eventos de formulário adicionado. Dentro este manipulador de eventos, podemos garantir que o gancho que usamos para pegar as mensagens do Windows quando fechar o programa é removido.

Private void Form1_FormClosing (objeto sender, FormClosingEventArgs e) {//Nachrichten-Hook remover UnhookWinEvent(hhook);}

Agora tudo está completo. Para testar, abra o bloco de notas e escrever algumas linhas de texto em formatação do Markdown. Agora compile e começamos o nosso programa. Quando a janela aparecer, um novo botão na barra de menu deve aparecer no bloco de notas.

Como funciona - com c# Markdown estender o bloco de notas

Um clique sobre o botão deve abrir outra janela na qual nosso texto Markdown processado uma vez e uma vez representado como um HTML puro.

Completo de código fonte e baixar

Foi tudo muito confuso para quem ou quem não tem tempo, achados abaixo novamente todo o código-fonte como um projeto completo do Visual Studio para download.

Perguntas, ideias, & críticas

Então estamos novamente hoje. Se você tem dúvidas, sugestões ou críticas, em seguida, escreva com apenas um comentário.

Se você tem pedidos para outros tópicos ou artigo, então que venha a mim.

Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter

7SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail

1 e 1 – em busca da Internet

Eu admito que o título parece um pouco sensacional. Ele deve também – ou seja ligeiramente sou confrontado. O seguinte artigo irá servir a múltiplos propósitos. Em primeiro lugar, quero explicar a minha provação com 1 e 1 e por outro lado, ao mesmo tempo explicar por que no momento não muito no blog faz. (Não, eu não sou humano estão justificando por tudo, mas já havia uma ou outra demanda e eu gostaria de também gostam de responder.)

A situação inicial

Desde que este ano completou o meu ensino médio e estava à procura de uma admissão dual, eu tive que afastar minha pátria (resina) para agosto.
Agora, viver, viver, aprender e trabalho desde agosto na área de Ruhr.
É tudo muito bonito aqui. Mas seria ainda melhor se eu tivesse uma conexão de Internet.
Isto tem até agora… mas infelizmente não olhar e eu tenho resumidos a seguir vezes cronologicamente porque isto é assim.

01.08.2011 em movimento

O agosto, mudei-me para meu novo apartamento e configurar nas duas semanas subsequentes primeira vez caseira me.

14.08.2011 ordem da conexão completa por 1 & 1

A 14.08 estou após período de consideração de dois dias para uma completa conexão (DSL 16000 + telefone Flatrate) decidido por 1 e 1. Meus planos reais da Internet através da conexão de cabo falhado devido à falta de uma conexão de cabo para a casa no meu apartamento é localizada.
Eu conheci a minha escolha para 1 e 1 em particular, porque as taxas foram um relativamente barato comparado a outros concorrentes (por exemplo, a Telekom) e por outro lado estou plenamente convencido do hardware fornecido (1 e 1 caixa de servidor/Fritz em casa).

16.08.2011 a nomeação de técnico

A 16,08 eu recebi um telefonema de 1 e 1 em que ele me agradeceu por ordem e queria marcar um encontro técnico comigo. Me disseram para minha decepção que as nomeações só durante a semana (segunda a sexta) poderiam ser concedidas. A meu pedido, se eu pudesse determinar o tempo, negou-o novamente e me esclarecido sobre esse tempo detalhado como “o técnico vem entre 08:00 e 16:00” não são possíveis.
Assim foi que eu me então ou para que um dia teria que levar embora para a nomeação, porque eu sabia que alguém aqui ainda, que poderia esperar o técnico no momento no meu apartamento, enquanto eu trabalho lá.

Gostaria, portanto obter a data mais cedo possível. Se isto estivesse “rápido”, é certamente nos olhos de quem vê. Tenho um compromisso para a 06.09.2011 – então três semanas depois que eu pedi a conexão de Internet. Antes que a discussão foi terminada, o 1 & 1 agente pedido em detalham me sobre minha área (rua, número da casa, localização do apartamento, localização da sala onde se encontra a conexão de escritório).

17.08 06.09.2011 – esperar

Nas três semanas, aconteceram várias coisas:

  • Por um lado, o meu pacote de hardware chegou (o novo servidor 1 & 1 em casa e telefone).
  • Eu tive uma confirmação de minha ordem e instruções para a data de engenheiro. Entre outras coisas, é quando as datas de técnico para definir uma data firme foi. Ou seja, 1-e-1 Idioma: o técnico no momento viaja e se não é no apartamento ou a porta não irá abrir, então o infrutífero de técnico com €59,90 é fornecido. Isso aliviou a minha tristeza com perdeu o dia de férias pelo menos alguma coisa. (Eu tinha certeza de que os técnicos devido a “responsabilidade” com certeza chegaria).

06.09.2011 – o dia da visita do técnico

Antes de 08:00 meu despertador – férias – tocou curto porque queria finalmente pagar a 59,90 € por um técnico perdido a qualquer preço.E então sentei-me ali, bebia café, esperado, bebia café, esperado e então já era 17:30.
Um técnico não tinha visto até então e já não devo.
Gefrustet bonita ligou em 1 e 1 e pediu que o técnico do que teria feito tudo o dia entre 08:00 e 16:00. Deixado completamente, disseram-me depois de olhar no sistema técnico de comunicação, que estas não tem encontrado o meu apartamento.
Eu fiquei mais ou pouco brava, porque eu tinha olhado do dia fora da janela e uma Technikermobil não foi sequer passou pela minha casa.
Depois que a senhora estava convencida da exatidão de minha descrição na minha área residencial, ela me disse que a única coisa que eles podiam fazer por mim foi a aquisição de um novo encontro técnico. Surpreendentemente, desta vez também no sábado, depois que eu repetidamente afirmado que meu chefe pode me dar mais nenhum cada dia. (Isto não é bem verdade, mas simplesmente não tive nenhum desejo de doar um dia de férias extra.)
Como eu disse, concordamos com a nomeação de sábado mais próxima deve não haver após meu primeiro 1- e 1 funcionário. Esta nomeação foi no incrível “futuro próximo”.
Em 1 de outubro de 2011, nada menos que um ano e meio meses após a minha ordem DSL, deve finalmente receber o ordenado de conexão. Frustrado, eu terminei a conversa.

Após um curto período de tempo da lembrança, ainda mais duas perguntas pediram-me.

  1. Como o técnico encontrar meu apartamento na 01.10, não se soubesse que não há nenhuma informação nova?
  2. Agora tenho realmente obter €59,90, porque eu não tinha, o técnico e a data era ainda um compromisso vinculativo?

Então recorreu para o ouvinte, mais uma vez ligado em 1 e 1 e pediu os dois acima perguntas. Houve respostas prompts:

  • Informações mais não podem fazer, o técnico iria encontrar o apartamento na 01.10 já. Que eventualmente mais muitas vezes antes, que os técnicos encontrar o apartamento diretamente na primeira tentativa. (Mesmo que “a perda de clientes de balões em sua porta da frente ou giz rua fora elaborou o” é possível que o técnico não pode encontrar o apartamento.) (Estes não são isoladas, sob nós, suspeito que o técnico fica mais datas do que ele cria e quando ele funciona, ele só encontra as últimas datas mais.”)
  • Não conseguiria €59,90, desde que a nomeação era ligação “unilateral”.

Eu estava surpreso quão criativo você pode colocar para fora a responsabilidade e agora completamente revoltado com as declarações sobre a ética de trabalho do técnico. Eu pedi uma solução melhor para a minha situação, e foi posto para a gestão de’ linha’.
Aí, eu disse minha provação pela terceira vez em uma hora. Aqui você me mostrou compreensão pela primeira vez. Prometeram-me um crédito para 40 € em seu primeiro projeto para compensar o dia perdido. Pelo menos uma vez um pequeno consolo.
Além disso, você se perguntou se você deve dar meu número de telemóvel para o técnico, então isto poderia me contatar novamente pouco antes da minha consulta. (Por que não-que na verdade os três primeiros funcionários 1 & 1?) Acalmado um pouco a chamada foi finalizada.

Agora diz que espera. Espera, se o técnico vem realmente a 01.10. E a esperança. Espero que finalmente ter uma conexão de Internet. Meses de um ano e meio após a ordem.

Sugestões e dicas para novos compradores no 1 & 1

  • Ao escolher uma nomeação de técnico são possíveis também aos sábados. (Além disso, se você disse isso não é possível. Ligar – se)!
  • Nas direções você deve hedge.

Descreva a situação alguns incl. de todos os detalhes.

  • Pergunte ao pessoal de 1 & 1 para dar o seu número de telefone para o técnico. (Se uma equipa 1 & 1 lhe pedirá o seu número, este é o 1 – e 1-somente para uso interno. Então seu número, apropriadamente o suficiente, é passado, eles devem já estar ativos.
  • Você também deve deixar esquecer por todos os bons espíritos do engenheiro foi ser chamada como atendimento ao cliente, até que você concorda mas um crédito. Esta exigência provavelmente como minhas ligações múltiplas. Mas em algum momento você vai pegar já uma equipe de “cliente-amigável”.
  • Trazer a paciência e esperança!
  • Tanto como até hoje. Se há algo novo e mais uma vez visito alguém com acesso à Internet, porque a Internet móvel não é utilizável por causa da recepção no meu apartamento, vou mantê-lo atualizado!

    Muitos cumprimentos,
    Raffi

    p.s.: Se Marcel Davis tanto tempo esperou na sua conexão de Internet?

    Edit (11.10.2011): Há novos 1 & 1 Veja aqui:
    http://Code-Bude.net/2011/10/11/1und1-eine-Unendliche-Geschichte/

    Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter

    12SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail

    3 passos para a página Web concluído [post patrocinado]

    Você quer criar seu próprio site ou criar um blog? Antes de começar a se preocupar com esquemas de cores e nomes de domínio, você deve decidir em que plataforma você gostaria de construir o seu site. Isto é para ser nosso passo 1 – a escolha de uma correta e adequada para a plataforma. O que eu entendo sob “plataforma“?

    Anteriormente, a maioria das páginas com HTML (código), CSS e até mesmo Flash foram construída, que foi bastante demorado e difícil de dominar. Esta é a razão por que a maioria das pessoas ainda acho que construir um site do chão difícil e exige muitas habilidades de codificação ou design. Mas isso já não é verdade! Chamados sistemas de gerenciamento de conteúdo (CMS) como WordPress feito fácil a criação de um site para todos. O que é um sistema de gerenciamento de conteúdo? Isto é sobre uma plataforma amigável para a criação de Web sites e gerenciar seu online conteúdo é sem precisar codificar as páginas HTML diretamente. Quase metade das páginas da Web na plataforma WordPress site funcionando na Internet.

    Surge a seguinte pergunta: porquê do WordPress e não um construtor de site? Existem algumas razões para chamar. Por agora, o WordPress é totalmente gratuito e oferece muitos layouts / temas para escolher. Em segundo lugar, é muito Anfängerfreundlich. Se você pode trabalhar com o Microsoft Word, então você já sabe como você adicionar seu próprio conteúdo. WordPress pode ser estendido com plugins gratuitos, dependendo o que seu site tem que atender. Com plugins você pode implementar etc. como entrar em contato com formulários, formulários de inscrição, galerias de imagens em seu site. WordPress é usado por eBay, Mozilla, Reuters, CNN, Google ventures e até mesmo a NASA . Seu site vai ser responsivo. Isto significa que é jogado perfeitamente em qualquer dispositivo móvel, Smartphone ou Tablet . Além disso, você tem um apoio total da comunidade de desenvolvedores. Além disso, o WordPress tem muitos recursos livres no YouTube, bem como no fórum de suporte.

    Claro, claro, existem outros provedores, talvez o nome Drupal ou Joomla dizer alguma coisa. Drupal é uma plataforma muito poderosa que é popular entre os desenvolvedores Web e programadores experientes, mas tem uma curva de aprendizagem muito íngreme, tornando-se uma má escolha para iniciantes. Joomla eust semelhante ao WordPress e obras excelentes para Web sites também, mas requer noções básicas de tecnologia de informação e codificação para que tudo funcione, precisa gosto de você. Então, sugiro que você definitivamente WordPress. É a plataforma mais fácil que eu já trabalhei, mas é flexível o suficiente para atender a todos os Bedüfrnisse pelos proprietários de pequenas empresas e freelancers de artistas criativos e blogueiros.

    Etapa 2 explica como corretamente para escolher um nome de domínio e um host. (Se você já tem um nome de domínio e hospedagem, você pode ir sobre a mesma 3 etapa!)

    Para obter um novo site on-line, você deve atender 2 condições : escolha um nome de domínio (um endereço da Web como yoursitename.com) e optar por um serviço de hospedagem (um serviço que conecta o seu site para a Internet). A plataforma WordPress em si é livre, mas um nome de domínio e Hospedagem de custa em torno de 3 a 5 € por mês. Você pode usar também o nome de domínio do WordPress, apenas parece menos grave em comparação com seu próprio nome. Também, se você comprar um host, você receberá grátis nome de domínio de Internet. Por outro lado, o próprio hospedagem fará com que seu site carrega rápido o suficiente.

    Se você quer criar um site para sua empresa, seu nome de domínio deve corresponder o nome da empresa.Exemplo: DeinFirmenname.com. Se você planeja criar um site pessoal, DeinName.com pode ser uma boa opção. De nomes de domínio termina com. com,. org ou .NET mas apareceu nos últimos meses um grande número de extensões de domínio, tais como a agência ou. pizza. Meu conselho: Evite extensões estranhas e escolher o besten.com, .net, ou. org. Nomes de domínio curto, poderoso e claras são mais fáceis de lembrar. Se seu nome de domínio é muito difuso, muito longo ou escrito de uma forma estranha, o visitante pode facilmente esquecê-lo. Então, certifique-se de que é sons inesquecíveis.

    Etapa 3

    Uma vez você comprou seu nome de domínio e configurar seu serviço de hospedagem, você está no caminho certo! Agora é nosso objetivo de trazer o seu site instalado e funcionando. A primeira coisa que você precisa fazer é instalar o WordPress em seu domínio. Instale o WordPress em de duas maneiras:

    1 1-clique em-instalar

    Qualquer empresa de hospedagem confiável e estabelecida tem uma integrada 1-clique em instalar para WordPress. Aqui estão os passos que precisa seguir:

    1. Login em sua conta de hospedagem.
    2. Vá para o painel de controle.
    3. Encontre o ícone “WordPress” ou “Site”.
    4. Escolha o domínio no qual você deseja instalar o seu site.
    5. Clique no botão “Instalar agora” e obter acesso ao seu novo site de WordPress.
    1. Manual de instalação

    Se por qualquer razão, não há ainda nenhuma 1-clique em-instalar na sua hospedagem, você pode instalá-lo manualmente. Você pode encontrar as instruções na Netz.Sobald WordPress ter instalado com sucesso no seu domínio, você receberá um site muito simples, mas ainda limpo. Agora, você precisa de apenas um modelo de design que faz com que seu site olhar original. Para iniciar a sessão para o painel do WordPress, escolha na barra lateral “design” e, em seguida, clique em “temas“. Uma vez no painel de controle, você tem temas de acesso a milhares de belas, profissionalmente projetado, que você pode escolher e personalizar para o seu site. Se você estava procurando em tudo, mas ainda não estiver satisfeito, você pode encontrar uma enorme biblioteca de modelos no site TemplateMonster. Depois de ter encontrado seu tema, clique simplesmente primeiro clique em “instalar” e clique em “permitir“.

    IMPORTANTE: quando você alterar o design seus posts anteriores, páginas e conteúdo não é removida. Você pode alterar os temas quantas vezes quiser, sem pensar, que o que está perdido. Também recomendo a amigos a instalação de plug-ins para estender os recursos do WordPress. Para instalar plugins, vá para“Plugins ->”Adicionar nova“e iniciar a pesquisa. Lembre-se que existem mais de 25.000 diferentes plug-ins gratuitos, então tem um monte de plugins para escolher! A instalação é muito simples, uma vez que você encontrar um plugin, basta clicar noinstalar “. Para poupar tempo, juntos criaram uma lista dos plugins mais populares, achar úteis webmaster:

    • Entre em contato com o formulário 7: meu site também tem esse formulário de contato. É uma característica brilhante porque pessoas podem preencher o formulário e com seu email provedor lhe enviaremos um e-mail sem registro.
    • Yoast SEO para WordPress: se você quiser fazer seu WordPress site SEO mais amigável, este plugin é necessário. É gratuito e só planície incrível. Você será capaz de editar as tags de título, meta descrições e muito mais diretamente na página.
    • Google Analytics: Interessado na análise do seu tráfego de visitantes? Então você deve Certifique-se de instalar o plugin, vinculá-lo com sua conta do Google e começar.

    Se você seguir todos os passos descritos, você receberá um site WordPress totalmente funcional! Finalmente, não se esqueça sobre a otimização de seu Web site. Como eu mencionei antes, o WordPress é muito personalizável, então não será muito difícil para você. Desejo-lhe muita diversão com seu projeto e crescimento. Agora você está pronto para ir!

    TemplateMonster Sobre o autor: Este artigo, bem como 0 por TemplateMonster foram outros itens no código-bude.net, escritos. -Nós oferecemos temas de alta qualidade de Template Monster desde 2002. No decorrer dos últimos 15 anos, fizemos cerca de 1.750.000 companhia, com base em nossos modelos para construir websites rentáveis / / email

    0SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail

    1 e 1 – um fim à vista?

    bom suporte 1 & 1 - um fim à vista? E novamente meu 1 & notícia de 1 negócio.

    11.10.2011 é gesocialt!

    Logo após a publicação do meu segundo blog posts, 1 & 1 do homem do mídia social comigo através do Twitter na verdade tem relatado. Não minha. Algumas mensagens diretas (incluindo outra desculpa) mais tarde, você me prometeu uma rápida conclusão de meu problema e a recuperação do meu fracasso.

    12.10.2011-Twitter a segunda…

    Ontem, às 12.10, havia ainda duas mensagens mais diretas no Twitter, onde fui informado que meu fracasso foi já foi fechado porque supostamente nenhum erro para detectar se. Você ainda consegue entender minhas queixas por parte de 1 e 1, meu fracasso foi reaberto.

    13.10.2011 tudo bem?

    Esta manhã recebi um SMS, que todos os problemas são resolvidos e fecharam o meu fracasso. Som em si já vezes bem.
    Ao meio-dia, foi ainda melhor. Eu recebi um telefonema de 1 e 1, e que me disseram iria ter percebido meus Tweets, bem como a minha Blogpostings e me arrependeria muito minha história DSL. Como compensação foi me ofereceu para assumir uma taxa mês (€29,99). Como eu fui para o prometido me 40 € (ver primeiro blog post, seção ano) pediu, me disseram, que de nada no sistema de faturamento enfrentaria. Após uma breve explicação dos eventos do ano, você se lembrava no entanto e pediu-me para ser paciente enquanto você queria esclarecer este “novos conhecimentos” com mais alto a pessoa na empresa.
    15 minutos depois recebeu outro telefonema e foi premiado com a 29,90 € e 40 €. Chamo-me mas nem esse prêmio de consolação. Neste ponto um sério usa, sincero obrigado. As pessoas sabem como você pode votar em mim graciosamente.

    Toda a situação foi coberta apenas pelo fato de que a segunda chamada foi interrompida por queda de DSL (e, portanto, também o telefone de VoIP). Como o pessoal me chamou de volta e eu fazer-lhe compreender que não eu, mas minha conexão DSL “lançou”, eu não pude resistir uma risada me.

    Eu poderia dizer a propósito super o ranger dos dentes e a cabeça vermelha do funcionário por telefone. É claro. Non-encerramento.

    Então o comando voltar. crédito de €69,90 foram detidos e abriu minha culpa novamente.

    13.10.11 – SMS misterioso

    Aparentemente parece lento mesmo no “clientes que realmente está queimando ‘ equipe ter chegado por volta das 16:30, recebi uma SMS com outras notícias? Os meninos e meninas de 1 e 1 jogaram hoje material real está lá dentro.
    Era a única coisa estranha sobre o SMS, que havia, teria tentado sem sucesso chegar a mim, porque você queria me enviar um novo pacote de hardware por telefone. Eu estava no entanto indisponível, você teria me enviado já um e-mail com todas as informações. Não é estranho? Sim, você precisa saber apenas que eu recebi uma chamada perdida de telefone ou um e-mail.
    Um pouco confuso, eu tentei a linha 1 e 1, com o resultado que você também não poderia explicá-la com as chamadas de telefone e e-mail – na verdade ainda não é enviada depois de uma breve investigação – porque ela teria revisado por um empregado mais uma vez necessidade de ser.
    Sem mais DELONGAS, você explicou a situação ao telefone. Nos próximos dias, eu pegaria um pacote com a ladainha cheia do roteador (no meu caso um 7320 Fritzbox) enviado para. Mediante o documento final de retorno fechado, pode, em seguida, retornar minha velha caixa de Fritz e então instalaram todos os problemas. Estou curioso.Que teria sido de alguma forma muito fácil, mas estou feliz por me ensinar melhor.

    13.10.11 – você recebeu uma carta!

    É 20:11 e o email está lá. Sim, exatamente o e-mail acima que deveria ser o SMS, foi hoje às 16:30. 😉

    Conclusão

    Vamos ver o que o futuro traz. O que eu entretanto já sabe é que o apoio surpreendeu-me positivamente nos últimos três dias. Certamente deve ser a norma que um só deve escrever alguns blog posts para obter atenção suficiente, no entanto, foi super bem então. Amo tanto 1 & 1 do pessoal, se você também ler o artigo, você pode bater por favor uma vez vigorosamente nos últimos três dias de suporte em meu nome no ombro.

    Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter

    3SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail

    Ativar preenchimento automático do aka IntelliSense no bloco de notas + +

    O notepad + + patch Quem já trabalhou com o Visual Studio da Microsoft, o IntelliSense conhecemos e amamos. O preenchimento automático ao escrever o código-fonte é uma boa obra. Quem escreve seus roteiros com o Notepad + + mas prefiro, deve renunciar não é bem o preenchimento automático.

    Porque até mesmo o bloco de notas + + vem com um preenchimento automático. Ela deve ser habilitada somente. E como deve ser apontada a seguir.

    Etapa 1:

    O notepad + + _intellisense_autovervollständigung_aktivieren_1 O notepad + + _intellisense_autovervollständigung_aktivieren_2

    Abre a janela de opções e alterna para a aba “backup/AutoCompletar”. Cada um coloca uma marca de seleção “Ativar AutoCompletar” e “Mostrar parâmetros de função”.

    Etapa 2:

    O notepad + + _intellisense_autovervollständigung_aktivieren_3

    De agora em diante Notpad + + deve sugerir o mais comumente usado funções respectivas linguagem de programação/script de idioma enquanto você digita você.

    Não com IntelliSense do Microsoft característica é certeza comparar, mas facilita o trabalho, no entanto, imensamente. E o Notepad + + é também as um ou dois megabytes ao contrário para o Visual Studio pequeno e de forma gratuita.
    Muito ruim, só acho que você só pode ativar o AutoCompletar no bloco de notas + + com a mão. Claro, existem apenas 2-3 cliques, mas que não é uma “configuração notória através de escavadores”, como eu normalmente não entra o gosto de truques tão agradável.

    Bem, você já sabia esse recurso? Ou use mesmo um editor completamente diferente?

    Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores. Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter

    1SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail

    Impressão – código-bude.net

    Informações de acordo com o § 5 TMG:

    Raphael Hammond
    Neusser Str.. 3
    40667 Meerbusch

    Contato:

    Telefone: + 49 2132-9799937E-Mail:webmaster@code-bude.net

    Responsável pelo conteúdo de acordo com § 55 ABS 2 RStV:

    Raphael Hammond
    Carlos Borges rota 64
    40667 Meerbusch

    Disclaimer (Disclaimer)

    Responsabilidade pelo conteúdo

    Como prestadora de serviços estamos nos termos do § 7. 1 TMG para próprio conteúdo nestas páginas sob as leis gerais responsáveis. De acordo com § § TMG de 8 a 10, não somos obrigados a monitorar transmitido ou armazenado informações estrangeiras ou qualquer circunstância que aponte para uma atividade ilegal como um prestador de serviços. Obrigações para remover ou bloquear o uso de informações de acordo com as leis gerais permanecem inalteradas. Uma responsabilidade apenas é possível a partir da data do conhecimento de uma infracção concreta. Quando é conhecido de rompimentos adequado lei removeremos este conteúdo imediatamente.

    Responsabilidade para links

    Nossa oferta contém links para sites externos de terceiros, cujo conteúdo não temos influência. Portanto, podemos assumir qualquer responsabilidade por este conteúdo estrangeiro. O conteúdo do vinculado lados sempre o respectivo fornecedor ou operador desses sites é responsável. Os locais referenciados foram verificados no momento da ligação para possíveis violações da lei. Conteúdos ilegais não eram reconhecíveis no momento da ligação. No entanto, um controle permanente dos sites vinculados não é razoável sem provas concretas de uma violação da lei. Quando se tornar ciente das violações, Nós removeremos imediatamente tais ligações.

    Direitos autorais

    O conteúdo criado pelos operadores local e obras nestas páginas estão sujeitas a lei alemã de direitos autorais. A reprodução, edição, distribuição e qualquer tipo de exploração fora dos limites da lei de direitos autorais exigem o consentimento por escrito do respectivo autor ou criador. Downloads e cópias deste site são permitidas para uso privado, não comercial. Na medida em que o conteúdo deste site não pelo operador foram criados, os direitos autorais são respeitados de terceiros. Em particular, o conteúdo identificado terceiros como tal. Se você tomar conhecimento de uma violação de direitos autorais, pedimos uma dica. Quando se tornar ciente das violações, Nós removeremos imediatamente tal conteúdo.

    Fonte: Disclaimer eRecht24, eRecht24 Disclaimer