![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Senior Member
![]() |
![]() Hi. Ich muss bis morgen (Sonntag) ein ActiveX Steuerelement erstellen, dass folgendes tut
1. Ein User gibt in ein Textfeld den Namen einer Applikation ein (z.B.: winword.exe). Das Steuerelement sucht nun in der Registry nach dieser Anwendung und liest, wenn sie gefunden wurde, den Pfad aus und führt ihn aus (shell.execute). Wenn der Pfad nicht gefunden wurde, sucht das Steuerelement die Datei auf der Platte. Wenn sie gefunden wurde, wird ebenfalls der Pfad ausgelesen und wieder ausgeführt. 2. Der user kann aber auch ins Textfeld den bereits vollständigen Pfad eingeben (C:\Programme\winword.exe). Der Pfad wird dann durchsucht und wenn die Applikation darin nicht vorkommt, dann wird wieder die Registry durchsucht und geschaut, ob die Applikation nicht vielleicht doch irgendwo is. Falls doch, wird die Datei wieder ausgeführt (so auch wenns in der Registry gefunden wurde). Mein Problem is nun folgendes: Wie genau erstell ich ein ActiveX Steuerelement, und 2. Wie durchsuch ich die Registry? Bitte, bitte helft mir Lg Take_Five
____________________________________
Nur die Übung trennt das Außergewöhnliche vom Gewöhnlichen |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() Ich will dich ja nicht entmutigen aber das mit der Registry kann eigentlich gar nicht funktionieren. Mit Winword könnte ich es mir noch vorstellen, da davon kaum jemand mehrere Versionen installiert haben dürfte. Bei Access ist das schon wieder was anderes. Die meisten Access-Entwickler dürften die Versionen 97 und XP parallel installiert haben. Die Executable beider Versionen trägt dabei den selben Namen. Welche sollte dann ausgeführt werden?
Abgesehen davon, ist mir keine Möglichkeit bekannt, um aus der Registry den Pfad für eine Anwendung anhand ihres Dateinamens herauszufinden. Eine ziellose Suche kannst du ja mal im RegistryEditor versuchen. Da gibt's für den Suchbegriff winword.exe ziemlich viele Treffer. Eine Möglichkeit die ich mir noch eher vorstellen könnte, wäre das Starten der Standardanwendung für eine Extension. Siehe dazu folgende Links: AssocQueryString => http://msdn.microsoft.com/library/de...uerystring.asp AssocQueryKey => http://msdn.microsoft.com/library/de...ocquerykey.asp Was das suchen einer Anwendung im Filesystem angeht, so hast du wieder das selbe Problem wie mit der Registry. Was tun, bei mehreren Treffern? |
![]() |
![]() |
![]() |
#3 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Also grundsätzlich halte ich es für machbar, aber nicht bis heute. 1. Ein neues Projekt beginnen und ActiveX-Steuerelement auswählen. Falls das bei dir nicht geht, hast du nur die "Sparversion" von VB6. Besorg die die Enterprise-Edition. 2. Alle ordnungsgemäß installierten Programme sind unter folgendem Pfad in der Registry zu finden. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\App Paths\ Dabei ist auch der Pfad zu Anwendung abgelegt. Das Auslesen der Werte ist wohl nur mit Hilfe des API möglich. 3. Eine Datei auf der Festplatte zu suchen kann mit Bordmitteln programmiert werden, der Suchvorgang kann aber ziemlich lange dauern. Wenn du eine Fristverlängerung schaffst, dann such in den VB-Foren nach dem Code für den Zugriff auf die Registry. Ich kann dir soetwas frühestens in 2 Wochen schnitzen. mfg WB |
![]() |
![]() |
![]() |
#4 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() Hmmm. In dem Pfad war ich auch. Ich habe aber zu allererst nach Winamp gesucht. Als ich das nicht gefunden habe, habe ich die anderen Einträge gar nicht mehr angesehen. Auf den zweiten Blick allerdings scheint die Liste (bis auf Ausnahmen) wirklich fast alles zu enthalten.
Das Auslesen der Werte aus der Registry ist kein wirkliches Problem. Entweder du bindest die Registry Access Functions (REGTOOL5.dll) in dein Projekt ein oder du holst dir die nötigen Infos von HIER. Für die Suche nach einem File kannst du entweder die Infos unter folgendem Link verwenden: http://support.microsoft.com/default...b;en-us;185476 oder auch die FileSearch-Klasse der Microsoft Office 10.0 Object Library (mso.dll) verwenden. Ich hoffe die Infos kommen nicht endgültig zu spät. |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|