Laden...

Forenbeiträge von ProGamer Ingesamt 660 Beiträge

05.09.2013 - 11:00 Uhr

Du kannst das beenden/schliessen in einen Finally-Block reinpacken.
müsstest die variablen dann nur noch außerhalb des Try-Blocks definieren.

aber das gehört alles zu den Grundlagen

04.09.2013 - 16:36 Uhr

mal was ganz einfaches,

starte die cmd (start -> ausführen -> cmd) und navigiere zum Pfad wo sich deine excel-datei befindet
(cd "C:\temp\myexcelfiles"). dort gib einfach mal den Dateinamen an ("MyExcelFile.xls" (was vllt
einige nicht wissen, ist die AutoComplete Funktion in cmd ->ersten buchstaben eingeben und Tab
drücken, oder *.xls und Tab)) und drück enter. Wenn das mit excel geöffnet wird ist das problem
woanders. wenn nichts passiert, müsstest du die Zuordnungen der Dateitypen mal überprüfen.

Dateitypen zuordnen

04.09.2013 - 10:03 Uhr

wäre die Messenger-Klasse aus dem
MVVMLight-Framework nicht das was du vorhast? du registrierst deine Klassen für eine bestimmte
Nachricht und reagierst dann drauf wenn sie erhalten wird.

04.09.2013 - 09:06 Uhr

Hallo, was du versuchen könntest wäre es deine Form zu einem Child des Desktops zu machen

Hier ist ein Beispiel wie Notepad in die eigene Form gequetscht wird aber das Beispiel dürfte sich auf
dein Problem leicht anpassen lassen (ja ich weiss, es ist vb6 Code, aber die API ist immernoch die
gleiche)

Fremdes Fenster in eigenes Fenster einbinden

was noch fehlen dürfte wäre die API um den Desktop handle zu ermitteln.

04.09.2013 - 08:58 Uhr

Das gleichzetige lesen ist kein Problem, das schreiben hingegen wird nacheinander ausgeführt.

03.09.2013 - 16:08 Uhr

Hallo,

bestimmt hattest du das hier schon gefunden, aber vllt hilft es dir ja mit den neuen erkenntnissen weiter: How to convert packed integer (16.16) fixed-point to float

was es jetzt hiermit auf sich hat würde mich auch mal interessieren, nur leider kann ich mir ebenfalls keine reim drauf machen -.-

03.09.2013 - 15:59 Uhr

wenn ich nicht einmal einen Shape-rechteckig anlegen kann, was ist dann neu an der .Net Sprache?

FormCutter

mit WPF wird das ganze nochmal auf die spitze getrieben.
Und .Net ist nur ein Framework! (ein Wrapper um die WinApi wenn man es genauer nimmt)

03.09.2013 - 09:45 Uhr

ich würde dir auch eher zu einer XML raten.

02.09.2013 - 08:28 Uhr

"wird nicht unterstützt"

Die Temperature von CPU kannst du nur auslesen wenn MainBoard/CPU den Wert unterstützt.

...

aber es muss ja eine möglichkeit geben die Temperatur auszulesen.

wenn du dennoch den wert trotzdem wissen willst nimm dir ein Thermometer in die Hand und fang an
an der CPU zu messen. nur drauf achten keine kurzschlüsse zu verursachen.

Ok jetzt mal im ernst. Was du machen kannst, ist dir eine neues Board zu kaufen, oder dir einen
Rechner suchen bei dem das möglich ist (Laptop vllt? Rechner deines Nachbarn, Freundes, ...) und
dort testen.

30.08.2013 - 11:59 Uhr

uhm, DataBinding? O.o

also wenn das Control von dir selbst ist, dann kannst du einige DependencyProperties registrieren und
dich daran binden. wenn das Control von jemand anderem ist (und du keinen einblick in den
Quellcode hast) dann bete dass der jenige DependencyProperties eingebaut hat, ansonsten müsstest
du selbst von dem Control ableiten und die DependencyProperties hinzufügen.

vllt kennt jemand anders noch eine bessere lösung

29.08.2013 - 16:44 Uhr

um dir jetzt nicht zu nahe treten zu wollen, aber die msdn liefert dir ein beispiel wie man die klasse verwendet. der rest ist dann eigenrecherche.

ManagementObjectSearcher Constructor (ObjectQuery)

29.08.2013 - 10:10 Uhr

eigentlich müsste es ausreichen wenn du den Status setzt und dann das NotifyPropertyChanged-Event feuerst. Das Binding hast du ja schon.

28.08.2013 - 16:55 Uhr

Die nächste frage:

wieso definierst du das selbst? es reicht aus dem DataContext des DataGrids eine List<YourClass> zu
übergeben.

du kannst auf XAML ebene mit Style.Triggers und DataTrigger arbeiten. Müsstest dann nur selbst
einen Converter schreiben, der dir den vergleich liefert (-1 kleiner, 0 gleichgroß, und 1 größer ist
so das gängigste was du auch im Inet finden wirst).

Werte vergleichen, und dann entsprechend den Background setzen.

28.08.2013 - 16:16 Uhr

Wieso machst du das hier

DataGridRow row = dataGrid1.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow;

statt

item.BackgroundColor = Brushes.Orange;
27.08.2013 - 14:02 Uhr

Noch etwas Info:

Innerhalb des Projektes ist ein Ordner (libs) mit 2 Unterordnern (x86/x64) und die Dlls in den entsprechenden Versionen. Dazu noch die Dll SQLite.Interop.dll (nicht in den Unterordnern). Alle Dlls haben als Eigenschaft Copy Always gesetzt (Copy to Output Directory).

nun, die SQLite.Interop.dll muss im Verzeichnis deiner Exe vorhanden sein und die System.Data.SQLite.dll muss referenziert werden.

27.08.2013 - 11:58 Uhr

ich würde mal vorschlagen das Leerzeichen nach "Data Source" zu entfernen. (was eigt egal sein dürfte)
ansonsten stelle sicher dass deine Datenbank auch die Version 3 ist.

lade dir hier mal das Tool SmartDB runter (oder ein anderes was für dich ansprechender ist) und versuch dich mit dem Programm zur DB zu verbinden.

Falls nötig konvertiere deine DB in die Version 3.

und noch ein Tipp:

im Catch-Block definiere eine Exception variable und gebe die message in der TextBox aus

also so


catch (Exception ex)
{
    TextBox1.Text = ex.Message;
}

EDIT: vergiss das mit dem Tool, hatte überlesen dass du schon eins verwendest

27.08.2013 - 11:10 Uhr

Du könntest doch auch eine Methode schreiben in dem der Index übergeben wird, und die SortId aller drauffolgenden Items um eins erhöht wird

in etwa so: (ungetestet)


private void MySortMethod(int InsertedAtIndex)
{
    foreach(var item in MyList)
    {
        if (item.SortIndex > InsertedAtIndex)
        {
            item.SortIndex += 1;
        }
    }
}

26.08.2013 - 18:58 Uhr

Hallo,

ich kann heute abend (gegen 19 uhr) mal etwas code posten um zu zeigen wie man zur laufzeit die richige dll laden kann

hier der Code

Felder:


		private Assembly _assembly;
		private dynamic _ConnectionInstance;

Im Konstruktor:

try
			{
				
				var tmpPath = Path.Combine( 
					Environment.GetFolderPath( 
						Environment.SpecialFolder.MyDocuments ), "Database", "MySqliteDB.s3db" );
				
				if ( !File.Exists( tmpPath ) )
				{
					var tmpPathSub = tmpPath.Substring( 0, tmpPath.LastIndexOf( '\\' ) );

					if ( !Directory.Exists( tmpPathSub ) )
					{
						Directory.CreateDirectory( tmpPathSub );
					}
					//Hier müsste man eine neue Datei erstellen, aber in dieser DB sind schon Testdaten
					File.Copy( Path.Combine( "Database", "MySqliteDB.s3db" ), tmpPath );
				}

				_connString = "Data Source=" + tmpPath + ";Version=3;";

				_assembly = Assembly.LoadFrom( IntPtr.Size == 4 ? "libs/x86/System.Data.SQLite.dll" : "libs/x64/System.Data.SQLite.dll" );
				CreateConnectionInstance();
			}
			catch
			{
				throw;
			}
private void CreateConnectionInstance()
		{
			_ConnectionInstance = _assembly.CreateInstance( "System.Data.SQLite.SQLiteConnection" );
			_ConnectionInstance.ConnectionString = _connString;
		}

Noch etwas Info:

Innerhalb des Projektes ist ein Ordner (libs) mit 2 Unterordnern (x86/x64) und die Dlls in den entsprechenden Versionen. Dazu noch die Dll SQLite.Interop.dll (nicht in den Unterordnern). Alle Dlls haben als Eigenschaft Copy Always gesetzt (Copy to Output Directory).

ich arbeite hier noch mit einer älteren sqlite Version (v3), kann also sein dass man die Interop dll nicht mehr in den neueren Versionen braucht.

falls fragen bestehen, kann ich die wohl erst morgen beantworten

26.08.2013 - 15:34 Uhr

Soetwas einfaches hier schon probiert?

<Window.Resources>
		<Style TargetType="{x:Type DropDownListItem}">
			<Setter Property="BackgroundColor" Value="Green" />
		</Style>
	</Window.Resources>

du darfst nicht das Control an sich selbst färben, sondern musst dessen Items färben.

ist DropDown nicht ASP? O.o meinst du nicht vielleicht eher die ComboBox? Wenn Ja ersetze DropDownListItem durch ComboBoxItem

26.08.2013 - 10:35 Uhr

du kannst dir die x86 oder x64 dlls laden. ich kann heute abend (gegen 19 uhr) mal etwas code posten um zu zeigen wie man zur laufzeit die richige dll laden kann.

wenn du solange nicht warten kannst dann nimm die x86 version und stell dein Build von Any CPU auf x86 um.

26.08.2013 - 09:13 Uhr

Das Event tritt dann ja öfters auf als es soll. Weil wenn der User die Maus die ganze Zeit bewegt, tritt das Event regelmäßig auf.
Oder ich müsse das dann Abfangen das das Fenbster nur einmal geöffnet wird.

[FAQ] Event nur bei Benutzeraktion auslösen, nicht bei programmtechnischer Änderung

Neben dem .MouseOver-Event suche ich auch das .MouseLeave-Event um das Fenster wieder schließen zu können^^

wenn es dir nur darum geht paar inormationen anzeigen zu lassen dann lass einfach ein ToolTipText aufpopen.

26.08.2013 - 08:32 Uhr

hmm in der NotifyIcon-Klasse ist ein MouseMove-Event vorhanden. schonmal das versucht?

23.08.2013 - 11:09 Uhr

am besten du definierst einen Style in den Resourcen und setzt die Hintergund farbe der DropDownListItem auf deine gewünschte farbe.

22.08.2013 - 16:23 Uhr

Ja, wenn du nur SQL authentifizierung drinne hast kannste die Windows anmeldung nicht machen (sprich: Du kannst dich nur mit den Eingerichteten Benutzern im SQL-Server anmelden, logisch oder? XD).

Wenn das schon Drinne ist, dann aktiviere TCP-Tunneling und weise deinem Server einen festen port zu.

hier mal ein schönes Bild
SQL-Server: TCP-Connection kommt nicht zustande

22.08.2013 - 16:14 Uhr

Beim TextBlock wird es nur einmal gemacht, du müsstest wenn dann das selbst im ViewModel machen. ansonsten kannste mal eine TextBox nehmen (readOnly, vllt noch das Style des TextBlocks) und der müsste dann das automatisch immer machen (ich bin mir aber nicht zu 100% sicher)

22.08.2013 - 13:57 Uhr

Hast du in den Server Eigenschaften Server Authentication auf Sql Server und Windows Authentication Mode gestellt? (zu finden unter Security)

22.08.2013 - 11:05 Uhr

guckst du hier: Binding to XML

22.08.2013 - 11:03 Uhr

Hallo,

du kannst es mal mit RelativeSource und FindAncestor versuchen
ich habe z.B. folgendes Konstrukt.

<Window.Resources>
<DataTemplate x:Key="SomeThing">
<Grid DataContext="{Binding RelativeSource=
            {RelativeSource Mode=FindAncestor, AncestorType=
                {x:Type Grid}}, Path=DataContext}" Focusable="False" >
21.08.2013 - 14:07 Uhr

Hallo,

du kannst auch verknüpfungen in diesem Ordner anlegen: %USERPROFILE%\Links

siehe auch: how-do-i-programmatically-add-a-folder-to-the-users-favorites

21.08.2013 - 08:19 Uhr

für die jenigen die das buch nicht kennen, gibts hier von Google eine Leseprobe. nicht alle Seiten sind da zugänglich aber es reicht um sich ein Bild vom buch machen zu können.

20.08.2013 - 16:49 Uhr

Ich habe bei meinem ListView Steuerelement das markieren ausgeschaltet. Also wenn ein Item markiert wird wird das sofort aufgehoben...

aber ich möchte ja alles markieren können

was? du verhinderst dass man etwas markieren kann willst aber dass man etwas markieren kann?

oder willst du nur die farbliche hervorhebung abschalten? wenn ja, wie soll dann ein benutzer erkennen was grade selektiert ist?

guck mal hier: Change ListView SelectedRow BackgroundColor

oder verstehe ich hier was falsch?

12.08.2013 - 13:44 Uhr

Des weiteren ist mir nicht wirklich klar wie ich die Änderungen von unserer
Datenquelle (einer Schnittstelle) nach oben ins Model und ViewModel durchreichen soll

ihr habt doch bisher ir ein verfahren womit ihr Änderungen von der Schnittstelle mitbekommt (mittels
Timer, Events, ...). Diese Logik müsste nun ins Model. das Model informiert das ViewModel über
events und das VM die View über Binding (INotifyPropertyChanged als Stichwort)

12.08.2013 - 08:11 Uhr

Hallo,

ich hatte mal einen Router der am Anfang so lief wie er sollte, nach aber 6 monaten brach immer
wiedermal die Verbindung zusammen. erst ein Neustart brachte etwas abhilfe. Neuen Router gekauft
und das problem bisher nicht mehr gehabt. (keine Ahnung was ich vorher hatte, jetzt habe ich eine
Fritzbox 7390 im Einsatz)

09.08.2013 - 16:53 Uhr

Außerdem habe ich das Programm mit den DLLs in ein Netzlaufwerk gelegt

standardmäßig kannst du keine .Net Programme von Netzlaufwerken aus starten. du musst das
Einstellen. Bitte frag nicht wie das geht oder welche einstellungen. ich hatte das mal nur
mitbekommen, aber nicht selbst mit dem problem zu tun gehabt

09.08.2013 - 10:30 Uhr

die ich mit der Maus markiert habe

meinst du markierung auf dem Desktop?
Wenn ja, müsstest du WindowMessages abfangen (die für MausHover und ich mein dass der Desktop
auch Messages sendet wenn etwas markiert wird bin mir aber nicht sicher) und dann weiter vorgehen.

Wofür brauchst du das eigt.?
Guck auch mal hier rein: [erledigt] Ziel einer Verknüpfung auslesen

07.08.2013 - 09:26 Uhr

die nächste idee die ich hätte, wäre die Window Messages abzufangen (speziell die wenn deine Form resized wird) und dann den Button selbst neuzuzeichnen bzw dessen routine anzustoßen. nur nicht vergessen die messages weiterzureichen!

aber das ganze wäre ebenfalls alles andere als gut.

06.08.2013 - 11:38 Uhr

Hallo,

meine Idee wäre, sich das Form.ResizeBegin-Event zu abonnieren Panel.SuspendLayout aufzurufen und dann im Form.ResizeEnd-Event Panel.ResumeLayout aufzurufen.

ist nicht die Beste variante.

06.08.2013 - 11:30 Uhr

ich will ja das die App ohne die dll funktioniert. Dass ist mein Ziel.

Mich würde mal interessieren, warum diese
DLL für Euch so schlimm ist.

Quelle: Dein geposteter Link, Letzter beitrag.

jedenfalls hast du bei pInvoke eine gute Quelle wie man Dllimports realisiert.

06.08.2013 - 08:44 Uhr

Wenn ich nur die erstelle Exe der Anwendung in einen Ordner ziehe wo keine Interop.Shell32.dll liegt

Du kannst auch im Solution Explorer die Datei in dein Projekt hinzufügen und bei den Eigenschaften die Option "Copy to Output Directory" auf "Copy always" setzen.

aber mit dem DllImport zu arbeiten wäre auch meine empfehlung

06.08.2013 - 08:38 Uhr

wenn du schon was veraltetes nutzen willst solltest du auch veraltete verfahren einsetzen 😉

Hier die API-Calls die du dafür brauchst


WritePrivateProfileString "kernel32" Alias "WritePrivateProfileStringA" 
GetPrivateProfileString "kernel32" Alias "GetPrivateProfileStringA" 
WritePrivateProfileSection "kernel32" Alias "WritePrivateProfileSectionA" 
GetPrivateProfileSection "kernel32" Alias "GetPrivateProfileSectionA" 

und dazu ein VB6-Beispiel wie das umgesetzt wird

06.08.2013 - 08:13 Uhr

Hallo,

ich behaupte einfach mal dieser Zeilenumbruch ist ein automatischer Zeilenumbruch. Es ist also rein optisch und kein Environment.NewLine (oder auch bekannt als \n)

02.08.2013 - 11:54 Uhr

Hallo,

du kannst mit dynamic arbeiten

dynamic MyChannelConfig = Assembly.CreateInstance("ChannelConfig");
var Results = MyChannelConfig.getChannelList();

besser als mit Invoke-Methoden (Meiner meinung nach)

01.08.2013 - 10:20 Uhr

Hallo,

Hier mal ein Zitat was ein lowlevel hook ist

Zitat von: http://blog.kalmbach-software.de/de/2010/10/14/lowlevel-hooks-sind-bose/
Es gibt auch sog. LowLevel Hooks, welche keine DLL benötigen, sondern im Kontext des Prozesses (Threads) laufen, welche das SetWindowsHookEx aufgerufen hat

Zudem, in meinem ersten Post, habe ich doch geschrieben dass es mit .Net nicht geht einen globalen
Hook zu installieren. Entweder du schreibst das ganze mit einer nativen Sprache (C++) oder
verwendest fertige native Dlls (ich meine hier im Snippet-Bereich des Forums gibt es so eine
Komponente)

01.08.2013 - 08:35 Uhr

ich habe letztens auch ein DataBinding selbst erstellt und musste mich nicht um das
INotifyPropertyChanged-Event kümmern. Du musst bei dem Binding nur drauf achten dass Source
und Path richtig sind, sonst wird das nix mit Binding. Achja, und deine Klasse muss natürlich
INotifyPropertyChanged implementieren und auch das Event feuern.

31.07.2013 - 15:41 Uhr

Hallo,

hast du es schon mit mehreren Elemten versucht?

also

rgums[0] = "A88:G113";
rgums[1] = "A118:G131";
31.07.2013 - 08:26 Uhr

Hallo,

hast du diesen Satz berücksichtigt?

To install a global hook, a hook must have a native dynamic-link library (DLL) export to inject itself in another process that requires a valid, consistent function to call into. This requires a DLL export, which .NET Framework does not support. Managed code has no concept of a consistent value for a function pointer because these function pointers are proxies that are built dynamically.

hier ist ein projekt von CodeProject, dessen dll du nutzen könntest

http://www.codeproject.com/Articles/1037/Hooks-and-DLLs

31.07.2013 - 08:21 Uhr

noch ein hinweis, wenn du die Verbindung aufbauen konntest kann es passieren dass du dich nicht
anmelden kannst, dafür musst du in den Servereinstellungen noch die SQL Server-Anmeldung
einschalten.

30.07.2013 - 14:14 Uhr

Jedoch ist der Kunde von Windoes XP her gewöhnt

dann sag dem kunden doch einfach dass dein Prog nur auf XP maschinen läuft XD

30.07.2013 - 09:37 Uhr

Bei deinem Problem geht es doch darum, zu ermitteln ob sich ein bestimmter rechner (welches
deinen dienst installiert hat) zu ermitteln, richtig? wieso verwendest du nicht bestimmte feste
IP-adressen (kp, ir eine im bereich von x.y.z.128-254, wenn die IP nicht zugewisen werden kann weil
bereits vorhanden, einfach inkrementieren) mit Ports (ein port zum senden, einer zum empfangen)
und schickst dann einfach nachrichten an diesen Adressbereich (mit dem Port halt) und guckst dann
von wo eine Antwort kommt. Müsstest ggf. Router und firewalls konfigurieren. Bei der
Windowsfirewall gibts bestimmmt komponenten/snippets die das automatisch machen.