Avatar billede jds Nybegynder
08. maj 2005 - 17:23 Der er 10 kommentarer og
1 løsning

Åbne fil/dokument eller lign. med en CommandButton eller ListBox

Hej

Jeg leder efter et script der kan åbne en fil eller et dokument såsom et Word-Dokument, en hjemmeside, et EXE program eller lignende.

Det skal foregå på den måde at man klikker på en CommandButton eller et sted i en ListBox.

For eksempel:
Når man klikker på nummer 4 i en eller anden listbox, så åbner der et html dokument.

Angiv gerne et eksempel på et script!

På forhånd tak :)
/JDS
Avatar billede tubber Juniormester
08. maj 2005 - 17:30 #1
List1_Click()
Shell ("Start" + List1.Text) ,0
End Sub

Den åbner en hjemmeside......
Og jeg vil også tro den åbner en fil i det program det normalt åbnes i
Avatar billede tubber Juniormester
08. maj 2005 - 17:39 #2
Det ser ikke ud til den åbner filer, men den virker til hjemmesider......
Avatar billede jds Nybegynder
08. maj 2005 - 18:03 #3
Jeg kan ikke få det til at virke...den kommen med en Run-time error, file not found.

Kan du evt lave et eksempel med en CommandButton, og hvor filnavnet indgår i scriptet.
Avatar billede tubber Juniormester
08. maj 2005 - 18:24 #4
Ser ikke ud til det helt funker som jeg huskede det :(

Men fandt en anden løsning til at åbne filer med......

I et modul:
Public 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

I din kode for knappen:
ShellExecute hwnd, "open", "C:\test.txt", vbNullString, "C:\", 1

"c:\test.txt" det er filen som skal eksistere og "c:\" er drevet den findes på den burde kunne åbne alle filer, men så er der jo url tilbage :(
Avatar billede tubber Juniormester
08. maj 2005 - 18:27 #5
har lige siddet og testet lidt

ShellExecute hwnd, "open", "C:\test.txt", vbNullString, "C:\", 1

det eneste du behøver ændre er "c:\test.txt" og det ser ud til den også kan indeholde en url altså en webadresse så som http://www.google.com......

Så skal den smide teksten fra listboxen ind vil det ligne det her:

Private Sub List1_Click()
ShellExecute hwnd, "open", List1.Text, vbNullString, "C:\", 1
End Sub
Avatar billede jds Nybegynder
08. maj 2005 - 22:59 #6
hmm...

Jeg har sat:
ShellExecute hwnd, "open", "C:\test.txt", vbNullString, "C:\", 1
ind i under Command1_Click()

og oprettet et modul (modul1.bas) hvor jeg har indsat den kode du skrev:
Public 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

Men når jeg klikker på knappen så sker der ikke noget, men den kommer til gengæld heller ikke med en fejlmeddelelse, jeg har også oprettet en test.txt i mappen c:\

ved du hvad jeg kan have gjort forkert?
Avatar billede jds Nybegynder
08. maj 2005 - 23:01 #7
Men det virker når jeg smider en url adresse ind som du sagde...
Meget mærkeligt...
Avatar billede jds Nybegynder
08. maj 2005 - 23:10 #8
okay..har lige testet med et .doc dokument....det virker også :)
så der er bare en eller anden mærkelig grund til at et .txt dokument ikke vil...men det overlever jeg :D

Så du skal have MANGE tak for din hjælp!! Super Fedt!

Smid lige et svar så du kan få dine velfortjente points :)

Har også lige et spørgsmål til sidst:
Hvis nu jeg vil åbne en fil der ligger i sammen mappe som mit program ligger (altså nu snakker jeg om det færdige program når det er lavet til exe fil osv..), hvordan skriver jeg så det? skal jeg så bare nøjes med kun at skrive filens navn uden at skrive C:\bla\bla\bla\osv.. eller hvordan gør jeg?

Sådan her?:

ShellExecute hwnd, "open", "test.txt", vbNullString, "C:\(HVAD SKAL JEG SÅ SKRIVE HER?)", 1
Avatar billede tubber Juniormester
09. maj 2005 - 01:20 #9
Så er det sådan her:

ShellExecute hwnd, "open", App.Path & "\test.txt", vbNullString, "C:\")", 1

App.Path giver dig følgende hvis dit program ligger på c drevet og i en mappe der hedder test.....
C:\test

Derfor du skal ha den \ med i "" så i alt bliver App.Path & "\test.txt" til "c:\test\test.txt"
Avatar billede jds Nybegynder
09. maj 2005 - 16:38 #10
Okay!

Tusind tak for hjælpen :D


Lukket
Avatar billede tubber Juniormester
09. maj 2005 - 17:14 #11
Np du :) og takker for point :)
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