Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

TerminateProcess

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 12.08.2007, 17:41    Titel: TerminateProcess Antworten mit Zitat

Hi,
Ich kriegs einfach nicht hin.
Ich möchte einen beliebigen Prozess killen, z.b mspaint.exe
Als Fehlermeldung bekomme ich, dass ich verschiedene Pointertypen übergebe(...wo übergebe ich bitte Pointer???)

Code:

#include once "windows.bi"


DIM hWnd AS hwnd
DIM Task AS LPDWORD
dim exitcode as LPDWORD
DIM Result AS long
Dim Title AS STRING

hwnd=findwindow(0,strptr("Unbenannt - Paint"))

Result = GetWindowTextLength(hWnd) + 1
Title = Space$(Result)
Result = GetWindowText(hWnd, Title, Result)
Title = Left$(Title, Len(Title) - 1)
print title
result=0

result=GetWindowThreadProcessId(hWnd,task)

Task = OpenProcess(PROCESS_TERMINATE, false, result)

GetExitCodeProcess(task,exitcode)
Result = TerminateProcess(task, exitcode)
print result

Result = CloseHandle(Task)

sleep


Weiß jemand was daran falsch ist?


mfg noop
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 12.08.2007, 19:05    Titel: Antworten mit Zitat

oh ja doch, du benutzt jede Menge Pointer grinsen
Was du mit Titelstring da anstellst habe ich nicht verstanden.
Hier ein Beispiel, das den Rechner aufruft und dann den Prozess beendet.
Code:
#include once "windows.bi"

Dim Title As String="Rechner"
Shell "Start CALC.EXE"
Sleep 2000 'Zeit den Rechner anzuzeigen


Dim hWnd As HWND
Dim TaskID As DWORD
Dim hproc As HANDLE
Dim exitcode As DWORD
Dim Result As Integer
Screen 18,32
hwnd = findwindow(0,Title)
If hwnd = 0 Then
  Print "kein Fenster '"+Title+"' gefunden!"
  Sleep
  End
End If

GetWindowThreadProcessId(hWnd,@TaskID)

hproc = OpenProcess(PROCESS_TERMINATE, 0, TaskID)

GetExitCodeProcess(hproc,@exitcode)

Result = TerminateProcess(hproc, exitcode)

If Result Then
  Print  Title + " nicht mehr aktiv!"
End If 
CloseHandle(hproc)
Sleep

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 13.08.2007, 16:12    Titel: Antworten mit Zitat

Super :tumbup:
Danke lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz