/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Hvordan finder jeg stien til Office-progra~
Fra : Ivan D-J


Dato : 08-09-01 17:23

Hej

Er der en der kan hjælpe?

Jeg har i en MS Access 97 database behov for lokalisering af:
Microsoft Word
Microsoft Excel
Microsoft Powerpoint
Microsoft Access
Microsoft Outlook
Stien/path skal udtrykkes som en streng, og fungere i både W95, W98 og W2K.
Er det muligt at fange den i Registreringsdatabasen, eller lignende(venligst
et eksempel)?

Hvad kaldes iøvrigt et Outlook-emne(dokument) af typen *.MSG, på samme måde
som Word.Document, Excel.Sheet og Powerpoint.Slide osv.

På forhånd Tak!

Ivan D-J





 
 
Mikkel Bundgaard (09-09-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 09-09-01 10:22

Ivan D-J <Mail@mail.dk> wrote in message
news:3b9a43d3$0$919$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Er der en der kan hjælpe?
>
> Jeg har i en MS Access 97 database behov for lokalisering af:
> Microsoft Word
> Microsoft Excel
> Microsoft Powerpoint
> Microsoft Access
> Microsoft Outlook
> Stien/path skal udtrykkes som en streng, og fungere i både W95, W98
> og W2K. Er det muligt at fange den i Registreringsdatabasen, eller
> lignende(venligst et eksempel)?
> På forhånd Tak!
>
> Ivan D-J

Hej Ivan

Jeg har fundet på en løsning, der nok ikke er den bedste, men
den ser da ud til at virke. Nedenstående kode stump kan finde
det program, der er associeret med en bestemt type fil. For
at kode skal virke hos dig, skal du nok rette i arrayet myPrograms,
så det peger på filer der findes. Stierne bliver så spyttet ud i
Fejlfindingsviduet. Da jeg ikke har outlook, har jeg ikke inkluderet
denne, men det burde være let at tilføje.

Metoden burde virke på alle Windows fra NT 3.1 og Win95.
Håber du kan bruge den til noget.

Option Explicit

Const MAX_FILENAME_LEN = 250
Private Declare Function FindExecutable _
Lib "shell32.dll" Alias "FindExecutableA" _
(ByVal lpFile As String, _
ByVal lpDirectory As String, _
ByVal lpResult As String) As Long

Private Sub TestIt()
'Modified example taken from:
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim i As Integer, j As Integer
Dim s2 As String
Dim myPrograms
Const docDir = "C:\My Documents\"

' Jeg har ikke outlook, men det burde være det samme.
' Disse stier skal pege på dokumenter, der findes
myPrograms = Array(docDir & "Dok1.doc", _
docDir & "Fra 75'eren\Tabel.xls", _
docDir & "Fra 75'eren\Power.ppt", _
docDir & "FileChooser.mdb")

'Check if the files exists
For j = 0 To UBound(myPrograms)
If Dir(myPrograms(j)) = "" Then
MsgBox "File not found!", vbCritical
Exit Sub
Else
'Create a buffer
s2 = String(MAX_FILENAME_LEN, 32)
'Retrieve the name and handle of the
'executable, associated with this file
i = FindExecutable(myPrograms(j), vbNullString, s2)
If i > 32 Then
' For at undgå problemer med null-char, kan dog give
' problem med nogle filer.
Debug.Print Left$(s2, _
InStr(s2, ".exe") + Len(".exe"))
Else
MsgBox "No association found !"
End If
End If
Next j
End Sub

PS. Hvorfor returnerer funktionen FindExecutable en null-char
imellem Program og Files i "C:\Program Files\", når man søger
efter en Access fil, men et mellemrum, når det er Word, Excel
eller powerpoint ???
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
Se SpaceCommunicator - en peer-to-peer chat-applikation i Java





Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste