Das Notepad kriegt beim starten automatisch den Fokus. Du kannst dir in dem Fall das SetForegroundWindow also eigentlich sparen.
Mir ist auch aufgefallen das der API-Aufruf scheinbar nicht bei jeden System so funktioniert.
Bei meinem Rechner daheim und bei einem Freund funktionierts wunderbar, der selbe Code gibt aber bei nem anderen PC eine Fehler aus 🤔 (welchen genau weis ich jetzt nicht mehr, kann zurzeit auch nicht nachschauen)
Naja, ich werd mich da nochmal ransetzten.
Original von jan223
Ich habe mich jetzt auch ein wenig mit diesem Thema beschäftigt. Ist folgendes vorgehen richtig ?
Erstellen eines Prozess
starten des Prozess
ermitteln der ID des Prozess
wenn ich das Fenster in den Vordergrund holen will dann ermittle ich anhand der ID den Handle und hole mit SetForegroundWindow das Fenster in den Vordergrund
Genau so hab ichs gemacht
So, hab doch noch was gefunden:
Problem mit Prozess / doppelten Instanzen
Die Funktion SetForegroundWindow bringt das Fenster in den Vordergrund und ich kann mit SendKeys arbeiten 🙂
mfg
lancore89
hmm..
ich hab eigentlich nichts dergleichen in den Threads gefunden, wed sie aber nochmal durchgehen. Kann ja sein das ich was übersehen hab.
Ja, hab ich schonmal. Is allerdings etwas länger her, jetzt hab ich schon 1 Thread mehr dazu gefunden 😁
Aber damit komm ich eigentlich auch nicht weiter, da die Methode ja nur der aktiven Anwendungen Tasten sendet.
Wäre also nur nützlich wenn ich den Fokus auf nen anderes Programm setzten kann
Hi,
wie kann ich von meiner Anwendung aus anderen Programmen Tastaturereigniss senden?
Also z.B. das ich auf ein Knopf drücke und im Notepad ein Text eingegeben wird.
Mit Sendkeys funktionierts ja nicht, da meine Anwendung dann den Fokus hat und die Keys bekommt.
Könnte man dass ganze irgendwie per WinAPI lösen? Oder anderen Anwendungen den Fokus geben.
Hoffe hier kann mir jemand helfen
mfg
lancore89
Hi,
ich hab jetzt schon wie blöd gesucht, aber nichts wirklich passendes gefunden...
Wie kann ich (am besten mit Hilfe der WinAPI) MIDI Sounds in C# abspielen?
Ich komm einfach nicht dahinter, hoffe ihr könnt mir da helfen.
Hi,
in der Registry gibts beim HKEY_USERS Schlüssel die bei jedem anders heißen.
Also z.B. S-1-7-25-1254771165-1343024091-1360223298-1004
Gibts dafür irgendwelche Systemvariablen oder eine andere Möglichkeit um trotzdem darauf zugreifen zu können?
mfg
lancore89
Ja, jetzt gehts.
Dann lag das ganze nur an den Anführungsstrichen, darauf muss man erstmal kommen 😁
Danke für die schnelle Hifle!
Mit .net 1.1
Kann man das nur mit dem 2.0 machen?
jetz funktioniert das programm gar nicht mehr, folgender fehler kommt :
C:\Dokumente und Einstellungen\master\Eigene Dateien\Visual Studio Projects\CSHARP\PinballRegestry\Class1.cs(16): Der Typ oder Namespace 'RegistryValueKind' konnte nicht gefunden werden. Möglicherweise fehlt eine Anweisung oder ein Assemblyverweis. X(
mfg
lancore89
Hi,
also ich will einen Windows-Registry Eintrag vom Typ "REG_SZ" mit C# ändern, bisher bin ich nur so weit gekommen das ich Einträge mit "REG_DWORD" ändern konnte.
Könnt ihr mir helfen? Ich hab schon gegoogelt wie ein Verrückter, hab aber nichts gefunden!
Bisheriger Code:
using System;
using Microsoft.Win32;
using System.Security;
using System.Security.Permissions;
namespace RegKeys
{
class Class1
{
static string eingabe; // Wird später für Benutzereingaben zuständig sein.
static void Main(string[] args)
{
RegistryKey OurKey = Registry.Users;
OurKey = OurKey.OpenSubKey(@".DEFAULT\TestSubKey\Subkey\",true);
OurKey.SetValue("test",745);
OurKey.Close();
}
}
}
Den alten Text kann man wahrscheinlich auch nicht überschreiben?
Naja, dann muss ich halt darauf verzichten..
Naja, ich wollte halt dass das Programm sowohl unter Windows als auch Linux läuft. Deswegen ist ein Umweg über API eher ungünstig.
Mir scheint auf codeproject.com benutzen auch alle die Win32 API 🙁
Gibts denn keine andere Möglichkeit?
Danke für die schnell Antwort und den Link.
Ich benutze Version 1.1
Hi,
gibt es eine Möglichkeit den Inhalt der Konsole zu löschen, nur mithilfe des .Net Frameworks?
mfg
lancore89