Avatar billede carsten_b Nybegynder
01. april 2008 - 14:36 Der er 9 kommentarer

Kan man få sit program til at tjekke hele tiden?

Kan man få sit program til at tjekke om der er et bestemt program der åbner. fx. mit program køre, og er lukket ned på taskbaren. og så vil jeg have mit program til at skrive en besked, hvis jeg fx. åbner notepad, eller et spil?
Avatar billede arne_v Ekspert
01. april 2008 - 15:03 #1
Ikke umiddelbart. Men maaske en traad som loeber gennem alle processer og checker for noget hvert sekund og informerer main traad hvis den finder noget.
Avatar billede carsten_b Nybegynder
01. april 2008 - 15:18 #2
kan du koden til det?
Avatar billede Slettet bruger
01. april 2008 - 15:24 #3
hvis du smider din email kan jeg sende dig koden til en processviewer og en watchdog
Avatar billede carsten_b Nybegynder
01. april 2008 - 15:30 #4
carstenblaach@gmail.com
Avatar billede carsten_b Nybegynder
01. april 2008 - 21:24 #5
Jape44, jeg er ikke den bedste til delphi, så jeg synes det er lidt svært at overskue. så tænkte på om du ikke lige kunne sende mig en mail, der fortæller hvordan man skal gøre? ( jeg har sendt en mail hvor det er uddypet)
Avatar billede dilling-hansen Nybegynder
01. april 2008 - 22:54 #6
undskyld men det er ret irriterende, når problemer her bliver diskuteret og løst udenfor eksperten. så når andre med det samme problem søger sig frem til det her topic, så er det bare spild af tid :\
Avatar billede vallemanden Nybegynder
02. april 2008 - 00:48 #7
man må IKKE

tildele point for en løsning, der ikke er tilgængelig for alle Eksperten.dk’s brugere.


tildele point for en opgave løst uden om Eksperten.dk (f.eks. opgaver løst via mail, ICQ eller telefon)
Avatar billede Slettet bruger
02. april 2008 - 08:36 #8
rolig nu, jeg kan jo ikke vedhæfte sourcekode her vel ? og kommunikationen fortsætter her.
Avatar billede Slettet bruger
02. april 2008 - 09:22 #9
Men jeg kan jo poste de API kald som jo er den centrale del i spørgsmålet.
bemærk psapi.dll ligger i C:\windows\system32


unit psapi;

{$WEAKPACKAGEUNIT ON}
interface

uses Windows;

type
PHInst = ^HInst;
TModuleInfo = record
  lpBaseOfDll : pointer;
  SizeOfImage : Integer;
  EntryPoint : pointer
end;

TPSAPIWsWatchInformation = record
  FaultingPc : pointer;
  FaultingVa : pointer
end;

TProcessMemoryCounters = record
  cb : Integer;
  PageFaultCount : Integer;
  PeakWorkingSetSize : Integer;
  WorkingSetSize : Integer;
  QuotaPeakPagedPoolUsage : Integer;
  QuotaPagedPoolUsage : Integer;
  QuotaPeakNonPagedPoolUsage : Integer;
  QuotaNonPagedPoolUsage : Integer;
  PagefileUsage : Integer;
  PeakPagefileUsage : Integer
end;

function EnumProcesses (pidList : PInteger; cb : Integer; var cbNeeded : Integer): boolean; stdcall;
function EnumProcessModules (hProcess : THandle; moduleList : PHInst; cb : Integer; var cbNeeded : Integer) : boolean; stdcall;
function GetModuleBaseName (hProcess : THandle; module : HInst; BaseName : Pchar; size : Integer) : Integer; stdcall;
function GetModuleFileNameEx (hProcess : THandle; module : HInst; FileName : PChar; size : Integer) : Integer; stdcall;
function GetModuleInformation(hProcess : THandle; module : HInst; var info : TModuleInfo; size : Integer) : boolean; stdcall;
function EmptyWorkingSet (hProcess : THandle) : boolean; stdcall;
function QueryWorkingSet (hProcess : THandle; var pv; size : Integer) : boolean; stdcall;
function InitializeProcessForWsWatch (hProcess : THandle) : boolean; stdcall;
function GetWsChanges (hProcess : THandle; var WatchInfo : TPSAPIWsWatchInformation; size : Integer) : boolean; stdcall;
function GetMappedFileName (hProcess : THandle; pv : pointer; FileName : PChar; size : Integer) : Integer; stdcall;
function EnumDeviceDrivers (var ImageBase : Integer; cb : Integer; var cbNeeded : Integer) : boolean; stdcall;
function GetDeviceDriverBaseName (ImageBase : Integer; BaseName : PChar; size : Integer) : Integer; stdcall;
function GetDeviceDriverFileName (ImageBase : Integer; FileName : PChar; size : Integer) : Integer; stdcall;
function GetProcessMemoryInfo (hProcess : THandle; var ProcessMemoryCounters : TProcessMemoryCounters; size : Integer) : boolean; stdcall;

implementation

const psapidll = 'psapi.dll';

function EnumProcesses; external psapidll;
function EnumProcessModules; external psapidll;
function GetModuleBaseName; external psapidll name 'GetModuleBaseNameA';
function GetModuleFileNameEx; external psapidll name 'GetModuleFileNameExA';
function GetModuleInformation; external psapidll;
function EmptyWorkingSet; external psapidll;
function QueryWorkingSet; external psapidll;
function InitializeProcessForWsWatch; external psapidll;
function GetWsChanges; external psapidll;
function GetMappedFileName; external psapidll name 'GetMappedFileNameA';
function EnumDeviceDrivers; external psapidll;
function GetDeviceDriverBaseName; external psapidll name 'GetDeviceDriverBaseNameA';
function GetDeviceDriverFileName; external psapidll name 'GetDeviceDriverFileNameA';
function GetProcessMemoryInfo; external psapidll;
end.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester