HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Alkalmazások indítása speciális paraméterekkel programból


Példaprogram letöltése

7909 bájt

Programból viszonylag egyszerűen indíthatunk el egy másik alkalmazást. Ebből a cikkből viszont azt is megtudhatjuk, hogy miként adhatunk meg speciális paramétereket az indítandó programmal kapcsolatban. Így például indíthatunk úgy is alkalmazást, hogy az a felhasználó előtt teljesen rejtve maradjon. Megnyithatunk dokumentumokat a hozzájuk rendelt alapértelmezett programokkal. Műveleteket végezhetünk állományokkal, mint például a nyomtatás, de lehetőségünk van egy adott web címre történő ugrásra is.

Programok indítását könnyedén elvégezhetjük ha a Process osztály Start függvényét hívjuk. Ennek azonban több változata is létezik, így nem csak arra van lehetőségünk, hogy sztringként megadjuk az indítandó program nevét, elérési útvonalát, hanem úgy is hívhatjuk a Start-ot, hogy paraméterként egy ProcessStartInfo típusú változót adunk át számára.
A ProcessStartInfo osztály property-jein keresztül megadhatjuk, hogy milyen alkalmazás, miképp induljon el.
      protected void button1_Click (object sender, System.EventArgs e)
      {
        ProcessStartInfo psi = new ProcessStartInfo();
Az első példánál a Windows jegyzettömb alkalmazását indítjuk el. Ehhez a ProcessStartInfo osztály FileName property-jébe kell írnunk a futtatandó EXE-t, szükség esetén a teljes elérési útvonallal együtt.
        psi.FileName = "notepad.exe";
Lehetőségünk van arra is, hogy parancssori paramétert adjunk át. Ehhez a paramétereket egyetlen sztringként az Arguments property-ben kell megadnunk. A mellékelt példában a c:\\autoexec.bat állományt adjuk meg, így a jegyzettömb induláskor rögtön megnyitja ezt az állományt. Amennyiben nem lenne ilyen állomány a gépen, akkor javítsa az alábbi sort a mellékelt példában egy olyan állományra, mely létezik.
        psi.Arguments = "c:\\autoexec.bat";
A WindowStyle property-ben megadhatjuk, hogy a futtatandó alkalmazás miképp induljon el. Erre az alábbi lehetőségeink vannak:
  • Maximized – teljes képernyő méretben jelenik meg az alkalmazás
  • Minimized – minimalizált állapotban jelenik meg az alkalmazás
  • Normal – alaphelyzetben jelenik meg az alkalmazás
  • Hidden – az elindított alkalmazás a felhasználó elől rejtve marad
        psi.WindowStyle = ProcessWindowStyle.Maximized;
Végül nincs más teendőnk, mint meghívni a Process Start függvényét és átadni neki a beállított ProcessStartInfo osztályból létrehozott változót.
        Process.Start(psi);
      }
Ha olyan alkalmazást próbálunk meg elindítani, mely nem létezik, akkor ebből egy futási hiba keletkezik. Ha azt szeretnénk elérni, hogy erről a hibáról a felhasználó is értesüljön egy dialóg ablakban és ne csak a programunk, akkor célszerű a ProcessStartInfo osztály ErrorDialog property-jét igazra állítani.
      protected void button2_Click (object sender, System.EventArgs e)
      {
        ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = "abcdefg.exe";
        psi.ErrorDialog = true;
        Process.Start(psi);
      }
Harmadik példánál kinyomtatjuk az autoexec.bat-ot a Windows jegyzettömb alkalmazás segítségével, de mindezt úgy tesszük, hogy a felhasználó észre sem veszi, hogy elindítottuk a jegyzettömböt.
      protected void button3_Click (object sender, System.EventArgs e)
      {
        ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = "notepad.exe";
Paraméterként most nem elegendő az állomány nevet átadni, hanem a /p kapcsolóra is szükségünk lesz, hogy a nyomtatás automatikusan megtörténjen.
        psi.Arguments = "/p c:\\autoexec.bat";
Mivel most nem kell megjelenni a jegyzettömbnek, ezért a Hidden érték alkalmazásával elrejtjük a programot a felhasználó elől.
        psi.WindowStyle = ProcessWindowStyle.Hidden;        
        psi.ErrorDialog = true;
        Process.Start(psi);
      }
Ha az alapértelmezett böngészőt szeretnénk elindítani és ott rögtön egy általunk megadott linkre ugrani, akkor erre is igen egyszerű lehetőségünk van.
      protected void button4_Click (object sender, System.EventArgs e)
      {
        ProcessStartInfo psi = new ProcessStartInfo();
A teendő csupán annyi, hogy a FileName property-be most a kérdéses web címet adjuk meg.
        psi.FileName = "http://www.SoftwareOnline.hu";
        Process.Start(psi);
      }
Ha a FileName property-be egy dokumentumot adunk meg, akkor a futtatáskor a kiterjesztéséhez hozzárendelt alapértelmezett alkalmazás indul el, mely rögtön be is tölti a megadott dokumentumot. Ha például egy TXT állományt adunk meg a FileName property-ben, akkor valószínűleg a jegyzettömb indul el. Persze bármilyen egyéb kiterjesztéssel rendelkező állományt is megadhatunk itt, nem csak TXT-t.
      protected void button5_Click (object sender, System.EventArgs e)
      {
        ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = "c:\\netlog.txt";
        Process.Start(psi);
      }
Az egyes dokumentumokhoz nem csak az őket kezelő program van hozzárendelve, hanem sok esetben különféle parancsok is. Ilyen parancs például a Print, mely az adott dokumentum nyomtatását írja elő. Ekkor a FileName property-ben a kérdéses dokumentum nevét kell megadni, majd a Verb property-ben a végrehajtandó parancsot.
      protected void button6_Click (object sender, System.EventArgs e)
      {
        ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = "c:\\netlog.txt";
        psi.Verb = "print";
        psi.WindowStyle = ProcessWindowStyle.Hidden;        
        Process.Start(psi);
      }
Ez esetben a következő történik: a megadott TXT kiterjesztéshez a Windows regisztrációs adatbázisában a .txt kulcs a HKEY_CLASSES_ROOT alatt található. Ehhez tartozik a txtfile. A HKEY_CLASSES_ROOT\txtfile\shell\print\command alatt találjuk a %SystemRoot%\system32\NOTEPAD.EXE /p %1 bejegyzést, mely arra utal, hogy a Windows jegyzettömbjét kell indítani a /p kacsolóval. A %1 érték helyére kerül behelyettesítésre az adott dokumentum neve.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2001 évkönyv 169. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |