"We are back" « oc.at

Programm Fun[d]grube

gue 03.12.2006 - 15:14 2205 4 Thread rating
Posts

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Hallo,

nachdem ich mir letztens ein paar kleine Tools geschrieben habe, die ich ganz gut gebrauchen kann und ich diese der Welt nicht vorenthalten wollte, hab ich sie auf sourceforge gestellt. Der Quelltext ist durch Subversion erhältlich. Kompilierte Versionen gibt es im Downloadbereich.

Die Sammlung nennt sich win2winmgr und besteht derzeit aus folgenden 3 kleinen Tools:

Win2: Speichert den Zustand von Fenstern und kann diesen wieder herstellen. Ganz praktisch wenn Spiele die Auflösung ändern und dadurch die Fenster herumverschoben werden (ist zumindest auf meinem Dualscreen öfters der Fall).
Plattform: Win32
Sprache: C++ (MFC) (Mein erstes und wohl auch letztes MFC Programm :))

Reminder: Ein Erinnerungstool, das so einfach wie möglich zu bedienen sein sollte. Die anderen waren mir immer zu kompliziert zu "stellen" (Dialog, Zahlen eintippen...), deshalb hab ich mir das geschrieben: Sitzt in der Notificationarea (/Systemtray/Bereich neben der Uhr). Linksklick erhöht den Zähler um 1 Minute, Rechtsklick verringert ihn. Nach abgelaufener Zeit kommt ein Alarmfenster.
Plattform: Win32, .NET2.0 (Mit Mono unter Linux hab ichs nicht zum Laufen gebracht)
Sprache: C#

Binary2CS: Liest eine Binärdatei ein und speichert sie als C# Quelltext ab. Ist wahrscheinlich nur für Entwickler interessant (oder auch nicht :D).
Plattform: Windows/Linux, .NET/Mono
Sprache: C#

Feedback, Bugreports, Patches, eure Tools, weitere Beiträge natürlich erwünscht.

P.S.: Wenn ihr auch Programme habt, die ihr mit der Welt teilen wollt, dann könnt ihr sie mir auch schicken und ich stell sie auf Sourceforge rauf -> PM

Geigerzeiger

Addicted
Registered: Jan 2004
Location: anywhere
Posts: 449
Zitat
Binary2CS: Liest eine Binärdatei ein und speichert sie als C# Quelltext ab. Ist wahrscheinlich nur für Entwickler interessant (oder auch nicht ).
Plattform: Windows/Linux, .NET/Mono
Sprache: C#

Meinst du einen Disassembler sowie das ildasm ??

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Nein ok, ich hab mich falsch ausgedrückt. Das ganze ist kein Decompiler :). Eine Binärdatei wird eingelesen und es wird C# Quelltext in der Form byte[] name = new byte[] { /* Hex... */ }; erzeugt. Also wenn du irgendwelche Resourcen hast, die du nicht in einem Resource-File verwalten willst/kannst, dann kannst du das so einfach in dein Programm hineinkompilieren und dann z.B. von einem MemoryStream lesen als ob es ein "normaler" Stream wäre. Das Programm hat vielleicht 20 Zeilen Code oder so ;)
So habe ich das beim Reminder-Tool gemacht.

edit:
Das ist der source ;)
Code: PHP
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace Binary2CS {
	class Program {
		static void Main(string[] args) {
			if (args.Length < 1) {
				Console.Error.WriteLine("Usage: Binary2CS <inputfile> [<outputfile>]");
				return;
			}
			string inputFileName = args[0];
			string outputFileName;
			FileInfo inputFile = new FileInfo(inputFileName);
			if (!inputFile.Exists) {
				Console.Error.WriteLine("File does not exist");
				return;
			}
			if (args.Length < 2) {
				outputFileName =
					inputFileName.Substring(0, inputFileName.LastIndexOf(inputFile.Extension))
					+ ".cs";
				Console.WriteLine("Writing to file " + outputFileName);
			} else {
				outputFileName = args[1];
			}
			FileStream i = new FileStream(inputFileName, FileMode.Open);
			StreamWriter o = new StreamWriter(outputFileName);
			String byteArrName = inputFile.Name.ToLower().Replace('.', '_');
			o.WriteLine("/* Created with Binary2CS */");
			o.WriteLine("byte[] " + byteArrName + " = new byte[] {");
			byte[] buf = new byte[1024];
			int count = 0;
			while ((count = i.Read(buf, 0, 1024)) > 0) {
				for (int j = 0; j < count; j++) {
					o.Write(String.Format("0x{0:x}, ", buf[j]));
				}
			}
			o.WriteLine();
			o.WriteLine("};");
			i.Close();
			o.Close();
		}
	}
}
Bearbeitet von gue am 11.12.2006, 09:38

Minutourus

OC Addicted
Avatar
Registered: Aug 2000
Location: Vienna
Posts: 727
He klasse Tools.

Da bedanke ich mich doch recht freundlich und brav für Win2. ;)

DANKESCHÖN

Lukas

Here to stay
Avatar
Registered: Feb 2004
Location: ~
Posts: 1883
http://sourceforge.net/projects/misg

noch stark am entwickeln aber ideen für neue module/funktionen sind gerne willkommen!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz