Skocz do zawartości

MFC & antyvirs


Specter

Recommended Posts

Witam!
- Odrazu pisze, chyba że ktoś moje tematy już czytał lubie otrzymywać gotowce ;) Dlaczego? Bo do dzis nie napisalem programu któru jak zaraz napisze dziala jak w XP ctrl + alt +del bo co mi da nazwa funkcji jak nie wiem jak ją uzyc helpy to 50% sukcesu ;)
- Także odrazu napisze by nie było problemów ;) programuje pod VisualC++ .NET oraz na Windowsie XP, i projekt MFC
- Teraz taki problem interfejsy, wygląd bo to przecierz warzne :)  nie dziala mi to co pinolec napisal z tym plikiem xml co ma zmienić wygląd aplikacji z podstawowych na XP-kowskie ;/ a zrobiłem jak kazał ;)
- No to przedżmy do moich pytań i setna sprawy pytania na które według mnie nigdy nie znajde odpoweizi dodatkowa zaznacze znakiem "*" ;]
- A własnie bym zapomniał pisze antywirusa dla siebie jak na razie chyba że ktoś zechce :)  bo wkurw* mnie te wszytkie sex.com i inne śmieci musze recznie szukac i usuwac, lecz za kazdym razem powatxazam tą samą czynność tak zrobi za mnie program :P :D :)  8)
- Prosiłbym o zródła, algorytmy, lub chociarz jakieś wytłumazcenie :)
Więc:
1* - jak pobrac nazwe Wersja->Firma z pliku exe, lub innego?
2* - jak napisac przeszukiwarke plikow napisac? np znajdz wszytkie pliki .exe? i w return (nazw plikow) by byla takze ich sciezka dostepu, gdzie sie znajduje? C:\..\..\... CALEGO DYSKU (WSZYTKIE PARTYCJE)
3* - jak przeszukac jak wyzej pisalem lecz WYBRANE FOLDERY
4* - jak przeszukac pliki i ich zawartosc? (lecz bez otwierania tylko komenda z M$)? np czy znajduje sie text "microsoft"
5* - jak pobrac procesy uruchomione w komputerze oraz nazwe pliku i sciezke dostepu do niego? gdzie sie znajduje
i tym podobne? oraz nazwe uzytkownika pliku XP uzytkownik, system, usluga lokalna?
6. jak uporzadkowac? algorytm porzadkowania?
7. jak w MFC załadowac ikone lewa góra ikona tych opcji sytemowych :)  nozcy inna niz podstawowa sytemowa jak zaladowac IDI_ICON1
8* Jaka "komenda" funckja otwiera www a ja wysyla e-mail (czy otwiera okno wysłania e-maila?

Link do komentarza
Udostępnij na innych stronach

2. Jak wyzej.
3. Jak wyzej.
4.Watpie ze jest takie cos (napewno nie ma), ale nie widze problemu w otwieraniu i przeszukaniu recznie. Jeżeli jest jakis problem to napisz jaki.
5. EnumWindows, i do tego dajesz EnumWindowsProc, jako lParam przekazujesz sobie jakas tablice na uchwyty i w EnumWindowsProc wpisujesz do tablicy uchwyty, a jak masz uchwyt to wszystko jasne.
Przyklad w Delphi:

6. Porzadkowania znaczy sortowania? Jesli tak to nie wiem czy jest cos prostszego do znalezienia w necie gdzie masz milion gotowych przykladow, moze QuickSort, albo BubbleSort bo jest najprostszy. W Bubble poprostu jedziesz po jednej tablicy i jezeli element nastepny jest wiekszy/mniejszy od poprzedniego to zamieniasz je miejscami.

function EnumChildProc(Hw:Hwnd;P:pointer):boolean;stdcall;
var
winname,cname:array[0..144]of char;
begin
result:=true;
getwindowtext(hw,winname,144);
getclassname(hw,cname,144);
List.Append('POTOMEK:  TEXT:'+strpas(winname)+'   KLASA: '+strpas(cname));
end;

function EnumWindowProc(Hw:HWnd;P:Pointer):boolean;stdcall;
var
winname,cname:array[0..144]of char;
begin
result:=true;
getwindowtext(hw,winname,144);
getclassname(hw,cname,144);
List.Append('OKNO:     TEXT:'+strpas(winname)+'   KLASA: '+strpas(cname));
enumchildwindows(hw,@enumchildproc,0);
end;

8. ShellExecute(handle,'open','https://www.inprise.com',nil,NIL,SW_SHOWNORMAL);
Otwiera www w domyslnej przegladarce.
(mailto:ble@ble.pl - otwiera pisanie maila).

Mam nadzieje ze pomoglem.

Link do komentarza
Udostępnij na innych stronach

Ad1 ?
Ad2,3 Już dostałeś odpowiedź :)
Ad4 Nie wiem o co ci chodzi, chcesz przeczytać co jest w pliku ale go nie otwierać?
Ad5 Było już na forum parę razy, funkcja EnumProcess() i podobne, i doskonale o tym wiesz tylko czekasz na gotowca
Ad6 Znowu nie wiem o co ci chodzi, jak chcesz to posortować to w sieci jest od cholery opisów algorytmów sortowania bo to jest najczęstrzy temat do męczenia uczniów na informie.
Ad7 Nie wiem, olewam MFC.
Ad8 ShellExecute(GetDesktopWindow(), "open", "https://www.onet.pl",NULL, NULL,
SW_SHOWNORMAL);
ShellExecute(GetDesktopWindow(), "open", "mailto:czakol@cośtam.pl?subject=temat", NULL, NULL, SW_SHOWNORMAL);

Link do komentarza
Udostępnij na innych stronach

1. Luknij na procedure GetFileVersionInfo
5. Co do tej odpowiedzi Nicona to bym się troche kłucił. Podane procedury tylko zliczaja okna uruchomione w systemie, a przecierz niektore programy dzialaja w tle i nie maja okienek, zwlaszcza np. jakies trojany. W tym wypadku w windowsie nie opartym na NT wykorzystal bym funkcje CreateToolhelp32Snapshot i do tego Process32First i Process32Next. Funkcje zwracaja wszystkie informacje o uruchamianych procesach ze scierzkami dostepu. Jezeli chodzi o system NT to wykorzystuje sie biblioteke...No wlasnie, nie pamietm, ale z powyzszych funkcji nie skorzystasz. Mam gdzies opis ich w knigach, ale niestety pozyczylem znajomemu.
4. Aby najszybciej sprawdzic zawartosci plikow to najlepiej jest wykorzystac odwzorowanie pamieciowe pliku (CreateFileMapping).

Dodane (01.04.04):
Wiem, ze dzis prima - aprilis ale nie bede oszukiwal :D . Chcialem dopisac cos do pkt. 5. Otorz w windows opartym na NT wykorzystuje sie biblioteke PSAPI, ktora zostala juz wspomniana. Bo zniej mozna wykorzystac funkcje EnumProcesses. I jesli bys chcial swoj program wykorzystac na wielu platformach, to najlepiej by bylo powyzsze funkcje do zliczania procesow sprobowac zaladowac dynamicznie.

Link do komentarza
Udostępnij na innych stronach

DZIEKI CHLOPAKI :D
A moze chcecie dodac jakeis zrodelka ktore moglbym edytowac? i sie z nich pouczyc? Jak Spoon napisal lubie gotowce :D fakt :) ale jak nie wezme gotowca do piszac progsa znajac nazwe funkcji nie raz z forum mozna zrobic ksiazke formatu A4 o 1000 stron jak porzadna lektura :) 

Wlasnie twardy bo uzylem psapi.h i "EnumProcesses" a nie "EnumProcess" ale Dev-C++ mial problemy. Natomiast VC++ z bibliotekow problemow nie mial, lecz za to jak napisałem zrodlo co pobiera procesy to VC++ znalazl blad na koncu programu za
return 0; } :)  ale liczba { } jest dobra bo korzystalem z sampli MSDN :)  hmm :D

Dobra biblioteka dziala w Dev-C++ :) Dev-C++ zaliczyl test i ma psapi :D lecz mam taki problem albo pare problemow:

[Linker error] undefined reference to `GetProcessMemoryInfo@12'
[Linker error] undefined reference to `EnumProcessModules@16'
[Linker error] undefined reference to `GetModuleBaseNameA@16'
[Linker error] undefined reference to `EnumProcessModules@16'
[Linker error] undefined reference to `GetModuleFileNameExA@16'
[Linker error] undefined reference to `EnumProcesses@12'

Co zepsułem? 8) :) 

Link do komentarza
Udostępnij na innych stronach

PS. :)  Wiecie jak w VC++ (.NET) stworzyc czysty plik .cpp (umiem to), lecz potem to kompilowac bo w Dev-C++ doje plik pisze kod C++ daje kompiluj i dziala a VC++ dopuki nie stworze projektu, co nie jest mi na reke to nei moge skompilwoac (buttonem buil, napryklad) chyba ze mozna inaczej, a projekt mi nie na reke poniewarz wystepuja bledy jakies VC++ -owskie nie w kodzie zrodlowym C++, lecz dziwne i nie mozna skompilwoac :) 

Link do komentarza
Udostępnij na innych stronach

Czakol napisał:
[Linker error] undefined reference to `GetProcessMemoryInfo@12'
[Linker error] undefined reference to `EnumProcessModules@16'
[Linker error] undefined reference to `GetModuleBaseNameA@16'
[Linker error] undefined reference to `EnumProcessModules@16'
[Linker error] undefined reference to `GetModuleFileNameExA@16'
[Linker error] undefined reference to `EnumProcesses@12'

Co zepsułem? 8) :) 

Moze po prostu nie dolinkowaleś Psapi.lib i dlatego linker pluje błędami.
A bez projeku w VC sie raczejnie obedziesz.

Link do komentarza
Udostępnij na innych stronach

Spoon: blad opisałem na forum i nie był z mojej winy ;) jest chyba pod tematem: "bledy w kompilatorze" jakos tak. :)

Pinolec: wiec nie dolinkowywalem wtedy psapi.lib poniewarz stwierdzilem ze jest psapi.h bedzie i psapi.lib ;). Lecz teraz dolinkowalem Psapi.Lib z katalogu VC++ liba 8kilobajtow zajmujacego i nie dzialalo te same bledy, lecz wziolem liba 1kb z C++ Buildera no i tych bledow juz nie ma za to jest blad taki:

file not recognized C:\Dev-Cpp\my_lib\psapi.lib
File format not recognized
Link do komentarza
Udostępnij na innych stronach

Blad jest bardzo prosty do zrozumienia, wystarczy przetlumaczyc slowko recognized co znaczy rozpoznawalny. Poprostu linker nie rozumie tego pliku biblioteki i nie wywala ci reszty bo wie ze jesli nie moze czytac lib-a to z funkcji nici. Uzyj poprzedniej biblioteki. Unresolved... to blad ktory oznacza mniej wiecej tyle ze jest definicja funkcji ale nie mozna znalezc jej ciala, wiele razy mialem z tym problemy, ale ani raz nie byl to blad kompilatora, tylko moj i to na dodatek idiotyczny. wiec radze dobrze przejzyj kod.

Link do komentarza
Udostępnij na innych stronach

Nicon :D Wiec anglikiem nie jestem, plynnie po angielsku nie muwie, wszytkich slow nie znam ale glupi nie jestem :> Troche rozumu mam :) Iprzetlumaczylem sobie :)  tylko ze zalozylem ze programista zemnie to jeszcze nie bill-gates i ze duzo nie wiem wolalem napisac i dowiedziec sie czy moze zle linkuje czy moze powininem pare plikow polinkowac? :) Lecz dziaki za to: [query="Nicon"]Poprostu linker nie rozumie tego pliku biblioteki i nie wywala ci reszty bo wie ze jesli nie moze czytac lib-a to z funkcji nici[/query]Bo noby rozumiałem lecz nie wiedzialem ze moze po nierozpoznaniu biblioteki przestac wyrzucac bledy ;)
Dalej piszac 8) gdy dolinkowuje bibliotego z VC++ .NET 8kb to bledy sa nadal ;/ psapi.h doalczylem moze inne propozycje? moze zly .h ? albo .lib nie ten moze z VC++ 6.0? :(

patrzcie 2ga strona!! ------------> :) 

Link do komentarza
Udostępnij na innych stronach

1.

  • No wiec udalo sie :)  Wziolem plik psapi.lib 20kb z VC++ 6.0 mozliwe ze dev-c++ nie obsluguje .NET-owskich libow 8) Lecz teraz taka sprawa czy jest mozliwosc pobrania tego co zostalo wyswietlone na ekranie?? Bo funkcje:
    for ( i = 0; i < cProcesses; i++ ) {
    
    [color=red]                   PrintMemoryInfo( aProcesses[i] );
                       PrintProcessNameAndID( aProcesses[i] );
                       PrintModules( aProcesses[i] );[/color]
                       
    printf("\n\n"); }

    ...to wypisuja na ekran ale nie zwracaja chyba nic zeby zapisac do tablicy (chyba ze nie wiem) A przydaloby sie to by zapisac to do tablicy i wyswietlic w listbox a nie konsoli, lecz jak je pobrac?

2.

  • PrintMemoryInfo( aProcesses );
    To funckja :P chiba jak widac wypisuje info o pamieci uzywanej przez program ( proces 8) ) a wie kto ktora pamiec to jaka pamiec? :) 

    [img:21e9df5f5f]https://www.czakol.prv.pl/hmm.jpg[/img:21e9df5f5f]
    Jak nie widac obrazka to chuj i tu o to odres :D
    https://www.czakol.prv.pl/hmm.jpg

3.

  • PS. clrscr(); jak uzyc (jakie parametry w ( )? i jaka biblioteka jest do tego? #stdlib.h ?(czyszczenie ekranu)

4.

  • - jak w progsie uruchomic cos z runa (start -> uruchom -> msconfig)
    - jak uruchomic program z parametrem
    (w pliku .bat program.exe prametr1 parametr2 paramter3 ...)
    - jak pobrac w VC++ .NET i WinApi 3 parametr funkcj int main
    (mam na mysli odpowiednik oczywiscie z konsoli)
    int main(int argc, char *argv[],char *envp[])
Link do komentarza
Udostępnij na innych stronach

Nicon a to :):
- jak pobrac w VC++ .NET czy WinApi ... 3 parametr funkcj int main
(mam na mysli odpowiednik oczywiscie z konsoli)
int main(int argc, char *argv[],char *envp[])
bo int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
to czerwone to jagby char *argv[] w konsole a 3ci argument funkcji? jak pobrac?

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...