problém se starým programem
Používáme starý úzce specializovaný DOS program, za který není náhrada. Program je z roku 1990 a stále funguje. Až do doby Win98 jsme si usnadňovali práci tím, že jsme pomocí malého prográmku do zásobníku klávesnice zadali dávkáčem F3 - název souboru + Enter + spuštění programu, takže potřebné datové soubory se daly spouštět "na Enter". Ve WinXP to ale nefunguje. Co s tím?
Rád bych pomohl, ale nerozumím otázce - nešlo by uvést příklad?
Program neumí otevírat soubory jako parametr, pracuje řádkově - musí se po spuštění napsat F3 - název souboru bez přípony - Enter - F5 zpracování - F6 výstup atd.
Dříve jsme si šetřili nechutné vypisování názvu souboru tím, že pomocí utility jsme do zásobníku klávesnice vložili F3, název souboru a Enter, takže stačilo kliknout na soubor a on se v té hrůze otevřel jako třeba v Excelu. No a pod WinXP už to nefunguje.
Příklad:
zasobnik.com - vkládá znaky do zásobníku klávesnice
program.exe - vlastní program
Dávkový soubor start.bat obsahoval:
call zasobnik.com F3 %1 Enter
program.exe
Jasný?
Ve Win98 to chodilo, ve WinXP už ne.
Tzv. režim kompatibility to neřeší.
Teď už je to jasný!
Aha
Zkus se podívat na scriptovací jazyk AutoIt, ten má podporu zadávání kláves... (send)
autoit3
konkrétně: http://www.autoitscript.com/autoit3/docs/appendix/S endKeys.htm
Také nechápu oč jde. Ten program se nechce spustit, nebo ti nefunguje klávesová zkratka, nebo co?
skus to pustat pod XP pod dosbox-om - http://dosbox.sourceforge.net/download.php?main=1&b egaming_website_session=bb13dad93ed890c99bc35c8227d 9a96a
Taky moc nechápu. Třeba emulátor?
faq.htm
guidedos.php
Taky jsem kdysi programoval "nadstavbu", která využívala buffer klávesnice, dávkovým souborem se spustil pak hlavní program, který si z toho bufferu načetl patřičné údaje a nebylo je tedy nutné ručně vyplňovat.
Ale na to, abych ti mohl a uměl poradit je málo informací... Je tajný, o jaký program se jedná? Umožňuje zadávaní parametrů z příkazové řádky? Zkus použít režim kompatibility s Win98 nebo ten emulátor DosBOX, jak radil Igor.
Ano! Uhodil jsi hřebíček na hlavičku!
Přesně tak to potřebuji, do bufferu klávesnice hodit F3 + název souboru bez přípony + Enter a pak spustit ten program.
Parametry z řádku to nebere, kdyby ano, nebyl by problém.
Program tajný není, je to specializovaná aplikace na zpracování laboratorních výstupů - mimo pár specializovaných pracovišť věc absolutně k ničemu. Z kupy "nesmyslných čísel" udělá jiná "nesmyslná čísla"
Patnáct let to chodilo přes všechny systémy, DOS 3-6, Win3, Win95, Win98, až na XP to narazilo. To je pech!
Viz můj tip výše.
a něco jako obyčejnej VBSscript a funkce "sendkey/s" by ti nestačilo?
XP jsou v tomhle dost jiné než předchozí systémy, zápis do bufferu tuším používal registry, přerušení a jiné "nízkoúrovňové" systémové věci, které jsou asi u XP řešeny jinak a nejsou zpětně kompatibilní....
No co by?
Pořiď si nějakou šunque, a provozuj to dál.
Zápis do dosovského bufferu klávesnice funguje i v XP. To, co popisuješ, normálně používám. Jestli chceš zdroják, aby sis ho mohl přizpůsobit, stačí říct (je to v borland pascalu).
Pascal bych asi někde vyhrabal, prosím poslat: Jirka.Povolny@seznam.cz
Díky
Takže díky Tebou zaslanému kódu v Pascalu a také díky radě "MM" v jiné diskusi je problém vyřešen.
Přesně takhle si představuji fungování poradny (a ne jako na "vy víte kde", kde nikdo nebyl schopen ani odpovědět, natož poradit.
Tímto děkuji "JM" a "MM" jakož i ostatním, co se snažili poradit.
Vyslovuji tímto "JM" pochvalu před nastoupenou poradnou.
Zápís do bufferu klávesnice umí utilitka Keystack.exe od Jpsoft (patřilo to k 4nt - sqvjelé toť náhradě Cmd.exe). Teď keystack interním příkazem zmiňovaného 4nt, ale do nevím které verze to byl externí program. Prozíravě jsem si ho schoval, takže můžu poslat.
Prosím poslat: Jirka.Povolny@seznam.cz
Nainštaluj si program Virtual PC a v ňom si nainštaluj Windows 98, to je asi najrozumnejšia myšlienka.