ShellExecute - lige ud af landevejen...
handle - så vidt jeg kan læse mig til noget med, hvilket vindue der modtager alt muligt. Hvad gør præcis denne værdi, og hvilke andre værdier findes?
Du er på rette vej. Et handle er et håndtag til en hvilken som helt klasse. Oftest bruges et handle
i forbindelse med Visuelle klasser f.eks. Kombobokse, Forme etc.
Jeg kan ikke præcist huske hvad ShellExecute anvender "håndtaget" til, men jeg vil tro at det
er fordi at alle "Child" vinduer bør have en "Parent". Det er så Forælderens opgave at lukke "barnet"
ned igen (ShellExecute(Handle, "close" ... ?) . Hvis du f.eks skriver NIL i stedet har det nye vidue ikke nogen forælder og kan derfor ikke lukkes af den applikation der åbnede det.
open - den er jeg med på
pchar('bla') - pointeren til den fil, der skal køres. Hvorfor en PChar? Jeg er ikke sikker på jeg har forstået forskellen mellem en string og en PChar...
PChar er ikke en pointer til den fil der skal køres. PChar er en pointer til en "C" streng, altså en
streng der er termineret med et NULL tegn (0). ShellExecute er en Windows API funktion, og da
alle API funktioner anvender "C" variable i deres kald er du nødtil at konvertere dine variable
til "C" style. PChar("Et eller andet") er altså en nødvendig typecasting da ShellExecute ikke vil
acceptere en almindelig Pascal "String" som argument, da pascal strenge er et array af karaterer.
Puha den var styg ;-)
sw_normal: Iflg min hjælp-oversigt over ShellExecute burde den SW_SHOWNORMAL men det her virker fint... Noget med hvordan applikationen skal vises?
Jeps right again.. prøv for sjov SW_MAXIMIZED.
Final words....
Det ShellExecute gør er det samme som sker hvis du f.eks dobbeltklikker på en .XLS fil.
I så tilfælde kigger Windows i registreringsdatabasen under HKEY_CLASSES_ROOT og finder ud af hvilket program der er "associeret" med .XLS extensionen. Derpå startes det associerede program med filnavnet som argument.
Det samme sker hvis du højreklikker på et filobjekt og vælger "open" menu punktet. Bemærk at
menuen varierer alt efter hvilken type fil du har fat i. Der kan altså være andre muligheder end "open".
Grunden til at ovenstående overhovedet virker er altså kun fordi der næsten altid er en registreret
en applikation til HTML filer.
Tænk en gang hvilke muligheder det giver.
Du kan f.eks registrere dine egne fil extensioner og dermed starte dine egne programmer med
et dobbeltklik på dine filer.
Håber du kan bruge det her til noget
Im off to fight evil where ever it may show its ugly face |-)