tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
566
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Akilein Akilein ist offline Mitglied Bronze
    Registriert seit
    Jan 2006
    Beiträge
    30
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    .386
    .model flat, stdcall
        
        option casemap: none
        include c:\masm32\include\kernel32.inc
        include c:\masm32\include\user32.inc
        include c:\masm32\include\windows.inc
        includelib c:\masm32\lib\kernel32.lib
        includelib c:\masm32\lib\user32.lib
     
    .data?
        hInstance   dd ?
        hIcon       dd ?
        hCursor     dd ?
        hSnapshot   dd ?
        processentry PROCESSENTRY32 <>
        
     
    .code
    start:  invoke GetModuleHandle, NULL
        mov hInstance, eax
        invoke LoadIcon, hInstance, IDI_APPLICATION
        mov hIcon, eax
        invoke LoadCursor, NULL, IDC_ARROW
        mov hCursor, eax
     
        invoke CreateToolhelp32Snapshot, TH32CS_SNAPPROCESS, NULL
        mov hSnapshot, eax
        invoke Process32First, hSnapshot, addr processentry
    juhu:   invoke MessageBox, 0, addr processentry.szExeFile, addr processentry.szExeFile, MB_OK
        invoke Process32Next, hSnapshot, addr processentry
        cmp eax, 0
        jne juhu
        invoke CloseHandle, hSnapshot
     
        invoke ExitProcess, eax
    end start

    wer kann mir sagen, was der Fehler ist? über eine Funktion und LOCAL processentry:PROCESSENTRY32 ... funktionierts ... ich will es aber halt nicht über eine Funktion machen und auch nicht mit einer localen Variable ... thx
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    Wie wäre es mit ein paar mehr Infos? Was soll erreicht werden? Was genau funktioniert nicht? Wie äußert sich das?
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    Akilein Akilein ist offline Mitglied Bronze
    Registriert seit
    Jan 2006
    Beiträge
    30
    Hi,
    es sollten alle Processe, die gerade laufen, nacheinander per Meldung ausgegeben werden ... ihre Exe-Namen zumindest
    die Struktur PROCESSENTRY32 findet man in der windows.inc

    wenn ich das ganze in eine Funktion verpacke und PROCESSENTRY32 dort innerhalb der Funktion und nicht oben mittels "LOCAL processentry:PROCESSENTRY32" deklaniere, funktioniert alles wunderbar ... wenn ich LOCAL wegnehme, kann ich die Datei schon mal nicht compilieren, was ich auch nicht verstehe, weil LOCAL heißt ja nur, dass die damit deklanierten Variablen, nur innerhalb dieser Funktion funktionieren sollen, wenn ich also LOCAL wegnehme, sollte noch alles funktionieren oder hab ich da etwas falsch verstanden?
    auf jeden Fall, wenn ich versuche PROCESSENTRY32 oben bei .data? oder .data zu deklanieren, dann kann ich meine DAtei zwar comilieren, aber es wird lediglich eine einzige Meldung ausgegeben und die Funktion Process32First bzw. Process32Next gibt einen Fehler zurück ... ich schleiße darauß, dass ich irgendwas mit der Struktur falsch mache, denn wenn es innerhalb einer Funktion mit LOCAL funktioniert ... thx
    Geändert von Akilein (02.03.06 um 16:25 Uhr)
     

  4. #4
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    Füg mal vor dem ersten Aufruf von Process32First noch ein mov processentry.dwSize, sizeof PROCESSENTRY32 ein, das sollte helfen.
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer