Výsledky 1 až 5 z 5

Téma: Spousteni registrovanych souboru z C pod Windows ?

  1. #1

    Standardní Spousteni registrovanych souboru z C pod Windows ?

    Potrebuju aby z ceckovyho programu sli pod Windows spoustet zaregistrovany soubory. Nasel jsem si, ze se musi pouzit API fce ShellExecute:

    Kód:
    #include <stdio.h>
    #include <shellapi.h>
    
    /*#define nazev "\\html\\index.html"*/
    #define nazev "d&#58;\\vyuka\\cecko\\spousteni\\html\\index.html"
    /* #define nazev "index.html" */
    
    int main&#40;void&#41;
    &#123;
    
    printf&#40;"%s", nazev&#41;;
    
    /* sprintf&#40;command,"\"f&#58;\\program files\\internet explorer\\iexplore\" %s", nazev&#41;;
    system&#40;command&#41;; */
    
    ShellExecute&#40;NULL, "open", nazev, NULL, ".", SW_SHOWNORMAL&#41;;
    
    return &#40;0&#41;;
    &#125;
    Mel bych nasledujici dotazy:
    1) Ta fce ShellExecute ma vracet jestli to probehlo OK atd. Nevim ale, jak z ni dostat. Typ funkce ma byt HINSTANCE, coz netusim, co je (teda je to nejakej ukazatel, ci co?).

    2) Dalsi problem je, ze to funguje jen s uplnou cestou a ne s relativni vzhledem k adresari, ze kteryho to poustim. Zrejme budu muset nejdriv zjistit cestu.

    Kód:
    int main &#40;int argc, char *argv&#91;&#93;&#41;
    ....
    program_name = argv&#91;0&#93;;

    3) Co delat v pripade, ze argv[0] zklame? Ze muze je patrne z nasledujiciho:

    argv[0] may contain all or part of the pathname, or it may contain nothing. You may be able to duplicate the command language interpreter's search path logic to locate the executable if the name in argv[0] is present but incomplete. However, there is no guaranteed solution.
    Pouzivam LCC kompilator a argv[0] vyhodi jen nazev spousteneho souboru

    Budu vdecny za jakykoliv namet
    XP 1700+, AC CS2 TC, 512MB DDR400, Epox 8VTAI, Seagate 120GB SATA, Hercules 8500le 64MB

  2. #2

    Standardní

    Niekde som sem daval kod v Delphi, mozno to trochu pomoze.
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  3. #3
    Senior Member minceVIP Avatar uživatele sisi
    Založen
    24.02.2003
    Bydliště
    Auckland, NZ
    Příspěvky
    2 176
    Vliv
    294

    Standardní

    Link to MSDN... neviem ci tam najdes vsetko co potrebujes, ale minimalne su tam rozobrate tie return values.
    Intel Core 2 Duo E6600 @ 3.2GHz (8 * 400MHz) @ 1.3V with Zalman CNPS9500 AT @ 1800RPM, ASUS P5B Deluxe/WiFi, 2x1GB Corsair Twin2X PC2-6400 DDRAM @ 400MHz (4-4-4-12) @ 2.1V, Leadtek 8800GT 512MB, WD Caviar SE16 250GB, Asus DRW-1608P3S, Creative SB Audigy Value, Logitech X-230 speakers, Enermax Liberty 400W, 2x120mm Thermaltake case fan @ 1800RPM, Thermaltake Aguila black case, HP LP2065 LCD, Logitech MX400

  4. #4
    Junior Member
    Založen
    18.10.2002
    Bydliště
    www.tomfi.cz
    Příspěvky
    19
    Vliv
    0

    Standardní

    Není někde ke stažení nápověda typu MSDN na microsoft webu? Klidně i menší ale hlavně aby byla o MFC.

  5. #5

    Standardní

    Citace Původně odeslal sisi
    Link to MSDN... neviem ci tam najdes vsetko co potrebujes, ale minimalne su tam rozobrate tie return values.
    diik, tak 1) uz mam vyreseno:

    Kód:
    ....
    hlaska = &#40;int&#41; ShellExecute&#40;NULL, "open", nazev, NULL, ".", SW_SHOWNORMAL&#41;;
    
    if &#40;hlaska > 32&#41; &#123;
    printf&#40;"File opening successful.\n"&#41;;
    &#125;
    else &#123;
    switch &#40;hlaska&#41;
    &#123;
    case 0&#58;
       printf&#40;"The operating system is out of memory or resources.\n"&#41;;
       break;
    case ERROR_FILE_NOT_FOUND&#58; 
       printf&#40;"The specified file was not found.\n"&#41;;
       break; 
       .....
    XP 1700+, AC CS2 TC, 512MB DDR400, Epox 8VTAI, Seagate 120GB SATA, Hercules 8500le 64MB

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •