[VB6]PDF of TXT opstarten vanuit een vb project

Pagina: 1
Acties:

  • Caveman
  • Registratie: Januari 2001
  • Laatst online: 15-05 19:17

Caveman

whahoehaha

Topicstarter
Misschien een hele domme vraag (ben eigenlijk nog niet zo heel erg lang bezig met VB) maar ik wil graag gewoon een pdf of een txt bestand op starten vanuit VB. Dus hetzelfde principe als ik er dubbel op klik in de explorer. Ik begrijp inmiddels dat je een extern programma op kunt starten via het commando shell maar dan krijg je van die elle langen commandos zoals "Shell("c:\program files\microsoft office\office\winword.exe c:\mijndo~1\visualbasic.doc", vbMaximizedFocus" en dat wil ik niet, want het moet op een cdrom komen en ik weet niet bij andere computers de pathnaam. Het PDFje of txt bestand komen gewoon in dezelfde dir als de exe. Ik heb al zitten spitten in MSDN, maar daar kom ik iedere keer weer op shell uit.....

I don't need to "Get a Life." I'm a Gamer. I 've lots of Lives !


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 20-05 15:17

TwoR

Gekleurde stippen

in vb6 kan je gewoon App.Path gebruiken dat is dan de directory waar de exe instaat.

[ Voor 9% gewijzigd door TwoR op 29-09-2004 16:31 ]


  • ILUsion
  • Registratie: Augustus 2003
  • Laatst online: 08-11-2025
Ik werk al hele tijd niet meer in VB, maar in Delphi werkt het op deze manier
code:
1
ShellExecute(Handle,PChar('open'),PChar('bestand/programma'), PChar('parameter'),PChar('werkmap'),SW_MAXIMIZED);

Volgens mij moet het in VB dus wel werken als bv.
code:
1
Shell("document.doc",vbMaximizedFocus)

Als je een document aanroept, opent hij het normaalgezien.
Voor je pad, is het normaal niet moeilijk (geldt in Delphi toch, en ook in DOS/Start>Uitvoeren,...):
Alles hangt af van de huidige map ( werkmap/working directory/folder (dit is niet een werkmap om bestanden tussen computers mee te delen, maar de map waarin het programma alles rechtstreeks kan benaderen). Als je niet weet welke dat is, is dat in 99,999% van de gevallen de map waar je programma staat.
Ik ga er nu vanuit dat je bv. deze mapstructuur hebt
code:
1
2
3
4
5
C:\Programma's\VB\
C:\Programma's\VB\documenten
C:\Programma's\VB\projecten\
C:\Programma's\VB\projecten\documenten
C:\

Stel, je werkmap (programma met de exe in, dat is het makkelijkst) is nummertje 3 en je wilt het document brief.doc openen( dat in het voorbeeld in die map aanwezig is )
Dan moet je dit als pad ingeven (overeenkomstige nummers als hierboven):
code:
1
2
3
4
5
..\brief.doc
..\documenten\brief.doc
brief.doc
documenten\brief.doc
..\..\brief.doc

Uitgelegd in woorden, om naar de bovenliggende map te gaan geef je '..' in (komt nog uit het DOS-tijdperk allemaal) [dit kan je meerdere malen uitvoeren dus]. In de huidge map, kan je gewoon de mapnaam ingeven om naar een onderliggende map te gaan of het document te openen.
Ik hoop dat je hiermee verder kunt, als het niet duidelijk is, vraag je maar he.

  • Caveman
  • Registratie: Januari 2001
  • Laatst online: 15-05 19:17

Caveman

whahoehaha

Topicstarter
ILUsion schreef op 29 september 2004 @ 17:43:
Ik werk al hele tijd niet meer in VB, maar in Delphi werkt het op deze manier
code:
1
ShellExecute(Handle,PChar('open'),PChar('bestand/programma'), PChar('parameter'),PChar('werkmap'),SW_MAXIMIZED);

Volgens mij moet het in VB dus wel werken als bv.
code:
1
Shell("document.doc",vbMaximizedFocus)

Als je een document aanroept, opent hij het normaalgezien.
Ow, hier kom ik wel wat verder mee.... door deze tip ben ik erachter gekomen dat VB ook een ShellExecute commando kent, het is nog ff zoeken naar de juiste expressie (MSDN stroom niet over van de duidelijkheid, ;) )
Helaas is het zo dat het SHELL commando van VB alleen exe, com, bat en cmd kan uitvoeren.

I don't need to "Get a Life." I'm a Gamer. I 've lots of Lives !