Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[winAPI] otwieranie pliku

Ostatnio zmodyfikowano 2014-06-11 14:39
Autor Wiadomość
szymeczek31
Temat założony przez niniejszego użytkownika
[winAPI] otwieranie pliku
» 2014-06-07 22:12:22
Jak w temacie - chcę otworzyć plik przez eksplorator windows za pomocą mojego programu(WM_RBUTTONDOWN na pliku i w menu kontekstowym "Otwórz za pomocą..." i tam mój program :D .) Dam kod WinMain'a. Dla Adminów - nie, wujek google mi nie wytłumaczył.
Kod:
C/C++
int WINAPI WinMain( HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR hParam, int hStyl )
{
    LPWSTR * Arg;
    int iloscArg;
    Arg = CommandLineToArgvW( GetCommandLineW(), & iloscArg );
    if( iloscArg != 1 )
    {
        hPlik = CreateFile(( const CHAR * ) Arg[ 1 ], GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL ); //Tu jest na 100% błąd przy tworzeniu pliku ale nwm jaki...
        if( hPlik == INVALID_HANDLE_VALUE ) { mb( "INVALID_HANDLE_VALUE" ); return 0; }
        //Name[ nameRozmiar ] = 0; //To mi się zdaje, że powinno tu być ale po co i wywala error :P
        dwRozmiar = GetFileSize( hPlik, NULL );
        if( dwRozmiar == 0xFFFFFFFF ) { mb( "0xFFFFFFFF" ); return 0; }
        Bufor =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar + 1 );
        if( Bufor == NULL ) { mb( "Bufor = NULL" ); return 0; }
        if( !ReadFile( hPlik, Bufor, dwRozmiar, & dwPrzeczyt, NULL ) ) { mb( "Nie wczytano pliku" ); return 0; }
        Bufor[ dwRozmiar ] = 0;
    }
   
    okno = SworzOkno( hThisInstance );
    hEdit = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | ES_MULTILINE | WS_VSCROLL | ES_AUTOVSCROLL | WS_HSCROLL | ES_AUTOHSCROLL, 5, 5, 485, 440, okno,( HMENU ) ID_EDIT, hThisInstance, NULL );
    SetWindowText( hEdit, Bufor );
    ShowWindow( hEdit, SW_MAXIMIZE );
    UstawCzcionke( hEdit, hNormalFont );
   
    return zakoncz();
}
Jak komuś się moje funkcje nie kompilują to mogą se zrobić albo o nie poprosić :P.
O i dodałem nagłówek
#include "Shellapi"
 jakby ktoś się pytał.
P-111701
pekfos
» 2014-06-07 22:33:18
P-111707
szymeczek31
Temat założony przez niniejszego użytkownika
» 2014-06-10 15:41:34
chodzi o to, że ja go próbuje otworzyć moim programem i jest INVALID_HANDLE_VALUE :P a link mi nie pomógł
P-111880
pekfos
» 2014-06-10 15:58:13
C/C++
( const CHAR * ) Arg[ 1 ]
To nie jest poprawne. Użyj CreateFileW().
P-111883
szymeczek31
Temat założony przez niniejszego użytkownika
» 2014-06-11 14:39:50
Dzięki, rozwiązałem problem. A powie mi ktoś jak zapisać plik, który edytujemy ( standardowym zapisem nie moge czemu, moze dlatego , ze plik jest otwarty...).
P-111920
« 1 »
  Strona 1 z 1