WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 06.09.2003, 20:21   #1
Take_Five
Senior Member
 
Registriert seit: 09.06.2001
Beiträge: 138


Take_Five eine Nachricht über ICQ schicken
Standard An die VB6 Gurus

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
Take_Five ist offline   Mit Zitat antworten
Alt 07.09.2003, 02:08   #2
Seidl
Veteran
 
Registriert seit: 10.01.2001
Beiträge: 478


Standard

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?
Seidl ist offline   Mit Zitat antworten
Alt 07.09.2003, 20:42   #3
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

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
wbendl ist offline   Mit Zitat antworten
Alt 08.09.2003, 22:03   #4
Seidl
Veteran
 
Registriert seit: 10.01.2001
Beiträge: 478


Standard

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.
Seidl ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:06 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag