|
You last visited: Today at 06:30
Advertisement
[VB] Combobox bringtofront
Discussion on [VB] Combobox bringtofront within the .NET Languages forum part of the Coders Den category.
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
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
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
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?
|
|
|
04/26/2014, 15:22
|
#17
|
elite*gold: 0
Join Date: Sep 2008
Posts: 111
Received Thanks: 27
|
Quote:
Originally Posted by Mostey
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
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
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"
|
|
|
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
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
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.
|
|
|
04/26/2014, 20:12
|
#19
|
elite*gold: 0
Join Date: Sep 2008
Posts: 111
Received Thanks: 27
|
Quote:
Originally Posted by Mostey
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
|
|
|
04/26/2014, 20:31
|
#20
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
 ?
|
|
|
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?
|
|
|
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.
|
|
|
04/27/2014, 01:49
|
#23
|
elite*gold: 0
Join Date: Sep 2008
Posts: 111
Received Thanks: 27
|
Quote:
Originally Posted by Mostey
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
|
|
|
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.
|
|
|
 |
|
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.
|
|