Español
Foro

Befehle en XProfan

 

Blue
Max
Sehr geehrte Damen y Herren,

Yo escribir una Programa, de el de una más Programa comenzó voluntad se. Nun se XProfan 8.0 sólo entonces fortsetzen, si el gestartete Programa final wurde. Dies podría Yo früher con el %GetUsage befehl erreichen. Nun existiert dieser Befehl no mehr.
Gibt lo una Función, el esta Befehl %GetUsage ersetzt?

Saludo
Blue Max
 
31.05.2005  
 




Dietmar
Horn
¡Hola,

para esta Zweck dürfte WinExecWait Su Freund ser.

Saludo
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
31.05.2005  
 



¡Hola Blue Max...

In el API Library wirst dun en Prozesse einiges finde´n, qué dir weiterhelfen se. Hier veces una Ejemplo:
KompilierenMarcaSeparación
Def @CreateToolhelp32Snapshot(2) !"kernel32","CreateToolhelp32Snapshot"
Def @Process32First(2) !"kernel32","Process32First"
Def @Process32Next(2) !"kernel32","Process32Next"
Def @CloseHandle(1) !"kernel32","CloseHandle"
Def @TerminateProcess(2) !"kernel32","TerminateProcess"
Def @OpenProcess(3) !"kernel32","OpenProcess"
Def &TH32CS_SNAPPROCESS 2
Def &PROCESS_TERMINATE 1
Declare PROCESSENTRY#
Struct PROCESSENTRY32 =dwSize&,cntUsage&,th32ProcessID&,th32DefaultHeapID&,th32ModuleID&,cntThreads&,th32ParentProcessID&,pcPriClassBase&,dwFlags&,szExeFile$(260)

Proc actua

    parameters prozess$, delete%
    declare lenname&
    declare hSnapshot&, Result&, hProcess&, proz_anzahl&, term_ok&
    Dim PROCESSENTRY#, PROCESSENTRY32
    Long PROCESSENTRY#,0 =296
    clear proz_anzahl&, term_ok&
    lenname& = len(prozess$)
    prozess$ = Lower$(prozess$)
    hSnapshot& = CreateToolhelp32Snapshot(&TH32CS_SNAPPROCESS, 0)

    IfNot hSnapshot& = -1

        Result& = Process32First(hSnapshot&, PROCESSENTRY#)
        messagebox(str$(GetLastError()),"Err",48)
        messagebox(str$(Result&),str$(hSnapshot&),48)

        While Result&

            messagebox(Lower$(Right$(PROCESSENTRY#.szExeFile$,lenname&)),"",48)

            if Lower$(Right$(PROCESSENTRY#.szExeFile$,lenname&)) = prozess$

                if delete% = 1

                    hProcess& = @OpenProcess(&PROCESS_TERMINATE, 0, PROCESSENTRY#.th32ProcessID&)
                    sendmessage(hProcess&,$0010,0,0)
                    term_ok& = @TerminateProcess(hProcess&, 0)
                    @CloseHandle(hProcess&)
                    sleep 100

                endif

                proz_anzahl& = proz_anzahl& + (delete%<>1) + term_ok&

            endif

            Result& = Process32Next(hSnapshot&, PROCESSENTRY#)

        EndWhile

    endif

    @CloseHandle(hSnapshot&)
    Dispose PROCESSENTRY#
    return proz_anzahl&

Endproc

@WinEXEC("NotePad.exe",1)
Windowstyle 31
Windowtitle "Prozess überwachen!"

While 0=0

    Window 0,0-640,440
    Sleep 100
    actua "Notepad.exe",0

    IF @&(0)>0

        Drawtext 0,0,"Notepad noch aktiv: "+@str$(@&(0))+"                           "

    Else

        Drawtext 0,0,"Notepad gibts nicht mehr!"+@str$(@&(0))+"                           "

    

wend


Und el es todavía schöner:
KompilierenMarcaSeparación
DEF CreateProcessA(10)    ! "Kernel32","CreateProcessA"
DEF GetExitCodeProcess(2) ! "Kernel32","GetExitCodeProcess"
DEF TerminateProcess(2)   ! "Kernel32","TerminateProcess"
DEF ZeroMemory(2)         ! "Kernel32","RtlZeroMemory"
DEF CloseHandle(1)        ! "Kernel32","CloseHandle"
Declarar lpCommandLine#
Declarar lpStartupInfo#
Declarar lpProcessInformation#
Declarar ExitCode#
Declarar Prozess$

Proc CreateProcess

    Parámetros CommandLine$
    Declarar hProcess&
    Dim lpCommandLine#,Len(CommandLine$)+1
    Dim lpStartupInfo#,68
    ZeroMemory(lpStartupinfo#,68)
    Largo lpStartupInfo#,0=68
    Largo lpStartupInfo#,44=1 Flag, welche Anteile de Startupinfo berücksichtigt voluntad debería
    Word lpStartupInfo#,48=1 SHOWParameter de WinExec
    Dim lpProcessInformation#,16
    ZeroMemory(lpProcessInformation#,16)
    String lpCommandLine#,0=CommandLine$
    CreateProcessA(0,lpCommandLine#,0,0,0,0,0,0,lpStartupInfo#,lpProcessInformation# )
    hProcess&=Largo(lpProcessInformation#,0)
    Disponer lpCommandLine#
    Disponer lpStartupInfo#
    Disponer lpProcessInformation#
    Volver hProcess&

ENDPROC

Proc ProcessStatus

    parámetros prozid&
    declarar status&
    GetExitCodeProcess(prozid&,Exitcode#)
    status& = long(Exitcode#,0)
    volver status&

ENDPROC

Declarar hProcess&
LET PROZESS$=@LOADFILE$("Datei auswählen","*.EXE")
CASE PROZESS$="" : FIN
Dim exitcode#,4
createprocess PROZESS$
LET hProcess& = @&(0)
Windowstyle 31+512
Título de la ventana "Prozess überwachen"
Ventana 0,0-640,440

mientras que %MENUITEM<>-2

    Sleep 100
    ProcessStatus hProcess&
    imprimir @&(0)
    imprimir hex$(long(Exitcode#,0))

endwhile


Wenn du el Titel des Hauptfensters kennst, kannst du el Prozess (el Programa) auch con el Profanfunktion FindWindow überwachen - el Yo auch ya gemacht...
 
31.05.2005  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.581 Views

Untitledvor 0 min.
Walter17.02.2019
Peter Max Müller09.06.2015

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie