Avatar billede marcus25 Nybegynder
19. april 2004 - 16:20 Der er 8 kommentarer og
1 løsning

Start at program i maksimeret vindue

Hej

Jeg starter et andet program (MapInfo)fra Access med nedenstående linier og det går fint. Men programmet starter i et minimeret vindue. Findes der en kommando som maksimerer det nye vindue?

Dim objMap As Object
Set objMap = CreateObject("MapInfo.Application")
objMap.Visible = True
AppActivate objMap
19. april 2004 - 16:27 #1
ofte er det et spørgsmål om hvordan programmet blev åbnet sidst.

Hvis objMap.Maximize ikke virker, kan du prøve at åbne det manuelt, maksimere det, lukke det og derefter starte det igen fra Access.
19. april 2004 - 16:28 #2
Jeg kender ikke programmeringsinterfacet til MapInfo, men du kan også prøve om objMap.Activate gør nogen forskel.
Avatar billede hekla Nybegynder
19. april 2004 - 16:48 #3
Prøv at starte det vha en shell kommando:
Call Shell("C:\Mypath\MyApplication", 3)

3 betyder maximeret
Avatar billede marcus25 Nybegynder
19. april 2004 - 20:14 #4
Desværre virker hverken objmap.maximize eller activate.  Kaldet via shell virker OK men det har jeg tidligere droppet, da brugerne ikke altid har programmet liggende samme sted og det af en eller anden grund tager længere tid at åbne den vej. Findes der virkelig ikke et kald til Windows som afslutningsvis kan flytte programmet til forgrunden???
19. april 2004 - 20:16 #5
I stedet for shell, kan du bruge ShellExecute, som ikke behøver en sti til programmet.
Du kan finde koden på min hp her: http://www.makeiteasy.dk/eksempler/TilSalg.htm

Her kan du angive at applikationen skal starte maksimeret (ligesom den alm. Shell)
19. april 2004 - 20:17 #6
Avatar billede marcus25 Nybegynder
20. april 2004 - 09:27 #7
Tja...den er bedre end shell, men det tager en evighed at åbne med splash reklamer og alting! Jeg vil derfor holde fast på at åbne med object-metoden. Jeg har ledt på nettet og det er tilsyneladende umuligt at få maksimeret når der er kaldt med object-metoden (hvis objectet ikke selv har denne funktion indbygget).
Men tak for god indsats
20. april 2004 - 09:38 #8
Ja, med Shell og ShellExecute mister man også kontrollen med programmet. Du fyrer det bare afsted og lader det sejle sin egen sø.
Med OLE Automation har du i stedet adgang til programmets programmeringsinterface og kan udføre forskellige handlinger gennem programmet. Så denne metode er klar at foretrække.

Du kan alternativt prøve at gå i Tools->references og lave en reference til MapInfo.
Herefter kan koden se således ud:
Dim objMap As Object
Set ObjMap = New MapInfo.Application
objMap.Visible = True
AppActivate objMap

Dette gør i sig selv næppe nogen forskel, men det giver dig mulighed for at se hvilke kommandoer, som er tilgængelige så snart du skriver:
ObjMap.
Avatar billede marcus25 Nybegynder
20. april 2004 - 09:45 #9
Er der da nogen forskel på:
Set objMap = CreateObject("MapInfo.Application")
og
Set ObjMap = New MapInfo.Application (som du skriver)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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