jeg ved ikke helt om det virker - men du kan jo prøve:
Private Declare Function GetActiveWindow Lib "user32" () As Long Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Jo, man kan bruge shell uden at definere funktioner. Jeg lader altid shell udføre med, at der returneres en værdi, alt efter om kommandoen udføres - eller ikke.
Har installationen ikke sti til notepad, må den angives.
x = shell("C:\winnt\notepad.exe " & "dinsti" & "dinfil.txt") mellemrummet efter exe er vigtigt!
Skal brugeren have mulighed for at vælge en anden editor, må denne angives i en ini-fil eller i 'Registry'. At skrive den absolut er ikke nogen god ide.
over-load: Det virker. :-) Jeg har nogle efterfølgemde spørgsmål: Vil det virke i alle 32-bit - windows? Hvad hvis filtypen (.txt) ikke er associeret til notepad, men en anden editor, vil den så stadig åbnes i notepad? Med andre ord virker koden sådan at det er filtypens tilknyttede program, som afgører at det i mit tilfælde er notepad, der åbnes?
Jørn: Hvad hvis notepad ikke er installeret her "C:\winnt\notepad.exe "?
Ja, der er flere løsninger. Du kan som jeg omtaler, lade stien til notepad angive i en ini.fil eller i registry. Du kan lade notepad eller en anden editor medfølge i din installations-setup og selv styre hvor den anbringes hos brugeren.
Jeg ved ikke om notepad altid ligger i windows-mappen, i så fald findes der et kald, der finder denne mappe uanset drev og mappe.
Dim fso Dim sydir as string
Set fso = CreateObject("Scripting.FileSystemObject") sydir = fso.getspecialfolder(1) x = MsgBox("Din system-mappe er: " & sydir, 64, "Afhængig af styresystem.")
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.