Survo-tiedostojen avaaminen Windowsin puolelta

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Kimmo Vehkalahti
Sähköposti:    -
Päiväys: 16.5.2010 23:52

Palaan asiaan, jota on kypsytelty varsin kauan, joka on ollut
esillä näissäkin keskusteluissa (viimeksi kai keväällä 2008),
ja jonka olen itse (jo useaan kertaan!) päästänyt unohtumaan.
Viestini on osittain aika tekninen ja kiinnostanee lähinnä,
jos on oikeuksia ja valmiuksia oman koneensa "konffailuun".
Luonnollisestikin kokeilut ovat jokaisen omalla vastuulla...

TARINAA TAUSTAKSI

Kyseessä on Survo-tiedostojen (pääasiassa toimituskenttien ja
datatiedostojen) avaaminen Windowsin puolelta (esimerkiksi sen
tiedostohallinnasta) klikkaamalla kyseisen tiedoston nimeä.
Survon ja Windowsin yhteiselossa on toisinaan hyödyksi, mikäli
Windows osaisi suoraan avata Survon tällaisella klikkauksella,
ja ottaa samalla esiin kyseisen toimituskentän tai datan.
Vastaava tilanne kohdataan myös esim. kun sähköpostin liitteenä
on Survo-tiedosto, ja sitä haluttaisiin "lennossa" vilkaista.

Nimeäkin tärkeämpi on tiedoston tyyppi (.edt, .svo, .txt jne.),
sillä sen perusteella Windows päättelee, millä ohjelmalla tuo
tiedosto pitäisi avata. Ilman lisäneuvoja Windows ei osaa avata
Survo-tiedostoja, sillä niiden tyyppejä ei ole sille kerrottu.
(Periaatteessa Survon asennusohjelma saattaisi kyetä opettamaan
nämä tiedot Windowsille, mutta sitä se ei nykyisellään tee.)

Survo-vetoista tiedostonhallintaa voi harrastaa esim. DD:llä,
johon "juuri" pari vuotta sitten lisäsin Petri Palmun esittämän
idean pohjalta O-napilla käytettävän Open-toiminnon. Se käskee
nimenomaan Windowsia avaamaan käyttäjän osoittaman (vastaavasti
kuin Windowsin puolella klikatun) tiedoston. Tämäkin toiminto
pääsi melkein unohtumaan, mutta se tuli vihdoin dokumentoitua
v. 2009 versioon 3.12. Edelleen samaa sukua oleva /OPEN-sukro
tuli jo versioon 1.33 (v. 2003). Työpöytäohjelmat DD ja INDEX,
joihin tässäkin nojataan, periytyvät jo SURVO 84C:n ajoilta,
1990-luvun alkupuolelta. Sitten oi noiden aikojen tilanne on
muuttunut sikäli, että Survon rooliksi on yhä enemmän alkanut
muodostua muiden ohjelmien kanssa tapahtuvan yhteiselon/-pelin
koordinointi. Siinä on kätevää, että yhteydet toimivat kaikkiin
suuntiin, myös Windowsista Survoon päin.

TEKNINEN TOTEUTUS

Yhteys Windowsista Survoon perustuu Windows-komentotiedostoon
SURVOWIN.CMD (talletetaan tässä Survon asennushakemistoon):

*SAVEP CUR+1,E-1,C:\SURVO_MM\SURVOWIN.CMD
*@ECHO OFF
*REM *** This batch file starts SURVO MM from Windows Explorer.
*REM *** It requires associating of Survo file types through
*REM *** Control Panel (Folder Options, File Types).
*REM *** K.Vehkalahti 2008 (based on my earlier implementations
*REM *** in 2001 under Windows 2000 and 1996 under Windows 95).
*REM **********************************************************
*ECHO %1 > C:\SURVO_MM\U\TMP\SURVOWIN
*START     C:\SURVO_MM\U\S   SURVOWIN
E

Idea (jonka satuin keksimään jo Windows 95:llä n. 15 v sitten)
on yksinkertainen:

Kun käyttäjä klikkaa tiedostoa, Windows välittää ao. tiedoston
täydellisen nimen parametrina (%1) SURVOWIN-komentotiedostolle.
SURVOWIN kelpaa siis Windowsille käynnistettäväksi ohjelmaksi
yhtä hyvin kuin Notepad, Word tms. "oikea" ohjelma. Survon oma
pääohjelma (S.EXE) ei tähän suoraan sovellu, koska se olettaa
parametrina saamansa tiedoston olevan sukro.

SURVOWIN vain tallettaa saamansa tiedoston nimen väliaikaiseen
tiedostoon (ECHO-komennolla). Sen jälkeen se käynnistää Survon
SURVOWIN-nimisellä aloitussukrolla, jolla Survo avaa käyttäjän
alun perin Windows-puolella klikkaaman tiedoston:

*TUTSAVE C:\SURVO_MM\U\S\SURVOWIN.TUT
/ SURVOWIN.TUT 2.6.2008/K.Vehkalahti under Windows xp
/ (original idea by KV under Win 95 in 1996 and Win2K in 2001)
*{tempo -1}{init}
- if W1 '=' ? then goto H
/ def Winfile=W2
*{disp off}{jump 1,1,1,1}SCRATCH{erase}{act}{home}
*{save systempath Winfile}{Winfile=Winfile&TMP\SURVOWIN.}
/
/ Winfile, saved by SURVOWIN.CMD, includes exactly one line:
/   [file] (file name, including drive and directory)
/ That is the file pointed by the user, so let's get it:
/
*LOADP {print Winfile},CUR{act}{R}
/ erase unnecessary quotation marks around the file:
*ERASE "{act}{u}
/ decide what to do according to the rules of INDEX operation:
*{line start}{ins}INDEX {ins}{line end},CUR / EDT=LOAD{act}{R}
/ remove the link file:
*FILE DEL {print Winfile}{act}{home}{erase}{u}
/ action:
*{interaction on}{disp reset}{act}{interaction off}{goto E}
/ ---------------------------------------------------------------------
+ H: {W1=SURVOWIN}{call SUR-SAVE}{break on}{jump 1,1,1,1}
*SCRATCH{erase}{act}{R}{R}
*/SURVOWIN{R}
*is used in launching SURVO MM from Windows Explorer and{R}
*doing something reasonable with the file pointed by the user.{R}
/
*{message}        Press ENTER!@
- on key
-      key _: continue
-   wait 600
*{W1=SURVOWIN}{call SUR-RESTORE}
+ E: {message}@{tempo +1}{disp reset}{end}

Kaikki Survo-tiedostot hoituvat samalla tavalla, koska päättely
tiedoston tyypin perusteella saadaan siirrettyä Survon sisään,
jossa se hoituu tavanomaiseen tapaan INDEX-komennolla. (Mikään
ei sinänsä estä kytkemästä muitakin tiedostoja tähän, voihan ne
kaikki avata Survosta. :) Huomionarvoista on, että tällä tavalla
myös DD:stä voidaan avata Survo-tiedostoja O-napilla; kätevää!)

Enää on selvittämättä se, miten Windows tietää hakea käyttöön
SURVOWIN-komentotiedoston. Se on valitettavasti vähän hämärää.
Periaatteessa tekniikka on selvä, mutta toteutus hieman häilyy
ja vaihtelee Windowsin versiosta toiseen. (Seuraavassa mainitut
detaljit koskevat Windows xp:tä, jota yhä käytän - luultavasti
Vistassa ja Windows 7:ssä asiat ovat pikkaisen eri näköisiä.)

Yksi tapa on koettaa vain avata jokin Survo-tiedosto Windowsin
tiedostonhallinnasta. Se johtaa Windowsin tiedusteluun: "What
do you want to do?" Vastaus: "Select the program from a list."
Haetaan (Browse) avoimeen "Open With" -laatikkoon SURVOWIN.CMD
ja valitaan "Always use the selected program to open this kind
of file". OK avaa Survon ja kyseinen tiedosto saadaan näkyville.
Tämä lienee yksinkertaisin tapa. Alla on asiasta vähän lisää.

LISÄTIETOJA, VERSIOEROJA YM. TURHAUTTAVAA

Tiedostotyyppien ja käynnistettävien ohjelmien hallinto on
Windowsissa keskitetty kohtaan "Folder Options", johon pääsee
tiedostonhallinnasta kohdasta "Tools" tai "Control Panel":ista.
Välilehti "File Types" kertoo kaikki rekisteröidyt tyypit ja
niiden kytkennät. Periaatteessa on myös Windows-komento ASSOC.
Kaikissa näissä on jotain hämärää: lisäykset eivät välttämättä
jää pysyviksi. Ikonin vaihtaminen onnistuu välillä (esim. sen
voi vaihtaa tutuksi Survo-ikoniksi antamalla ao. laatikkoon
Survon pääohjelman nimen), mutta välillä ei jne. Luulen, että
tässä on xp:ssä jotain bugeja, jotka on hyvin saatettu korjata
uudemmissa Windowseissa.

Eri Windows-versioissa on myös ollut eroja sen suhteen, missä
muodossa klikatun tiedoston nimi välittyy SURVOWIN-ohjelmalle.
Windows 95:ssä mukana ei ollut lainkaan polkunimeä, mutta sen
sai kikkailtua mukaan lisäämällä SURVOWIN-ohjelmaan CD-komennon.
Windows 2000:ssa polkunimi tuli mukaan. Windows xp:ssä nimen
ympärille oli ilmestynyt lainausmerkit. Ja niin edelleen.

YHTEENVETO

Survon ja Windowsin yhteispelin saa tällä keinolla kätevämmäksi.
Ehkä olen aiemmin suotta turhautunut noihin Windowsin hallinnon
omituisuuksiin; nyt keksimäni yksinkertainen tapa (koetetaan
vain avata ja kerrotaan samalla, millä ohjelmalla se tehdään)
näyttää toimivan mukavasti eikä hallintopuolelle tarvitse sen
enempää mennä teutaroimaan.

Kiitokset Juha Valtoselle, jolle 2 v sitten kaivoin koneeni
syövereistä vuosia vanhat, tätä koskevat rakennustelineeni,
ja joka nyt muistutti asiasta uudelleen ja yllytti nostamaan
asian Survo-keskusteluun. Juha mainitsi kokeilleensa hyvällä
menestyksellä tätä myös uudemmissa Windowseissa ja voinee
täydentää tätä, mikäli jotain lisävirityksiä niissä tarvitaan.

- Kimmo

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.