<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Red-Pill Blog &#187; Delphi</title>
	<atom:link href="http://blog.red-pill.cz/category/programovani/delphi/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.red-pill.cz</link>
	<description>Blog o internetu, programování a jiných věcech…</description>
	<lastBuildDate>Thu, 29 Apr 2010 13:20:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>TAB v názvu souborů? Ale fuj!</title>
		<link>http://blog.red-pill.cz/2008/02/05/tab-v-nazvu-souboru-ale-fuj/</link>
		<comments>http://blog.red-pill.cz/2008/02/05/tab-v-nazvu-souboru-ale-fuj/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 16:13:47 +0000</pubDate>
		<dc:creator>petr.kratina</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.red-pill.cz/2008/02/05/tab-v-nazvu-souboru-ale-fuj/</guid>
		<description><![CDATA[
<!-- by Texy2! -->]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;">Se stěhováním do nových kanceláří muselo
zákonitě dojít i ke stěhování souborů. Řeknete si, že to není nic
světoborného, prostě se soubory překlopí na jiný stroj a vše poběží
dál. Problém ale nastává pokud přesouváte soubory mezi různými
operačními systémy.</p>

<p style="text-align: justify;">Na hlavní pobočce se používá (bohužel)
Linux, běží na něm několik interních aplikací a hlavně filesystem
intranetu (přístupný jako sdílená složka pomocí démona Samby), tedy
nějaký EXT. Nový server už běží na Windows 2003 Server for Small
Bussiness Server <em>(pro zarputilé zastánce linuxu – ne linux není
lepší, není rychlejší a zdaleka toho neumí tolik co Windows, intranetový
systém SharePoint Services, Exchange server, VPN, doména, správa
uživatelů…vše je jen otázkou „několika kliknutí“, takové pohodlí,
množství a kvalitu služeb linux prostě nemá a dlouho mít nebude)</em>,
tedy NTFS. Překlopit se muselo cca. 120Gb dat z toho nemalá část jsou
emaily vybírané démonem a ukládané jako .eml soubory a to konkrétně jako
[datum]-[subjekt].eml. Pokud ovšem subjekt emailu obsahoval tabulátor, byl
uložen i s ním v názvu. Ani samba ho k mému údivu nepřevede na
nějaký „bezpečný“ znak a tak při prostém kopírování na windowsový
filesystem na prvním nestandardně pojmenovaném souboru kopírováni
spadne.</p>
<span id="more-60"></span>
<p style="text-align: justify;">Je zarážející že vývojaři vymyslí
takovou (s prominutím) hovadinu a toto umožní, tabulátor má smysl
v textovém dokumentu, ale v jeho názvu nemá co dělat, vždyť většina
aplikací a systémů používá klávesu TAB na přechod na další prvek
popřípadě „inteligentní doplňování“ v konzoli (linux). V Microsoftu
si toto už dávno uvědomili a podobným nesmyslům brání, tab do názvu
souboru prostě nejde uložit, přitom ho ale umožňují číst a tím
zvyšují kompatibilitu s ostatnímy systémy které nejsou na takové
úrovni.</p>

<p style="text-align: justify;">Pro mne to znamenalo napsat si v Delphách
jednoduchou aplikaci, která rekurzivní funkcí prohledá všechny adresáře,
zkontroluje názvy, připraví si platný název souboru a pomocí něho soubor
zkopíruje do cílového místa. Je to škoda, několik hodin strávených
kopírováním, hledáním proč to nefunguje a psaním aplikace, která to
napraví. Stačilo by kdyby se programátoři linuxových FS
zamysleli…tabulátor nemá prostě v názvu souboru co dělat…</p>

<div
style="background: #EEE; border: 1px #808080 solid; padding: 15px; text-align: justify;">Aplikaci
si můžete včetně zrojových kódů stáhnout zde: <a id="p61"
title="Lin2WinCopy.zip" href="http://blog.red-pill.cz/?attachment_id=61"
rel="attachment">Lin2WinCopy.zip</a>. Jen upozorňuji, že byla psána narychlo
a jen pro tento účel, není určena pro širokou veřejnost, ale jen pro ty
kteří vědí jak ji správně použít. Zříkám se veškeré odpovědnosti
za škody způsobené jejím používáním.</div>

<!-- by Texy2! -->]]></content:encoded>
			<wfw:commentRss>http://blog.red-pill.cz/2008/02/05/tab-v-nazvu-souboru-ale-fuj/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interakce webových stránek s aplikací ve Windows</title>
		<link>http://blog.red-pill.cz/2007/07/18/interakce-webovych-stranek-s-aplikaci-ve-windows/</link>
		<comments>http://blog.red-pill.cz/2007/07/18/interakce-webovych-stranek-s-aplikaci-ve-windows/#comments</comments>
		<pubDate>Wed, 18 Jul 2007 10:44:38 +0000</pubDate>
		<dc:creator>petr.kratina</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programování]]></category>
		<category><![CDATA[Registry]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zájimavosti]]></category>

		<guid isPermaLink="false">http://blog.red-pill.cz/2007/07/18/interakce-webovych-stranek-s-aplikaci-ve-windows/</guid>
		<description><![CDATA[
<!-- by Texy2! -->]]></description>
			<content:encoded><![CDATA[
<p>Web v posledních letech zažívá velký rozmach hlavně co se počtu
aplikací a způsobů použití týká. Nicméně stále je spousta akcí, na
které je nutné spouštět aplikace na klientském PC (příkladem může být
aplikace zprostředkující vkládání obrázků na server přímo ze
schránky – je to vhodné pro administrační systémy a podobné případy,
kdy máme možnost klientovi do PC nainstalovat náš program).</p>

<p>Otázkou ale zůstává, jak libovolný prohlížeč donutit spustit právě
naši aplikaci s danými parametry. Odpověď je jednoduchá, přesto však ne
každý ví jak to provézt – zaregistrujeme ve Windows vlastní
„protokol“ a nasměrujeme jeho zpracování na naší aplikaci. Tento postup
není nijak komplikovaný a jediné co potřebujeme je textový editor,
administrátorská práva a onu aplikaci která bude požadavky
zpracovávat…</p>
 <span id="more-40"></span>
<h2>Praktický příklad</h2>

<p>Představte si modelovou situaci, kdy se po kliknutí na odkaz v libovolném
webovém prohlížeči (nebo e-mailu) otevře vždy Internet Explorer se zadanou
adresou. Vytvoříme si tedy protokol „ieopen://“ kterému budeme předávat
celou adresu, tedy formát zadání bude například:
„ieopen://http:/­/blog.red-pill.cz/“. Napřed tedy v registrech Windows
založíme onen protokol a nasměrujeme ho na aplikaci „c:\Program
Files\IEopen\i­eopen.exe“ (při hromadném použití by toto měl do
registrů vkládat instalátor podle cesty do které uživatel program
instaluje). Lepší je podle mě vytvářet .reg soubory a ty zavádět do
registru celé, všechny údaje tak máme ke kontrole připravené před sebou
ještě před samotným zápisem. Do souboru protokol.reg vložím zapíšu
následující.</p>
 <code>Windows Registry Editor Version 5.00</code>
<p>[HKEY_CLASSES_RO­OT\ieopen] @=„URL:IE Open Protocol“ „URL
Protocol“=""</p>

<p>[HKEY_CLASSES_RO­OT\ieopen\she­ll]</p>

<p>[HKEY_CLASSES_RO­OT\ieopen\she­ll\open]</p>

<p>[HKEY_CLASSES_RO­OT\ieopen\she­ll\open\comman­d]</p>
@=„c:\\Program Files\\IEopen\\i­eopen.exe %1“
<p>Všimněte si že zpětná lomítka v cestě jsou zdvojená a že se
programu předává parametr %1 který obsahuje onu námi zadanou adresu
(včetně ieopen:// na začátku!).</p>

<p>Následuje napsání jednoduché aplikace, která url převezme z parametru
a spustí v Internet Exploreru. Zdrojový kód v Delphi může vypadat
například takto:</p>
 <code>program ieopen;</code>
<p>uses<br />
Windows, SysUtils, Dialogs, ShellApi;</p>

<p>{$R *.res}</p>

<p>var<br />
URL: String;</p>

<p>begin<br />
URL := ParamStr(1);</p>

<p>if (StrLen(PChar­(URL))&gt;9) then<br />
begin<br />
URL := Copy(Url, 10, StrLen(PChar(URL))-9);<br />
ShellExecute(0, nil, ‚iexplore.exe‘, PChar(URL), nil, sw_show);<br />
end;</p>
end.
<p>Po instalaci aplikace do správného adresáře a vložení informací do
registru se při zadání ieopen:// a adresy vždy spustí pouze Internet
Explorer s danou stránkou, vyzkoušet to můžete <a
href="ieopen://http://blog.red-pill.cz/">zde</a> ;o)</p>

<p>Tento postup je vhodný zejména ke spouštění administrativních
aplikací, usnadňování práce či technické podpory ve společnostech
(například odeslání snímku obrazovky či přizvání it-technika
k vzdálené pomoci přímo z intranetu či emailu), ale své uplatnění
najde i při spouštění her herních klientů (kdy je například seznam
serverů na stránce a po rozklepnutí je ihned spuštěna hra a připojena ke
správné adrese) a podobně.</p>

<p>Na závěr přikládám .reg soubor, zdrojové kódy i zkompilovanou
aplikaci. Snad vám tento jednoduchý návod pomůže ;o)<br />
<a href="http://red-pill.cz/protokol.zip">DOWNLOAD</a></p>

<p style="text-align: right;">Petr</p>

<!-- by Texy2! -->]]></content:encoded>
			<wfw:commentRss>http://blog.red-pill.cz/2007/07/18/interakce-webovych-stranek-s-aplikaci-ve-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
