G
GermanSimRacing

USB-Ports per Software ein und ausschalten.

USB-Ports per Software ein und ausschalten.

Jj-30311/4/2023
Moin, kennt jemand eine Software mit der man bequem (evtl. sogar automatisiert bei best. Szenarien) einzelne USB Ports abschalten kann? Ich möchte gern die Maus und Tastatur am Arbeitsplatz Totschalten können, sobald z.B. iRacing läuft. Voraussichtlich muss ich eh eine PCIe-USB-Karte oder alternativ ein Slotblech mit Direktanschluss auf das Mainboard nachrüsten, wäre also auch denkbar das dann komplett abzuschalten.
Mmoddok11/4/2023
Könntest dir nen usb Switch holen. Sowas nutze ich um zwischen privat pc und firmennotebook zu wechseln. Knöpfchen drücken und fertig
Jj-30311/4/2023
Könnte ich, will aber nicht 😅 Klingt vielleicht blöd, aber ich muss oft genug wieder aus dem Rig klettern, weil ich ich irgendwas vergessen habe und das kommt dann noch dazu 🙈
DDo3kDo11/4/2023
Kannst du nicht die PCI-E Karte im Gerätemanager deaktivieren und aktivieren?
Jj-30311/4/2023
Ja, das wird sicher gehen. Ich suche eine Software, die genau das für mich macht. (Oder was ähnliches) Soll halt bequem sein und am besten automatisierbar (wenn Software X startet, dann schalte aus und umgekehrt) Achso und switch geht leider nicht wegen passthroug oder wie das heißt. Hab ne spezielle Maus am Arbeitsplatz, die switches und hubs nicht mag. 🤷‍♂️
Mmoddok11/4/2023
Warum willst du die Maus am Schreibtisch überhaupt totschalten? Könntest dir ein Script auf das Streamdeck legen das die Karte im Gerätemanager deaktiviert. Und das Ding dann in eine Sequenz packen. Da kannst du dann mit einem Knopfdruck alle Tools starten.
Mmoddok11/4/2023
Erziehung? WeirdDude
Jj-30311/4/2023
Hast keine gell?!
Mmoddok11/4/2023
Doch Aber die is erzogen Die geht nirgends drauf Nur auf Stühle und Sofa Und Sitz im rig
Jj-30311/4/2023
Die Idee gefällt mir. Aber wo bekomm ich das Skript her? 😅
Mmoddok11/4/2023
Jj-30311/4/2023
Kannste bei meinen vergessen. Muss aber auch gestehen, dass die überall hin dürfen. Sehe nicht warum nicht
Mmoddok11/4/2023
Weil du jetzt ein Script schreiben musst zum Beispiel
EExokiller11/4/2023
Die Katze von @BEn hat sogar mal während eines LFM Rennens was in den InGame Chat geschrieben KEKW
Mmoddok11/4/2023
# Gerätename oder Teil des Namens, den Sie deaktivieren möchten
$geräteName = "<GeräteName>"

# Suchen Sie das Gerät im Geräte-Manager
$gerät = Get-PnpDevice | Where-Object { $_.FriendlyName -like "*$geräteName*" }

# Überprüfen, ob das Gerät gefunden wurde
if ($gerät -ne $null) {
# Deaktivieren Sie das gefundene Gerät
Disable-PnpDevice -InstanceId $gerät.InstanceId -Confirm:$false
Write-Output "Das Gerät '$($gerät.FriendlyName)' wurde erfolgreich deaktiviert."
} else {
Write-Output "Das Gerät mit dem Namen '$geräteName' wurde nicht gefunden."
}
# Gerätename oder Teil des Namens, den Sie deaktivieren möchten
$geräteName = "<GeräteName>"

# Suchen Sie das Gerät im Geräte-Manager
$gerät = Get-PnpDevice | Where-Object { $_.FriendlyName -like "*$geräteName*" }

# Überprüfen, ob das Gerät gefunden wurde
if ($gerät -ne $null) {
# Deaktivieren Sie das gefundene Gerät
Disable-PnpDevice -InstanceId $gerät.InstanceId -Confirm:$false
Write-Output "Das Gerät '$($gerät.FriendlyName)' wurde erfolgreich deaktiviert."
} else {
Write-Output "Das Gerät mit dem Namen '$geräteName' wurde nicht gefunden."
}
grüße gehen raus an chatgpt write-output kannst du löschen wenn du keine ausgabe möchtest
FFelix11/5/2023
In dem Fall dann aber den Else Zweig entfernen und die if Abfrage negieren und das Script um Falle von True beenden. Zumindest, wenn man es sauber haben möchte. Ich kann die Tage mal schauen, ob es eine schnelle Lösung über Global Hotkeys gibt. Ich programmiere beruflich mit C#. Will aber noch nichts versprechen, da ich auch erstmal die Zeit finden muss, etc.
Jj-30311/5/2023
Das wär ein Traum 😍 Ich hab jetzt gesehen, dass ich das mit displayfusion automatisieren könnte. Das will C#. Hab aber leider absolut null Dunst wie ich das Skript schreiben müsste. Verstehe da oben nur Bahnhof.
FFelix11/5/2023
Displayfusion kenne ich nicht. Aber ich habe in etwa eine Idee, wie ich das umsetzen könnte. Bin aber noch bis Samstag im Urlaub. Kann dir nicht sicher sagen, wann ich testen kann. Falls du zwischenzeitlich schon eine Lösung gefunden hast, sag am besten hier Bescheid. @Julian Pforte Kurze Frage: Wie willst du denn eigentlich Maus und Tastatur wieder aktivieren, wenn du sie vorher deaktiviert hast? Stellt das nicht ein Widerspruch dar? Auswertung von System-Ereignissen? Würde ggf gehen, aber wenn das mal nicht zieht, hast du ein Problem 🙂
Jj-30311/5/2023
Die sollen sich wieder aktivieren, wenn das entsprechende Bildschirmprofil in Displayfusion erkannt wird. (Wenn ich mein Rig Stromlos schalte geschieht das von allein) Im Notfall habe ich aber im Rig noch ein zweites Set mit dem ich das dann triggern könnte. Hat keine Eile. Vielen Dank für das Angebot, das ich sehr gern annehme. Falls du irgendwas wissen musst, was Displayfusion da treibt um das Skript zu triggern, kann ich dir das gern zeigen bzw. schicken.
FFelix11/6/2023
Ah, okay. Dann sind es wahrscheinlich nur zwei C# Scripts. Eins zum Aktivieren und eins zum Deaktivieren. Sollte machbar sein 👍
BBasinity11/6/2023
Moin, leider erst jetzt diesen Post gesehen, ich nutze NoJoy für genau solche Zwecke https://github.com/ssg/NoJoy Funktioniert für mich problemfrei
TTEXO11/11/2023
Boah fühle kekw
FFelix11/26/2023
@Julian Pforte Ist das Thema noch relevant? Ich hatte bisher keine Zeit, danach zu schauen. Oder funktioniert für dich die Lösung von Benjamin?
Jj-30311/26/2023
wäre noch relevant, wenn du Bock darauf hast. Die Lösung mit deinem Skript über DisplayFusion ist schon die elegantere. Aber musst dich deshalb nicht stressen. so eilig ist es nicht
FFelix11/26/2023
Okay. Ich versuche morgen Abend mal ein Skript zu erstellen.
Jj-30311/26/2023
❤️
FFelix11/26/2023
Werde es mit einem USB Stick testen. Wichtig ist, dass sich diese Einstellung spätestens nach einem PC Neustart resettet. Achso kurz noch vorweg: Höchstwahrscheinlich ist es nicht so einfach möglich, spezielle USB Ports zu deaktivieren, ohne tief ins Betriebssystem einzugreifen. Stattdessen können aber daran angeschlossene Geräte deaktiviert werden. Muss ich aber ausprobieren.
Jj-30311/26/2023
Wäre es dann einfacher eine ganze PCIe Karte zu deaktivieren? dann würde ich sowas dafür nutzen 🤔
FFelix11/27/2023
Ziel ist doch, bestimmte Geräte zu deaktivieren, oder?
Jj-30311/27/2023
Richtig, aber ich kann die ja einfach an die Karte anschließen und fertig. Ist eine Tastatur und ne Maus 🤷‍♂️ Und wenn es stumpf die karte ist, kann ich da bei bedarf einfach noch was dazu packen ohne das skript ändern zu müssen
FFelix11/27/2023
@Julian Pforte Habe gerade ein bisschen was ausprobiert. Das Deaktivieren / Aktivieren von einzelnen USB Ports bzw. daran angeschlossene Geräte ist leider gar nicht so einfach. Das muss über die Registry erfolgen und das würde ich eher nicht empfehlen. Die Variante mit der PCIe Karte ist tatsächlich die bessere. Ich kann das bei mir zu Hause nicht testen, da ich eine solche Karte nicht habe. Deswegen kann ich dir leider nur das geben, was mir ChatGPT auf die Schnelle dazu ausgespuckt hat:
static void ExecuteCommand(string command)
{
var processStartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};

using var process = new Process { StartInfo = processStartInfo });

process.Start();
process.StandardInput.WriteLine(command);
process.StandardInput.WriteLine("exit");

var output = process.StandardOutput.ReadToEnd();
var error = process.StandardError.ReadToEnd();

process.WaitForExit();

Console.WriteLine("Output:\n" + output);
Console.WriteLine("Error:\n" + error);
}

// Setzen Sie den Pfad zum Devcon-Dienstprogramm
var devconPath = @"C:\Pfad\zu\devcon.exe"; // Ersetzen Sie durch den tatsächlichen Pfad

// Setzen Sie die Geräte-ID Ihrer PCIe-Karte
var deviceId = "PCI\\VEN_XXXX&DEV_YYYY"; // Ersetzen Sie durch die tatsächliche Geräte-ID

// Konstruieren Sie den Befehl zum Deaktivieren des Geräts
var disableCommand = $"{devconPath} disable \"{deviceId}\"";

// Führen Sie den Befehl aus
ExecuteCommand(disableCommand);
static void ExecuteCommand(string command)
{
var processStartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};

using var process = new Process { StartInfo = processStartInfo });

process.Start();
process.StandardInput.WriteLine(command);
process.StandardInput.WriteLine("exit");

var output = process.StandardOutput.ReadToEnd();
var error = process.StandardError.ReadToEnd();

process.WaitForExit();

Console.WriteLine("Output:\n" + output);
Console.WriteLine("Error:\n" + error);
}

// Setzen Sie den Pfad zum Devcon-Dienstprogramm
var devconPath = @"C:\Pfad\zu\devcon.exe"; // Ersetzen Sie durch den tatsächlichen Pfad

// Setzen Sie die Geräte-ID Ihrer PCIe-Karte
var deviceId = "PCI\\VEN_XXXX&DEV_YYYY"; // Ersetzen Sie durch die tatsächliche Geräte-ID

// Konstruieren Sie den Befehl zum Deaktivieren des Geräts
var disableCommand = $"{devconPath} disable \"{deviceId}\"";

// Führen Sie den Befehl aus
ExecuteCommand(disableCommand);
Das könntest du mal testen. Wie gesagt, ich kann es leider nicht ausprobieren, da mir die Hardware dazu fehlt. Habe natürlich drüber geschaut und der Programmcode sieht für mich vernünftig aus. Kleine Verbesserungen habe ich auch gemacht. Du kannst es ja mal ausprobieren und mir Rückmeldung geben, obs funktioniert hat 👍
Jj-30311/27/2023
Danke dir! Muss die Karte auch erstmal besorgen 😅 werd das aber direkt mal in Angriff nehmen
FFelix11/28/2023
Jop. Zum Aktivieren wäre der Command dann natürlich so:
var enableCommand = $"{devconPath} enable \"{deviceId}\"";
var enableCommand = $"{devconPath} enable \"{deviceId}\"";

Looking for more? Join the community!

G
GermanSimRacing

USB-Ports per Software ein und ausschalten.

Join Server
Recommended Posts
GermanSimRacing Vorbereitung auf RC CarShop 24H Le MansAufrüsten CpuHuhu, ich bräuchte mal ein Ratschlag von den Profis. Ich möchte gerne einen neuen Prozessor. MeinBJ Hydraulic PedalsVerkaufe ich gerade bei #Kleinanzeigen. Wie findest du das? https://www.kleinanzeigen.de/s-anzeige/bTriple Setup schaltet abHallo, seit gestern Nachmittag kam es nun zwei Mal vor das meine Monitore kurz ausgehen und dann wiegebrauches boost kit fanatecMoin ich suche ein gebrauchtes boostkit zu einem vernünftigen Preis Angebote gerne privatDas "ARS" ( Activ Reset System ) lässt sich nicht aktivierenArrr...ich spreng mein Setup gleich in die Luft...🤬. Hat irgendwer einen Schimmer, warum sich das :DTriples, auf linken Monitor Taskleiste wegkriegenAuf meinem linken Monitor, wird in iRacing noch die Taskleiste angezeigt. Hatte das schon mal, auch Black Friday, November Sale?!Grüßt euch.., ich muss jetzt mein Abo die Tage wieder verlängern und habe jetzt ein paar mal schon gValve Index Basisstation 2.0Ich verkaufe aktuell neuwertige Valve Index Basis Stationen 2.0. Gekauft am 22.9.23 im Steam Store. ACC stürzt ab wenn ich den Discord Stream starteSeit einigen Wochen stürzt bei mir das Spiel ab wenn ich den Discord Stream starte. Hatte vorher nieSteamVR started nicht mit Critical Error wenn Varjo Aero angeschaltet wirdHallo, seit dem 20.10. funktioniert das Positional Tracking der Varjo Aero nicht mehr. SteamVR starAuto wird nichts als Team gespeichertEs gibt bei manchen Autos ( vor allem bei aktuellen) das Problem, dass die nach "add" und dem auswähMein RigMein SimrigWindows ProblemeHab seit einiger zeit totale Performance Probleme mit Windows. Ich hab aktuell normale Programme ofSuche fanatec CSL DD Ready2Race Bundle 8NMsuche ein gebrauchtes bundle was mein g29 ablöst24H NOS 2023 Rennen gesuchtGrüße, weis einer von euch ob es diese Jahr noch ein 24H Rennen (hostet) auf der NOS gibt? Wenn eineKann man den Getriebesound reduzieren?Ich würde echt gerne mal ein paar Rennen mit einigen GT Porsche fahren wollen, allerdings gibt mir dVerstärker mit 4+ KanälenGibt es einen einfachen guten Verstärker mit 4 Kanälen aufwärts welcher kein Vermögen kostet? Ich fi