---
title: "Get handle"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/28126-get-handle"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Choice2"
published: "2001-11-20T16:58:00.000Z"
updated: "2001-11-21T08:43:00.000Z"
replies: 8
views: 464
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/28126-get-handle"
---

# Get handle

## #1 — Choice2, 2001-11-20T16:58Z

Jag undrar om det finns nåt lätt sätt att få tag på handle till en process?

Om du tänker att du kör winamp och startar upp ett annat program så vill jag kunna genom det nystartade programmet stänga ner winamp, eller kanske pausa det bara. 

Någon som har en ide?

Permalänk: https://www.webforum.nu/p/28126

## #2 — Muzzafarath, 2001-11-20T17:12Z

.

\[Redigerat av Muzzafarath den 20 nov 2001\]

Permalänk: https://www.webforum.nu/p/401350

## #3 — Muzzafarath, 2001-11-20T17:12Z

> Någon som har en ide?

Om det bara är Winamp som du hade tänkt kontrollera kan du titta [här](http://www.winamp.com/nsdn/winamp2x/dev/sdk/api.jhtml).

Permalänk: https://www.webforum.nu/p/401351

## #4 — Choice2, 2001-11-20T17:21Z

Nah, typ inte bara winamp.. men jag tror att funktionen är CreateToolhelp32Snapshot 
är dock inte säker.

Någon som har koll på denna funktion och kan förklara lite hur den funkar?

Permalänk: https://www.webforum.nu/p/401352

## #5 — Swey, 2001-11-20T19:36Z

Ja, det finns lätta och svåra sätt. Har du ett handtag till ett fönster kan du få processens ID. Ett handtag till processen får du genom att öppna den.

För att få ett handtag till ett fönster kan du utgå från muspekarens position, söka med namn/klass eller uppräkna alla fönster.

Alternativt kan du uppräkna alla processer. Det kräver dock olika kod beroende på vilken Windows-version som körs.

Permalänk: https://www.webforum.nu/p/401353

## #6 — jt, 2001-11-20T20:12Z

emulera?

Permalänk: https://www.webforum.nu/p/401354

## #7 — Swey, 2001-11-20T22:55Z

Jag ber om ursäkt. Emulera var en helt galen översättning av enumerate (uppräkna). Jag har ändrat nu.

Permalänk: https://www.webforum.nu/p/401355

## #8 — Beatbox, 2001-11-21T06:52Z

Om du befinner dig i VS :

> DWORD Pids\[100\];
> 	DWORD dwSize;
> 	DWORD moduleCount;
> 	HMODULE hModules\[1024\];
> 	unsigned short str\[512\];
> 	BOOL Found = FALSE;
>
> 	int NumberOfProcesses;
>
> 	if (EnumProcesses(Pids, sizeof(Pids), &dwSize) == 0)
> 	{
> 		CHAR msg\[256\];
> 		sprintf(msg, "Error = %d", GetLastError());
> 		printf(msg);
> 	}
>
> 	NumberOfProcesses = (dwSize / sizeof(DWORD) - 1);
>
> 	for (int i=0; i\<=NumberOfProcesses; i++)
> 	{
> 		HANDLE hProc;
> 		hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, Pids*);
> 		if (EnumProcessModules(hProc, hModules, sizeof(hModules), &dwSize) != 0)
> 		{
> 			moduleCount = (dwSize / sizeof(DWORD) - 1);
> 			for (int j=0; j\<=moduleCount; j++)
> 			{
> 				if (GetModuleFileNameEx(hProc, hModules\[j\], str, 512) != 0)
> 				{
> // str innehåller processnamn
> 				
> 				}
> 			}
> 		}
> 		CloseHandle(hProc);
> 	}*

Permalänk: https://www.webforum.nu/p/401356

## #9 — Swey, 2001-11-21T08:43Z

Jättefin kod. Den fungerar dock endast i Windows NT och senare.

Läs detta: <http://support.microsoft.com/support/kb/articles/q175/0/30.asp> 

Där finns kod för att räkna upp alla processer i alla Windows-versioner.

Permalänk: https://www.webforum.nu/p/401357

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/28126-get-handle
