Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 06:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[VB] Combobox bringtofront

Discussion on [VB] Combobox bringtofront within the .NET Languages forum part of the Coders Den category.

Reply
 
Old 04/26/2014, 14:44   #16


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by silvermf1991 View Post
da diese nen komplett andere "Codesprache" benötigen aber egal ich denke ich weiß was damit in etwa gemeint ist (:
Nicht unbedingt, du kannst beispielsweise mit C++ auch auf Linux programmieren. Allerdings halt ohne WinAPI, da brauchst du sicherlich auf Linux Ebene eine Schnittstelle, um auf das System zugreifen zu können.


Quote:
Originally Posted by silvermf1991 View Post
und ich hab nun das Programm für C# umgeschrieben, nur das ich nun nichtmehr den Prozess auslesen kann,
foreach Process p in Process.GetProcesses() ?


Quote:
Originally Posted by silvermf1991 View Post
Ich habe oben nun eingefügt: "using Tool_by_Devidra;", so sollte er doch für alle Formen ( wenn ich dies oben einfüge ) alle Klassen und co. benutzen die ich im Projekt erstelle?
Was?
Mostey is offline  
Old 04/26/2014, 15:22   #17
 
elite*gold: 0
Join Date: Sep 2008
Posts: 111
Received Thanks: 27
Quote:
Originally Posted by Mostey View Post
Nicht unbedingt, du kannst beispielsweise mit C++ auch auf Linux programmieren. Allerdings halt ohne WinAPI, da brauchst du sicherlich auf Linux Ebene eine Schnittstelle, um auf das System zugreifen zu können.
Und da wären wir nun was ich vorhin meinte, müsste man doch nun komplett anders "Coden" um das Ergebniss für andere Betriebssysteme zu schaffen ich denke nicht das die Schnittstellen 1:1 gleich sind, nur anstatt das überall "Windows" oder "Linux" steht, sonst wären viele ja nicht am verzweifeln wieso einiges für Linux so lange dauert

Quote:
Originally Posted by Mostey View Post
foreach Process p in Process.GetProcesses() ?
Hm.. Entweder ich hab da nen Fehler eingebaut oder keine Ahnung, werd gleich nochmal schauen

Quote:
Originally Posted by Mostey View Post
Was?


Oben an den Code eingefügt, vor "namespace v19_F_Tool_by_Devidra"



Rechts der schöne Projektmappenbrowser

Wenn ich nun Klassen und Co. erstelle, mit den ganzen Funktionen sagen wir, das komplette WindowHandle definiere ich dort, und rufe das WindowHandle in meiner Form1 auf, dürfte der doch so aus der "KlasseWindowHandle" die deklaration ( hoffe ich hab das richtig genannt ) nehmen?

Hab in paar "Test" Sourcen, um mal deren Codestyle zu sehen nur mitgekriegt, das viele ihren Projektnamen so dareinschreiben, wenn ich dies löschen würde, würde der die Klassen nichtmehr "laden"

Edit: Ah, ich habs warum der bei mir das garnichtmehr lädt.. hab davor es so gemacht

comboBox1.click/ed

selbst wenn ich nun das so abänder, passiert nichts wenn ich draufklicke, die Liste bleibt leer, davor wurde die Liste mit den Prozessen befüllt, vorher aber gelöscht, damit die sich nicht "verdoppeln"
silvermf1991 is offline  
Old 04/26/2014, 19:31   #18


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by silvermf1991 View Post
Und da wären wir nun was ich vorhin meinte, müsste man doch nun komplett anders "Coden" um das Ergebniss für andere Betriebssysteme zu schaffen ich denke nicht das die Schnittstellen 1:1 gleich sind, nur anstatt das überall "Windows" oder "Linux" steht, sonst wären viele ja nicht am verzweifeln wieso einiges für Linux so lange dauert
Natürlich musst du nicht alles neu programmieren. die Schnittstelle ändert sich und du ersetzt OS spezifische Funktionen wie FindWindow() einfach mit der Linux Variante.

Quote:
Originally Posted by silvermf1991 View Post


Oben an den Code eingefügt, vor "namespace v19_F_Tool_by_Devidra"



Rechts der schöne Projektmappenbrowser

Wenn ich nun Klassen und Co. erstelle, mit den ganzen Funktionen sagen wir, das komplette WindowHandle definiere ich dort, und rufe das WindowHandle in meiner Form1 auf, dürfte der doch so aus der "KlasseWindowHandle" die deklaration ( hoffe ich hab das richtig genannt ) nehmen?

Hab in paar "Test" Sourcen, um mal deren Codestyle zu sehen nur mitgekriegt, das viele ihren Projektnamen so dareinschreiben, wenn ich dies löschen würde, würde der die Klassen nichtmehr "laden"

Edit: Ah, ich habs warum der bei mir das garnichtmehr lädt.. hab davor es so gemacht

comboBox1.click/ed

selbst wenn ich nun das so abänder, passiert nichts wenn ich draufklicke, die Liste bleibt leer, davor wurde die Liste mit den Prozessen befüllt, vorher aber gelöscht, damit die sich nicht "verdoppeln"
Ich habe immer noch nichts verstanden.
Mostey is offline  
Old 04/26/2014, 20:12   #19
 
elite*gold: 0
Join Date: Sep 2008
Posts: 111
Received Thanks: 27
Quote:
Originally Posted by Mostey View Post
Ich habe immer noch nichts verstanden.
Ok ist wohl egal, ich denke glaub einfach zuviel


Ok aber zurück zu meinen Problem, ich hab nun alles auf C# Basis gemacht, einzige Problem ist folgender:

Vorher hab ich die Ausgabe, wie nun auch, in einer comboBox hinterlegt, vorher "klickte" man auf die comboBox und machte folgende Funktion

Code:
    Private Sub ComboBox1_Click(sender As Object, e As EventArgs) Handles ComboBox1.Click
        ComboBox1.Items.Clear()
        Dim pList() As System.Diagnostics.Process =
        System.Diagnostics.Process.GetProcessesByName("prozess")
        For Each proc As System.Diagnostics.Process In pList
            ComboBox1.Items.Add(proc.ProcessName & proc.Id)
        Next
    End Sub
Beim "aufklappen" bzw. draufklicken, wird die comboBox geleert, dann fügte der die / den Prozess hinzu

Fazit: Klappte 1A

Nun, in C#, existiert aber kein "comboBox1_Click" mehr ( jedenfalls klappt es nicht ), sondern Standartgemäß ist es nun

Code:
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            proc = Process.GetProcessesByName("prozess");
            comboBox1.Items.Clear();
            foreach (Process p in proc)
            {
                comboBox1.Items.Add(p.Id);
            }
        }
Also, wenn ich schon ein "vorhandes" wechsel, löscht der, also ist das ausgewählte weg da ers dann löscht

Wenn ich aber "comboBox1_Click", also SelectedIndexChanged "austausche", klappt es immernoch nicht, ich denke also, in C# existiert die comboBox1_Click funktion nicht oder wurde geändert

Ich hoffe du verstehst nun

PS: Wenn ich nen Button mache, der es reloaded, funktioniert, aber ich würde gerne ohne den Button arbeiten
silvermf1991 is offline  
Old 04/26/2014, 20:31   #20


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
?
Mostey is offline  
Thanks
1 User
Old 04/26/2014, 21:13   #21
 
elite*gold: 0
Join Date: Sep 2008
Posts: 111
Received Thanks: 27
Jain! Fast, ich weiß nicht woran es liegt, entweder hab ich einen Fehler oder es ist normal so?

Ich klicke drauf, es kommt wie im Code die MessageBox.. Das ist perfekt, doch wenn ich nun auf ein Item in der comboBox klicke, kommt die MessageBox nochmal?

Entweder hab ich da einen Fehler, oder der Code will mich verarschen

Code:
namespace Tool_by_Devidra
{
    public partial class Form1 : Form
    {
        private Process[] proc;
        internal System.Windows.Forms.ComboBox ComboBox1_DropDown;

        public Form1()
        {
            InitializeComponent();
        }

//Programmstart
        private void Form1_Load(object sender, EventArgs e)
        {
            // Hook up the event handler.
            this.comboBox1.DropDown +=
                new System.EventHandler(comboBox1_DropDown);
        }

private void comboBox1_DropDown(object sender, System.EventArgs e)
        {
            ComboBox1_DropDown.Items.Clear();
            proc = Process.GetProcessesByName("prozess");
            foreach (Process p in proc)
            {
                ComboBox1_DropDown.Items.Add(p.Id);
            }
        }
Sollte eigentlich so stimmen, klappen tuts ja.. Nur wieso gibt der mir beim auswählen eines Items nochmal die MessageBox? Wenn ich die MessageBox entferne, kommt sie garnichtmehr, also muss die da wohl bleiben


Edit: Hab den Fehler, bin ich blöd, hab den Hook nicht GroßKleinschreibung beachtet

Ok, hab nun auch bisschen mit den SetForegroundWindow(handle) gemacht, nur bekomme ich eine Fehlermeldung

Code:
        [DllImport("User32.dll")]
        private static extern bool SetForegroundWindow(IntPtr hWnd);
        private IntPtr handle;
        private Process process_front;

private void button1_Click(object sender, EventArgs e)
        {
            handle = ComboBox1_DropDown.SelectedItem;
            SetForegroundWindow(handle);
        }
Fehlermeldung ist:

Quote:
Fehler 2 Der Typ 'object' kann nicht implizit in 'System.IntPtr' konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.) c:\users\devidra\documents\visual studio 2013\Projects\Tool by Devidra\Tool by Devidra\Form1.cs 310 22 v19 F-Tool by Devidra
Quote:
ComboBox1_DropDown.SelectedItem
Das unterstrichene ist der Fehler, hoffe mal der Ansatz stimmt so

Edit: Hab nun was getestet, habe dies hier geändert

Code:
handle = process_front.MainWindowHandle;
Code:
process_front = Process.Start("cmd");
und dies hier eingefügt, dies funktioniert auf jedenfall..

Ich vermute, das ich noch irgendwie die richtige ProzessID einfügen muss, da ich ja schon den richtigen Prozess + ID finden kann ( sind ja in der comboBox gelistet )

Also wie kann ich die Prozess ID von "comboBox1_DropDown.SelectedItem" dort einfügen?
silvermf1991 is offline  
Old 04/27/2014, 00:44   #22


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
DropDown.SelectedItem ist ein Objekt, kein IntPtr und somit auch kein Handle. Speicher halt den Prozessnamen in der Text Eigenschaft des Items und ruf diese dann über SelectedItem.Text auf.
Mostey is offline  
Old 04/27/2014, 01:49   #23
 
elite*gold: 0
Join Date: Sep 2008
Posts: 111
Received Thanks: 27
Quote:
Originally Posted by Mostey View Post
DropDown.SelectedItem ist ein Objekt, kein IntPtr und somit auch kein Handle. Speicher halt den Prozessnamen in der Text Eigenschaft des Items und ruf diese dann über SelectedItem.Text auf.
Hört sich einfach an, aber ich bin wahrscheinlich wieder auf dem Holzweg

Code:
private void ComboBox1_DropDown_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }
Hier sollte schonmal die richtige Stelle sein, um es zu speichern

Nun eigentlich sollte es so aussehen, aber irgendwie auch nicht

Quote:
private void ComboBox1_DropDown_SelectedIndexChanged(object sender, EventArgs e)
{
process_set = ComboBox1_DropDown.SelectedItem;
ComboBox1_DropDown.Text = process_set;
}
Glaube ist schon zu spät für mich
silvermf1991 is offline  
Old 04/30/2014, 19:28   #24


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Code:
process_set = ComboBox1_DropDown.SelectedItem;
Deklaration von process_set? Außerdem speicherst du hier ein Objekt ab, keinen Text.

Code:
ComboBox1_DropDown.Text = process_set;
string auf Objekt? Das sagt der Compiler dir sicherlich auch.

Du solltest dich auf jeden Fall erstmal den Grundlagen widmen, so wird das nichts wenn ich dir die grundlegendsten Sachen erklären muss, wobei wir einige Post vorher noch bei der WinAPI waren die dann definitiv etwas zu hoch ist.
Mostey is offline  
Reply


Similar Threads Similar Threads
Hilfe mit combobox!
02/12/2014 - .NET Languages - 6 Replies
Hi Leute! Zu meinem Problem: Ich habe eine WinForm erstellt mit einer combobox und diese auch mit inhalt gefüllt. Mein Problem, das ich möchte das das ausgewählte item nach einem button klick ausgelesen wird. Ich meine damit wenn in der auswahl steht zb. "rockefeller", das nach dem Klick über ein Label beschrieben wird wie oder wer oder was "rockefeller" ist. Hoffe ihr könnt mir helfen :)
[VB]Wie Combobox von Webbrowser in Combobox in Form hinzufügen
01/06/2014 - .NET Languages - 3 Replies
^Topic
[Source]ComboBox
03/12/2012 - Flyff Private Server - 3 Replies
Hey, Simple Frage: Ich möchte einen Code ausführen lassen, sobald der User den Inhalt einer ComboBox (m_SelectedIndex) ändert. Hab es in der OnChildNotify schon so versucht: case WIDC_COMBOBOX1: blabla break; Wie kann ich das richtig lösen?
combobox-CLR
03/11/2012 - C/C++ - 11 Replies
Me and friend wanna make a project.So we wanna a button read a combobox,which that combo,will have slots like slot1,slot2 etc. slots will be values like slot1 = 12345 slot2 = 123456 and we want a button read the slot and write to memory with value,a slot of combo list. Sorry for fails english D;



All times are GMT +1. The time now is 06:31.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.