<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Niklas Rother - XNA, Computer &#38; mehr &#187; C#</title>
	<atom:link href="http://niklas-rother.de/kategorien/programmieren/c-sharp/feed/" rel="self" type="application/rss+xml" />
	<link>http://niklas-rother.de</link>
	<description>Ein Blog über XNA, C#, Software, und anderes...</description>
	<lastBuildDate>Thu, 09 Feb 2012 12:53:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>DynamicLua</title>
		<link>http://niklas-rother.de/artikel/dynamiclua/</link>
		<comments>http://niklas-rother.de/artikel/dynamiclua/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 14:10:38 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[dynamiclua]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[luainterface]]></category>
		<category><![CDATA[wrapper]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1479</guid>
		<description><![CDATA[So, ich denke es ist Zeit, die Katze aus dem Sack zu lassen, und mein neues Projekt vorzustellen: DynamicLua Kurz ein paar Worte zum Hintergrund: Mit .NET 4.0 wurde die sog. Dynamic Language Runtime (DLR) eingeführt. Die dient zum einen &#8230; <a href="http://niklas-rother.de/artikel/dynamiclua/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://niklas-rother.de/wp-content/uploads/2011/10/dynamiclua_logo.png" rel="shadowbox[sbpost-1479];player=img;" title="dynamiclua_logo"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-full wp-image-1482" title="dynamiclua_logo" src="http://niklas-rother.de/wp-content/uploads/2011/10/dynamiclua_logo.png" alt="" width="244" height="261" /></a>So, ich denke es ist Zeit, die Katze aus dem Sack zu lassen, und mein neues Projekt vorzustellen: <span style="font-size: large;"><strong>DynamicLua</strong></span></p>
<p>Kurz ein paar Worte zum Hintergrund: Mit .NET 4.0 wurde die sog. Dynamic Language Runtime (DLR) eingeführt. Die dient zum einen dazu, es Entwicklern einfacher zu machen, neue Sprache auf .NET Basis zu entwickeln (wie <a href="http://ironpython.net">IronPython</a>/<a title="Die eigene Certificate Authority (CA)" href="http://ironruby.net">IronRuby</a>), hat aber auch ein paar tolle andere Features zu bieten. Eines davon ist das neue Schlüsselwort &#8220;dynamic&#8221;. Es funktioniert ähnlich wie &#8220;var&#8221; kann also jeden Typ annehmen. Wenn man darin aber ein Objekt speichert, das von System.Dynamic.DynamicObject abgeleitet ist, kann man bestimmen was passiert, wenn etwas &#8220;nicht erlaubtes&#8221; passiert, also wenn z.B. eine Methode aufgerufen wird, die es gar nicht gibt. Solche Aufrufe landen dann bei der Methode TryInvokeMember, und die kann dann entscheiden, was passieren soll.</p>
<p>Dieses Konzept habe ich jetzt genutzt, um einen Wrapper für das <a href="http://code.google.com/p/luainterface/">LuaInterface </a>zu schreiben. Das Lua Interface ist eine Library für .NET, die es erlaubt, <a href="http://lua.org">Lua </a>in C# zu benutzen. Dabei kümmert sie sich auch darum, .NET Objekte in Lua abzubilden und vieles mehr. Diese Library ist wirklich unglaublich, man denkt wirklich, Lua hätte was mit Objekten am Hut.</p>
<p><span id="more-1479"></span></p>
<p>Meine Idee war es jetzt, über das LuaInterface eine neue Hülle zu stecken, die es zusammen mit der DLR ermöglicht, Lua noch einfacher in C# (und anderen .NET Sprachen zu benutzen). Hier ein kleines Beispiel:</p>
<pre class="brush: csharp; title: ; notranslate">
// Start a new Lua interpreter
dynamic lua = new DynamicLua.DynamicLua(); //Namespace and class name are the same!
// Run Lua chunks
lua(&quot;num = 2&quot;); //no DoString()!
lua(&quot;str = ’a string’&quot;);
// Read global variables ’num’ and ’str’
double num = lua.num; //No explicit casting, no index operator!
string str = lua.str;
// Write to global variable ’str’
lua.str = &quot;another string&quot;; //No index operator
//Increase a global value
lua.num += 10; //A LOT cleaner
</pre>
<p>Wie man sehen kann wird eine neue Instanz des Interpreters erzeugt, wenn man ihn aufruft wie eine Funktion wird der Lua Code ausgeführt. Variablen aus Lua sind einfach als Eigenschaften des Objektes vorhanden. Es ist kein Problem, .NET Klasse an Lua zu schicken, eine einfache Zuweisung reicht. Noch ein paar der Features:</p>
<ul>
<li>Einfacher Zugriff auf Lua-Variablen</li>
<li>Aufruf von Lua-Funktionen aus C#</li>
<li>C#-Funktionen können in Lua Variablen gespeichert werden</li>
<li>Lua-Table können in C# Variablen gespeichert werden</li>
<li>Lua Metatables können in C# benutzt werden</li>
<li>Open-Source (Apache Lizenz 2.0)</li>
<li>Unit-Tests</li>
</ul>
<p>Ich denke, mit DynamicLua ist es wirklich einfach Lua in C# einzubinden, weil vieles genau so funktioniert, wie man es erwarten würde. Das war zumindest mein Design-Ziel.</p>
<p>Genug der lobenden Worte, alles weitere ist auf der Codeplex-Seite zu finden: <a href="http://dynamiclua.codeplex.com">DynamicLua bei Codeplex</a>. Momentan ist dort die Beta der Version 1.0 zu finden.</p>
<br /><a href="http://niklas-rother.de/?p=1479#comments" title="Comments on &quot;DynamicLua&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1479" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/dynamiclua/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fischertecknik mit C# steuern</title>
		<link>http://niklas-rother.de/artikel/fischertecknik-mit-c-steuern/</link>
		<comments>http://niklas-rother.de/artikel/fischertecknik-mit-c-steuern/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 09:44:04 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[fischertechnik]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[messkarte]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1462</guid>
		<description><![CDATA[Im Zuge eines Schulprojektes muss ich mit einem PC die Spannungswerte eines Helligkeitssensors aufzeichnen. Also brauche ich in irgendeiner Form eine Messkarte mit Verbindung zum PC. Meine erste Idee war das mein altes Fischertechnik ROBO-Interface, dass mir früher immer treue &#8230; <a href="http://niklas-rother.de/artikel/fischertecknik-mit-c-steuern/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Im Zuge eines Schulprojektes muss ich mit einem PC die Spannungswerte eines Helligkeitssensors aufzeichnen. Also brauche ich in irgendeiner Form eine Messkarte mit Verbindung zum PC. Meine erste Idee war das mein altes Fischertechnik ROBO-Interface, dass mir früher immer treue Dienste geleistet hat. Natürlich wollte ich es jetzt nicht in ROBO-Pro programmieren, der grafischen Sprache von Fischertechnik (auch wenn die <em>wirklich</em> gut ist!), denn die hat keine Möglichkeit Daten auf dem PC dauerhaft zu speichern.</p>
<p>Also habe ich mich mal etwas im Netz umgesehen, und bin auf der Seite von Ulrich Müller gelandet, der sich die Mühe gemacht hat, allen möglichen Sprachen Bibliotheken zu schreiben. So gibt es auch ein in C#. Leider ist die Benutzung grade mit Windows 7 etwas kompliziert, daher will ich hier mal kurz erklären, wie es funktioniert. An dieser Stelle noch mal einen Dank an Ulrich Müller, der mit per Mail weiter geholfen hat.</p>
<p><span id="more-1462"></span></p>
<p>Als erstes brauchen wir die USB-Treiber für das Interface, sonst ist gar keine Kommunikation möglich. Alternativ ist auch der Betrieb über COM möglich, aber so richtig ist das ja auch nichts&#8230; Die Treiber werden zusammen mit ROBO Pro installiert, wer die CD aber nicht findet, kann auch auf der Fischertechnik-Seite eine ZIP-Datei mit verschiedenen Hilfemitteln herunterladen, im Ordner /Driver sind dann die Treiber zu finden. Den Download gibt es hier: <a href="http://www.fischertechnik.de/de/home/downloads/Computing.aspx">Fischertechnik Download-Seite</a> (Treibersoftware KeLib).</p>
<p>Jetzt brauchen wir noch eine DLL, die die eigentliche Kommunikation übernimmt, und einen Wrapper in der passenden Sprache. Beides gibt auf der <a href="http://www.ftcomputing.de/sprachen.htm">Seite von Ulrich Müller</a>. Weil die Downloads etwas schwer zu finden sind, erlaube ich mir mal Deep-Links:</p>
<ul>
<li><a href="http://www.ftcomputing.de/zip/umFish40V77.zip">umFish.dll</a></li>
<li><a href="http://www.ftcomputing.de/zip/cs2005fish40setup.exe">FischFace.dll</a></li>
</ul>
<p>Die beiden oben angegebenen Dateien brauchen wir für die Kommunikation. Die Downloads enthalten noch etwas mehr, hauptsächlich Dokumentation. Davon ist auch auf der oben verlinkten Seite einiges zu finden.</p>
<p>Die umFish.dll ist die eigentliche Bibliothek zum steuern des Interfaces, die FishFace.dll nur der Wrapper für C#.</p>
<p>Wir fügen also beide Dateien einem neuen C# Projekt hinzu, und fügen einen Verweis auf die FishFace.dll hinzu. Mit folgendem Code stellen wir eine Verbindung zum Interface her:</p>
<pre class="brush: csharp; title: ; notranslate">using System;
using System.Collections.Generic;
using System.Text;
using FishFace40;

namespace ftTest
{
class Program
{
static void Main(string[] args)
{
FishFace ft = new FishFace();
ft.OpenInterface(IFTypen.ftROBO_first_USB, 0);
}
}
}
</pre>
<p>Mit den Parametern von OpenInterface() kann man die Schnittstelle auswählen, und über die Seriennummer auch mehr als ein Interface ansteuern. Am Ende des Programms sollte dann natürlich auch noch eine CloseInterface() stehen. Die restliche Steuerung ist ziemlich selbst erklärend, darum gehe ich da nicht weiter drauf ein.</p>
<p>Ich persönlich habe jetzt auch ein anderes Interface umgeschwenkt, dass ich von der Schule gestellt bekomme, weil ich die Verbindung zum Fischertechnik-Interface erst nicht hinbekommen habe (falsche Version der umFish.dll). Ist aber trotzdem praktisch, wenn man mal wieder was in der Richtung machen will&#8230;</p>
<p>Wenn ihr noch Fragen habt, einfach in die Kommentare damit.</p>
<br /><a href="http://niklas-rother.de/?p=1462#comments" title="Comments on &quot;Fischertecknik mit C# steuern&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1462" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/fischertecknik-mit-c-steuern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zufälliges Wort mit .NET</title>
		<link>http://niklas-rother.de/artikel/zufalliges-wort-mit-net/</link>
		<comments>http://niklas-rother.de/artikel/zufalliges-wort-mit-net/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 14:24:49 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[webclient]]></category>
		<category><![CDATA[wikitionary]]></category>
		<category><![CDATA[wort]]></category>
		<category><![CDATA[zufall]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1437</guid>
		<description><![CDATA[Für eine kleine Spielidee brauchte ich ein rein zufälliges Wort. Klingt im ersten Moment etwas trivial, doch woher soll man die Wörter nehmen? Es geht nicht um zufällige Buchstabenkombinationen, sondern um sinnvolle Wörter, am besten Substantive. Die Lösung war dann &#8230; <a href="http://niklas-rother.de/artikel/zufalliges-wort-mit-net/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Für eine kleine Spielidee brauchte ich ein rein zufälliges Wort. Klingt im ersten Moment etwas trivial, doch woher soll man die Wörter nehmen? Es geht nicht um zufällige Buchstabenkombinationen, sondern um sinnvolle Wörter, am besten Substantive.</p>
<p>Die Lösung war dann das <a href="http://de.wikitionary.org">Wikitionary</a>: Das hat, wie jedes auf MediaWiki basierendes Wiki eine API. Dort kann man zwar auch eine zufällige Seite (=Wort) abrufen, aber eben nicht aus einer bestimmten Kategorie. Ich wollte nun aber nur deutsche Substantive. Durch etwas rumsurfen bin dann auch folgende Lösung gekommen:</p>
<p><span id="more-1437"></span></p>
<pre class="brush: csharp; title: ; notranslate">
private static string GetRandomNoun()
{
StringBuilder sb = new StringBuilder(3);
for (int i = 0; i &lt; 3; i++)
{
sb.Append(alphabet[random.Next(26)]);
}

WebClient wc = new WebClient();
wc.Proxy = null;
wc.Headers.Add(HttpRequestHeader.UserAgent, &quot;info@niklas-rother.de&quot;);
string response = wc.DownloadString(String.Format(&quot;http://de.wiktionary.org/w/api.php?action=query&amp;list=categorymembers&amp;cmtitle=Category:Substantiv_%28Deutsch%29&amp;cmsort=sortkey&amp;cmstartsortkey={0}&amp;cmlimit=1&amp;format=xml&quot;, sb.ToString()));

XmlDocument doc = new XmlDocument();
doc.LoadXml(response);

return doc[&quot;api&quot;][&quot;query&quot;][&quot;categorymembers&quot;][&quot;cm&quot;].Attributes[&quot;title&quot;].InnerText;
}
</pre>
<p>Das wichtigste ist dabei DownloadString(), hier wird eine Abfrage an die Wikitionary API gestellt. Dabei wird eine Liste der Kategoriemember abgefragt, doch mit einem kleinen Trick: <em>cmstartsortkey</em> wird auf ein zufälliges Buchstaben-Trippel gesetzt, und dadurch wird nur der Eintrag zurückgegeben, der diesen drei Buchstaben lexikographisch folgt. Man kann auch noch mehr Buchstaben benutzten, aber mit drei Buchstaben sollte man schon viele Wörter erwischen.</p>
<p>Kurze Rechnung: Die Kategorie Substantiv (Deutsch) hat 34.390 Seiten. Aus 3 mal 26 Buchstaben kann man 26<sup>3</sup> = 17.576 Kombinationen machen. Das sind 51%. Man erwischt also theoretisch die Hälfte der Wörter, das sollte reichen. (Ja, ich mag Mathe <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<p>Ein paar kleine Fallstricke gibt es noch: Die Wikitionary API will <strong>unbedingt einen UserAgent</strong> haben, also muss man einen setzen, wie oben gesehen. Dort sollte am besten eine Adresse für Beschwerden drin sein, falls sich ein Programm mal selbständig macht&#8230;</p>
<p>Und auch .NET hat noch eine kleine Eigenheit: Wenn man eine neue Instanz von WebClient das erste Mal benutzt, wird versucht einen Proxy zu finden. Das kann bis zu 30sec dauern. Will man nicht warten, setzt man die Eigenschaft Proxy einfach auf null, und verscherzt es sich mit Leuten, die einen Proxy nutzen&#8230;</p>
<p>Und zum Abschluss gibt es noch ein schönes Zufälliges Wort: <em>Presslufthammer</em>! <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_rolleyes.gif' alt=':roll:' class='wp-smiley' /> </p>
<br /><a href="http://niklas-rother.de/?p=1437#comments" title="Comments on &quot;Zufälliges Wort mit .NET&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1437" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/zufalliges-wort-mit-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Statusupdate 2</title>
		<link>http://niklas-rother.de/artikel/statusupdate-2/</link>
		<comments>http://niklas-rother.de/artikel/statusupdate-2/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 15:05:44 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Ideen & Gedanken]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[key-mon]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[nKF]]></category>
		<category><![CDATA[projekte]]></category>
		<category><![CDATA[yame]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1392</guid>
		<description><![CDATA[Mal wieder ein paar Dinge, an denen ich grade so arbeite: Zum einen ist da YaME: Yet another Minecraft Engine. Hier ein kleines Video: Ich wollte mal etwas in 3D mit XNA machen, und habe aus Spaß dieses Projekt angefangen. &#8230; <a href="http://niklas-rother.de/artikel/statusupdate-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://niklas-rother.de/artikel/statusbericht/">Mal wieder</a> ein paar Dinge, an denen ich grade so arbeite:</p>
<p>Zum einen ist da <strong>YaME</strong>: Yet another Minecraft Engine. Hier ein kleines Video:</p>
<p><object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/1zJohMZ1IJo?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1zJohMZ1IJo?version=3" type="application/x-shockwave-flash" width="640" height="505" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Ich wollte mal etwas in 3D mit XNA machen, und habe aus Spaß dieses Projekt angefangen. Momentan gibt es schon endlose Landschaften (zumindest bis der Speicher voll ist <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ), und die Framerate ist noch akzeptabel. Ich werde wohl zumindest noch bessere Grafiken und etwas Physik einbauen, zusammen mit einem besseren Renderer (Octrees und Occlusion Culling wäre super)</p>
<p>Dann bin ich grade dabei das <strong><a href="http://code.google.com/p/luainterface/">LuaInterface</a> um die Fähigkeiten der DLR zu erweitern</strong>. Microsoft hat mit .NET 4 eine bessere Interoperabilität mit Scriptsprachen eingebaut: Mit dem Schlüsselwort &#8220;dynamic&#8221; kann man Objekte definieren, die z.B deren genaues &#8220;Aussehen&#8221; erst zu Laufzeit festgelegt wird. Außerdem ist es damit möglich viele expliziete Konvertierungen wegzulassen. Das passt natürlich wunderbar zu Lua, und dem LuaInterface, mit dem man schon jetzt sehr elegant aus .NET auf Lua zugreifen kann. Kleines Code-Beispiel gefällig?</p>
<p><span id="more-1392"></span></p>
<pre class="brush: csharp; title: ; notranslate">

dynamic lua = new DynamicLua();
lua(&quot;function test() return 'hello from lua' end&quot;);
lua.test2 = new Action(() =&gt; return &quot;hello from c#&quot;);
Console.WriteLine(lua.test());
Console.WriteLine(lua.test2());
</pre>
<p>Aus lua.DoString(&#8220;bla&#8221;) wird ein einfaches lua(&#8220;bla&#8221;), Variablen lassen sich einfach als Eigenschaften von lua verwenden, und die Zuweisung sowie der Aufruf von C#-Methoden ist einfach möglich. Obwohl jeder Aufruf einer Lua Method immer ein object-Array zurückgibt, ist eine einfache Verwendung in WriteLine() möglich, es wird automatisch in einen String umgewandelt.</p>
<p>Der größte Teil der &#8220;Magie&#8221; wird dabei vom LuaInterface übernommen, ich habe dem ganzen nur ein modernes Gewand in Form eines &#8220;dynamischen&#8221; Objektes übergestülpt. Momentan arbeite ich noch daran ein paar Fehler auszumerzen. Ich habe das <strong>LuaInterface überings auch mit dem .Net Framework 4 kompatibel gemacht</strong>. Je nachdem wie hartnäckig die Fehler noch sind, dürfte das Projekt bald fertig sein.</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/06/2x-no-mouse-meta1.png" rel="shadowbox[sbpost-1392];player=img;" title="2x-no-mouse-meta"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-medium wp-image-1393" title="2x-no-mouse-meta" src="http://niklas-rother.de/wp-content/uploads/2011/06/2x-no-mouse-meta1-300x50.png" alt="" width="300" height="50" /></a>Als drittes überlege ich grade, so etwas wie <strong><a href="http://code.google.com/p/key-mon/">key-mon</a> für Windows</strong> zu schreiben. Die Linux Version ist sicher für Screencast ziemlich praktisch&#8230; Mit dem <a href="http://nkreipke.wordpress.com/projekte/nkf/">nKF</a> und dem <a href="http://nkreipke.wordpress.com/projekte/keyboardbuttonselector/">KeyboardButton Selektor</a> sollte sich da was machen lassen&#8230; Ich bin echt schockiert, das es sowas für Windows nicht gibt?!</p>
<p>Ich habe mir irgendwie zu viel vorgenommen <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Naja, bald sind ja Ferien, da habe ich dann genug Zeit mich darum mal zu kümmern.</p>
<br /><a href="http://niklas-rother.de/?p=1392#comments" title="Comments on &quot;Statusupdate 2&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1392" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/statusupdate-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Würfel mit nur 12 Vertices texturieren</title>
		<link>http://niklas-rother.de/artikel/wurfel-mit-nur-12-vertices-texturieren/</link>
		<comments>http://niklas-rother.de/artikel/wurfel-mit-nur-12-vertices-texturieren/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 12:23:41 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[textur]]></category>
		<category><![CDATA[vertex]]></category>
		<category><![CDATA[würfel]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1363</guid>
		<description><![CDATA[Hat mich grade etwas nachdenken gekostet: Wie muss man die Texturkoordinaten eines Würfels setzen, damit auf allen Seiten die gleiche Textur zu sehen ist? Mit nur acht Vertices geht es nicht (für jede Ecke einer), aber mit 12 geht es: &#8230; <a href="http://niklas-rother.de/artikel/wurfel-mit-nur-12-vertices-texturieren/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hat mich grade etwas nachdenken gekostet:</p>
<p>Wie muss man die Texturkoordinaten eines Würfels setzen, damit auf allen Seiten die gleiche Textur zu sehen ist?</p>
<p>Mit nur acht Vertices geht es nicht (für jede Ecke einer), aber mit 12 geht es:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/06/cube.png" rel="shadowbox[sbpost-1363];player=img;" title="cube"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-1364" title="cube" src="http://niklas-rother.de/wp-content/uploads/2011/06/cube-300x265.png" alt="" width="300" height="265" /></a>Man verzeihe meine Paint-Künste&#8230; Die hinteren Vertices müssen doppelt vorhanden sein, die obere und untere Seite wird dann mit diesen Vertices generiert. Die Farben geben die Texturkoordinaten an, die Zahlen an den Ecken sind die Nummern der Vertices. Weil ich ja so nett bin, gibt es die passenden Indices jetzt auch noch dazu:</p>
<pre class="brush: csharp; title: ; notranslate">

&lt;span id=&quot;more-1363&quot;&gt;&lt;/span&gt;

int[] indices = new int[] {
 0, 1, 2, 2, 3, 0, //vorne
 1 ,8 ,9 ,9 ,2 ,1, //oben
 2 ,6 ,7 ,7 ,3 ,2, //rechts
 10 ,0 ,3 ,3 ,11 ,10, //unten
 4 ,5 ,1 ,1 ,0 ,4, //links
 7 ,6 ,5 ,5 ,4 ,7  //hinten
 };
</pre>
<p>Das ganze ist effizienter, als den Würfel mit 24 oder gar 36 Vertices zu definieren, grade wenn man <em>viele </em>davon braucht <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Bald gibts auch einen Post darüber, was ich mit vielen Würfeln will&#8230;</p>
<br /><a href="http://niklas-rother.de/?p=1363#comments" title="Comments on &quot;Würfel mit nur 12 Vertices texturieren&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1363" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/wurfel-mit-nur-12-vertices-texturieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tileset Packer: Details zum Code</title>
		<link>http://niklas-rother.de/artikel/tileset-packer-details-zum-code/</link>
		<comments>http://niklas-rother.de/artikel/tileset-packer-details-zum-code/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 16:49:24 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[unsafe]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1207</guid>
		<description><![CDATA[Wie versprochen gibt es jetzt ein paar Details zum Code des Tileset Packers. Das Programm hat (meiner Meinung nach) ein paar interessante Stellen, die dem einen oder anderen .Net-Coder bestimmt helfen können. Im Grunde hat der Packer drei Probleme zu &#8230; <a href="http://niklas-rother.de/artikel/tileset-packer-details-zum-code/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wie versprochen gibt es jetzt ein paar Details zum Code des <a href="http://niklas-rother.de/artikel/tilesets-packen/">Tileset Packers</a>. Das Programm hat (meiner Meinung nach) ein paar interessante Stellen, die dem einen oder anderen .Net-Coder bestimmt helfen können.</p>
<p>Im Grunde hat der Packer drei Probleme zu lösen:</p>
<ol>
<li>Das Tileset muss verschnitten werden</li>
<li>Doppelte Tiles müssen aussortiert werden</li>
<li>Das Tileset muss effektiv wieder zusammen gesetzt werden</li>
</ol>
<p>Dazu sollte das Programm natürlich eine gewisse Geschwindigkeit an den Tag legen. Das verschneiden kann man relativ einfach mit <a href="http://msdn.microsoft.com/en-us/library/ms141944.aspx">Bitmap.Clone</a> erledigen, doch das ist sehr langsam, und dazu nimmt die Geschwindigkeit auch noch mit zunehmender Größe der Bitmap ab. (Große Bitmap = langsamer Code). Es musste also eine Alternative her. Durch einen Tipp in einem Forum bin ich dann auf <a href="http://msdn.microsoft.com/en-us/library/5ey6h79d.aspx">Bitmap.LockBits</a> gestoßen, eine Methode die direkt (unsafe) auf die Bitmap zugreift und dadurch sehr schnell ist. Von dieser Methode bekommt man ein BitmapData Objekt, mit dem man über einen Pointer auf die Daten im Arbeitsspeicher zugreifen kann.</p>
<p>Diese Daten verwendet dann die Methode GetHash, die aus den Bitmapdaten einen Hash generiert, mit dem doppelte Tiles aussortiert werden können.</p>
<p><span id="more-1207"></span></p>
<pre class="brush: csharp; title: ; notranslate">

static string GetHash(BitmapData data)
 {
 using (Bitmap tmp = new Bitmap(data.Width, data.Height, data.Stride, data.PixelFormat, data.Scan0))
 {
 using (MemoryStream ms = new MemoryStream())
 {
 tmp.Save(ms, ImageFormat.Bmp);
 rawData = ms.ToArray();
 }
 }

 for (int i = 54; i &lt; rawData.Length; i++) //the first 54 byte are the bitmap header
 {
 rawData[i] &amp;= 252; //1111 1100 letzden bits auf null setzen
 }

 return BitConverter.ToString(md5.ComputeHash(rawData, 54, rawData.Length - 54));
 }
</pre>
<p>Dazu wird zunächst direkt aus den Daten (auf die der Pointer Scan0 zeigt) eine neue Bitmap erstellt (sehr praktisch, dieser Konstruktor <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ), die dann in einem Memory-Stream geschrieben wird. Zwar kann man auch direkt auf die Daten in Scan0 zugreifen, aber diese sind scheinbar mit Nullen aufgefüllt. Das Array, auf das Scan0 zeigt ist zumindest viel zu groß und enthält extrem viele Nullen (neben den richtigen Daten).</p>
<p>Eine Bitmap hat leider eine 54 Byte großen Header, der im nächsten Schritt übersprungen werden muss. Normalerweise existiert dafür das Format ImageFormat.MemoryBitmap, das sich aber zum speichern scheinbar nicht benutzen lässt (Null-Exception). Laut <a href="http://de.wikipedia.org/wiki/Windows_Bitmap">Wikipedia</a> kann der Header auch größer sein, was bei mir aber nie der Fall war.</p>
<p>In der Schleife wird dann schließlich das gesamte Array durchlaufen und bei allen Einträgen die beiden unteren Bits auf 0 gesetzt. Dadurch werden die Zahlen &#8220;gerundet&#8221; und minimaler Abweichungen, die durch Kompression werden nicht mehr als unterschiedliche Tiles gezählt. Danach wird der md5-Hash der Daten als String zurück gegeben.</p>
<p>Danach werden die Bitmapdaten wieder freigegeben. Man beachte, dass die erstellte Bitmap wieder zerstört wird. Stattdessen wird nur das Rectangle, das den Ausschnitt darstellt gespeichert. Das nicht nicht unbedingt das schnellste, aber es ist so relativ einfach, und die Geschwindigkeit ist auch so noch sehr hoch.</p>
<p>Das letzte Problem, das noch gelöst werden muss, ist das effektive packen der Tiles. Nick Gravelyn hat ein wunderbares <a href="http://de.wikipedia.org/wiki/Windows_Bitmap">Programm </a>zu diesem Zweck geschrieben, das ich auch erst verwendet habe. Dazu musste ich aber alle Tiles in Dateien schreiben, was relativ langsam ist, dazu ist das Programm mehr für unterschiedlich große Bilder gedacht. Nach etwas nachdenken bin ich dann auf eine Lösung gekommen, mit der man ausrechnen kann, wie viele Bilder man in eine Reihe packen muss, damit die Seitenlängen des fertigen Bildes minimal ist: Perfekt wäre √(TileCount), doch die Tiles sollen ja nicht abgeschnitten werden <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Also wird die Zahl aufgerundet. Dadurch muss die andere Seite etwas kürzer werden. Das fertige Bild hat dann folgende Seitenlängen:</p>
<pre class="brush: csharp; title: ; notranslate">

int packedXCount = (int)Math.Ceiling(Math.Sqrt(IDToRectangle.Count)); //IDToRectangle.Count = Anzahl der unterschiedlichen Tiles
 int packedYCount = (int)Math.Ceiling((double)(IDToRectangle.Count) / packedXCount);
</pre>
<p>Auch wenn mir kein Beweis einfällt würde ich vermuten, das diese Lösung perfekt ist, also immer das optimale Ergebnis liefert.</p>
<p>Jetzt müssen die Tiles nur noch kopiert werden (vom alten zum neuen Tileset):</p>
<pre class="brush: csharp; title: ; notranslate">

foreach (KeyValuePair&lt;int, Rectangle&gt; kvp in IDToRectangle)
 {
 //crop rectangle and copy it to the output
 BitmapData tileSetData = TileSetImage.LockBits(kvp.Value, ImageLockMode.ReadOnly, TileSetImage.PixelFormat);
 using (currTile = new Bitmap(tileSetData.Width, tileSetData.Height, tileSetData.Stride, tileSetData.PixelFormat, tileSetData.Scan0))
 {
 packedGraphics.DrawImage(currTile, 32 * packedRowCount, 32 * packedColCount);
 }
 TileSetImage.UnlockBits(tileSetData);

 //PackedRow/Col zählen
 packedRowCount++;
 if (packedRowCount &gt;= packedXCount)
 {
 packedRowCount = 0;
 packedColCount++;
 }

 }
</pre>
<p>Hier wird wieder eine Bitmap erstellt, in dem das Tileset gelocked wird, danach wird die Bitmap auf das neue Tileset gemalt. Dabei werden intern wohl nur die Daten kopiert, sodass das ziemlich schnell funktioniert.</p>
<p>Das waren alle interessanten Stellen, der Rest ist mehr oder weniger Standard. Mir hat das ganze gezeigt, das man auch mit C# Bilder schnell bearbeiten kann, obwohl alles managed ist, also z.B. immer gelocked werden muss. Wem das ganze immer noch zu langsam ist, der kann auch unsafe Code verwenden, bei dem er dann mit den Daten machen kann, was er will.</p>
<br /><a href="http://niklas-rother.de/?p=1207#comments" title="Comments on &quot;Tileset Packer: Details zum Code&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1207" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/tileset-packer-details-zum-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Der tKoD Map Editor</title>
		<link>http://niklas-rother.de/artikel/der-tkod-map-editor/</link>
		<comments>http://niklas-rother.de/artikel/der-tkod-map-editor/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 13:42:32 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[The Kingdom of Darkness]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[weihnachten]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1170</guid>
		<description><![CDATA[Jetzt sind ja Ferien, und da hat man wenigstens mal Zeit an seinem Hobbyprojekt weiterzuarbeiten Ich habe die Zeit dazu genutzt dem Editor zu meinem Spiel mal ein paar neue Features zu verpassen: Es gibt einen Scripteditor der auf ScintillaNet &#8230; <a href="http://niklas-rother.de/artikel/der-tkod-map-editor/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Jetzt sind ja Ferien, und da hat man wenigstens mal Zeit an seinem Hobbyprojekt weiterzuarbeiten <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Ich habe die Zeit dazu genutzt dem Editor zu meinem Spiel mal ein paar neue Features zu verpassen:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/12/Screenshot133.png" rel="shadowbox[sbpost-1170];player=img;" title="Screenshot133"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-medium wp-image-1171" title="Screenshot133" src="http://niklas-rother.de/wp-content/uploads/2010/12/Screenshot133-300x240.png" alt="" width="300" height="240" /></a>Es gibt einen Scripteditor der auf <a href="http://scintillanet.codeplex.com/">ScintillaNet </a>basiert, und den Inhalt auch an einen externen Editor senden kann. Dazu gibt es eine ComboBox für die Hintergrundmusik und ein DataGridView, das an ein Dictionary gebunden ist, wodurch man eigene Schlüssel-Wert-Paare festlegen kann.</p>
<p>Das ganze kann auch in eine Datei geschrieben werden und wird auch korrekt wieder ausgelesen.</p>
<p><span id="more-1170"></span></p>
<p>Um die Karte in das Spiel zu bringen, kann man sie als xml-Datei exportieren. Leider ist der Renderer des Spiels noch etwas instabil, so dass man die Karte nicht direkt laden kann, da sie kleiner als der Bildschirm ist&#8230;</p>
<p>Als nächstes muss ich wohl mal einen ContentImporter für die xmap-Dateien schreiben, die der Editor ausspuckt. Da fände ich es noch super, wenn man aus dem Spiel direkt die Ansicht an den Editor schicken kann, und von dort die bearbeitete Version zurück in die Engine senden kann. Mal sehen, wie man das machen kann. Und auch sonst fehlen dem Editor leider noch ein paar Funktionen, die die Engine schon unterstützt wie NPCs und Tile Events&#8230;</p>
<p>Damit jetzt keiner denkt, ich wollte nur mit meinem Editor angeben oder müsste mal wieder einen Post schreiben obwohl es eigentlich nichts wichtiges gibt, (Was natürlich in keinster Weise stimmt <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) gibt es jetzt auch noch einen Tipp:</p>
<p>Mein Editor basiert auf dem Unterbau von <a href="http://nandosoft.com/downloads.html">EvilNando</a>, wer also auf der Suche nach einem sehr guten, erweiterbaren Editor auf C#/XNA Basis ist, wird dort fündig werden. Leider verwendet der Editor noch XNA 3.1, doch mit etwas Arbeit kann man ihn auf XNA 4 portieren. Wenn daran Interesse besteht kann ich auch darüber mal einen Post schreiben <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ich wünsche jedenfalls allen Lesern schon mal ein <strong>entspanntes Weihnachtsfest</strong> und gebe noch einen Ratschlag meines Lehrers zu Silvester auf den Weg: <em>&#8220;Erst knallen, dann saufen!&#8221;</em> <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br /><a href="http://niklas-rother.de/?p=1170#comments" title="Comments on &quot;Der tKoD Map Editor&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1170" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/der-tkod-map-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E-Münzbrett.NET</title>
		<link>http://niklas-rother.de/artikel/e-munzbrett-net/</link>
		<comments>http://niklas-rother.de/artikel/e-munzbrett-net/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 19:31:33 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Betriebsyteme]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[gtk#]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[münzbrett]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1101</guid>
		<description><![CDATA[Nachdem Nico ein virtuelles Münzbrett für Mac OS geschrieben hat, habe ich leichtsinnigerweise behauptet, ich würde eine .NET Variante mit MonoDevelop unter Ubuntu machen. Was soll ich sagen schreiben? Ich bin froh, das ich mein Visual Studio habe MonoDevelop ist &#8230; <a href="http://niklas-rother.de/artikel/e-munzbrett-net/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nachdem Nico ein <a href="http://nkreipke.wordpress.com/2010/10/11/e-munzbrett/">virtuelles Münzbrett für Mac OS</a> geschrieben hat, habe ich leichtsinnigerweise <a href="http://nkreipke.wordpress.com/2010/10/11/e-munzbrett/#comment-405">behauptet</a>, ich würde eine .NET Variante mit MonoDevelop unter Ubuntu machen. Was soll ich <span style="text-decoration: line-through;">sagen</span> schreiben? Ich bin froh, das ich mein Visual Studio habe <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>MonoDevelop ist ansich ein tolle Software, die sogar VisualStudio 2008 kompatible Solution-Dateien schreibt. Leider wird unter Linux normalerweise das GTK# Toolkit verwendet, was sowas wie WinForms ist. Das funktioniert aber nur, wenn unter Windows die passende DLL vorhanden ist. Ich hatte mir aber vorgenommen, ein Programm zu schreiben, das unter Linux <strong>und</strong> Windows läuft, und dass ohne neu kompilieren oder zusätzliche Binaries.</p>
<p>Also musste ich WinForms verwenden, was in Mono auch relativ implementiert ist. Nur leider fehlt MonoDevelop der Designer dafür, sodass ich alles per Hand schreiben muss. Mit einem Designer würde man z.B. die Textboxen einfach ausrichten, ohne muss man das mit einem TableLayoutPanel machen. Und bis man das so konfiguriert hat, wie man sich das vorstellt wünscht man sich den Designer mehr als einmal zurück, glaubt mir. (Ich habe überings nicht bis jetzt daran gearbeitet, ich habe nur vergessen, darüber zu bloggen. Aber etwas mehr als die 20min hat es schon gedauert&#8230;)</p>
<p><span id="more-1101"></span></p>
<p>Wenn man dann aber alles konfiguriert hat, hat man ein tolles Münzbrett, dass <strong>ohne jede Änderung</strong> auch auf Windows startet. Leider hat man da aber immer noch ein Konsole im Hintergrund&#8230;</p>
<p>Jetzt noch zwei Screenshots zum Vergleich zwischen Windows und Ubuntu:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/11/E-Münzbrett-Ubuntu.png" rel="shadowbox[sbpost-1101];player=img;" title="E-Münzbrett-Ubuntu"><img class="size-medium wp-image-1102 alignnone" title="E-Münzbrett-Ubuntu" src="http://niklas-rother.de/wp-content/uploads/2010/11/E-Münzbrett-Ubuntu-300x258.png" alt="" width="300" height="258" /></a><a href="http://niklas-rother.de/wp-content/uploads/2010/11/Screenshot126.png" rel="shadowbox[sbpost-1101];player=img;" title="Screenshot126"><img class="size-medium wp-image-1103 alignnone" title="Screenshot126" src="http://niklas-rother.de/wp-content/uploads/2010/11/Screenshot126-300x250.png" alt="" width="300" height="250" /></a></p>
<p>Wenn man bei der Einstellung der FormBorderStyle nicht aufpasst hat man dieses tolle Ergebnis:<a href="http://niklas-rother.de/wp-content/uploads/2010/11/windows98.png" rel="shadowbox[sbpost-1101];player=img;" title="windows98"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-medium wp-image-1104" title="windows98" src="http://niklas-rother.de/wp-content/uploads/2010/11/windows98-300x240.png" alt="" width="300" height="240" /></a> Windows 98 Style!</p>
<p><strong>Ergebnis:</strong> Man kann auch unter Linux Windows/portable Programme schreiben, aber wenn man mit WinForms arbeiten will empfehle ich ganz klar ein Visual Studio. Trotzdem finde ich es beeindruckend, das das Programm <span style="text-decoration: line-through;">&#8220;einfach so&#8221;</span> ohne neukompilieren auch auf Windows (und Mac OS?) läuft!</p>
<p>Wer selber testen will: <a href="http://niklas-rother.de/downloads/E-M%C3%BCnzbrett.NET">E-Münzbrett.Net zum Download</a></p>
<br /><a href="http://niklas-rother.de/?p=1101#comments" title="Comments on &quot;E-Münzbrett.NET&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1101" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/e-munzbrett-net/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SimpleScreenshot 0.9.3.2</title>
		<link>http://niklas-rother.de/artikel/simplescreenshot-0-9-3-2/</link>
		<comments>http://niklas-rother.de/artikel/simplescreenshot-0-9-3-2/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 14:35:46 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[SimpleScreenshot]]></category>
		<category><![CDATA[autostart]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[uddate]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=718</guid>
		<description><![CDATA[Leider war auch die letzte Version von SimpleScreenshot nicht Bugfrei, und der verbliebene Bug war auch noch sehr gemein: Wenn SimpleScreenshot gestartet wurde, wurde manchmal das Fenster nicht ausgeblendet. Der Fehler beruhte auf einem Wettlauf: Wenn das Form geladen wird, &#8230; <a href="http://niklas-rother.de/artikel/simplescreenshot-0-9-3-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Leider war auch die letzte Version von SimpleScreenshot nicht Bugfrei, und der verbliebene Bug war auch noch sehr gemein: Wenn SimpleScreenshot gestartet wurde, wurde manchmal das Fenster nicht ausgeblendet. Der Fehler beruhte auf einem Wettlauf: Wenn das Form geladen wird, wird zuerst die Sichtbarkeit von Windows auf true gesetzt (das Fenster ist also sichbar) und <strong>gleichzeitig</strong> dem Fenster mitgeteilt, das es geladen wurde. Wenn es so benachrichtigt wurde, wurde es wieder ausgeblendet. Wenn man Pech hatte, hat das Auslebenden das Sichtbarmachen überholt, und das Fenster blieb sichtbar&#8230; Das Problem ist jetzt aber behoben, zusammen mit einem Fehler, der manchmal den Sound nicht abgespielt hat. (Hintergrund: Wenn in einer aufrufenden Verknüpfung als Arbeitsverzeichnis nichts eingetragen wurde, konnte das Programm die Sounddatei nicht finden&#8230;). Zudem wurde eine fehlende Übersetzung hinzugefügt: Auch Nicht-Deutsche kommen jetzt in den Genuss einer Englische Fehlermeldung, wenn SimpleScreenshot mehr als ein Mal gestartet wird (was nicht geht).</p>
<p>Wie auch schon bei Version 0.9.3.1 habe ich auf der Downloadseite keinen neuen Eintrag erstellt, sondern einfach die Zipdatei ausgetauscht. Wer SimpleScreenshot schon hat, muss einfach nur auf das AutoUpdate warten, das bei nächsten Start aufgerufen wird.</p>
<p><span id="more-718"></span></p>
<p><span class="download"><a href="http://niklas-rother.de/projekte/simplescreenshot">Zur Download Seite&#8230;</a></span></p>
<br /><a href="http://niklas-rother.de/?p=718#comments" title="Comments on &quot;SimpleScreenshot 0.9.3.2&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?718" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/simplescreenshot-0-9-3-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>.NET Tipps Teil 3</title>
		<link>http://niklas-rother.de/artikel/net-tipps-teil-3/</link>
		<comments>http://niklas-rother.de/artikel/net-tipps-teil-3/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 10:59:21 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[bitmap]]></category>
		<category><![CDATA[ostern]]></category>
		<category><![CDATA[outofmemoryexception]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=643</guid>
		<description><![CDATA[Ich hab ja schon ewig keine Tipps mehr zu .NET gegeben, da wird es ja mal wieder Zeit für eine neue &#8220;Folge&#8221; Diesmal ist es nicht direkt ein Tipp, sondern mehr ein Hinweis: Bei Bitmap.Clone(Rectangle, PixelFormat) ist eine OutOfMemoryException nicht, &#8230; <a href="http://niklas-rother.de/artikel/net-tipps-teil-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ich hab ja schon ewig keine Tipps mehr zu .NET gegeben, da wird es ja mal wieder Zeit für eine neue &#8220;Folge&#8221; <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Diesmal ist es nicht direkt ein Tipp, sondern mehr ein Hinweis:</p>
<p><strong>Bei Bitmap.Clone(Rectangle, PixelFormat) ist eine OutOfMemoryException nicht, was man denkt!</strong></p>
<p>Diese Tatsache wird zwar auch in der Dokumentation erwähnt, aber es hat mich jetzt schon zweimal fast zur Verzweiflung getrieben. <strong>Bitmap.Clone() verursacht eine OutOfMemoryException, wenn das Rectangle außerhalb der Bitmap liegt.</strong> Dann ist das Rectangle zwar auch &#8220;außerhalb des Speichers&#8221;, aber trotzdem ist das sehr unglücklich gewählt. Zudem zeigt das VisualStudio dann auch noch &#8220;Nicht genügend Abeitsspeicher&#8221; an. Das ist natürlich schlichtweg falsch!</p>
<p>Also nicht verzweifeln, sondern das Rectangle noch mal überprüfen <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><span id="more-643"></span></p>
<p>P.S.: Frohe Ostern <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<br /><a href="http://niklas-rother.de/?p=643#comments" title="Comments on &quot;.NET Tipps Teil 3&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?643" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/net-tipps-teil-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pläne für SimpleScreenshot 1.0</title>
		<link>http://niklas-rother.de/artikel/plane-fur-simplescreenshot-1-0/</link>
		<comments>http://niklas-rother.de/artikel/plane-fur-simplescreenshot-1-0/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 12:04:30 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Ideen & Gedanken]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[SimpleScreenshot]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[einstellungen]]></category>
		<category><![CDATA[kategorien]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=629</guid>
		<description><![CDATA[In den letzten Tagen habe ich mich ausgiebig mit SimpleScreenshot 1.0 beschäftigt. Ich habe mal GIMP angeworfen und in Screenshots einige von meinen Ideen eingebaut. Die Ideen dazu habe ich auch aus den Windows Design Richtlinien, an die sich das &#8230; <a href="http://niklas-rother.de/artikel/plane-fur-simplescreenshot-1-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In den letzten Tagen habe ich mich ausgiebig mit SimpleScreenshot 1.0 beschäftigt. Ich habe mal GIMP angeworfen und in Screenshots einige von meinen Ideen eingebaut. Die Ideen dazu habe ich auch aus den Windows Design Richtlinien, an die sich das ganze auch ungefähr halten wird. Also zeige ich euch jetzt mal alle meine Ideen:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/Startup.png" rel="shadowbox[sbpost-629];player=img;" title="Startup"><img class="alignnone size-medium wp-image-630" title="Startup" src="http://niklas-rother.de/wp-content/uploads/2010/03/Startup-300x177.png" alt="" width="300" height="177" /></a></p>
<p>So geht es los, wenn man SimpleScreenshot startet. Also so wie bis jetzt. Höchstens der Text wird noch angepasst.</p>
<p><span id="more-629"></span></p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/Flyout.png" rel="shadowbox[sbpost-629];player=img;" title="Flyout"><img class="alignnone size-medium wp-image-631" title="Flyout" src="http://niklas-rother.de/wp-content/uploads/2010/03/Flyout-300x210.png" alt="" width="300" height="210" /></a></p>
<p>Die erste Neuerung: ein sog. Flyout! Das erscheint, wenn man ein Mal auf das Trayicon klickt. (In etwa so wie bei den Netzwerkeinstellungen) Dort kann man die aktuelle Kategorie sehen und ändern, den Pfad der letzten Datei sehen (und kopieren oder den beinhaltenden Ordner öffnen) und die URL des letzten Uploads sehen. Auch die kann man kopieren, im Browser öffnen (da hab ich das falsche Icon erwischt) und neu hochladen. Nützlich, wenn der Upload nicht geklappt hat, oder man ein Bild auf zwei Hostern haben will.</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/ManageCats.png" rel="shadowbox[sbpost-629];player=img;" title="ManageCats"><img class="alignnone size-medium wp-image-632" title="ManageCats" src="http://niklas-rother.de/wp-content/uploads/2010/03/ManageCats-300x210.png" alt="" width="300" height="210" /></a></p>
<p>Wenn man nun auf &#8220;Ändern&#8230;&#8221; klickt, öffnet sich dieses Fenster. Oben wählt man die Kategorie aus (eine Kategorie ist praktisch ein Unterordner, in dem man seine Screenshots organisiert) die man dann löschen oder umbenennen kann. Bei löschen können die Screenshots auch automatisch in eine andere Kategorie verschoben werden. Natürlich kann man auch neue Kategorien erstellen.</p>
<p>Für eine Standardkategorie möchte man ja evtl. keinen Unterordner, auch das ist möglich. Evtl. wird man auch noch das Namensschema mit den Kategorien ändern.</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/Settings1.png" rel="shadowbox[sbpost-629];player=img;" title="Settings1"><img class="alignnone size-medium wp-image-633" title="Settings1" src="http://niklas-rother.de/wp-content/uploads/2010/03/Settings1-300x295.png" alt="" width="300" height="295" /></a></p>
<p>Die Einstellungen, wie gewohnt. Einzige Änderung: Der Zurücksetzen-Button, mit man die Standardeinstellungen wieder aufrufen kann.</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/Settings2.png" rel="shadowbox[sbpost-629];player=img;" title="Settings2"><img class="alignnone size-medium wp-image-634" title="Settings2" src="http://niklas-rother.de/wp-content/uploads/2010/03/Settings2-300x295.png" alt="" width="300" height="295" /></a></p>
<p>Hier hat sich einfach mal gar nichts geändert. Ich fand diese Seite eigentlich ziemlich gelungen. <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/Settings3.png" rel="shadowbox[sbpost-629];player=img;" title="Settings3"><img class="alignnone size-medium wp-image-635" title="Settings3" src="http://niklas-rother.de/wp-content/uploads/2010/03/Settings3-300x295.png" alt="" width="300" height="295" /></a></p>
<p>Hier überschlagen sich die Änderungen dann aber wieder: Die ausgewählte Taste steht direkt auf dem Button zum Ändern des selben. Das gleiche Prinzip wende ich dann auch bei den anderen Tasten an, nur wird man hier nur Shift, Strg und Alt auswählen können. Dahinter wird noch die oben ausgewählte Taste angezeigt, so werde die Kombinationen klarer.</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/Settings4.png" rel="shadowbox[sbpost-629];player=img;" title="Settings4"><img class="alignnone size-medium wp-image-636" title="Settings4" src="http://niklas-rother.de/wp-content/uploads/2010/03/Settings4-300x295.png" alt="" width="300" height="295" /></a></p>
<p>Auch auf der letzten Seite habe ich nicht viel geändert, nur das man den Hinweis auf mehr Hoster jetzt auch anklicken kann.</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/MainWindow.png" rel="shadowbox[sbpost-629];player=img;" title="MainWindow"><img class="alignnone size-medium wp-image-637" title="MainWindow" src="http://niklas-rother.de/wp-content/uploads/2010/03/MainWindow-300x193.png" alt="" width="300" height="193" /></a></p>
<p>Jetzt das spannendste: Das Hauptfenster. Einige wollte das arme Fenster ja schon ganz entfernen, weil sie ihm keinen Nutzen abgewinnen konnten&#8230; Da hatten sie auch Recht, bis jetzt ist der Nutzen auch begrenzt. Das ändert sich jetzt aber:</p>
<p>Alle Buttons, bis auf die Einstellungen, fliegen raus, sind überflüssig. Die Vorschaugröße kann man jetzt oben einstellen, zudem kann man dort nach Aufnahmedatum filtern. Daneben ist ein Suchfeld für die Dateinamen.</p>
<p>Das vergrößerte Bild soll andeuten, das die Bilder jetzt größer werden, wenn man mit dem Mauszeiger &#8220;drüberhovert&#8221;. Jetzt muss ich nur noch das komische Blau erklären: Momentan werden die ausgewählten Screenshots noch durch ein blauen Quadrat dargestellt. Das entspricht aber nicht dem Verhalten des Windows Explorers. Dort wird das ganze durch so einen Farbverlauf dargestellt, wie ich etwas stümperhaft angedeutet habe.</p>
<p>Auch sonst wird SimpleScreenshot sich etwas mehr Windows 7 nähern, in dem es z.B. Task Dialogs statt einfacher Messageboxen nutzt. Momentan bin ich am überlegen, <strong>ob ich Windows XP noch weiter unterstütze</strong>. Da bin ich auf die Benutzer angewiesen: Braucht ihr XP Unterstützung, oder benutzt ihr eh schon Vista oder 7? XP bedeutet für mich auf jeden Fall mehr Arbeit für mich <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Wo wir schon bei der &#8220;Community&#8221; sind: Ich werde alle Kommentare, die sich auf das Design beziehen zu diesem Artikel verschieben. In den Kommentaren wurde ja schon verschiedene Ideen gepostet, was man mit dem Design alles so machen kann. Ich hab versucht, alles in diesem Entwurf zusammen zusammenfließen zu lassen.</p>
<p>Wenn trotzdem noch jemand eine gute Idee hat, was das Design betrifft: Immer her damit. Auch sonst wird es natürlich noch weitere Änderungen geben, aber ich muss ja noch nicht alles verraten <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  (Windowskontextmenü ist schon geplant <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> )</p>
<p>Viel Text, aber nur mit der Absicht meine Ideen der harten Kritik zu stellen! Also macht meine Ideen fertig <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>EDIT: Man kann Kommentare gar nicht verschieben <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Naja, bleibt eben alles an seinem Platz&#8230;</p>
<br /><a href="http://niklas-rother.de/?p=629#comments" title="Comments on &quot;Pläne für SimpleScreenshot 1.0&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?629" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/plane-fur-simplescreenshot-1-0/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>SimpleScreenshot 0.9.3</title>
		<link>http://niklas-rother.de/artikel/simplescreenshot-0-9-3/</link>
		<comments>http://niklas-rother.de/artikel/simplescreenshot-0-9-3/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 18:01:41 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[SimpleScreenshot]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bugfix]]></category>
		<category><![CDATA[Download]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=622</guid>
		<description><![CDATA[Wir machen es mal kurz und schmerzlos, ist ja eh nur eine Version, die (hoffentlich) alle Fehler behebt: Changelog: Updatesuche berücksichtigt jetzt keine Beta-Versionen mehr. Kleine Änderungen an dem Fehlerabfangcode, er meldet jetzt Fehler immer in Englisch, um auch Fehler &#8230; <a href="http://niklas-rother.de/artikel/simplescreenshot-0-9-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wir machen es mal kurz und schmerzlos, ist ja eh nur eine Version, die (hoffentlich) alle Fehler behebt:</p>
<p>Changelog:</p>
<ul>
<li>Updatesuche berücksichtigt jetzt keine Beta-Versionen mehr.</li>
<li>Kleine Änderungen an dem Fehlerabfangcode, er meldet jetzt Fehler immer in Englisch, um auch Fehler mit den Sprachdatei melden zu können.</li>
<li>Wenn ein Neustart benötigt wird, wird dieser jetzt automatisch durchgeführt.</li>
<li>Neuere Version vom Tastenauswahl Fenster.</li>
<li>Übersetzung minimal angepasst</li>
<li>Beenden und Verstecken Button entfernt. Das Fenster wird durch minimieren Schließen versteckt, das Beenden ist über das Kontextmenü des Trayicons erreichbar.</li>
<li>Fehler behoben, den auftrat, wenn man im Kontextmenü auf &#8220;Einstellungen&#8221; klicke, während das Einstellungsfenster geöffnet war. Mal wieder werden jetzt alle Einstellungen im Programmverzeichnis gespeichert.</li>
</ul>
<p>Download:</p>
<p><span id="more-622"></span></p>
<p><span class="download"><a href="http://niklas-rother.de/projekte/simplescreenshot">Zur Download Seite&#8230;</a></span></p>
<br /><a href="http://niklas-rother.de/?p=622#comments" title="Comments on &quot;SimpleScreenshot 0.9.3&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?622" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/simplescreenshot-0-9-3/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>SimpleScreenshot 0.9.2</title>
		<link>http://niklas-rother.de/artikel/simplescreenshot-0-9-2-2/</link>
		<comments>http://niklas-rother.de/artikel/simplescreenshot-0-9-2-2/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 19:26:32 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[SimpleScreenshot]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=607</guid>
		<description><![CDATA[Und schon gibt es eine neue Version von SimpleScreenshot! Diese Version scheint aber einiges an Fehler zu beinhalten, also darum rate ich zum Download einer neueren Version. Hier der Changelog: Update suche jetzt bei jedem Start (statt nur 1x täglich) &#8230; <a href="http://niklas-rother.de/artikel/simplescreenshot-0-9-2-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Und schon gibt es eine neue Version von SimpleScreenshot!</p>
<p class="important">Diese Version scheint aber einiges an Fehler zu beinhalten, also darum rate ich zum Download einer neueren Version.</p>
<p>Hier der Changelog:</p>
<ul>
<li>Update suche jetzt bei jedem Start (statt nur 1x täglich)</li>
<li>Sinnvollere Standardwerte in den Einstellungen vergeben</li>
<li>Rechtschreibfehler korrigiert <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Das Passwort für den Hoster wird jetzt verschlüsselt gespeichert (nur für kommende Versionen, noch ist diese Funktion nicht benutzbar)</li>
<li>Wenn das Programm <strong>nicht</strong> über beim Windowsstart mitgestartet wurde, erscheint jetzt ein Ballontip mit dem Hinweis, das SimpleScreenshot im Tray läuft.</li>
<li>Kleinere Umstrukturierung des Codes.</li>
<li>%an% funktioniert jetzt.</li>
<li>Eine fehlende Übersetzung hinzugefügt.</li>
<li>Screenshots können jetzt mit einem Druck auf die Entf-Taste gelöscht werden.</li>
<li>Der Kamerasound wird jetzt auch abgespielt, wenn SimpleScreenshot über die Autostart Verknüpfung gestartet wird.</li>
<li>Über die Autostart Verknüpfung wird SimpleScreenshot minimiert gestartet. Dadurch wird das Aufblitzen eines Fenster verhindert.</li>
<li>Neues Tastenauswahl Fenster (Vielen Dank an<a href="http://nkreipke.wordpress.com/"> Nico</a> für diese Komponente)</li>
</ul>
<p>Also wieder einiges an Änderungen. Auf zwei Sachen muss ich noch näher eingehen:</p>
<p><span id="more-607"></span></p>
<p>Durch einige Änderungen an der Autostartverknüpfung (z.B. der /autostart Parameter) muss diese neu erstellt werden. Dazu bitte ein Mal den Autostart ein den Einstellungen deaktivieren und speichern, dann kann alles wieder aktiviert werden.</p>
<p>Zudem geht %an% jetzt zwar, aber wenn kein Fenster aktiv ist ( = der Desktop aktiv ist) dann wird &#8220;explorer&#8221; eingefügt, da dann natürlich die Windows Shell aktiv ist&#8230; Wenn jemand eine sichere Methode weiss, das Handle der Shell zu bekommen, immer her damit. Oder stört euch dieses &#8220;Feature&#8221; gar nicht?</p>
<p>Ansonsten alles wie gehabt, diese Version gibt es auch wieder als AutoUpdate. Für alle neu Einsteiger:</p>
<p><span style="text-decoration: line-through;"><span class="download"><a href="http://niklas-rother.de/projekte/simplescreenshot">Zur Download Seite&#8230;</a></span></span></p>
<p>Noch eine Notiz an mich selber: <span style="text-decoration: line-through;">Morgen</span> Übermorgen mal ein paar Screenshots von SimpleScreenshot einfügen <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br /><a href="http://niklas-rother.de/?p=607#comments" title="Comments on &quot;SimpleScreenshot 0.9.2&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?607" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/simplescreenshot-0-9-2-2/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>SimpleScreenshot 0.9.1</title>
		<link>http://niklas-rother.de/artikel/simplescreenshot-0-9-1/</link>
		<comments>http://niklas-rother.de/artikel/simplescreenshot-0-9-1/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 12:25:45 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[SimpleScreenshot]]></category>
		<category><![CDATA[pause]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=600</guid>
		<description><![CDATA[Und schon gibt es wieder ein neue Version von SimpleScreenshot! Das ist jetzt Version 0.9.1. Ich habe fast alle Fehler beseitigt. Genauer gesagt: Schließen Button in der Platzhalterliste funktioniert Bei der Auswahl eines Speicherorts, der nicht nur Bilddateien enthält (z.B. &#8230; <a href="http://niklas-rother.de/artikel/simplescreenshot-0-9-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Und schon gibt es wieder ein neue Version von SimpleScreenshot! Das ist jetzt Version 0.9.1. Ich habe fast alle Fehler beseitigt.</p>
<p>Genauer gesagt:</p>
<ul>
<li>Schließen Button in der Platzhalterliste funktioniert</li>
<li>Bei der Auswahl eines Speicherorts, der nicht nur Bilddateien enthält (z.B. Desktop) tritt kein Fehler mehr auf.</li>
<li>Bilder können aus dem Fenster gezogen werden (Drag&amp;Drop)</li>
<li>Einstellungen werden (mal wieder) nur im Anwendungsverzeichnis gespeichert.</li>
<li>Der Image Editor (Auswahlrahmen) kann jetzt deaktiviert werden.</li>
<li>Speichern als JPEG funktioniert jetzt</li>
<li>Speichern in Word funktioniert einwandfrei.</li>
<li>Die Meldung, das ein Neustart von SimpleScreenshot benötigt wird, wird wird angezeigt, wenn er auch wirklich nötig ist.</li>
<li>Meldung bei Absturz sollte gehen.</li>
</ul>
<p>Einen Fehler konnte ich nicht beheben: Die Pause Taste ist theoretisch als Auslöser benutzbar, aber nicht im Zusammenhang mit der STRG Taste, weil die Kombination (ein Relikt wie einiges an Windows) Batchprogramme unterbricht. Darum wird diese Kombination leider nicht an SimpleScreenshot gemeldet, und ich kann nicht darauf reagieren&#8230;. So lange man die Taste aber nicht zusammen mit der STRG Taste benutzt, geht aber alles wunderbar.</p>
<p><span id="more-600"></span></p>
<p>Eine Sache, die geplant war, ist auch nicht drin: Der neue <a href="http://niklas-rother.de/artikel/simplescreenshot-0-9-0/comment-page-1/#comment-350">Button Selector</a> von <a href="http://nkreipke.wordpress.com/">Nico</a>. Denn der braucht wohl noch etwas um meine Meldungen zu verarbeiten <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Sobald ich von ihm eine neue Version bekomme, gibt es wieder ein Update.</p>
<p>Wo wir grade bei Updates sind: Die neue Version sollte ab sofort (bzw, ab morgen, da nur ein Mal am Tag nach Updates gesucht wird) über das Autoupdate bereit stehen. Ich würde also alle Benutzer von SimpleScreenshot bitten, das Update abzuwarten, damit das auch mal getestet wird.</p>
<p>Für alle &#8220;Neueinsteiger&#8221; gibt es aber wie gewohnt auf der Projektseite die aktuellste Version.</p>
<p><span class="download"><a href="http://niklas-rother.de/projekte/simplescreenshot">Zur Download Seite&#8230;</a></span></p>
<br /><a href="http://niklas-rother.de/?p=600#comments" title="Comments on &quot;SimpleScreenshot 0.9.1&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?600" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/simplescreenshot-0-9-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SimpleScreenshot 0.9.0</title>
		<link>http://niklas-rother.de/artikel/simplescreenshot-0-9-0/</link>
		<comments>http://niklas-rother.de/artikel/simplescreenshot-0-9-0/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 19:30:28 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[SimpleScreenshot]]></category>
		<category><![CDATA[einstellungen]]></category>
		<category><![CDATA[word]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=583</guid>
		<description><![CDATA[Es ist soweit! SimpleScreenshot 0.9.0 ist zum Download bereit. Ich weiss, ich hab lange gebraucht, aber wie man an der Versionsnummer sieht, gibt es auch viel neues. Das wäre: Der Verstecken und Beenden Button wurden ausgetauscht, damit man nicht immer &#8230; <a href="http://niklas-rother.de/artikel/simplescreenshot-0-9-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es ist soweit! SimpleScreenshot 0.9.0 ist zum Download bereit.</p>
<p>Ich weiss, ich hab lange gebraucht, aber wie man an der Versionsnummer sieht, gibt es auch viel neues. Das wäre:</p>
<ul>
<li>Der Verstecken und Beenden Button wurden ausgetauscht, damit man nicht immer aus versehen auf Beenden klickt.</li>
<li>Viel bessere Einstellungen</li>
<li>Übersetzung nicht mehr per Datei, dafür aber deutlich einfacher. Wenn jemand eine Sprache vermisst, einfach melden, ich schicke euch dann die Strings und baue eure Übersetzung ein. (English/Deutsch vorhanden)</li>
<li><strong>Bilder können automatisch bei Imageshack.us hochgeladen werden </strong>(weitere Hoster in Planung, s .u.)</li>
<li><strong>Bilder können automatisch in Word eingefügt werden</strong> (z.B. für einfache Dokumentation)</li>
<li><strong>Es können auch nur Teile von Fenstern oder dem gesamten Bildschirm aufgenommen werden.</strong></li>
<li>Als Speicherformat können JPEG/BMP/PNG gewählt werden (JPEG hat noch Fehler, besser nicht benutzen&#8230;)</li>
<li>Die Tastenbelegung ist besser einstellbar</li>
<li>Automatische Updatefunktion (deaktivierbar)</li>
<li>Namen per Platzhalter (Datum/Zeit, Name der aktiven Anwendung/Fortlaufende Nummern)</li>
<li>Vermutlich noch mehr, aber das fällt mir grad nicht ein&#8230;</li>
</ul>
<p>Natürlich ist auch diese Version noch nicht perfekt, und ich habe auch noch ein paar Ideen, die dann mit Version 1.0 kommen werden. Erst kommt aber noch (bald) 0.9.1, denn dieses Version hat noch ein paar Probleme mit JPEG, aber ich wollte die Veröffentlichung nicht schon wieder verschieben&#8230; Und so kann ich auch den Updater testen <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-583"></span></p>
<p>Besonders ist (meiner Meinung nach) die Funktion, die Bilder automatisch in Word einfügen zu können, soweit ich gehört habe, könne besonders Firmen eine solche Funktion gebrauchen (für Installatiosdokumentationen), und damit will ich mich auch von anderen Screenshot Programmen abgrenzen.</p>
<p>Was noch geplant ist:</p>
<ul>
<li>Bugfixes <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
<li>Hoster per XML Datei erweitern</li>
<li>evtl. Text und Pfeile in die Bilder einbauen</li>
<li>Automatische Kategorien nach Anwendungen</li>
<li>Kategorien = Unterordner</li>
<li>Einfache eigene Kategorien</li>
</ul>
<p>Bekannte Bugs:</p>
<ul>
<li>Probleme mit JPEGs</li>
<li>Evtl. kleine Bugs beim Speichern in Word</li>
<li>Das automatischer anzeigen einer Meldung bei einen Absturz geht nicht <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
</ul>
<p>Diese Bugs werden aber mit den nächsten Version, die dann per Update kommt hoffentlich behoben</p>
<p>Wenn ihr selber noch Wünsche habt: Ab in die Kommentare damit!</p>
<p>Aber damit es auch was zu sehen gibt kommen jetzt noch ein paar Screenshots:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/003-SimpleScreenshot-am-16-03-2010-um-19-53-02.png" rel="shadowbox[sbpost-583];player=img;" title="003-SimpleScreenshot am 16-03-2010 um 19-53-02"><img class="alignnone size-medium wp-image-586" title="003-SimpleScreenshot am 16-03-2010 um 19-53-02" src="http://niklas-rother.de/wp-content/uploads/2010/03/003-SimpleScreenshot-am-16-03-2010-um-19-53-02-300x230.png" alt="" width="300" height="230" /></a></p>
<p>Das Hauptfenster</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/004-SimpleScreenshot-am-16-03-2010-um-19-53-12.png" rel="shadowbox[sbpost-583];player=img;" title="004-SimpleScreenshot am 16-03-2010 um 19-53-12"><img class="alignnone size-medium wp-image-587" title="004-SimpleScreenshot am 16-03-2010 um 19-53-12" src="http://niklas-rother.de/wp-content/uploads/2010/03/004-SimpleScreenshot-am-16-03-2010-um-19-53-12-300x295.png" alt="" width="300" height="295" /></a></p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/005-SimpleScreenshot-am-16-03-2010-um-19-53-14.png" rel="shadowbox[sbpost-583];player=img;" title="005-SimpleScreenshot am 16-03-2010 um 19-53-14"><img class="alignnone size-medium wp-image-588" title="005-SimpleScreenshot am 16-03-2010 um 19-53-14" src="http://niklas-rother.de/wp-content/uploads/2010/03/005-SimpleScreenshot-am-16-03-2010-um-19-53-14-300x295.png" alt="" width="300" height="295" /></a></p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/006-SimpleScreenshot-am-16-03-2010-um-19-53-16.png" rel="shadowbox[sbpost-583];player=img;" title="006-SimpleScreenshot am 16-03-2010 um 19-53-16"><img class="alignnone size-medium wp-image-589" title="006-SimpleScreenshot am 16-03-2010 um 19-53-16" src="http://niklas-rother.de/wp-content/uploads/2010/03/006-SimpleScreenshot-am-16-03-2010-um-19-53-16-300x295.png" alt="" width="300" height="295" /></a></p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/007-SimpleScreenshot-am-16-03-2010-um-19-53-19.png" rel="shadowbox[sbpost-583];player=img;" title="007-SimpleScreenshot am 16-03-2010 um 19-53-19"><img class="alignnone size-medium wp-image-590" title="007-SimpleScreenshot am 16-03-2010 um 19-53-19" src="http://niklas-rother.de/wp-content/uploads/2010/03/007-SimpleScreenshot-am-16-03-2010-um-19-53-19-300x295.png" alt="" width="300" height="295" /></a></p>
<p>Die Einstellungen</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/008-SimpleScreenshot-am-16-03-2010-um-19-53-48.png" rel="shadowbox[sbpost-583];player=img;" title="008-SimpleScreenshot am 16-03-2010 um 19-53-48"><img class="alignnone size-medium wp-image-591" title="008-SimpleScreenshot am 16-03-2010 um 19-53-48" src="http://niklas-rother.de/wp-content/uploads/2010/03/008-SimpleScreenshot-am-16-03-2010-um-19-53-48-300x240.png" alt="" width="300" height="240" /></a></p>
<p>Nur einen Bereich aufnehmen&#8230;</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2010/03/010-SimpleScreenshot-am-16-03-2010-um-19-54-19.png" rel="shadowbox[sbpost-583];player=img;" title="010-SimpleScreenshot am 16-03-2010 um 19-54-19"><img class="alignnone size-full wp-image-592" title="010-SimpleScreenshot am 16-03-2010 um 19-54-19" src="http://niklas-rother.de/wp-content/uploads/2010/03/010-SimpleScreenshot-am-16-03-2010-um-19-54-19.png" alt="" width="264" height="159" /></a></p>
<p>Mehr Einträge im Kontextmenü</p>
<p>Nun aber das wichtigste: Der Download:<br />
<span class="download"><a href="http://niklas-rother.de/projekte/simplescreenshot">Zur Download Seite&#8230;</a></span></p>
<br /><a href="http://niklas-rother.de/?p=583#comments" title="Comments on &quot;SimpleScreenshot 0.9.0&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?583" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/simplescreenshot-0-9-0/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Fast View 0.2.0</title>
		<link>http://niklas-rother.de/artikel/fast-view-0-2-0/</link>
		<comments>http://niklas-rother.de/artikel/fast-view-0-2-0/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 14:53:54 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Betriebsyteme]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[FastView]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[fast view]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=463</guid>
		<description><![CDATA[Nach ewiger Zeit gibt es eine neue Version von Fast View! Diese Version ist vollkommen anders als die erste, da ich sie fast vollständig neu geschrieben habe. Es hat leider sehr lange gedauert, aber ich glaube es hat sich gelohnt. &#8230; <a href="http://niklas-rother.de/artikel/fast-view-0-2-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nach ewiger Zeit gibt es eine neue Version von Fast View! Diese Version ist vollkommen anders als die erste, da ich sie fast vollständig neu geschrieben habe. Es hat leider sehr lange gedauert, aber ich glaube es hat sich gelohnt.</p>
<p>Hier ist der Changelog:</p>
<blockquote><p>Bugfixes:</p>
<ul>
<li> kein Absturz mehr, wenn MP3s geöffnet werden</li>
<li> Dateien werden nach schließen des Fensters freigegeben</li>
<li> kleinere interne Änderungen</li>
</ul>
<p>Änderungen:</p>
<ul>
<li> Neuer Hintergrund(danke an whsprogger)</li>
<li> Mehr Bilder, weniger Buttons</li>
</ul>
<p>Neue Features:<span id="more-463"></span></p>
<ul>
<li> Es werden jetzt Plugins unterstützt.
<ul>
<li> Mitgelieferte Plugins:
<ul>
<li> Multimedia
<ul>
<li> Videos</li>
<li> Musik</li>
<li> Bilder</li>
</ul>
</li>
<li> Office (erfordert Microsoft Office)
<ul>
<li> Word</li>
</ul>
</li>
<li> Text
<ul>
<li> alle Textdateien</li>
</ul>
</li>
<li> PDF
<ul>
<li>PDF</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li> TrayIcon zum Beenden</li>
<li> Automatischer Updater</li>
</ul>
</blockquote>
<p>Der Updater sucht einmal pro Tag nach Updates auf meinem Server und wird Sie automatisch installieren. Noch ein paar Worte zu den Plugins:</p>
<p>Das Office Plugin erfordert ein installiertes Microsoft Office, wenn das nicht gefunden wird, wird das Plugin nicht geladen. Zudem kann dieses Plugin nur Word Dateien öffnen, und auch die nur als Text(ohne Formatierung). Wenn sich jemand mit dem Anzeigen von Office Dokumenten auskennt, ich würde mich über Tipps (oder ein Plugin) freuen!</p>
<p>Das Text Plugin bezieht die Dateierweiterungen, die es anzeigen soll aus der Datei &#8220;text_ext-txt&#8221;. Diese Datei kann man anpassen um weitere Endungen mit diesem Plugin anzuzeigen. Danach ist ein Neustart von FastView nötig.</p>
<p>Ich habe versucht das Programm für x64 Prozessoren zu kompilieren, was mir aber aufgrund der vielen abhängigen DLLs nicht gelungen ist. Das alte lief ja nicht auf 64-Bit Systemen, und auch diese Version benutzt noch viele Pointer, die ja auf 64-Bit Systemen größer sind. Evtl. kann Windows das aber duch <a href="http://de.wikipedia.org/wiki/WOW64">WoW64</a> ausgleichen. Wenn nicht bitte ich um Verzeihung, aber dann ist da wohl (mit vertretbarem Aufwand) nicht zu machen&#8230;</p>
<p>Als nächstes werde ich auch noch eine Anleitung zum erstellen von Plugins veröffentlichen. Wer noch Ideen hat, oder Fehler findet kann gerne einen Kommentar hinterlassen, ich werde mich darum kümmern!</p>
<p>Weitere Informationen, und vor allem den Download findet ihr auf der Projekt Seite:</p>
<p class="download"><a href="http://niklas-rother.de/projekte/fast-view">Zur Projekt Seite&#8230;</a></p>
<br /><a href="http://niklas-rother.de/?p=463#comments" title="Comments on &quot;Fast View 0.2.0&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?463" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/fast-view-0-2-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>100 FPS mehr durch Tilemap Clipping</title>
		<link>http://niklas-rother.de/artikel/100-fps-mehr-durch-tilemap-clipping/</link>
		<comments>http://niklas-rother.de/artikel/100-fps-mehr-durch-tilemap-clipping/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 16:24:26 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[The Kingdom of Darkness]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Clipping]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tilemap]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=391</guid>
		<description><![CDATA[Da ich momentan noch auf Bug-Jagd durch die Tiefen von The Kingdom of Darkness bin, habe ich heute mal zu Abwechslung das Tilemap Clipping eingebaut. Durch diese Technik werden einfach nicht alle Tiles gezeichnet, sondern nur die, die auch grade &#8230; <a href="http://niklas-rother.de/artikel/100-fps-mehr-durch-tilemap-clipping/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Da ich momentan noch auf Bug-Jagd durch die Tiefen von The Kingdom of Darkness bin, habe ich heute mal zu Abwechslung das Tilemap Clipping eingebaut. Durch diese Technik werden einfach nicht alle Tiles gezeichnet, sondern nur die, die auch grade auf dem Bildschirm zu sehen sind.</p>
<p>Der Performancegewinn hängt von der Größe der Karte ab, bei mir hat es 100 FPS gebracht. Das ist weniger als es erstmal klingt, den ob ein Spiel nun mit  300 oder 400 Frames pro Sekunde läuft kann man nicht merken&#8230; Trotzdem hatte ich schon lange vor diese Technik einzubauen. Die Änerung ist eigentlich auch nur sehr klein:</p>
<p>
<pre class="brush: csharp; title: ; notranslate">
for (int i = (int)Camera.CameraPosition.X / 32; i &lt; Math.Min(((int)Camera.CameraPosition.X / 32) + 26, Tiles.Count); i++)
 {
 // Alle Spalten durchlaufen
 for (int j = (int)Camera.CameraPosition.Y / 32; j &lt; Math.Min(((int)Camera.CameraPosition.Y / 32) + 20, Tiles[0].Count); j++)
 {
</pre>
<p>
</p>
<p><span id="more-391"></span></p>
<p>statt</p>
<p>
<pre class="brush: csharp; title: ; notranslate">
for (int i = 0; i &lt; Tiles.Count; i++)
 {
 // Alle Spalten durchlaufen
 for (int j =0; j &lt;  Tiles[0].Count; j++)
 {
</pre>
</p>
<p>Und weiter geht die Bugsuche&#8230;.</p>
<br /><a href="http://niklas-rother.de/?p=391#comments" title="Comments on &quot;100 FPS mehr durch Tilemap Clipping&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?391" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/100-fps-mehr-durch-tilemap-clipping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimpleScreenshot 0.5.2</title>
		<link>http://niklas-rother.de/artikel/simplescreenshot-0-5-2/</link>
		<comments>http://niklas-rother.de/artikel/simplescreenshot-0-5-2/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 16:55:58 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[SimpleScreenshot]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[autostart]]></category>
		<category><![CDATA[bugfix]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=364</guid>
		<description><![CDATA[Wieder nur ein kleiner Fix: Wer SimpleScreenshot im Autostart, aber nicht in %windir%/system32 hatte, hat beim Start einen Fatal Error bekommen, weil die Sprachdateien nicht gefunden wurden. Der Fehler ist jetzt behoben! Zur Download Seite&#8230;]]></description>
			<content:encoded><![CDATA[<p>Wieder nur ein kleiner Fix: Wer SimpleScreenshot im Autostart, aber nicht in %windir%/system32 hatte, hat beim Start einen Fatal Error bekommen, weil die Sprachdateien nicht gefunden wurden. Der Fehler ist jetzt behoben!</p>
<p><span class="download"><a href="http://niklas-rother.de/projekte/simplescreenshot">Zur Download Seite&#8230;</a></span></p>
<br /><a href="http://niklas-rother.de/?p=364#comments" title="Comments on &quot;SimpleScreenshot 0.5.2&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?364" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/simplescreenshot-0-5-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>SimpleScreenshot 0.5.1</title>
		<link>http://niklas-rother.de/artikel/simplescreenshot-0-5-1/</link>
		<comments>http://niklas-rother.de/artikel/simplescreenshot-0-5-1/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 11:16:00 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[SimpleScreenshot]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[einstellungen]]></category>
		<category><![CDATA[portabel]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=356</guid>
		<description><![CDATA[in dieser Version gibt es nur eine Änderung: Der Standart SettingsProvider, welcher die Einstellungen sonstwo speichert wurde gegen diesen großartigen ausgetauscht welcher die Einstellungen im Programmverzeichnis speichert, wie sich das gehört. Damit ist SimpleScreenshot wieder voll portabel! Zur Download Seite&#8230;]]></description>
			<content:encoded><![CDATA[<p>in dieser Version gibt es nur eine Änderung: Der Standart SettingsProvider, welcher die Einstellungen sonstwo speichert wurde gegen <a href="http://www.dotnetnukeblog.de/Einstellungen+Einer+Windows+Anwendung+Speichern+Unter+NET+20.aspx">diesen</a> großartigen ausgetauscht welcher die Einstellungen im Programmverzeichnis speichert, wie sich das gehört. Damit ist SimpleScreenshot wieder voll portabel!<a href="http://niklas-rother.de/projekte/simplescreenshot"><br />
</a></p>
<p><span class="download"><a href="http://niklas-rother.de/projekte/simplescreenshot">Zur Download Seite&#8230;</a></span></p>
<br /><a href="http://niklas-rother.de/?p=356#comments" title="Comments on &quot;SimpleScreenshot 0.5.1&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?356" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/simplescreenshot-0-5-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Simple Screenshot 0.5</title>
		<link>http://niklas-rother.de/artikel/simple-screenshot-0-5/</link>
		<comments>http://niklas-rother.de/artikel/simple-screenshot-0-5/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 08:56:30 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[SimpleScreenshot]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[.Net]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=348</guid>
		<description><![CDATA[Was soll ich groß schreiben? Ja, es gibt wieder eine neue Version. Das dürfte aber erstmal die letzte sein, denn ich will auch mal mit The Kingdom of Darkness weitermachen. Hier ist der Changelog: Kontexmenü am Trayicon Screenshot-Taste wählbar Autostart &#8230; <a href="http://niklas-rother.de/artikel/simple-screenshot-0-5/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Was soll ich groß schreiben? Ja, es gibt wieder eine neue Version. Das dürfte aber erstmal die letzte sein, denn ich will auch mal mit The Kingdom of Darkness weitermachen.</p>
<p>Hier ist der Changelog:</p>
<ul>
<li>Kontexmenü am Trayicon</li>
<li>Screenshot-Taste wählbar</li>
<li>Autostart Option</li>
<li>32Bit Farben in den Vorschaubildern</li>
<li>Neues Icon</li>
<li>Regler zum Einstellen der Vorschaubildgröße</li>
<li>Doppelklick auf ein Bild öffnet es</li>
<li>Wenn ein String nicht in der Originalsprache gefunden wird, wird Englisch verwendet(statt Deutsch)</li>
</ul>
<p>Es gibt aber auch ein paar bekannte Bugs:</p>
<p><span id="more-348"></span></p>
<ul>
<li>Die Vorschaubilder werden immer quadratisch dargestellt, der Fehler liegt aber wohl im .Net Framework</li>
<li>Bei der Tastenauswahl kann man einige Tasten auswählen, die nicht funktionieren, und einige Tasten sind doppelt. Leider ist das die einzige Enum mit allen Tasten im .Net Framework, bitte nur &#8220;sinnvolle&#8221; Tasten benutzen!</li>
</ul>
<p>Vielen Dank auch noch mal an &#8220;markus&#8221; der die Ideen zu fast allen Neuerungen hatte. Leider konnte ich das vorgeschlagene Windowskontextmenü nicht umsetzen, weil Windows da scheinbar keine Funktiom für eingebaut hat&#8230; Und auch der Bug, dass man ein Bild nicht sofort öffnen kann, tritt bei mir nicht auf. Evtl. ist meine Festplatte schneller? Ich denke aber nicht, dass das jemanden stören wird, weil man die Screenshots ja eigentlich nicht sofort öffnet.</p>
<p><span class="download"><a href="http://niklas-rother.de/projekte/simplescreenshot">Zur Download Seite&#8230;</a></span></p>
<br /><a href="http://niklas-rother.de/?p=348#comments" title="Comments on &quot;Simple Screenshot 0.5&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?348" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/simple-screenshot-0-5/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

