1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. bernd670

Beiträge von bernd670

  • houston we have problem - Neustartproblem

    • bernd670
    • 30. Oktober 2006 um 21:30

    Hallo!

    Was muh_kuh mit

    Zitat

    hallo
    nicht RunOn


    sagen wollte ist (nehnme ich mal an), das es neben dem Schlüssel Run auch noch den Schlüssel RunOnce gibt, Programme die da eingetragen werden, werden nur beim nächsten Systemstart ausgeführt und der Eintrag wird automatisch gelöscht. Du brauchst den Eintrag also nicht selbst zu löschen!

    muh_kuh vllt solltest Du, wenn Du was zum Thema sagen(schreiben) willst, das etwas ausführlicher tun, Danke!

  • Code tags erneuern

    • bernd670
    • 29. Oktober 2006 um 21:12

    Hallo!

    Ich hatte Gun-Food schon mal die Lösung für das Problem mit den Zeilennummern zukommen lassen, ich habe eine Möglichkeit gefunden die Zeilennummern so anzeigen zu lassen das sie beim kopieren nicht mitkopiert werden!

    Hier mal die code_parse.php (evtl. muss die Funktion codeformat noch etwas angepasst werden):

    Spoiler anzeigen
    PHP
    <?php
    // ************************************************************************************//
    // * WoltLab Burning Board 2
    // ************************************************************************************//
    // * Copyright (c) 2001-2004 WoltLab GmbH
    // * Web           http://www.woltlab.de/
    // * License       http://www.woltlab.de/products/burning_board/license_en.php
    // *               http://www.woltlab.de/products/burning_board/license.php
    // ************************************************************************************//
    // * WoltLab Burning Board 2 is NOT free software.
    // * You may not redistribute this package or any of it's files.
    // ************************************************************************************//
    // * $Date: 2006-06-26 15:08:03 +0200 (Mo, 26 Jun 2006) $
    // * $Author: Burntime $
    // * $Rev: 1705 $
    // ************************************************************************************//
    
    
    require_once("geshi/geshi.php");         // added for AutoIt-Code 
    
    
    class parse {
    	var $search = array();
    	var $replace = array();
    	var $replace2 = array();
    
    	var $smilie_search = array();
    	var $smilie_replace = array();
    	var $smilie_search2 = array();
    	var $smilie_replace2 = array();
    
    	var $wrapwidth = 75;
    	var $hilight = '';
    	var $showimages = 0;
    	var $docensor = 0;
    	var $censorwords = array();
    	var $censorcover = '';
    	var $imgsearch = '';
    	var $imgreplace = '';
    	var $imgsearch2 = '';
    	var $imgreplace2 = '';
    	var $censorsearch = array();
    	var $censorreplace = array();
    
    	var $done = array(); 
    	var $cuturls = 0;
    	var $linenumbers = 1;
    
    	// (php - ) & code parse 
    	var $usecode = 0;
    	var $index = array();
    	var $hash = '';
    	var $tempsave = array();
    
    	var $hilightSearch = '';
    	var $hilightReplace = '';
    
    	var $useCaching = 0;
    	var $urlCache = array();
    	var $breakChar = '';
    
    	function parse($docensor = 0, $wrapwidth = 0, $showimages = 0, $hilight = '', $usecode = 1, $cuturls = 1, $useCaching = 0) {
    		$this->breakChar = chr(160);
    		$this->done = array('bbcode' => 0, 'smilies' => 0);  
    		$this->useCaching = $useCaching;
    
    		if ($hilight) $this->hilight = urldecode($hilight);
    		if ($docensor == 1) {
    			$this->docensor = 1;
    			global $censorwords, $censorcover;
    			$this->censorwords = explode("\n", preg_replace("/\s*\n\s*/", "\n", wbb_trim($censorwords)));
    			$this->censorcover = $censorcover;
    		}
    		if ($wrapwidth) $this->wrapwidth = $wrapwidth;
    		if ($showimages) $this->showimages = $showimages;
    		$this->prepareimages();
    		$this->cuturls = $cuturls;
    
    		if ($usecode == 1) $this->usecode = 1;
    
    		$this->generateHash();
    	}
    
    	function getsmilies() {
    		global $db, $n, $lang;
    		$i = 0;
    		$result = $db->unbuffered_query("SELECT smilieid, smiliecode, smiliepath, smilietitle FROM bb".$n."_smilies ORDER BY smilieorder ASC");
    		while ($row = $db->fetch_array($result)) {
    			$row['smilietitle'] = getlangvar($row['smilietitle'], $lang);
    
    			$this->smilie_search[] = "/".$this->preg_quote($row['smiliecode'])."/";
    			$this->smilie_replace[] = $this->breakChar . "{".$this->hash."_".$row['smilieid']."}" . $this->breakChar;
    
    			$this->smilie_search2[] = "/{".$this->hash."_".$row['smilieid']."}/";
    			if ($this->useCaching) $row['smiliepath'] = str_replace("{imagefolder}", "@@@imagefolder@@@", $row['smiliepath']);
    			$this->smilie_replace2[] = makeimgtag($row['smiliepath'], $row['smilietitle'], 0) . "\n";
    		}
    
    		$this->done['smilies'] = 1;
    	}
    
    
    	function getHilight($forBBCode = false) {
    		global $minwordlength;
    
    		if ($this->done['hilight'] == 1 && $forBBCode) {
    			if ($this->hilightSearch != '') {			
    				$this->search[] = $this->hilightSearch;
    				$this->replace[] = $this->hilightReplace;
    				$this->replace2[] = '\\0';
    			}
    
    			return;
    		}
    
    
    		if ($this->hilight) {
    			$hilightwords = preg_replace("/[\/:;'\"\(\)\[\]?!#{}%\-+\\\\]/s", "", str_replace("/", "\/", quotemeta($this->hilight)));
    			$hilightwords = preg_replace("/\s{2,}/", " ", $hilightwords);
    			$hilightwords = preg_split("/[\s]/", wbb_strtolower($hilightwords), - 1, PREG_SPLIT_NO_EMPTY);
    			while (list($key, $word) = each($hilightwords)) {
    				if ($word == "and" || $word == "or" || $word == "not" || wbb_strlen($word) < $minwordlength) continue;
    
    				$word = addcslashes($word, '.|$=<>^');
    
    				$word = str_replace("*", "[0-9a-z]*", $word);
    				$word = str_replace("_", "[0-9a-z]{1}", $word);
    
    				if (!isset($hilightstring)) $hilightstring = $word;
    				else $hilightstring .= "|".$word;
    			}
    			if (isset($hilightstring)) {
    				$this->hilightSearch = "/(^|\s|\]|>|\")($hilightstring)(([,\.]{1}[\s[\"<$]+)|\s|\[|\"|<|$)/i";;
    				$this->hilightReplace = "\\1<span class=\"highlight\">\\2</span>\\3"; 
    
    				if ($forBBCode) {
    					$this->search[] = $this->hilightSearch;
    					$this->replace[] = $this->hilightReplace;
    					$this->replace2[] = '\\0';
    				}
    			}
    		}
    
    		$this->done['hilight'] = 1;
    	}
    
    
    	function insertBreakChar($text) {
    		$text = preg_replace("/([^\n\r ]{".($this->wrapwidth - 1)."})/i", "\\1$this->breakChar", $text);
    		return $text;
    	}
    
    
    	function getbbcode() {
    		global $db, $n, $style, $lang;
    
    		$this->search[] = "/\[list=(&quot;|['\"]?)([^\"']+)\\1](.+)\[\/list((=\\1[^\"']+\\1])|(\]))/esiU";
    		$this->replace[] = "\$this->formatlist('\\3', '\\2')"; 
    		$this->search[] = "/\[list](.+)\[\/list\]/esiU";	
    		$this->replace[] = "\$this->formatlist('\\1')"; 
    		$this->search[] = "/\[url=(&quot;|['\"]?)([^\"']+)\\1](.+)\[\/url\]/esiU";
    		$this->replace[] = "\$this->formaturl('\\2','\\3')";
    		$this->search[] = "/\[url]([^\"\[]+)\[\/url\]/eiU";
    		$this->replace[] = "\$this->formaturl('\\1')";
    		$this->search[] = "/javascript:/i";
    		$this->replace[] = "java script:";
    		$this->search[] = "/vbscript:/i";
    		$this->replace[] = "vb script:";
    		$this->search[] = "/about:/i";
    		$this->replace[] = "about :";
    
    		// avoid wrapping
    		$this->replace2[] = "'$this->breakChar[list=\\1$this->breakChar\\2$this->breakChar\\1]$this->breakChar'.\$this->stripSlashes('\\3').'$this->breakChar[/list=\\1$this->breakChar\\2$this->breakChar\\1]$this->breakChar'"; 
    		$this->replace2[] = "'$this->breakChar[list]$this->breakChar'.\$this->stripSlashes('\\1').'$this->breakChar[/list]$this->breakChar'"; 
    		$this->replace2[] = "'$this->breakChar[url=\\1$this->breakChar'.\$this->insertBreakChar('\\2').'$this->breakChar\\1]$this->breakChar'.\$this->stripSlashes('\\3').'$this->breakChar[/url]$this->breakChar'";
    		$this->replace2[] = "'$this->breakChar[url]$this->breakChar' . \$this->insertBreakChar('\\1') . '$this->breakChar[/url]$this->breakChar'";
    		$this->replace2[] = "\\0";
    		$this->replace2[] = "\\0";
    		$this->replace2[] = "\\0";
    
    		$this->getHilight(true);
    
    		$threeparams = "/\[%s=(&quot;|['\"]?)(%s),(%s)\\1](%s)\[\/%s\]/siU";
    		$twoparams = "/\[%s=(&quot;|['\"]?)(%s)\\1](%s)\[\/%s\]/siU";
    		$oneparam = "/\[%s](%s)\[\/%s\]/siU"; 
    
    		$result = $db->unbuffered_query("SELECT bbcodetag, bbcodereplacement, params, multiuse, pattern1, pattern2, pattern3, eval_replacement FROM bb".$n."_bbcodes ORDER BY params ASC");
    
    		while ($row = $db->fetch_array($result)) {
    			if ($row['params'] == 1) {
    				if (!$row['pattern1']) $row['pattern1'] = ".*";
    				$search = sprintf($oneparam, $row['bbcodetag'], $row['pattern1'], $row['bbcodetag']);
    
    				$replace2 = "$this->breakChar[".$row['bbcodetag']."]$this->breakChar\\1$this->breakChar[/".$row['bbcodetag']."]$this->breakChar";
    			}
    			if ($row['params'] == 2) {
    				if (!$row['pattern1']) $row['pattern1'] = "[^\"']+";
    				if (!$row['pattern2']) $row['pattern2'] = ".*";
    				$search = sprintf($twoparams, $row['bbcodetag'], $row['pattern1'], $row['pattern2'], $row['bbcodetag']);
    
    				$replace2 = "$this->breakChar[".$row['bbcodetag']."=\\1$this->breakChar\\2$this->breakChar\\1]$this->breakChar\\3$this->breakChar[/".$row['bbcodetag']."]$this->breakChar";
    			}
    			if ($row['params'] == 3) {
    				if (!$row['pattern1']) $row['pattern1'] = "[^\"']+";
    				if (!$row['pattern2']) $row['pattern2'] = "[^\"']+";
    				if (!$row['pattern3']) $row['pattern3'] = ".*";
    				$search = sprintf($threeparams, $row['bbcodetag'], $row['pattern1'], $row['pattern2'], $row['pattern3'], $row['bbcodetag']);
    
    				$replace2 = "$this->breakChar[".$row['bbcodetag']."=\\1$this->breakChar\\2$this->breakChar,$this->breakChar\\3$this->breakChar\\1]$this->breakChar\\4$this->breakChar[/".$row['bbcodetag']."]$this->breakChar";
    			}
    
    			if ($row['eval_replacement'] == 1) {
    				eval("\$row['bbcodereplacement'] = \"".addcslashes($row['bbcodereplacement'], "\"\\")."\";");
    			}
    
    			for ($i = 0; $i < $row['multiuse']; $i++) {
    				$this->search[] = $search;
    				$this->replace[] = $row['bbcodereplacement'];
    				$this->replace2[] = $replace2;
    			}
    		}
    		$this->done['bbcode'] = 1;
    	}
    
    	function prepareimages() {
    		global $allowdynimg;
    
    		if ($allowdynimg == 1) $this->imgsearch = "/\[img]([^\"]+)\[\/img\]/siU";
    		else $this->imgsearch = "/\[img]([^\"\?\&]+\.(gif|jpg|jpeg|bmp|png))\[\/img\]/siU";
    		if ($this->showimages == 1) $this->imgreplace = "<img src=\"\\1\" alt=\"\" border=\"0\" class=\"resizeImage\" />";
    		else $this->imgreplace = "<a href=\"\\1\" target=\"_blank\">\\1</a>";
    
    		if ($allowdynimg == 1) $this->imgsearch2 = "/\[img]([^\"]+)\[\/img\]/esiU";
    		else $this->imgsearch2 = "/\[img]([^\"\?\&]+\.(gif|jpg|jpeg|bmp|png))\[\/img\]/esiU";
    		$this->imgreplace2 = "'$this->breakChar[img]$this->breakChar' . \$this->insertBreakChar('\\1') . '$this->breakChar[/img]$this->breakChar'";
    	}
    
    	function censor($post) {
    		if (count($this->censorsearch) == 0 || count($this->censorreplace) == 0) {
    			reset($this->censorwords);
    			while (list($key, $censor) = each($this->censorwords)) {
    				$censor = wbb_trim($censor);
    				if (!$censor) continue;
    
    				if (preg_match("/\{([^=]+)=([^=]*)\}/si", $censor, $exp)) {  
    					$this->censorsearch[] = "/(^|\s|\]|>|\")(".$this->preg_quote($exp[1]).")(([,\.]{1}[\s[\"<$]+)|\s|\[|\"|<|$)/i";                		
    					$this->censorreplace[] = "\\1".$exp[2]."\\3";
    				}
    				elseif (preg_match("/\{([^=]+)\}/si", $censor, $exp)) {
    					$this->censorsearch[] = "/(^|\s|\]|>|\")(".$this->preg_quote($exp[1]).")(([,\.]{1}[\s[\"<$]+)|\s|\[|\"|<|$)/i";
    					$this->censorreplace[] = "\\1".str_repeat($this->censorcover, wbb_strlen($exp[1]))."\\3";
    				}
    				elseif (preg_match("/([^=]+)=([^=]*)/si", $censor, $exp)) {
    					$this->censorsearch[] = "/".$this->preg_quote($exp[1])."/i";
    					$this->censorreplace[] = $exp[2];
    				}
    				else {
    					$this->censorsearch[] = "/".$this->preg_quote($censor)."/i";
    					$this->censorreplace[] = str_repeat($this->censorcover, wbb_strlen($censor));
    				}
    			}
    		}
    		if (count($this->censorsearch) > 0 && count($this->censorreplace) > 0) return preg_replace($this->censorsearch, $this->censorreplace, $post);
    		else return $post;
    	}
    
    	function doparse($post, $allowsmilies, $allowhtml, $allowbbcode, $allowimages) {
    		// censorship
    		if ($this->docensor == 1) $post = $this->censor($post);
    
    		// cache code
    		if ($this->usecode == 1 && $allowbbcode == 1) {
    			$this->tempsave['autoit'] = array();            // added for AutoIt-Code
    			$this->tempsave['php'] = array();
    			$this->tempsave['code'] = array();
    			$this->index['autoit'] = -1;                    // added for AutoIt-Code
    			$this->index['php'] = -1;
    			$this->index['code'] = -1;
                // next Line changed for AutoIt-Code
    			$post = preg_replace("/(\[(autoit|php|code)\])(.*)(\[\/\\2\])/seiU", "\$this->cachecode('\\3','\\2')", $post);
    			//~ $post = preg_replace("/(\[(php|code)\])(.*)(\[\/\\2\])/seiU", "\$this->cachecode('\\3','\\2')", $post);
    		}
    
    		// avoid bbcode wrapping
    		if ($allowbbcode == 1) {
    			if ($this->done['bbcode'] != 1) $this->getbbcode(); 
    			$post = preg_replace($this->search, $this->replace2, $post);
    			if ($allowimages != 0) $post = preg_replace($this->imgsearch2, $this->imgreplace2, $post);
    		}
    
    		// cache smilies
    		if ($allowsmilies == 1) {
    			if ($this->done['smilies'] != 1) $this->getsmilies(); 
    
    			$post = preg_replace($this->smilie_search, $this->smilie_replace, $post);
    		}
    
    		// wrap text
    		$post = $this->textwrap($post);
    
    		// remove break chars
    		if ($allowbbcode == 1) {
    			$post = str_replace($this->breakChar, '', $post);
    		}
    
    		// remove tab
    		$post = str_replace("\t", " ", $post);
    
    		// html  
    		if ($allowhtml == 0) {
    			$post = htmlconverter($post);
    			$post = nl2br($post);
    		}
    		else $post = preg_replace("/<([\/]?)script([^>]*)>/i", "&lt;\\1script\\2&gt;", $post);
    
    		// bbcodes
    		if ($allowbbcode == 1) {
    			if ($this->done['bbcode'] != 1) $this->getbbcode(); 
    			$post = preg_replace($this->search, $this->replace, $post);
    		}
    		else {
    			$post = preg_replace("/javascript:/i", "java script:", $post);
    			$post = preg_replace("/vbscript:/i", "vb script:", $post);
    		}
    
    		// images
    		if ($allowimages != 0) $post = preg_replace($this->imgsearch, $this->imgreplace, $post);
    
    		// replace smilies
    		if ($allowsmilies == 1) $post = preg_replace($this->smilie_search2, $this->smilie_replace2, $post);
    
    		// insert code
            // next line changed for AutoIt-Code
    		if ($this->usecode == 1 && $allowbbcode == 1 && ($this->index['autoit'] != -1 || $this->index['php'] != -1 || $this->index['code'] != -1)) $post = $this->replacecode($post);
    		//~ if ($this->usecode == 1 && $allowbbcode == 1 && ($this->index['php'] != -1 || $this->index['code'] != -1)) $post = $this->replacecode($post);
    
    		return $post;
    	}
    
    	function textwrap($text) {
    		if ($text && wbb_strlen($text) > $this->wrapwidth) {
    			$text = preg_replace("/([^\n\r$this->breakChar ]{".$this->wrapwidth."})/i", " \\1\n", $text);
    			return $text;
    		}
    		else return $text;
    	}
    
    
    	function cachecode($code, $mode) {
    		$mode = wbb_strtolower($mode);
    		$this->index[$mode]++;
    		$this->tempsave[$mode][$this->index[$mode]] = $code;
    		return "{".$this->hash."_".$mode."_".$this->index[$mode]."}";
    	}
    
    	function replacecode($post) {
    		reset($this->tempsave);
    		while (list($mode, $val) = each($this->tempsave)) {
    			while (list($varnr, $code) = each($val)) $post = str_replace("{".$this->hash."_".$mode."_".$varnr."}", $this->codeformat($code, $mode), $post);
    		}
    		return $post;
    	}
    
    	function stripSlashes($text) {
    		return str_replace("\\\"", "\"", $text);
    	}
    
    	function codeformat($code, $mode) {
            global $tpl, $phpversion, $style, $lang, $filename;
    
    		if ($mode == "autoit") {            // added for AutoIt-Code
    			$code = $this->stripSlashes($code);
    
    
                $geshi = new geshi($code, 'autoit32', 'geshi/geshi');
                $geshi->set_header_type(GESHI_HEADER_PRE);    
    
    
                // style an Geshi übergeben
                $geshiStyle = '';
                if($style['smallfontsize'] != "") $geshiStyle .= 'font-size: '.($style['smallfontsize']).'px;';
                else $geshiStyle .= 'font-size: 11px;';
                if($style['smallfontface'] != "") $geshiStyle .= 'font-family: '.$style['smallfontface'].';';
                else $geshiStyle .= 'font-family: Courier New, Tahoma, Helvetica;';
                if($style['smallfontcolor'] != "") $geshiStyle .= 'color: '.$style['smallfontcolor'].';';
                $geshiStyle .= 'line-height:140%;';
                $geshiStyle .= $style['smallfontmore'];
    
                $geshi->set_overall_style($geshiStyle,true);
    
                if ($this->linenumbers == 1) {
                    $linenumbers = $this->makeLineNumbers($code);
                }
    			else $linenumbers = '';
    
                $code = $geshi->parse_code($code);
                $code = str_replace("<br />", "", $code);
    
    
                eval ("\$code = \"".$tpl->get("codeautoittag")."\";");
            }
            elseif ($mode == "php") {
    			$phptags = 0;
    			$code = $this->stripSlashes($code);
    
    			if (!wbb_strpos($code, "<?") && wbb_substr($code, 0, 2) != "<?") {
    				$phptags = 1;
    				$code = "<?php ".wbb_trim($code)." ?>";
    			}
    			ob_start();
    			$oldlevel = error_reporting(0);
    			highlight_string($code);
    			error_reporting($oldlevel);
    			$buffer = ob_get_contents();
    			ob_end_clean();
    
    			$buffer = str_replace("<code>", "", $buffer);
    			$buffer = str_replace("</code>", "", $buffer);
    
    			if ($phptags == 1) {
    				if (version_compare($phpversion, "4.3.0") == -1  || version_compare($phpversion, "5.0.5") >= 0) $buffer = preg_replace("/([^\\2]*)(&lt;\?php&nbsp;)(.*)(&nbsp;.*\?&gt;)([^\\4]*)/si", "\\1\\3\\5", $buffer);
    				else if (version_compare($phpversion, "5.0.0RC1") == -1) $buffer = preg_replace("/([^\\2]*)(&lt;\?php )(.*)( .*\?&gt;)([^\\4]*)/si", "\\1\\3\\5", $buffer);
    				else {
    					$buffer = preg_replace("/([^\\2]*)(&lt;\?php )(.*)(\?&gt;)([^\\4]*)/si", "\\1\\3\\5", $buffer);	
    				}
    			}
    
    			$buffer = preg_replace("/<font color=\"([^\"]*)\">/i", "<span style=\"color: \\1\">", str_replace("</font>", "</span>", $buffer));
    			if ($phptags == 1 && version_compare($phpversion, "4.3.0") != -1) $buffer = str_replace("<font</span>", "", $buffer);
    			$buffer = preg_replace("/<span style=\"([^\"]*)\">/i", "<span style='\\1'>", $buffer);
    			$buffer = str_replace("\"", "&quot;", $buffer);
    			$buffer = str_replace("{", "{", $buffer);
    			$buffer = str_replace("}", "}", $buffer);
    			$buffer = str_replace("\n", "", $buffer);
    			$buffer = str_replace("<br />", "\n", $buffer);
    
    			$linecount = wbb_substr_count($buffer, "\n") + 1;
    			$height = ($style['smallfontsize'] + 3) * $linecount + 50;
    
    			if ($this->linenumbers == 1) $linenumbers = $this->makeLineNumbers($buffer);
    			else $linenumbers = '';
    
    
                eval("\$code = \"".$tpl->get("codephptag")."\";");
    		}
    		else {
    			$code = $this->stripSlashes($code); 
    			$code = htmlconverter($code); 
    			//$code = str_replace(" ", "&nbsp;", $code); 
    			//$code = nl2br($code);
    
    			$code = str_replace("{", "{", $code);
    			$code = str_replace("}", "}", $code);
    
    			$linecount = wbb_substr_count($code, "\n") + 1;
    			$height = ($style['smallfontsize'] + 3) * $linecount + 50;
    
    			if ($this->linenumbers == 1) $linenumbers = $this->makeLineNumbers($code);
    			else $linenumbers = '';
    
    			eval("\$code = \"".$tpl->get("codetag")."\";");
    		}
    
    		return $code;
    	}
    
    	function formaturl($url, $title = '', $maxwidth = 60, $width1 = 40, $width2 = -15) {
    		if (!wbb_trim($title)) {
    			$title = rehtmlconverter($url);
    			if (!preg_match("/[a-z]:\/\//si", $url)) $url = "http://$url";
    			if ($this->cuturls == 1 && wbb_strlen($title) > $maxwidth) $title = wbb_substr($title, 0, $width1)."...".wbb_substr($title, $width2);
    			return "<a href=\"$url\" target=\"_blank\">".htmlconverter($this->stripSlashes($title))."</a>";
    		}
    		else {
    			if (!preg_match("/[a-z]:\/\//si", $url)) $url = "http://$url";
    			return "<a href=\"$url\" target=\"_blank\">".$title."</a>";
    		}
    	}
    
    	function formatlist($list, $listtype = '') {
    		$listtype = wbb_trim($listtype);
    		$listtype = ((!$listtype) ? ("") : (" type=\"$listtype\""));
    
    		$list = wbb_trim($list);
    		$list = $this->stripSlashes($list);
    
    		$list = amount_str_replace("</li>", "", str_replace("[*]", "</li><li>", $list), 1);
    		if (strstr($list, "<li>")) $list .= "</li>";
    
    		$list = preg_replace("/^.*(<li>)/sU", "\\1", $list);
    
    		if ($listtype) return "<ol$listtype>".$list."</ol>";
    		else return "<ul>".$list."</ul>";
    	}
    
    	function preg_quote($text) {
    		$text = preg_quote($text);
    		$text = str_replace("/", "\/", $text);
    		return $text;
    	}
    
    	function makeLineNumbers($code, $split = "\n") {
    		$lines = explode($split, $code);	
    
    		$linenumbers = '';
    		for ($i = 0; $i < count($lines); $i++) $linenumbers .= ($i + 1).":\n";	
    
    		return $linenumbers;	
    	}
    
    	function generateHash() {
    		for ($i = 0; $i < 6; $i++) {
    			$time = intval(wbb_substr(microtime(), 2, 8));
    			mt_srand($time);
    
    			$this->hash .= mt_rand(0, 9);	
    		}
    	}
    
    
    	function parseCache($post) {
    		global $style;
    
    		if ($this->done['hilight'] != 1) {
    			$this->getHilight();
    		}
    
    		if ($this->hilightSearch != '') {
    			$post = preg_replace($this->hilightSearch, $this->hilightReplace, $post);
    		}
    
    		$post = str_replace("@@@imagefolder@@@", $style['imagefolder'], $post);
    
    		return $post;
    	}
    }
    ?>
    Alles anzeigen
  • DLL mit CallBack-Funktionen nutzen

    • bernd670
    • 29. Oktober 2006 um 20:40

    Hallo!

    Es ist zwar schon ein paar Jahre her das ich was in Delphi oder Pascal geschrieben habe aber so ein paar grundlegende Dinge vergisst man ja nie! :schild4:


    Allso zuerstmal der der unterschied zwischen Function und Procedure ist das eine Procedure kein Ergebins zurückliefert, also im prinzip das gleiche wie in C eine Funktion die mit none als Rückgabewert defineirt wird!

    Der Datentype boolean ist wenn ich mich recht erinnere ein ENUM of Bytes hat also nur 8 Bit wohin der Datentype Int in AutoIt 32 bit belegt!

    Beim Datentype PCHAR handelt es sich genau wie bei str um eine nullterminierte Zeichenkette.

    probier mal ob es vllt so:

    [autoit]


    $boolean = DllStructCreate("byte")
    ;~ DllStructSetData($boolean,1,0) ; False
    DllStructSetData($boolean,1,1) ; True

    [/autoit][autoit][/autoit][autoit]

    DLLCall("PEiDLL.DLL", "none", "SetScanOptions", "ptr", DllStructGetPtr($boolean), "str", "userdb.txt")

    [/autoit]

    oder so geht:

    [autoit]


    $strUDB = "userdb.txt"

    [/autoit][autoit][/autoit][autoit]

    $nlenUDB = StringLen($stUDB)
    $SSOStruct = DllStructCreate("byte","char[" & ($nlenUDB + 1) & "]")

    [/autoit][autoit][/autoit][autoit]

    DllStructSetData($SSOStruct,1,1) ; True
    DllStructSetData($SSOStruct,2,$strUDB)

    [/autoit][autoit][/autoit][autoit]

    DLLCall("PEiDLL.DLL", "none", "SetScanOptions", "ptr", DllStructGetPtr($SSOStruct))

    [/autoit]
  • ich kapier das einfach nicht

    • bernd670
    • 28. Oktober 2006 um 13:42

    Hallo,

    die Funktion von Daniel funktioniert beim mir am besten, allerdings muss ich die Sleep's in _fixieren() deaktivieren wenn ich Blockinput aktiviere sonst wird nur jeder 2. Tastendruck ausgeführt!

  • Verschobene Dateien zählen

    • bernd670
    • 27. Oktober 2006 um 22:52

    Der Send-Befehl müsste Send("!{F4}") lauten!

  • HIHO ^^

    • bernd670
    • 27. Oktober 2006 um 21:34

    Hallo,

    auch ich wünsche dir viel Spass hier im Forum! Das mit der GUI kriegen wir schon hin! ;)

    @Spider: Wenn man am Satzende ein '?' schreibt ist es doch eine Frage und sollte beantwortete werden oder ? Egal ob da "oder", "gell" oder "nichtwahr" steht! :schild4:

  • HEX00

    • bernd670
    • 27. Oktober 2006 um 21:23

    Sind die Hex-Werte nur Zahlen und Ziffern von 0-F oder stehen da auch Sonderzeichen?

  • Überprüfungs-Programm für mein Netzwerk

    • bernd670
    • 27. Oktober 2006 um 21:16

    Du musst einfach nur den Wert an entsprechender Stelle in deinem Programm setzten. Die Prgressbar kann Werte von 0..100 annehmen, z.B. kannst du je nach dem wieviele Dateien oder wieviel MB bereits installiert sind der Wert der Progressbar setzen!

  • Überprüfungs-Programm für mein Netzwerk

    • bernd670
    • 27. Oktober 2006 um 21:03

    Mit GUICtrlSetData!

    [autoit]

    #include <GUIConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    ; ----------------------------------------
    ; System-Aktualisierung
    ; ----------------------------------------
    GUICreate("Bitte warten. Ihr System wird aktualisiert.", 320, 60, -1, -1, $WS_CAPTION)
    $Progressbar = GUICtrlCreateProgress(20, 20, 280, 20, -1, -1)

    [/autoit][autoit][/autoit][autoit]

    ; Hier kommt der Quelltext für den Fortschritts-Balken rein

    [/autoit][autoit][/autoit][autoit]

    ; Fenster anzeigen
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit]

    For $i = 0 To 100
    GUICtrlSetData($Progressbar,$i)
    sleep(500)
    Next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(500)
    WEnd

    [/autoit]
  • HEX00

    • bernd670
    • 27. Oktober 2006 um 20:55

    Einfach auf das wesentliche konzentrieren!

    Wenn z.B. immer der komplette Pfad mit Laufwerksangabe drin steht kann man ja die Position von ":\" ermitteln und 1 abziehen.

    [autoit]

    $String = "123456 XXXXXXX C:\daten\ausgang\otto55.txt XYZ"

    [/autoit][autoit][/autoit][autoit]

    $ResStr = StringMid($String,StringInStr($String,":\") -1)
    MsgBox(0,"",$ResStr)

    [/autoit]
  • letztes geöffnetes fenster focussieren

    • bernd670
    • 27. Oktober 2006 um 16:03

    Ich bin davon ausgegangen das er diese Option schon gesetzt hat sonst würde seine close_fr-Funktion ja gar nicht funktionieren!

  • letztes geöffnetes fenster focussieren

    • bernd670
    • 27. Oktober 2006 um 08:31

    Hallo und :willkommen:,

    schreib dir doch beim öffnen die Windowshandles oder die ProcessID's in ein Array, dann kannst du immer auf den letzten Wert im Array zugreifen und hast somit das gewünschte Fenster!

  • Virus in der AutoIt.exe ?!

    • bernd670
    • 26. Oktober 2006 um 17:17

    Darfst dich ruhig wundern, war aber so, zumindest mit der Virendefiniton von 24. und 25.10.! ;)

  • Virus in der AutoIt.exe ?!

    • bernd670
    • 26. Oktober 2006 um 11:09

    Das Problem scheint mit der aktuellen Virendefinitionsdatei (V6.36.00.189) behoben zu sein!

  • text im spiel

    • bernd670
    • 24. Oktober 2006 um 23:30

    Der Thread geht wieder!

    Edit: Manchmal sind die Finger halt schneller als der Kopf!

  • Dateityp registrieren

    • bernd670
    • 24. Oktober 2006 um 22:37

    Hallo,

    das mit dem Icon funktioniert nur wenn das ICON auch mit in die EXE kompiliert wurde, standardmässig wird da das ICON von AutoIt mit einkompiliert!

    Wenn du eine ICO-Datei hast sollte folgendes gehen

    [autoit]

    regwrite("HKCR\" & $endung & "file\DefaultIcon", "", "REG_SZ", "PfadZurICODatei")

    [/autoit]

    oder aus einer DLL-Datei

    [autoit]

    regwrite("HKCR\" & $endung & "file\DefaultIcon", "", "REG_SZ", "PfadZurDLL,NummerDesICONs")

    [/autoit]

    z.B. aus der SHELL32.DLL

    [autoit]

    regwrite("HKCR\" & $endung & "file\DefaultIcon", "", "REG_EXPAND_SZ","%SystemRoot%\System32\shell32.dll,3")

    [/autoit]
  • Windowsumgebungsvariablen setzen

    • bernd670
    • 24. Oktober 2006 um 19:02

    Hallo!

    Ich versuche mal zu erklären warum deine Version nicht funktioniert.

    Wenn du in einem DOS-Fenster eine Variable setzt gilt die nur so lange bis das Fenster wieder geschlossen wird, deshalb ist es in Batch-Dateien kein Problem solche Variablen zu setzten. Wenn du nun in AutoIt den RUN-Befehl verwendest wird durch den RUN-Befehl ein DOS-Fenster geöffnet und nach der Ausführung wieder geschlossen, d.h. die Variable wird zwar gesetzt aber danach gleich wieder gelöscht da das DOS-Fenster ja wieder geschlossen wird.

  • Very Very harter Brocken (IIS)

    • bernd670
    • 24. Oktober 2006 um 18:46

    Hallo,

    wenn ihr schon MySQL und PHP benutzt warum nicht auch gleich APACHE als Webserver! Von apachefriends.org gibt es ein Komplettpacket mit dem Namen XAMPP!

    Vorteile:

    • Supereinfach zu installieren
    • ist alles drin was man braucht(Apache; MySQL; PHP; phpMyAdmin; FileZilla FTP Server; OpenSSL; ...)
    • gibt es für Linux, Windows, MAC OS und Solaris
    • Daten sind einfach von Linux <->Windows zu portieren (die andern kenne ich nicht)


    Nachteile:

    • ich würde welche hinschreiben wenn ich nur welche wüsste

    Ich habe beide Versionen (auf Linux als Intranetserver und auf Windows als Testumgebung) laufen, allerdings nicht die neusten und bin voll damit zufrieden!

  • temp file

    • bernd670
    • 24. Oktober 2006 um 14:41

    Hallo kci,

    deine Version funktioniert nicht weil zwei Fehler enthalten sind.

    1. Die Dim-Anweisung innerhalb der While-Schleife (Dim $endfile) überschreibt den Filehandle der mit FileOpen angelegt wurde.

    2. FileClose muss auserhalb der While-Schleife geschrieben werden sonst wird die Datei nach der 1. Zeile schon wieder geschlossen.

    [autoit]


    func Fertig2()
    $tmpfile = FileOpen("tmp.txt", 0)

    [/autoit][autoit][/autoit][autoit]

    ; Datei offen?
    If $tmpfile = -1 Then
    MsgBox(0, "Error", "Datei kann nicht geöffnet werden.")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    ; Solange lesen bis Dateiende
    $SavePath = FileSaveDialog("Dateinamen wählen:", "", "Textdatei (*.txt)")
    $endfile = FileOpen($SavePath, 1)
    While 1
    $endline = FileReadLine($tmpfile)
    If @error = -1 Then ExitLoop
    FileWriteLine($endfile,"Eingaben Seite 1: " & $endline)
    WEnd
    FileClose($endfile)
    FileClose($tmpfile)
    EndFunc

    [/autoit]

    PS: Man sollte auch immer alle Dateien die man geöffnet hat wieder schliessen!

  • SMTP Mail ERROR 50

    • bernd670
    • 6. Oktober 2006 um 18:07

    Er hat aber nicht Error 50x sonder Error 50 also Fehlerklasse 5x! Ich vermute ja auch das es ein Autentisierungsproblem ist die läuft dann über Port 465 oder 587 (im Regelfall) und Port 25 ist dann (normalerweise) gesperrt!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™