AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Deskband - Nur einmal starten

Ein Thema von Christian Seehase · begonnen am 27. Aug 2005 · letzter Beitrag vom 28. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#1

Deskband - Nur einmal starten

  Alt 27. Aug 2005, 20:51
Moin Zusammen,

ich bin gerade dabei ein Deskband zu erstellen, und stehe vor dem Problem, dass sich dieses mehrmals einfügen lässt.
Als Basis habe ich Deskband.h und Deskband.cpp aus dem PSDK übersetzt, desweiteren habe ich zur Dokumentation noch das Beispiel von Euromind herangezogen.
Bei diesem funktioniert das mit dem einzelnen Eintrag der einfach immer umgeschaltet wird.

Viel mehr konnte ich zu dem Thema, auch im PSDK, leider nicht finden.

Kann mir jemand sagen, was ich da machen muss?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Deskband - Nur einmal starten

  Alt 27. Aug 2005, 21:35
Frage: Du willst doch im Prinzip nicht das Deskband nur einmal, sondern vielmehr nur einmal pro Explorer, korrekt? Dann könntest du entweder a.) einen session-lokalen oder b.) einen mit Prozeß-ID "lokalisierten" Mutex (also zB "<MutexName><PID>") erstellen.

Danach prüfst du eben immer, ob der Mutex schon geladen ist (bei der Variante mit der PID bekommst du ja normalerweise die PID des aktuellen Prozesses sehr einfach raus). Denn wie bei allen DLLs, werden ja auch Deskbands normalerweise "gefragt", was sie wollen ... und das ist genau wo du dann nicht "antwortest".
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Deskband - Nur einmal starten

  Alt 27. Aug 2005, 21:42
Moin Olli,

Zitat von Olli:
...sondern vielmehr nur einmal pro Explorer, korrekt?
leider nicht korrekt.

Es soll eine erweiterte Schnellstartleiste werden, die die bestehende ersetzen soll.

Der "Witz" ist, dass das Beispiel von Euromind sich wie gewünscht verhält (ein Eintrag im Kontextmenü der Startleiste, der sich als Radiobuttoneintrag verhält), ich aber beim besten Willen keine Stelle ausmachen kann, an der meine Version anders eingebunden wird.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Deskband - Nur einmal starten

  Alt 27. Aug 2005, 22:08
Zitat von Christian Seehase:
ich aber beim besten Willen keine Stelle ausmachen kann, an der meine Version anders eingebunden wird.
Was ist mit der GUID?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Deskband - Nur einmal starten

  Alt 27. Aug 2005, 22:16
Moin Olli,

die GUID habe ich für mein DeskBand neu generiert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#6

Re: Deskband - Nur einmal starten

  Alt 27. Aug 2005, 22:18
Weißt du die GUID der echten Schnellstartleiste? Dann könntest du die aus dem Euromind-Beispiel mit dieser vergleichen. Alternativ übernimmst du mal die von Euromind und kompilierst neu und testest das Ganze dann.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Deskband - Nur einmal starten

  Alt 27. Aug 2005, 22:29
Moin Olli,

da man ja tunlichst die GUIDs aus fremden (Sample)-Sourcen ersetzt, wenn sie denn nicht zum System gehören, hatte ich das schon gemacht.
Das Euromind Beispiel arbeitet also schon mit einer von mir generierten GUID.

Da ich den Eindruck habe, dass das so rübergekommen ist:
Ich hatte nicht die Absicht die Schnellstartleiste durch meine zu überschreiben, sondern es soll nur etwas werden, dass ich ersatzweise nutzen will. Die Originalleiste soll dann also schlicht deaktiviert werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#8

Re: Deskband - Nur einmal starten

  Alt 27. Aug 2005, 22:34
Hmm okay.

Zitat von Christian Seehase:
Ich hatte nicht die Absicht die Schnellstartleiste durch meine zu überschreiben, sondern es soll nur etwas werden, dass ich ersatzweise nutzen will. Die Originalleiste soll dann also schlicht deaktiviert werden.
So habe ich es nach deiner ersten Klarstellung verstanden. Und der Euromind-Code deaktivert die andere Leiste nicht zB in den Explorer-Einstellungen der Registry? Dort werden doch die Deskbandeinstellungen abgespeichert, soweit ich im Bilde bin.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Deskband - Nur einmal starten

  Alt 27. Aug 2005, 22:48
Moin Olli,

der Unterschied ist, dass das Euromind-Beispiel auch andere Varianten mit abdecken kann.
Dies wird allerdings über Werte gesteuert, die man vor dem Compilieren entsprechend setzen muss, so dass man es, beispielsweise, auch in den IE einklinken kann.
Als Basis nehmen kann ich das Beispiel leider auch nicht, da sich, dummerweise, der Explorer 100% CPU-Zeit genehmigt, wenn man die neue Leiste auf der Taskleiste soweit verschiebt, dass das Fenster vollständig zu sehen ist.
Da ich hier den Fehler nicht finden konnte (nach Beseitigung der offensichtlichen), habe ich mir dann das original MS-Beispiel mal übersetzt, was soweit auch funktioniert.

[EDIT]
Zu früh [Absenden] erwischt

Das Euromind-Beispiel tut auch nichts in der von Dir beschriebenen Richtung.
Nach der Registrierung des Deskbands sollte der Rest durch die Shell verwaltet werden.
Die Rückgabewerte, die ich da habe, unterscheiden sich, abgesehen von Grössenangaben, auch nicht.
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#10

Re: Deskband - Nur einmal starten

  Alt 27. Aug 2005, 23:13
Tut mir leid, in dem Falle weiß ich auch nicht weiter.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:16 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