[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!