Skocz do zawartości

MFC & antyvirs


Recommended Posts

Napisano

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?

Napisano

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.

Napisano

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);

Napisano

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.

Napisano

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) :) 

Napisano

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 :) 

Napisano
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.

Napisano

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
Napisano

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.

Napisano
Spoon: blad opisałem na forum i nie był z mojej winy

Błąd na pewno był z twojej winy bo nie dolinkowałeś psapi.lib i nie pisz mi że dolinkowałeś jak widać po błędach że nie dolinkowałeś :) Tak na wszelki wypadek:
properties>>Linker>>Input>>Additional Dependencies>>psapi.lib

Napisano

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!! ------------> :) 

Napisano

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[])
Napisano

3. Kiedys tego probowalem uzyc, ale za cholere nie dzialalo, biblioteka stdlib.h chyba.
4. ShellExecute, w tej funkcji mozesz uruchomic program kazdego formatu wykonywalnego i przekazac do niego parametry.

Napisano

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?

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...