Gibt es eine Möglichkeit, innerhalb der Komponente in C# zu erkennen, ob die Anwendung, die diese Komponente verwendet, in der Konsolenanwendung oder anderen ausgeführt wird?bin ich in der Konsolen-App?
Antwort
Verwenden Sie Environment.UserInteractive
. Wenn true
Sie in einer Konsole sind. Wenn false
Sie könnten in einem Dienst sein.
finden Sie in diesem Beispiel für Ihre Lösung: http://weblogs.asp.net/whaggard/archive/2004/08/30/223020.aspx
Reflexion einer der ersten Orte, die ich aussehen würde -
http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getexecutingassembly.aspx
F: Wie „sicher“ brauchen Sie?
-1, Wie kann das * möglicherweise * Ihnen sagen, ob Ihr Code in einer Konsolenanwendung ausgeführt wurde? – Gabe
Die Informationen, die Sie benötigen, sind eine Eigenschaft Ihrer exe-Baugruppe. Wenn Sie das Manifest Ihrer Assembly mit einem Tool wie ildasm.exe anzeigen, können Sie die Subsystem-Eigenschaft anzeigen, die den Typ der Ausführungsumgebung angibt, die Ihre Main-Methode startet.
Allerdings scheint Reflection diese Informationen nicht direkt verfügbar zu machen.
Der Code in dem folgenden Link enthält ein Beispiel dafür, wie die EXE-Datei selbst zu lesen und diese infromation erkennen:
http://blogs.msdn.com/b/kstanton/archive/2004/03/31/105060.aspx
Ich hoffe, das half.
cheers Ran, aber ich möchte, dass mein Code in der Bibliothek erkennt, ob der Prozess, der diese Bibliothek aufgerufen hat, im Konsolenmodus ausgeführt wurde. Aber danke für den Link, sicher, dass es irgendwann nützlich sein wird. – Heinnge
Diese Methode sollte noch funktionieren. Sie können Assembly.GetEntryAssembly (oder etwas Ähnliches, ich erinnere mich nicht an den genauen Namen) verwenden und dann Assembly.Location verwenden, um die EXE-Datei selbst zu finden. – Ran
- 1. Aufruf der Controller in der ich bin: nicht gefunden
- 2. Ich bin nicht in der Lage, Dateien von SFTP-Dateiquelle zu ziehen, während ich in der Lage bin, durch FileZilla
- 3. Ich bin nicht in der Lage, C-Programm in Eclipse
- 4. Ich bin nicht in der Lage UIBarButtonItem in UINavigationController
- 5. Oracle Hausaufgaben - ich bin
- 6. fullpage.js wo bin ich?
- 7. Bin ich gehackt?
- 8. Ich bin in der Notwendigkeit für einen Floating-Point-Experten
- 9. Ich bin nicht in der Lage, Node-Bourbon im Projekt
- 10. Ich bin nicht in der Lage, Dump-Datei für Absturz
- 11. Ich bin nicht in der Lage Nokogiri zu installieren
- 12. Ich bin nicht in der Lage virtuellen Methodenaufruf auszuführen
- 13. Ich bin nicht in der Lage gem zu installieren
- 14. Ich bin nicht in der Lage, den Titel von UINavigationController
- 15. Ermitteln, dass ich in der Chrome-App/-Erweiterung bin
- 16. Ich bin nicht in der Lage Benutzer von meinem app
- 17. Ich bin nicht in der Lage, Junit Test
- 18. Ich bin nicht in der Lage Navigationsleiste mit JSQMessagesViewController
- 19. Ich bin nicht in der Lage, den Dateipfad
- 20. Wo bin ich in einer Indexierungskette?
- 21. Ich bin verwirrt in meiner Datenbank
- 22. Ich bin stecken in einfachen Abfrage
- 23. Ich bin in Aufgabe mit Schleifen stecken
- 24. Wie bekomme ich Bin Path?
- 25. Ich bin mit json.marshal stecken in gehen
- 26. Wo bin ich? * (kein Zweig)
- 27. Fragmente, wann bin ich "aktiv"?
- 28. Was bin ich Bootstrap zurück
- 29. Siehe Repositories, in denen ich Mitarbeiter bin
- 30. Ich bin verwirrt über jinja2 in saltstack
'UserInteractive' ist 'wahr' für eine gefensterte App, nicht nur eine Konsolenanwendung. – Qwertie
Es gibt keine Benutzeroberfläche auf einer Konsole. –