AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Freeware: Desktop-Switch

Freeware: Desktop-Switch

Ein Thema von SirThornberry · begonnen am 17. Jan 2006 · letzter Beitrag vom 10. Sep 2007
Antwort Antwort
Seite 1 von 12  1 2311     Letzte » 
Benutzerbild von SirThornberry
SirThornberry
Registriert seit: 23. Sep 2003
Hallo,

Vorwort:

beim lesen der Beiträge in diesem Forum bin ich auf die sogenannten Desktops aufmerksam geworden welche mit CreateDesktop erstellt werden können. Dabei wird ein Desktop wie ihn so ziemlich jeder Windowsnutzer kennt erstellt. Da ich mich ein wenig mehr mit dem Thema beschäftigen wollte hab ich ein kleines Testprojekt gebaut mit dem ich neue Desktops anlegen kann und zwischen den Desktops wechseln kann.
Da ich bereits von diesem Testprojekt total begeistert bin dachte ich mir ich stell dieses einfach mal hierein.


Programmbeschreibung:

Mit diesem Programm kann man neue Desktops erstellen und zwischen den Desktops wechseln. Es werden jedoch auch einige Desktops angezeigt im Programm zu denen man nicht wechseln kann.
Sinnvoll ist das Programm für Leute welche schnell die Übersicht verlieren wegen zu viel geöffneter Dateien. Damit ist jetzt sozusagen schluss denn man kann mehrere Desktops einrichten und wenn genug Programme offen sind öffnet man einfach einen neuen Desktop und startet dort die nächsten Programme.

Aufgrund einiger verwendeter Funktion läuft das Programm nur unter:
Windows Vista, Windows XP, Windows 2000 Professional, und Windows NT Workstation 3.51 and later

Getestet wurde das Programm bisher jedoch nur unter "WinXP Pro SP2"

[Edit]
inzwischen gehen die Desktops zu schließen, ein Autostart ist vorhanden, Prozesse der Desktops werden aufgelistet, Desktops können auotmatisch beim start erstellt werden, es werden nur Desktops aufgelistet auf die man auch Zugriff hat etc.
[/Edit]
2007.09.01
- Shell einstellbar
- Fehler beim starten der Explorer.exe der auf einigen Systemen kam wurde behoben.
Angehängte Dateien
Dateityp: zip desktopswitch_128.zip (279,5 KB, 396x aufgerufen)
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
 
Dax
 
#2
  Alt 17. Jan 2006, 23:17
Mir fehlt eine Funktion, die Desktops wieder zu schließen

Ansonsten gefällt mirs gut
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

 
Delphi 6 Enterprise
 
#3
  Alt 17. Jan 2006, 23:18
Sehr schön...
Funktioniert so wies soll!

Aber 2 Sachen würde ich mir noch wünschen:

1) nen schöneres Design
2) Das dein Prog automatisch im Systemtray des neuen Desktops zu sehen is!
Ohne die Tastenkombi alt+strg+b is man sonst aufgeschmissen!
Thomas
  Mit Zitat antworten Zitat
Neotracer64

 
Delphi 7 Professional
 
#4
  Alt 17. Jan 2006, 23:25
Schönes Ding.

Wie bist du bloss nur auf die Idee gekommen.

Könntest du auch bitte den Source uppen? Wäre sehr nett!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#5
  Alt 18. Jan 2006, 05:07
Und wie bekomme ich den Desktop wieder weg? Durch Beenden des Programmes jedenfalls nicht.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry

 
Delphi 2006 Professional
 
#6
  Alt 18. Jan 2006, 06:00
Wie im Vorwort beschrieben ist das ganze mein derzeitiges Testprogramm.
Das entgültige Programm soll dann natürlich auch die Desktops beenden, sowie eine Liste der Prozesse zu jedem Desktop beinhalten.
@atreju2oo0:
- Das mit dem Tray ist keine schlechte Idee (wenn man die Tastenkombi vergessen hat gibt es jedoch auch die Möglichkeit über den Taksmanager das Programm zu beenden und neu zu starten.)

@Neotracer64:
- Source uppen: Eventuell wenn das ganze fertig ist denn da es mein Testprogramm ist, sieht der source dementsprechend aus (keine alphabetiche Ordnung etc.)
- Wie ich auf die Idee gekommen bin: Ich fand das mit den Desktops interessant, besonders in Bezug auf Arbeitsstellen, wo man schnell zur eigentlichen Arbeit zurück kehren können muss, ohne erst alle Programme zu schließen

@Luckie, @Dax: Das schließen der Desktops wird das nächste sein was eingebaut wird, dazu muss ich so wie ich jetzt weiß wohl alle Prozesse dieses Desktops killen. (muss man derzeit über den Taskmanager machen, wenn man also nix weiter in dem Desktop gestartet hat reicht es die Explorer.exe aus dem Desktop zu killen)
Und in diesem Zusammenhang wollte ich zu jedem Desktop eine Prozessliste anzeigen, weil es doch recht schwer ist im Taskmanager zu erkennen welcher Prozess zum aktuellen Desktop gehört.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von AndreasP
AndreasP

 
Delphi 7 Professional
 
#7
  Alt 18. Jan 2006, 07:23
mahlzeit,

ein an sich sehr interesantes "testprogramm". was die zuordnung der prozesse zum desktop angeht könnte dir unter umständen der process explorer von sysinternals weiter helfen. wenn ich das richtig gesehen habe erhält jeder auf den zusätzlichen desktops gestartete prozess als parent id die id des explorers (und die müstest du ja erhalten wenn du den neuen desktop startest).
Miniaturansicht angehängter Grafiken
desktops_164.png  
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry

 
Delphi 2006 Professional
 
#8
  Alt 18. Jan 2006, 07:52
wie ich die Prozesse den Desktops zuordne weiß ich bereits. Da aber ein Prozess auf mehrere Desktops aufgeteilt werden kann (weil eigentlich die Threads auf die Desktops verteilt sind) muss ich das ganze noch in einem Tree schön aufbereiten.

In dem Zusammanhang hol ich mir einfach alle Threats per "CreateToolhelp32Snapshot" wo ich die ProzessID mitbekomme. Mit der Funktion GetThreadDesktop kann man dann ermitteln auf welchem Desktop der Thread läuft und das muss dann einfach "nur" noch dargestellt werden.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry

 
Delphi 2006 Professional
 
#9
  Alt 21. Jan 2006, 16:16
Es ist so weit - eine Neue Version ist verfügbar. (Das Attachement des ersten Beitrages wurde aktuallisiert)

folgendes hat sich geändert:
- Es werden nur noch die Desktops angezeigt zu denen man auch wechseln kann
- Die Desktops können auch wieder geschlossen werden.
- Wenn man einen neuen Desktop erstellt oder zu einem Desktop wechselt so wird das Programm im Tray des neuen Desktops, bzw. in dem Desktop wo man hinwechselt angezeigt.
- Bei Rechtsklick auf das Traymenu (kann mit dem Parameter "/tray" erzwungen werden) öffnet sich ein Popupmenü mit den Desktops zu denen man wechseln kann.
- Anstelle einer einfachen Liste mit Desktops ist jetzt ein TreeView verwendet worden in dem unter jedem Desktop die aktuellen Prozesse aufgelistet sind. Unter den Prozessen wieder sind die Threads aufgelistet.

Leider hab ich noch nicht rausgefunden wie ich anhand der ThreadID an das ThreadHandle heran komme. Daher ist es noch nicht möglich einzelne Threads zu beenden.
Wenn man einen vorhanden Desktop schließt und darauf ein Explorer geöffnet war (ist standarmäßig so damit eine Taskleiste da ist) öffnet sich derzeit leider noch Explorer-Fenster (Windows-Explorer).
Jens
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

 
Delphi 2005 Personal
 
#10
  Alt 21. Jan 2006, 16:34
Geniale Idee, ich hoffe du baust das weiter aus;

hab noch ein paar dinge bemerkt;

1. wenn ich einen desktop schließe wird ein explorerfenster in dem ursprungsdesktop geöffnet
2. wenn ich einen desktop anlege und ihn wieder lösche kann ich unter dem gleichen namen keinen neuen alegen; fehlermeldung: den gibts schon
3. wenn ich den desktop schließe (in dem tool) dann befinde ich mich im niemandsland, ich seh also keine desktopelement ausser dem hintergrundbild mehr auch die taskleiste ist weg das steuerungsfenster ist noch da -> evtl. wäre es gut wenn e dann automatisch zum ursprungsdektop zurückkehren würde

Gruß
Thomas

PS: WinXP Home SP2
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz