Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Alla aktiva program med sökväg och filnamn... VB

Postades av 2008-04-07 13:01:58 - Kenneth Axi, i forum api-windows, Tråden har 4 Kommentarer och lästs av 2466 personer

Jag tänkte vidareutveckla en liten sak som jag hittade på forumet här:
http://www.pellesoft.se/communicate/forum/view.aspx?msgid=73797
[Aktiva program?]

Den listar alla aktiva program, men jag skulle också vilja veta deras sökvägar och filnamn. Går det? Hur? Frågan är vilka API:er jag skall använda mig av...


Svara

Sv: Alla aktiva program med sökväg och filnamn... VB

Postades av 2008-04-07 15:10:29 - Tom Granqvist

GetModuleFileNameEx med hModule parametern noll ger namnet på exe-filen.

Option Explicit

Private Declare Function OpenProcess Lib "kernel32" ( _
        ByVal dwDesiredAccess As Long, _
        ByVal bInheritHandle As Long, _
        ByVal dwProcessId As Long) As Long

Private Declare Function GetModuleFileNameExA Lib "PSAPI.dll" ( _
        ByVal hProcess As Long, _
        ByVal hModule As Long, _
        ByVal ModuleName As String, _
        ByVal nSize As Long) As Long


Private Declare Function GetLastError Lib "kernel32" () As Long

Private Const PROCESS_QUERY_INFORMATION = 1024
Private Const PROCESS_VM_READ = 16

Private Sub Command1_Click()
    Dim fileName As String
    Dim handle As Long
    
    handle = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, &H960)
    
    fileName = Space(260)
    
    If GetModuleFileNameExA(handle, 0, fileName, 260) Then
        MsgBox fileName, , "Process info"
    Else
        MsgBox "Error " & GetLastError & " in GetModuleFileNameExA ", vbOKOnly, "Process Info"
    End If
End Sub


Edit: &H960 i anropet till OpenProcess är processens id.


Svara

Sv:Alla aktiva program med sökväg och filnamn... VB

Postades av 2008-04-07 15:41:15 - Kenneth Axi

Ok... Men problemet är ju att den andra koden så har jag inte fått tag på processID, jag har ju bara en handle till fönstret... Eller är det detsamma som processid?
Så hur kopplar jag ihop den här koden med den andra, egentligen?


Svara

Sv: Alla aktiva program med sökväg och filnamn... VB

Postades av 2008-04-07 16:13:31 - Tom Granqvist

Satt just och lekte själv med det. Använd funktionen GetWindowThreadProcessId. OBS! Parametern lpdwProcessId är en pekare till en long. Denna måste du själv deklarera i din kod och skicka med i anropet. Använd sen den i anropet till OpenProcess. I koden nedan heter den proc.

Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long


Private Declare Function GetWindowThreadProcessId Lib "user32" ( _
        ByVal hwnd As Long, _
        lpdwProcessId As Long) As Long


Private Declare Function OpenProcess Lib "kernel32" ( _
        ByVal dwDesiredAccess As Long, _
        ByVal bInheritHandle As Long, _
        ByVal dwProcessId As Long) As Long

Private Declare Function GetModuleFileNameExA Lib "PSAPI.dll" ( _
        ByVal hProcess As Long, _
        ByVal hModule As Long, _
        ByVal ModuleName As String, _
        ByVal nSize As Long) As Long


Private Declare Function GetLastError Lib "kernel32" () As Long

Private Const PROCESS_QUERY_INFORMATION = 1024
Private Const PROCESS_VM_READ = 16

Private Sub cmdFind_Click()
    Dim fileName As String
    Dim procHandle As Long
    Dim proc As Long
    Dim hwnd As Long
    Dim test As Long
    
    hwnd = FindWindow(vbNullString, txtCaption.Text)
    If hwnd = 0 Then
        MsgBox "Failed to find window", vbCritical, "Process info"
        Return
    End If
    windowHandle.Caption = "0x" & Hex$(hwnd)
    
    
    GetWindowThreadProcessId hwnd, proc
    If proc < 0 Then
        MsgBox "GetWindowThreadProcessId failed", vbCritical, "Process Info"
        Return
    End If
    processID.Caption = "0x" & Hex$(proc)
    
    
    procHandle = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, proc)
    If procHandle = Null Then
        MsgBox "OpenProcess failed", vbCritical, "Process info"
        Return
    End If
    processHandle.Caption = "0x" & Hex$(procHandle)
    
    
    fileName = Space(260)
            
    If GetModuleFileNameExA(procHandle, 0, fileName, 260) = Null Then
        MsgBox "Error " & GetLastError & " in GetModuleFileNameExA ", vbOKOnly, "Process Info"
    End If
    exeName.Caption = fileName
End Sub


Svara

Sv: Alla aktiva program med sökväg och filnamn... VB

Postades av 2008-04-09 08:20:58 - Jan Bulér

Vill du inte göra det själv såkan du ju få ut informationen med MS ProcessExplorer.
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 557
27 958
271 741
359
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies