Zum Inhalt springen

SwordMaster

Mitglieder
  • Gesamte Inhalte

    445
  • Benutzer seit

  • Letzter Besuch

  1. Hallo, Ich habe ein kleines c# Tool (Windows-Form). Das tool hat so manche Steuerelemente. Unter Anderem ein Webbrowser-Control (Das standard-c# ding). Als Url setze ich aber keine Web-Seite sondern einen Ordner. (z.B. C:\Files\) Dann zeigt mir der Webbrowser die Dateien als ganz normalen eingebetteten Ordner an. ICh kann per Drag&Drop Dateien Rein&Rausziehen. Dateien umbennenen, alles wie man es sich vorstellt. Solange ich als URL kein Netzwerk-Laufwerk angebe. Sobald es ein Netzwerklaufwerk ist, funktioniert kein Drag&Drop mehr (Macht einfach nichts). Beim Rechtsklick auf eine Datei, kommt nicht das gewohne Contextmenü sondern zuerst ein: "Windows-Sicherheit" Popup. Der Text lautet: "Möchten sie zulassen dass Dateien von dieser Website auf dem Computer ausgeführt werden" Ich habe bereits etwas im Internet gesucht. Allerdings wird dann immer empfohlen die Sicherheitseinstellungen des normalen Windows Internetexplorer herunterzusetzen. Ich will das Tool jedoch in der Arbeit verwenden. => Dort kann ich nicht einfach die Security-Einstellungen runtersetzen.... Hat evtl jemand eine Idee? Besonders das Drag&Drop hinein und herraus wäre mir wichtig. Ich will nicht die komplette Explorer Funktion via ListView oder ähnliches nachprogrammieren... Viele Grüße Stefan
  2. Hallo uenetz, Danke für den Tipp. Hab es jedoch doch hinbekommen. Der Trick war: Der TV hat einen besondern hdmi anschluß. Er ist beschriftet mit HDMI/DVI. Ich habe den Anschluß anfangs nicht benutzt weil er etwas ungünstiger gelegen ist. Außerdem habe ich mal gelesen dass der HDMI/DVI Anschluß dafür gedacht ist, wenn Audio von einer anderen Quelle kommt. Mit dem HDMI/DVI Anschluß funktioniert es jetzt, und auch bei ausgeschaltem TV wird der Monitor im Windows nicht entfernt. Audio nimmt er auch wie gewünscht aus dem HDMI Kabel. => Somit darf der TV in meinem Haus bleiben. Viele Grüße Stefan
  3. Hallo Zusammen, Ich habe quer durchs Haus meine TV's als zusätliche Monitore an meinen PC angeschlossen. Bei meinem neuen TV ergibt sich jetzt jedoch das Problem dass er das HDMI Signal trennt sobald ich ihn ausschalte. Das ist mehr als nervig. Weil mir dadurch jedesmal die Monitore (bzw. ihre Nummerierung) umgeworfen werden. Das wiederrum Seiteneffekte auf manche Programme hat. Habt ihr einen Tipp wie ich das umstellen kann? Dass er das HDMI Signal nicht trennt? Bei meinen Samsung Fernsehern wird es nicht getrennt. Der jetzige TV ist Hisense. P.S. Habe schon zwei HDMI kabel Probiert. Kabellänge 1,5m => also unkritisch. Viele Grüße Stefan
  4. Hallo, Um Abhängigkeiten zu meiner DLL oder sowas zu vermeiden, habe ich das Coding mal in ein komplett neues Projekt ohne dll oder sonstigen Funktionen verschoben.... Der Code (bzw. das neue Projekt) ist nicht so lange, hat aber das gleiche Problem. (Nach z.b. 11 MessageBoxen ist schluß... außer ich bau entsprechende IF's ein, dass die MessageBox erst später kommt...) public partial class Form1 : Form { public Form1() { InitializeComponent(); } [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern IntPtr FindWindow([MarshalAs(UnmanagedType.LPTStr)] string lpClassName, [MarshalAs(UnmanagedType.LPTStr)] string lpWindowName); [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] private static extern int CallNextHookEx( int hHook, int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam); [DllImport("user32.dll", EntryPoint = "SetWindowsHookExA", CharSet = CharSet.Ansi)] private static extern int SetWindowsHookEx( int idHook, LowLevelKeyboardProcDelegate lpfn, IntPtr hMod, int dwThreadId); [DllImport("kernel32.dll", CharSet = CharSet.Auto)] public static extern IntPtr GetModuleHandle(string lpModuleName); IntPtr m_window; public delegate int LowLevelKeyboardProcDelegate(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam); public struct KBDLLHOOKSTRUCT { public int flags; public int vkCode; } const int WH_KEYBOARD_LL = 13; private int intLLKey; LowLevelKeyboardProcDelegate del; Process process; ProcessModule module; IntPtr hModule; private int LowLevelKeyboardProc(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam) { switch (wParam) { case 256: //WM_KEYDOWN = 0x0100 MessageBox.Show("abc"); break; } return 0; } private void Form1_Shown(object sender, EventArgs e) { m_window = FindWindow(null, "DevBox"); process = Process.GetCurrentProcess(); module = process.MainModule; hModule = GetModuleHandle(module.ModuleName); del = new LowLevelKeyboardProcDelegate(LowLevelKeyboardProc); intLLKey = SetWindowsHookEx(WH_KEYBOARD_LL, del, hModule, 0); } }
  5. Hallo Klotzkopp Danke für den Tipp. Hat leider nichts gebracht. Hätte jetzt die Delegate und die Hook als statisches Klassenattribut definiert. Trotzdem tritt das Problem weiterhin auf. Zur Info: Die ForeignKeyHook Klasse hab ich in eine Klassenbibliothek ausgelagert (dll). Beim Aufruf der Methode ForeignKeyHook wird der Hook über: intLLKey = SetWindowsHookEx(WH_KEYBOARD_LL, del, System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(), 0); gestartet. Kann der Fehler hier irgendwo liegen? Weiteres seltsames Verhalten. Wenn ich beim KEYDOWN ein MessageBox einbaue, bekomme ich ca. 10-15 Mal eine Messagebox wenn ich eine Taste drücke, danach wird der Hook nicht mehr aufgerufen. Bau ich jedoch einen counter ein, und lass die Messagebox erst ab dem 100-Hook-Aufruf kommen, dann funktioniert der hook 110-115 mal. Sehr Strange... Hast du noch einen Tipp? Kann man so sachen wie den CG überwachen? Prüfen wann er aufgerufen wurde, und was er verworfen hat? Viele Grüße Stefan
  6. Hallo Zusammen, Ich habe ein Programm für das ich einen KeyHook benötige. Das Problem: Der KeyHook funktioniert auch. Jedoch nach einer kurzen zeit (manchmal 5 min, 10 min, manchmal länger... ) wird der hook einfach nicht mehr aufgerufen. Ich bekomme keinen Fehler und keine Exception.... :-/ Hier mein Coding... Ich hoffe ihr könntet mir einen Tip geben. Im INet konnte ich auch nichts finden. Wobei ich mich auch mit dem Suchen schwer tue, ich habe keine Fehlermeldung, Absturz, Exception oder ähnliches. Er funktioniert ja auch. jedoch nicht sehr lange :-( public struct KBDLLHOOKSTRUCT { public int flags; public int vkCode; } public delegate int LowLevelKeyboardProcDelegate(int nCode, int wParam, ref ForeignKeyHook.KBDLLHOOKSTRUCT lParam); [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] private static extern int CallNextHookEx( int hHook, int nCode, int wParam, ref ForeignLibraryNET.ForeignKeyHook.KBDLLHOOKSTRUCT lParam); private int LowLevelKeyboardProc(int nCode, int wParam, ref ForeignLibraryNET.ForeignKeyHook.KBDLLHOOKSTRUCT lParam) { switch (wParam) { case 260: //WM_SYSKEYDOWN = 0x0104 PostMessage(m_window, 12346, (IntPtr)lParam.vkCode, new IntPtr()); break; } return CallNextHookEx(0, nCode, wParam, ref lParam); } private void Form1_Shown(object sender, EventArgs e) { ForeignLibraryNET.ForeignKeyHook.LowLevelKeyboardProcDelegate del = new ForeignLibraryNET.ForeignKeyHook.LowLevelKeyboardProcDelegate(LowLevelKeyboardProc); ForeignLibraryNET.ForeignKeyHook hook = new ForeignLibraryNET.ForeignKeyHook(); hook.KeyboardHook(del) } Viele Grüße & Danke für alle Tipps. Stefan P.S. Ich verwende Visual C# Express 2008 mit .NET 3.5
  7. Hallo Zusammen, Ich hab ein Projekt welches auf eine SQLite Datenbank zugreift. Jetzt braucht man aber bei SQLite für 64 Bit Systeme eine andere DLL wie für 32bit. Ich habe nun im Visual Studio im "Configuration Manager" zwei Konfigurationen. Einen für 64bit einen für 32 bit. ABer wie kann ich nun die Reference auf die DLL Datei abhängig von der Konfiguration machen? So muss ich bei jedem umswitchen die Reference entfernen u. neu hinzufügen :-/ Viele Grüße Stefan
  8. Hallo Zusammen, In meiner Anwendung verwende ich ein DataGridView (ohne DB!) und in einer Spalte soll man Werte aus einer Combobox auswählen können. Das Problematische: Die Combobox soll keine Einschränkung sein, der User soll komplett neue Einträge direkt in die Zelle schreiben können. Und die Combobox soll sich dann (falls der direkt eingegebene Wert neu ist, um diesen Wert erweitern). Ich bin auch schon ganz gut unterwegs... Hier mein Code: private void Form1_Load(object sender, EventArgs e) { m_grid_view.Columns.Add("Spalte1", "Spalte1"); DataGridViewComboBoxColumn test = new DataGridViewComboBoxColumn(); test.Items.Add("abc"); test.Items.Add("def"); m_grid_view.Columns.Add(test); m_grid_view.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler( dataGridView1_EditingControlShowing); m_grid_view.CellValidating += new DataGridViewCellValidatingEventHandler (dataGridView1_CellValidating); } private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (e.Control.GetType() == typeof(DataGridViewComboBoxEditingControl)) { DataGridViewComboBoxEditingControl cbo = e.Control as DataGridViewComboBoxEditingControl; cbo.DropDownStyle = ComboBoxStyle.DropDown; //cbo.TextChanged += new EventHandler(cbo_TextChanged); //cbo.Leave += new EventHandler(cbo_Leave); } } private void dataGridView1_CellValidating (object sender, DataGridViewCellValidatingEventArgs e) { CellValidate(e.FormattedValue.ToString()); } private void CellValidate(string value) { DataGridViewComboBoxCell cell = m_grid_view.CurrentCell as DataGridViewComboBoxCell; if (cell != null && !cell.Items.Contains(value)) { // Insert the new value into position 0 // in the item collection of the cell cell.Items.Insert(0, value); // When setting the Value of the cell, the // string is not shown until it has been // comitted. The code below will make sure // it is committed directly. if (m_grid_view.IsCurrentCellDirty) { // Ensure the inserted value will // be shown directly. // First tell the DataGridView to commit // itself using the Commit context... m_grid_view.CommitEdit (DataGridViewDataErrorContexts.Commit); } // ...then set the Value that needs // to be committed in order to be displayed directly. cell.Value = cell.Items[0]; } else { if (cell != null) cell.Value = cell.Items[cell.Items.IndexOf(value)]; } } Das Problem ist, im DataGridView ist die letzte Zeile ja immer für "Neue Zeilen" da... Hier kann der User was eintragen, und das DataGridView verlängert sich automatisch um eine Zeile. Wenn der User aber jetzt in der "neuen Zeile" in der Spalte direkt einen Wert eintippt, dann wird dataGridView1_CellValidating nicht aufgerufen Der User muss also zuerst einen Wert in der Combobox auswählen, damit die Zeile "bestätigt" wird, und erst dann funktioniert das CellValidating ereigniss... Habt ihr eine Idee wie ich mein Problem lösen kann? Viele Grüße Stefan
  9. Hallo Zusammen, Ich schreibe gerade an einer PC Steuerung. Ich will den PC mittels einer eigenen Fernbedienung fernsteuern. Das ganze funktioniert auch schon ganz gut. Was ich jedoch nicht hinbekomme ist, wie ich die Systemlautstärke per CSharp ändern kann. Also nicht einfach "Lauter" und "Leiser" sondern auf einen gezielten Wert zwischen 0-100. Ich suche schon länger im INet aber entweder ich finde code der nicht läuft, oder ich finde nur code der die Lautstärke für das aktuelle programm ändert. z.B. [DllImport("winmm.dll")] public static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume); Aber ich möchte eben nicht die Lautstärke für mein Prog ändern, sondern für alle Progs! So wie wenn ich direkt in der Lautstärkeregelung den Regler auf einen Wert setze. Kann mir jemand helfen? Das kann doch nicht so schwer sein *verzweifel* Viele Grüße Stefan
  10. Danke! Klappt einwandfrei! Viele Grüße u. Danke Stefan
  11. Hallo Zusammen, Ich versuche grad von einem Fremden Fenster den Eintrag aus der Taskleiste rauszukriegen. Das Fenster soll weiterhin SICHTBAR bleiben. Nur der Eintrag soll raus. Ich habe irgendwo gelesen dass es damit geht wenn ich das WS_EX_APPWINDOW aus dem Style nehme... Ich hab es folgendermaßen probiert.... Aber mit diesem "An u. Abschalten von Flags" bin ich noch nicht so fit... ShowWindow(window.WindowHandle, 0); (Kurz ausblenden) int exStyle = GetWindowLong(window.WindowHandle, GWL_EXSTYLE); exStyle = exStyle & WS_EX_APPWINDOW; SetWindowLong(window.WindowHandle, GWL_EXSTYLE, exStyle); ShowWindow(window.WindowHandle, 1); (Wieder einblenden) Damit sollte doch WS_EX_APPWINDOW rausgenommen werden können oder? Ich bin zwar in CSharp unterwegs. Aber da SetWindowLong zur Winapi gehört hab ichs mal hierrein gepostet! Bin für jede hilfe dankbar Viele Grüße Stefan
  12. Ich bin in der Klassischen Ansicht. kein iGoogle.... Und die Maus hab ich natürlich auch reinbewegt... Das ist ja schon lange so dass erst dann die Radiobuttons erschein... nur bei mir erscheinen sie nicht mehr Die Ergebnissliste schaut bei mir genauso aus wie in "lupo49" link.... vermutlich hab ich irgendwie das neue layout aktiviert . Beim Firefox ist noch das Alte Layout. Falls jemand weiß wie ich das neue Layout wieder rauskrieg wärs genial. Aber früher oder später muss man sich wohl damit abfinden dass das neue Layout kommt ... Viele Grüße u. Danke Stefan
  13. Hallo Zusammen, Ich weiß nicht wo der Thread reinpasst also probier ichs mal hier. Wenn ich bei meinem Rechner auf Google gehe, dann sieht die Seite seit ein paar Wochen anders aus. z.B. habe ich diese "Radiobuttons" nicht mehr wo man sagen kann :"Das Web" "Seiten auf Deutsch" u. "Seiten aus Deutschland" Auch die Ergebnisliste sieht anders aus. Da hab ich Links ein haufen Links wo ich sagen kann ob ich Alle Ergebnisse, die letzten 24 Stunden etc haben will. Irgendwie nervt mich das Layout... Wisst ihr woran das liegen kann? Viele Grüße Stefan
  14. Hallo zusammen. Ein paar monate ist es her da hab ich mich in JavaME reingehängt u. ein kleines handy prog geschrieben. Hat auch ganz gut geklappt. Jetzt musste ich meine Windows neuinstallieren. und krieg das ganze einfach nicht mehr zum laufen . Folgendermaßen hab ich das ganze installiert: Howto: Java ME mit Eclipse ? FSEwiki Wenn ich dann Eclipse sage: kann ich "Emulated JavaME Mitled" auswählen. Der Emulator startet auch kurz. Dann bekomme ich jedoch eine ClassNotFoundException weil in der erzeugten *.jar datei die Hauptklasse fehlt. Woran kann das liegen dass mir Eclipse meine eigenen *.class dateien nicht in die jar datei packt? Am Code kann es eigneltich nicht liegen weil der gleiche quellcode hat sich früher einwandfrei starten lassen. Viele Grüße Stefan
  15. Danke für die Wertvollen antworten (Da du weißt wie mein Dialog im Detail aussieht, und welche Zielgruppe mein Programm genau hat) Hab jetzt eine Lösung gefunden: Developersdex.com - Preventing default double-click expand/collapse behavior on TreeView Ist zwar keine CSharp Syntax aber man kanns relativ leicht auf CSharp ummünzen. habs gestern kurz in einem Testprojekt probiert. Funktioniert 1a. Viele Grüße Stefan

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...