Avatar billede jamola Nybegynder
09. september 2004 - 14:48 Der er 9 kommentarer og
2 løsninger

Kan man i VB5 åbne en tekstfil i notepad eller anden teksteditor?

Kan man i VB5 kode så man i programmet kan åbne en tekstfil i notepad eller anden default teksteditor - og hvordan?
Avatar billede over-load Nybegynder
09. september 2004 - 14:59 #1
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

Me.WindowState = vbMinimized
ShellExecute GetActiveWindow(), "Open", " stien til filen ", "", 0&, 1

det virker i vb6 men ved ikke helt om det virker i vb5
Avatar billede arne_v Ekspert
09. september 2004 - 15:11 #2
Er:

Shell "notepad " & filnavn

ikke i VB5 ?
Avatar billede joern Nybegynder
09. september 2004 - 15:30 #3
Hej.

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.

M.v.h.  Jørn
Avatar billede jamola Nybegynder
10. september 2004 - 09:03 #4
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 "?
Avatar billede joern Nybegynder
10. september 2004 - 09:33 #5
Hej.

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.")

M.v.h.  Jørn
Avatar billede over-load Nybegynder
11. september 2004 - 16:52 #6
jeg mener det vil virke på alle 32 bit systemer - hvis du bare lader .dll filen ligge i samme mappe som .exe filen
Avatar billede over-load Nybegynder
11. september 2004 - 16:53 #7
og ja - den kode jeg gav dig vil åbne .txt til den tekst editor der er sat som default

hvis du vil have fat i windows mappen kan du skrive stien som noget ala: $system-root$  så vidt jeg husker :)
Avatar billede jamola Nybegynder
12. september 2004 - 15:40 #8
Jeg vil gerne give både over-load og Jørn points. Over-load, sender du mig et svar?
:-)
Avatar billede over-load Nybegynder
12. september 2004 - 16:29 #9
svar :o)
Avatar billede over-load Nybegynder
12. september 2004 - 16:29 #10
how :P
Avatar billede jamola Nybegynder
13. september 2004 - 12:13 #11
Tak :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester