Toon posts:

Delphi: help met exe bestand!

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben niet echt bekend in Delphi maar ik ben bezig een soort menu te maken waar mensen vanaf een cd-rom verschillende bestanden kunnen instaleren.
bijvorobeeld: ik heb een exe bestand (winzip.exe bijvoorbeeld) dit staat op de cd-rom in de map winzip.

Nu heb ik op het formulier een button gemaakt. Als je hier op klikt opent die winzip.exe met shellexecute:

ShellExecute(Application.Handle,'open',PChar('winzip.exe'), nil, nil, SW_NORMAL);
Nu heb ik winzip in de map winzip staan en de exe van het menuutje in de root van de cd-rom
Hoe kan ik dan de shelexecute laten verwijzen naar het path waar winzip.exe staat?
aangezien cd-rom letters varieren bij mensen dus je kan niet d:\winzip\winzip.exe nemen bijvoorbeeld.

Ik heb het zo geprobeerd en dat werkte zolang ik nog in Delphi zelf zat
eenmaal op cd-rom gebrand kon ie het pad niet meer vinden
ShellExecute(Application.Handle,'open',PChar('/winzip/winzip.exe'), nil, nil, SW_NORMAL);

Ik hoop dat het wat duidelijk is wat mijn probleem is aangezien het nogal lastig uit te leggen is.
alvast bedankt!

Verwijderd

Het programma wordt dus uitgevoerd vanaf de cd-rom. Je kunt dan met ParamStr het pad opvragen. Je weet dan dus gelijk de drive letter van de cd-rom.

Dan zelf nog ff het goede pad ervan maken en het moet werken.
ParamStr(0) returns the path and file name of the executing program (for example, C:\TEST\MYPROG.EXE).

Verwijderd

Topicstarter
Is er niet gewoon zoiets van ../mapnaam/exebestand.exe?
(net zoals bij HTML)

  • jopiek
  • Registratie: September 2000
  • Laatst online: 21-08 19:56

jopiek

Tja... 'ns ff denken.

Op maandag 10 september 2001 12:54 schreef EM het volgende:
Ik ben niet echt bekend in Delphi maar ik ben bezig een soort menu te maken waar mensen vanaf een cd-rom verschillende bestanden kunnen instaleren.
bijvorobeeld: ik heb een exe bestand (winzip.exe bijvoorbeeld) dit staat op de cd-rom in de map winzip.

Nu heb ik op het formulier een button gemaakt. Als je hier op klikt opent die winzip.exe met shellexecute:

ShellExecute(Application.Handle,'open',PChar('winzip.exe'), nil, nil, SW_NORMAL);
Nu heb ik winzip in de map winzip staan en de exe van het menuutje in de root van de cd-rom
Hoe kan ik dan de shelexecute laten verwijzen naar het path waar winzip.exe staat?
aangezien cd-rom letters varieren bij mensen dus je kan niet d:\winzip\winzip.exe nemen bijvoorbeeld.

Ik heb het zo geprobeerd en dat werkte zolang ik nog in Delphi zelf zat
eenmaal op cd-rom gebrand kon ie het pad niet meer vinden
ShellExecute(Application.Handle,'open',PChar('/winzip/winzip.exe'), nil, nil, SW_NORMAL);
stop fmxutils in de uses van je programma (fmxutils.pas in demo directory onder delphix/demos/docs/filemanex o.i.d. te vinden) en gebruik ExecuteFile(naam, param, path, sw_show).

je doet nu:

extractfilepath(paramstr(0)) om het pad van je applicatie (incl. '/' op het eind) te verkrijgen en houdt daar rekening mee als je de exe aanroept!

Cogito Ergo Credo


Verwijderd

Topicstarter
Ik heb nou gewoon een . voor de dir gezet en nu werkt het wel.
Is iets minder werk dan dat andere :)
maar bedankt in ieder geval!