Laden...

Forenbeiträge von Steav Ingesamt 142 Beiträge

21.06.2012 - 16:44 Uhr

Habe die Antwort gefunden...

aus irgendeinem Grund liest NVDA die Texte nicht, wenn man das Programm aus Visual Studio heraus startet. Startet man die .exe direkt funktioniert es einwandfrei.

Für Hintergründe, warum das so ist wäre ich trotzdem noch dankbar =)

21.06.2012 - 15:53 Uhr

Hallo allerseits,

ich möchte ein kleines WPF Testprogramm entwickeln, welches mit Screenreadern welche z.B. von blinden Usern als Bedienhilfe verwendet werden, bei dem der Name und ein Hilfetext des Fokusierten Controls vorgelesen werden.

Dazu verwende ich die AutomationProperties. Allerdings scheint NVDA ausschließlich den Title meines Windows vorzulesen, und den Focus auf den anderen Controls zu ignorieren.

Hat zufällig jemand Erfahrung auf dem Gebiet oder eine Ahnung, woran das liegen könnte?


<Window x:Class="AutomationPropertiesTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="394" Width="307"       
        >
    
    <Grid>
        <Label Content="Summand" Height="28" HorizontalAlignment="Left" Margin="12,8,0,0" Name="label1" VerticalAlignment="Top" />
        <Label Content="Summand" Height="28" HorizontalAlignment="Left" Margin="12,43,0,0" Name="label2" VerticalAlignment="Top" />
        <Label Content="Summe" Height="28" HorizontalAlignment="Left" Margin="12,125,0,0" Name="label3" VerticalAlignment="Top" />
        <Rectangle Height="2" HorizontalAlignment="Left" Margin="0,80,0,0" Name="rectangle1" Stroke="Black" VerticalAlignment="Top" Width="336" />


        <Button x:Name="btnBerechnen" Content="Berechnen" AutomationProperties.AutomationId="MainWindow_Button_Berechnen" AutomationProperties.IsRequiredForForm="True" AutomationProperties.Name="Summe Berechnen" AutomationProperties.HelpText="Mit diesem Knopf starten Sie die Berechnung" Height="23" HorizontalAlignment="Left" Margin="12,88,0,0" VerticalAlignment="Top" Width="261" />

        <TextBox x:Uid="summand 1" AutomationProperties.AutomationId="MainWindow_TextBox_Summand1" AutomationProperties.IsRequiredForForm="True" AutomationProperties.Name="Summand 1" AutomationProperties.HelpText="Bitte geben Sie den ersten Summanden ein" Height="23" HorizontalAlignment="Left" Margin="82,10,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
        <TextBox AutomationProperties.AutomationId="MainWindow_TextBox_Summand2" AutomationProperties.IsRequiredForForm="True" AutomationProperties.Name="Summand 2" AutomationProperties.HelpText="Bitte geben Sie den zweiten Summanden ein" Height="23" HorizontalAlignment="Left" Margin="82,43,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" />
        <TextBox AutomationProperties.AutomationId="MainWindow_TextBox_Summe" AutomationProperties.IsRequiredForForm="False" AutomationProperties.Name="Summe" AutomationProperties.HelpText="Hier steht das Ergebnis" Height="26" HorizontalAlignment="Left" Margin="82,125,0,0" Name="textBox3" VerticalAlignment="Top" Width="120" />
    </Grid>
</Window>

Danke schonmal 😃

Steav

14.05.2011 - 19:54 Uhr

Er sollte pink / rosa sein, weil er für meine Freundin ist ^^ Der würde er in der Farbe doppelt so gut gefallen wie in schwarz.

Im Haarforum kann ich mal fragen, wobei ich fast glaube, dass ich da eher noch in nem Messerforum Erfolg haben könnte^^ aber danke schonmal für den Tipp

P.S: Der Screenshot hier im Anhang ist ein Stilett, kein Buterfly.

13.05.2011 - 16:08 Uhr

Hallo allerseits,

ich such einen Gegenstand zu bestellen, den es nicht in jedem beliebigen Webshop gibt,
und zwar:

Einen pinken/rosa Butterfly-Kamm.

Das ist ähnlich wie ein Butterfly-Messer, nur, dass anstatt einer Klinge ein Kamm dort drinnen ist 😃

Auf Ebay US gibt es die Dinger zu bestellen (ja sie sind auch in Deutschland legal, es ist nur ein Kamm, keine Schneide).... allerdings nur in schwarz, ich suche eines in Rosa.

Also wer ne Idee hat wo ich fündig werde oder werden könnte.... immerher mit allen Webshop URLs die Ihr so auf Lager habt 😃

mfg
Steav

06.05.2011 - 15:55 Uhr

Kannst du mit das mit dem TCP Paketlimit nochmal erklären wie dies die Prozessorlast erhöhen soll bzw. wie kann ich dies verändern?

Ich meinte die größe des Buffers (Byte[]) beim Downloaden.

Als ich meinen ersten Downloader schrieb, habe ich diesen so groß gemacht, wie die TCP-Spezifikation die größe eines Packets limitiert (65535 Byte)... dann aber schnell festgestellt, dass ein so kleiner Buffer aufgrund der vielen Operationen eine hohe Prozessorlast erzeugt. (Buffer füllen, buffer leeren, buffer füllen, buffer leeren).

Ein größerer Buffer kostet zwar ggf. etwas mehr RAM, aber erspart dem Prozesor Arbeit.

03.05.2011 - 07:37 Uhr

Hast Du bzgl. der Auslastung beim Download mal den Buffer vom Stream erhöht?

Ich hatte diesen bei meinem ersten Download der Logik halber auch zunächst auf das TCP Paketlimit gesetzt, aber deutlich höhere Werte haben deutlich weniger Auslastung auf der CPU beansprucht.

03.05.2011 - 07:35 Uhr

Also privat programmieren hat imo nur dann Erfolg, wenn es einem auch Spaß macht. Wichtig ist halt, dass man sich selbst mit dem Projekt / Ziel identifizieren kann.

Und wenn es keine allgemeine 'Unlust' ist wie Du sagst, sondern nur eine Blockade ist doch alles super. Einfach 2 Kaffe reinziehen, Musik an und mit Gewalt den inneren Schweinehund überwinden. Ist man dann einmal wieder drin geht es wieder 😃

19.04.2011 - 11:43 Uhr

Tut mir leid, aber in einer Session hat ein Passwort absolut nichts verloren. Absolut überhaupt nicht. Wenn ich wüsste, dass eine Seite mein Passwort im Cookie speichert, würde ich aber massiv dagegen vorgehen. Das ist alles andere als Datenschutzfreundlich.

Innen Cookie gehört wenn überhaupt ein Hash, anhand dem Du eine Identifikation durchführen kannst ( und nebenbei dafür sorgen kannst, dass nur eine einzige Session eines Users gültig ist ). Und verschlüsselt gehört das ganze Ding ebenso.

Die beiden Funktionen sollten aber ein aktives Logout durchführen.
Wenn Du dann noch den Zugriff gewährst stimmt was anderes nicht.

Genau das war ja meine Rede (falls ich Deinen Satz richtig entschlüsselt habe an den Stellen wo Du Cookie + Session verdrehst).

Ich möchte eine die Daten eben 'nicht' im Cookie speichern, so wie der Membership-Provider von ASP das scheinbar macht und speichere es deshalb in der Session - und lösche die ASP-Cookies in der Global.asax beim Beenden der Session.

Verschlüsselt sind die Passwörter von vornherein als salted MD5's.

18.04.2011 - 14:06 Uhr

Wenn Du das Passwort änderst, heißt es noch lange nicht, dass die Session zerstört wird. Ist meist auch gar nicht gewollt.
Wenn von administrativer Ebene wirklich ausgeloggt werden sollte, muss das auch aktiv passieren.

// Zu schnell abgeschickt..
Ausloggen passiert mit

Session.Abandon();  
FormsAuthentication.SignOut();  

Das mache ich, danke. Mich einfach auf das Vorhandensein eines Cookies zu verlassen ist mir zu unsicher, da jeder das Faken kann. Deshalb wird mit Beenden der Session das Cookie gelöscht und das Passwort welches ausschließlich in der Session gespeichert wird mit überprüft.

18.04.2011 - 12:07 Uhr

Gerade das aspxauth -Cookie gefunden.... das passiert alles durch Cookies?

Ist das nicht bedenklich? Habe gerade das Passwort des Users mit dem ich eingeloggt in der Datenbank geändert und der Membership-Provider hat mich weiterhin als angemeldeten Benutzer angezeigt, obwohl ich im GetUser null zurückgebe, da keine Authinfos hinterlegt sind.

18.04.2011 - 11:52 Uhr

Hallo allerseits,

hoffe die Frage ist nicht ganz unberechtigt, aber ich hab ein Verständnis-Problem mit meinem Custom Membership-Provider.

Und zwar:
Ich speichere Sachen in meinem Custom MembershipUser + meiner Session.

Jetzt ist es aber so, dass der Login des MembershipProviders länger gespeichert wird als meine Sessiondaten.

D.h. es kann die Situation auftreten, dass Session => Abgelaufen / Gelöscht (in der Entwicklungsphase merke ich das nach einem Clean Solution), aber der Login des Membership-Providers besteht scheinbar noch.

Im GetUser(...) null zurückzugeben als MembershipUser hilft auch nicht.

Da stellt sich doch die Frage wo die Daten gespeichert werden und was ich hier noch nicht verstanden habe?

mfg
Steav

11.04.2011 - 13:49 Uhr

Schon das Microsoft.Win32.SystemEvents.SessionEnding -Event probiert?

Eventargs haben 2 Reasons:
Logoff und Shutdown.

17.12.2010 - 16:19 Uhr

Das mit dem zuballern will ich eben genau nicht. Da weiß ich schon jetzt was als Antwort kommt, wenn ich im Bug-Case dann reinschreibe "wenn ich eure API zuballere kommt der Fehler ..."

Damit würde der Anbieter die Qualität der eigenen API stark in Frage stellen, wenn er Fehler bei einem Stresstest einfach ignorieren würde...

06.12.2010 - 13:22 Uhr

Wenn die Methode Methoden verwendet, die depcreated (obsolete) sind, kannst Du sie selbst doch auch als Obsolet kennzeichnen, oder?

ggf.


[Obsolete("Verwendung obsoleter Methoden")]
public void ..... ()
{

}

zur Unterscheidung

18.10.2010 - 07:18 Uhr

Wenn es sich um ein echte "Datenbank" handelt, würde ich SQLite empfehlen...
Ansonsten reicht XML völlig aus, um Klassen representativ zu speichern.

Siehe XML-Serialisierung.

PS: Linq2XML -Abfragen müssen nicht "kompliziert" sein. Nach ein wenig Übung kommt man beim Gestalten der Abfragen mit dem LinqPad sehr schnell voran.

07.09.2010 - 16:00 Uhr

Müsste eine injecte'de DLL nicht unter den "geladenen Modulen" des Prozesses auftauchen? Nur ne wilde Vermutung, hab mich damit nicht explizit außeinandergesetzt ^^


foreach (System.Diagnostics.Process process in System.Diagnostics.Process.GetProcesses())
            {
                try
                {
                    foreach (System.Diagnostics.ProcessModule module in process.Modules)
                    {
                        MessageBox.Show(process.ProcessName + ": " + module.ModuleName);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());   
                }
            }

Kleiner Tipp am Rande:
Bei Spielen wie z.B. CS werden Cheats / Hacks im Ring 0 (Sprich Kernelmode) gestartet.... das verhindert herkömmlichen Scanprogrammen (wie z.B. in der Theorie auch das von Blizzard geladene Warden) auf den Prozess zuzugreifen, da die Rechte dazu nicht ausreichen. (Siehe den oben genannten try / catch Block, beim Versuch auf einen Windows-Dienst zuzugreifen).

Deshalb könnte es ratsam sein, den Anti-Cheatschutz auch als Treiber laufen zu lassen.

25.05.2010 - 10:23 Uhr

Es geht um den Windows-Effekt beim Verschieben / Vergrößern eines Fensters.
Siehe Screenshot im Anhang

21.05.2010 - 16:49 Uhr

Hallo allerseits,

ich habe eine WPF-Anwendung mit FormBorderStyle = None.
Das Anwendung kann per Window.DragMove(); verschoben.

Wie jedes Windows-Fenster, zeichnet allerdings auch dieses während des Verschiebens einen grauen Rahmen um die Anwendung.

Ich denke, das passiert irgendwo in der WinAPI.
Kann man das irgendwie abschalten?

mfg
Steav

18.05.2010 - 08:44 Uhr

Hallo allerseits,

habe ein Problem beim Absenden eines HTTP POST's via Silverlight... und zwar unter folgenden Umständen:

Die Silverlight-Anwendung versucht einen Handshake bei einem lokal installierten HTTP-Listener zu machen. Das funktioniert, sofern der Server zum Zeitpunkt des ersten Handshakes bereits läuft, was aber häufig nicht gegeben ist.

Wenn also der erste Handshake fehlschlägt (da es die ZielURL nicht gibt) wird die Komponente durch den Aufruf einer CLICK-ONCE-SETUP Url gestartet.

Nun allerdings scheint Silverlight / der Browsercache / Sonstiges sich 60 sekunden lang "zu merken", dass es diese Adresse nicht gibt, und solange schlagen auch weitere Handshakes fehl, als gäbe es den Server nicht... obwohl dieser nun läuft und Anfragen entgegennehmen kann.

Hinweis: Es ist kein Policy-Problem. Es geht hierbei um SL4 und nach 60 Sekunden funktioniert die Anfrage wie gesagt.

Silverlight hat ja leider nur sehr begrenzte Möglichkeiten die HTTP-Header anzupassen, da diese weitgehend vom Browser gesteuert werden.

Ich habe auch bereits versucht an die Anfrage-URL einen Random-Parameter anzuhängen.... z.B.: http://localhost:17180?rnd=12542 , leider ohne Erfolg.

Hat jemand eine Idee was genau hier passiert und wie man das Verhalten ändern bzw. umgehen kann?

mfg
Steav

[EDIT]
Ich umgehe das Problem jetzt, indem ich vor dem Handshake über ein Scripting-Objekt prüfe, ob der Server-Prozess läuft. Das Problem bedarf also nicht mehr dringend einer Lösung....

wäre aber dennoch auf Lösungen gespannt
[/EDIT

26.01.2010 - 18:35 Uhr

Hallo sunny83,

Wenn es Dir nur um den .DLL-Aufruf geht, kannst Du Dir eine entsprechende Schnittstelle Schreiben zum Aufrufen der C# Klasse & Funktionen über InterOP aus Javascript heraus.

Beispiel dazu hier:
http://www.codeproject.com/KB/gadgets/GadgetInterop.aspx

Wenn es Dir auch um die Gestaltung eines GUI mit .NET Technologien geht wäre Silverlight eine Lösung für 32Bit Systeme (Leider wird hier kein 64bit unterstützt) oder wahlweise WPF Websites (xbap), hier wird auch 64bit supportet, dafür wird anstatt des Silverlight Plugins das .NET-Framework 3.0 bzw 3.5 benötigt.

22.12.2009 - 08:18 Uhr

Zum Einem ist der Funktionsumfang beschränkt, zum ist es ein Vorteil für sagen wir mal "professionellere" Entwickler eine "Alles in Einem"-IDE zu haben die sich dann auch eine Lizens besorgen werden.

Die Express Editionen für eine spezifische Sprache reichen durchaus zum Lernen einer Sprache oder kleinere Projekte in der Sprache aus, was genau die "kostenfreien" Zielgruppen trifft.

20.12.2009 - 10:05 Uhr

Hallo Xynratron,

danke für Deine Hilfe. Die Default.aspx findet er jetzt, allerdings kommt anstelle dessen jetzt eine neue Fehlermeldung:

http://87.106.81.39/Default.aspx

%1 is not a valid Win32 application.

12.12.2009 - 22:55 Uhr

hallo allerseits, würd gern mal einen Server asp.net fähig machen um auch mal asp.net anwendungen liveschalten zu können. Vorab schonmal: Hab kaum Erfahrung mit IIS.

Problem: Der IIS gibt immer, wenn es sich nicht um statischen content handelt eine 404 not found zurück.

Statischer Content: (funktioniert)
http://87.106.81.39/iisstart.htm
http://87.106.81.39/pageerror.gif

Gewünschter Content: (gibt 404)
http://87.106.81.39/Default.aspx

Active Serverpages ist unter den Webdiensterweiterungen aktiviert.
".*" ist als MIME-Type registriert
Die Website hat auf allen NutzerKonten volle Rechte (erstmal zum Testen um es ins Laufen zu kriegen)

Jemand ne Ahnung woran es liegt oder was ich weiter testen könnte um mehr herauszufinden? Google hat mich leider noch nicht weitergebracht.

Thx

02.10.2009 - 10:40 Uhr

Genau das meinte ich.....

Du machst Dir eine dll mit den gewünschten Funktionen und rufst in denen die entsprechende HTTP-Adresse auf....

Mit der Webclientklasse lässt sich der Request sogar fast ohne Programmierung durchführen....

bspw:



System.Net.WebClient Client = new System.Net.WebClient();
private Boolean Move(String Direction)
{         
            String Response = 
               Client.DownloadString("http://1.2.3.4/axis-cgi/com/ptz.cgi?move=" + Direction);

            if Response.Contains("Prüfe Inhalt der Seite, ob der Aufruf funktioniert hat")
                return true;
            else 
                return false;
}

Da Du hier keine eigene 'Move'-Funktion hast, sondern nur die Move-Funktion der HTTP-API kapselst, nennt sich das Wrappen / Kapseln.

01.10.2009 - 14:45 Uhr

Gibt es eine einfach möglichkeit dies über C# zu machen, das ich die Kamera programmgesteuert drehen/bewegen kann?

Ich denke die einfachste Möglichkeit wäre es einfach eine Klassenbibliothek zu stellen die die gewünschten Funktionen aus der HTTP-Api wrapped (kapselt).

30.09.2009 - 12:28 Uhr

Hallo destroyed,

schön, dass Du Dein Problem lösen konntest.

Hier noch ein Tipp am Rande:
Wenn es die Möglichkeit gibt Deine SQL-Statements in Stored Procedures zu packen, verwende diese. Gerade bei häufig aufgerufenen Statements (ganz egal wie kurz sie sind) lohnt sich das performancetechnisch sehr.

22.07.2009 - 13:42 Uhr

Ich kann nur Video2Brain für den C# empfehlen... da wird von der IDE über die Hintergründe bis him zum realen Code ein genialer Videoeienstieg in die gesamte Welt der Entwicklung ermöglicht.

17.07.2009 - 08:59 Uhr

DataGridView.ClearSelection()

?

24.06.2009 - 08:45 Uhr

Auch wenn der alt ist, da ich gerade auch ein ganzes Weilchen danach gesucht hab (wenn man das System wohl nicht kennt):

Du musst im Report.rdlc im Designer auf eine 'Graue' Fläche außerhalb des Inhaltfelds klicken dann kriegst du in den Properties den Report und kannst dort Language auf German stellen.

15.06.2009 - 16:22 Uhr

Hallo ZeroQool,

In wer-kennt-wen per C# Code einzuloggen habe ich auch schon vergeblich versucht. Bei anderne Seiten war das kein Problem, aber gerade diese Seite scheint da auf etwas Wert zu legen was ich (und andere, wenn man das Problem mal googled) nicht entdecken konnten.

15.06.2009 - 15:11 Uhr

Hallo allerseits,

ich würd mir gerne spaßeshalber ein kleines Synthesizer-Spielzeug mit BASS.NET machen.

(Ziel ist es eine Form zu haben, in der eine hand voll Spuren übereinander gelegt werden die aus einzelnen Tönen 'zusammengesetzt' werden. Die einzelnen Töne sollen dann mit Filtern 'überlegt' werden können.)

Prinzipiell ist das soweit alles klar und auch alles im Feature-Umfang des BASS Frameworks vorhanden, nur leider scheiter ich schon daran einen Channel 'loopen' zu lassen.....

Sprich Töne " A B C " sollen abspielen und danach wiederholt werden. Bei mir läuft es nur einmal durch und lässt sich danach nicht mehr neu starten. Ich verwende die BassMix.Bass_Mixer- Funktionen. Auch mit BASSFlag.BASS_MUSIC_LOOP lässt sich kein Loop erzeugen.

PS: Die Samples hab ich mir natürlich angeschaut, die gehen nur leider nicht auf Loops ein sondern auf einfach Abspielen + Effekte.

Über diesbezügliche Hinweise und allgemein ein paar Tips für dieses Projekt und das BASS.NET Framework von Insidern würde ich mich sehr freuen.

mfg Steav

25.05.2009 - 12:02 Uhr

Keylogger kannste mit oben erwähnten Globalkeyhooks oder einem GetAsyncKeyState in einer endlosschleife.

Zuverlässigere Ergebnisse liefert sicherlich der Globale Keyhook. Was Deinem Virenscanner besser gefällt musste wohl testen^^

11.05.2009 - 09:04 Uhr

Falls Dich das Berechnen der Abweichung von Wörtern interessiert kannst Du Dir bspw. mal die Levenshtein-Distanz anschauen:

http://de.wikipedia.org/wiki/Levenshtein-Distanz

08.05.2009 - 10:18 Uhr

Die Forensuche oder Google kennen sie aber. Ein Profiler ist keine Funktion sondern ein Tool um sowas zu analysieren.

08.05.2009 - 09:01 Uhr

Hallo Golo,

Hast Du mal versucht aus dem Server Explorers einen entsprechenden ServiceControler zu verwenden?

Klasse:
[

System.ServiceProcess.ServiceController](http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx)

Servers -> localer host -> Services

--> Entsprechenden Servicecontroler auf Form ziehen, im Code serviceController1.Status abfragen.

Sory, falls das unter Win Vista nicht geht aber unter XP gehts und als visual studio / .NET feature sollte es ja auch vistafähig sein.

Ahja musst beim Servicecontroller natürlich den maschinennamen im code durch den des ausführenden Rechners ersetzen.

07.05.2009 - 10:13 Uhr

Hab zu dem Thema ein Tutorial gefunden:

http://www.codingthewheel.com/archives/how-to-inject-a-managed-assembly-dll

Here's the thing. You don't really "inject" a managed assembly into another process. Instead, you inject a native DLL, and that DLL executes some code which invokes the .NET runtime, and the .NET runtime causes your managed assembly to be loaded.

05.05.2009 - 13:52 Uhr

Hallo Phil,

das funktioniert bei dem WOW Arsenal wenn Du dem Webclient als UserAgent im Requestheader Firefox angibst.

WebClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2");

04.05.2009 - 13:27 Uhr

makecert:

http://www.codeproject.com/KB/aspnet/4stepsSSL.aspx#Step%204:-%20Test%20the%20site

:Edit: Ups sory bischen am Thema vorbeigeschossen da gehts um IIS development

28.04.2009 - 13:42 Uhr

Die Kampagne liegt nur leider daneben...

Zwar glaube ich auch nicht an Gott, aber der Glaube is weitgenug verbreitet um eine ideelle Daseinsberechtigung zu haben.

Ich bezeichne Gott auch gerne als 'Metapher'. Jeder sieht etwas eigenes in dem Begriff Gott.

Man macht ja auch keine Kampagne "Es gibt keine Hoffnung, hört auf an Hoffnung zu glauben" obwohl man Hoffnung weder Sehen noch Anfassen kann... es ist wie 'Gottesglaube' etwas, was in den Köpfen der Menschen 'lebt' und existiert.

24.04.2009 - 08:53 Uhr

Bins nochmal 😉
Da für längere Codes, diese Art der generierung ja nicht gerade komfortable ist würd mich interessieren obs auch eine Möglichkeit gibt einen Verweis auf eine DLL zu legen und ledilich den Methodenaufruf sowie den Verweis injizieren?

mfg

DLL-Injection ist in C# leider nicht möglich. Was Du natürlich machen könntest ist eine native DLL zu schreiben und den Code via Pinvoke aufzurufen.

21.04.2009 - 14:21 Uhr

Ich habe den Dotnetpro Artikel gelesen....

ist wirklich interessant und in der Theorie auch sicher mächtig, mir fällt allerdings jetzt kein konkreter Anwendungsfall an wo ich es (habe allerdings auch den Wunsch gehabt ein System zu kompromittieren) als Rootkit verwenden würde...

09.04.2009 - 13:39 Uhr

Hallo toem,

ich war so frei einfach mal auf gut Glück Deine Beiträge zu überfliegen.

Hört sich an, als wolltest Du das Musiksuchprogramm von Apple (iphone) nachprogrammieren wollen. Hier reichen wenige Sekunden Musik aus und er findet das gesamte Stück.
Nur:::

Bold = Fehler hervorgehoben,
Rot = Fehlendes nachgetragen.

So Sachen kommen vor!

08.04.2009 - 17:15 Uhr

Ich hab merkwürdigerweise bereits ein problem mich an das Event dranzuhängen....
Ich versuche es vor dem .Load zuzuweisen und setze dort einen Breakpoint, der Code kommt aber nie dort an sondern das Programm stürzt bereits vor dem Erreichen des Events ab:

Die Datei oder Assembly "TrackBox, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

Überseh ich hier etwas Offensichtliches?


        private void btn_LadeInNeuerAppDomain_Click(object sender, EventArgs e)
        {
            AppDomain NeueDomain = AppDomain.CreateDomain("TestDomainXYZ");

            NeueDomain.AssemblyResolve += new ResolveEventHandler(NeueDomain_AssemblyResolve);
            NeueDomain.Load(System.IO.File.ReadAllBytes(openFileDialog1.FileName));
        }

        System.Reflection.Assembly NeueDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {
            // Hier kommt er nie an
            MessageBox.Show("success");
            return null;
        }

Mit einem Try / Catch um das Load gehts auch nicht....

hab mal die gesamte Exception geprüft:

System.IO.FileNotFoundException: Die Datei oder Assembly "TrackBox, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

Dateiname: "TrackBox, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"

bei System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)

bei System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)

bei System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)

bei System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)

bei System.Reflection.Assembly.Load(String assemblyString)

bei System.UnitySerializationHolder.GetRealObject(StreamingContext context)

bei System.AppDomain.Load(Byte[] rawAssembly)

bei Allgemeine_Testsolution.Form1.btn_LadeInNeuerAppDomain_Click(Object sender, EventArgs e) in D:\Steav\Visual Studio 2008\Projects\Allgemeine Testsolution\Allgemeine Testsolution\Form1.cs:Zeile 63.

=== Zustandsinformationen vor Bindung ===

LOG: Benutzer = SW\sboecking

LOG: DisplayName = TrackBox, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
(Fully-specified)

LOG: Appbase = file:///D:/Steav/Visual Studio 2008/Projects/Allgemeine Testsolution/Allgemeine Testsolution/bin/Debug/

LOG: Ursprünglicher PrivatePath = NULL

Aufruf von Assembly : (Unknown).

===

LOG: Diese Bindung startet im default-Load-Kontext.

LOG: Es wurde keine Anwendungskonfigurationsdatei gefunden.

LOG: Die Computerkonfigurationsdatei von C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config wird verwendet.

LOG: Die Richtlinie wird derzeit nicht auf den Verweis angewendet (private, benutzerdefinierte, teilweise oder pfadbasierte Assemblybindung)

LOG: Download von neuem URL file:///D:/Steav/Visual Studio 2008/Projects/Allgemeine Testsolution/Allgemeine Testsolution/bin/Debug/TrackBox.DLL.

LOG: Download von neuem URL file:///D:/Steav/Visual Studio 2008/Projects/Allgemeine Testsolution/Allgemeine Testsolution/bin/Debug/TrackBox/TrackBox.DLL.

LOG: Download von neuem URL file:///D:/Steav/Visual Studio 2008/Projects/Allgemeine Testsolution/Allgemeine Testsolution/bin/Debug/TrackBox.EXE.

LOG: Download von neuem URL file:///D:/Steav/Visual Studio 2008/Projects/Allgemeine Testsolution/Allgemeine Testsolution/bin/Debug/TrackBox/TrackBox.EXE.

08.04.2009 - 10:09 Uhr

Hallo Golo,

Könntest Du ein paar Details dazu schreiben wie Du das Problem mit dem AssemblyResolve Event lösen konntest? Habe das Gleiche vor, bin aber noch nicht ganz dahinter gekommen...

thx 😃 Steav

24.02.2009 - 07:25 Uhr

Ein Button zum hochladen auf einen oneclickhoster oder wahlweise ftp zugang wäre noch ein nettes feature

13.02.2009 - 08:14 Uhr

Hallo Toem99,

bist Du sicher, dass das 'Sterben' der Events am TCP/IP Timeout liegt und nicht auch an dem Standby?

04.02.2009 - 07:33 Uhr

Ich habe meinen Einstieg mit einem Video2Brain C# Einstieg Videotutorial gemacht.

Ist sehr angenehm, da einem auch der Umgang mit der Entwicklungsumgebung gezeigt wird etc.

02.02.2009 - 09:47 Uhr

Gründe warum man häufiger Seiten mit .php & co sieht:

  • Es gab sie schon immer.
    Die Leute haben sich seit Jahren auf php & co eingeschossen... von asp.net weiß der Großteil der nicht .NET-Entwickler kaum weiß, was asp.net wirklich ist.

  • Der 'Standard'-Webspace ist nicht asp.net geeignet.
    Wenn man eine Seite mit php entwickeln möchte, muss man sich um den Webspace keine Gedanken machen... bekommt ihn überall hinterhergeworfen. Ich persönlich finde für asp.net ist das minimum an Resourcen ein vhost unter windows (IIS). Da wäre man allerdings direkt bei ~15€ / Monat aufwärts.

Das ändert allerdings nichts daran, dass asp.net riesen Vorteile mit sich bringt... nicht NUR für Leute die ohnehin .NET in Visual Studio entwickeln, sondern auch alteingesessene phpler sollten asp.net komfortabler finden.