Getting a browser process ID and then using it in the program in C++












0















I am trying to create a simple word highlighter for browsers (Chrome and Firefox) and I would like my program to use the process name (chrome.exe or firefox.exe) and then get their process ID.



I've found code that lets me get the process ID, but it requires a user to type the process name manually:



#include "pch.h"
#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>

DWORD FindProcessId(const std::wstring& processName);

int main()
{
std::wstring processName;

std::wcout << "Enter the process name: ";
std::getline(std::wcin, processName);

DWORD processID = FindProcessId(processName);

if (processID == 0)
std::wcout << "Could not find " << processName.c_str() << std::endl;
else
std::wcout << "Process ID is " << processID << std::endl;

system("PAUSE");
return 0;
}

DWORD FindProcessId(const std::wstring& processName)
{
PROCESSENTRY32 processInfo;
processInfo.dwSize = sizeof(processInfo);

HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (processesSnapshot == INVALID_HANDLE_VALUE)
return 0;

Process32First(processesSnapshot, &processInfo);
if (!processName.compare(processInfo.szExeFile))
{
CloseHandle(processesSnapshot);
return processInfo.th32ProcessID;
}

while (Process32Next(processesSnapshot, &processInfo))
{
if (!processName.compare(processInfo.szExeFile))
{
CloseHandle(processesSnapshot);
return processInfo.th32ProcessID;
}
}

CloseHandle(processesSnapshot);
return 0;
}


Now, is there a way to manipulate this code for it to get the process ID automatically by checking whether the user is running firefox.exe or chrome.exe?



And after getting the process ID, how do I make my program understand that it needs to focus on said ID?










share|improve this question




















  • 3





    I have a strong feeling that this approach is the wrong(tm) one to achieve what you want without a lot of pain. Have you considered writing a browser plugin/extension instead?

    – Swordfish
    Nov 24 '18 at 15:19











  • I mean, I taught myself only C++ so far, can I write a plugin with that?

    – hypnokat
    Nov 24 '18 at 16:13











  • Google Chrome - Extensions, Mozilla - Extension Technologies; C++ with WinAPI ist just not the right tool for what you want to achieve.

    – Swordfish
    Nov 24 '18 at 16:25













  • Good luck doing anything with 'the' Chrome process ID. There are at least a dozen instances of chrome.exe running on my machine.

    – Paul Sanders
    Nov 24 '18 at 22:11


















0















I am trying to create a simple word highlighter for browsers (Chrome and Firefox) and I would like my program to use the process name (chrome.exe or firefox.exe) and then get their process ID.



I've found code that lets me get the process ID, but it requires a user to type the process name manually:



#include "pch.h"
#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>

DWORD FindProcessId(const std::wstring& processName);

int main()
{
std::wstring processName;

std::wcout << "Enter the process name: ";
std::getline(std::wcin, processName);

DWORD processID = FindProcessId(processName);

if (processID == 0)
std::wcout << "Could not find " << processName.c_str() << std::endl;
else
std::wcout << "Process ID is " << processID << std::endl;

system("PAUSE");
return 0;
}

DWORD FindProcessId(const std::wstring& processName)
{
PROCESSENTRY32 processInfo;
processInfo.dwSize = sizeof(processInfo);

HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (processesSnapshot == INVALID_HANDLE_VALUE)
return 0;

Process32First(processesSnapshot, &processInfo);
if (!processName.compare(processInfo.szExeFile))
{
CloseHandle(processesSnapshot);
return processInfo.th32ProcessID;
}

while (Process32Next(processesSnapshot, &processInfo))
{
if (!processName.compare(processInfo.szExeFile))
{
CloseHandle(processesSnapshot);
return processInfo.th32ProcessID;
}
}

CloseHandle(processesSnapshot);
return 0;
}


Now, is there a way to manipulate this code for it to get the process ID automatically by checking whether the user is running firefox.exe or chrome.exe?



And after getting the process ID, how do I make my program understand that it needs to focus on said ID?










share|improve this question




















  • 3





    I have a strong feeling that this approach is the wrong(tm) one to achieve what you want without a lot of pain. Have you considered writing a browser plugin/extension instead?

    – Swordfish
    Nov 24 '18 at 15:19











  • I mean, I taught myself only C++ so far, can I write a plugin with that?

    – hypnokat
    Nov 24 '18 at 16:13











  • Google Chrome - Extensions, Mozilla - Extension Technologies; C++ with WinAPI ist just not the right tool for what you want to achieve.

    – Swordfish
    Nov 24 '18 at 16:25













  • Good luck doing anything with 'the' Chrome process ID. There are at least a dozen instances of chrome.exe running on my machine.

    – Paul Sanders
    Nov 24 '18 at 22:11
















0












0








0








I am trying to create a simple word highlighter for browsers (Chrome and Firefox) and I would like my program to use the process name (chrome.exe or firefox.exe) and then get their process ID.



I've found code that lets me get the process ID, but it requires a user to type the process name manually:



#include "pch.h"
#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>

DWORD FindProcessId(const std::wstring& processName);

int main()
{
std::wstring processName;

std::wcout << "Enter the process name: ";
std::getline(std::wcin, processName);

DWORD processID = FindProcessId(processName);

if (processID == 0)
std::wcout << "Could not find " << processName.c_str() << std::endl;
else
std::wcout << "Process ID is " << processID << std::endl;

system("PAUSE");
return 0;
}

DWORD FindProcessId(const std::wstring& processName)
{
PROCESSENTRY32 processInfo;
processInfo.dwSize = sizeof(processInfo);

HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (processesSnapshot == INVALID_HANDLE_VALUE)
return 0;

Process32First(processesSnapshot, &processInfo);
if (!processName.compare(processInfo.szExeFile))
{
CloseHandle(processesSnapshot);
return processInfo.th32ProcessID;
}

while (Process32Next(processesSnapshot, &processInfo))
{
if (!processName.compare(processInfo.szExeFile))
{
CloseHandle(processesSnapshot);
return processInfo.th32ProcessID;
}
}

CloseHandle(processesSnapshot);
return 0;
}


Now, is there a way to manipulate this code for it to get the process ID automatically by checking whether the user is running firefox.exe or chrome.exe?



And after getting the process ID, how do I make my program understand that it needs to focus on said ID?










share|improve this question
















I am trying to create a simple word highlighter for browsers (Chrome and Firefox) and I would like my program to use the process name (chrome.exe or firefox.exe) and then get their process ID.



I've found code that lets me get the process ID, but it requires a user to type the process name manually:



#include "pch.h"
#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>

DWORD FindProcessId(const std::wstring& processName);

int main()
{
std::wstring processName;

std::wcout << "Enter the process name: ";
std::getline(std::wcin, processName);

DWORD processID = FindProcessId(processName);

if (processID == 0)
std::wcout << "Could not find " << processName.c_str() << std::endl;
else
std::wcout << "Process ID is " << processID << std::endl;

system("PAUSE");
return 0;
}

DWORD FindProcessId(const std::wstring& processName)
{
PROCESSENTRY32 processInfo;
processInfo.dwSize = sizeof(processInfo);

HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (processesSnapshot == INVALID_HANDLE_VALUE)
return 0;

Process32First(processesSnapshot, &processInfo);
if (!processName.compare(processInfo.szExeFile))
{
CloseHandle(processesSnapshot);
return processInfo.th32ProcessID;
}

while (Process32Next(processesSnapshot, &processInfo))
{
if (!processName.compare(processInfo.szExeFile))
{
CloseHandle(processesSnapshot);
return processInfo.th32ProcessID;
}
}

CloseHandle(processesSnapshot);
return 0;
}


Now, is there a way to manipulate this code for it to get the process ID automatically by checking whether the user is running firefox.exe or chrome.exe?



And after getting the process ID, how do I make my program understand that it needs to focus on said ID?







c++ winapi pid






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 24 '18 at 16:05









Swordfish

9,52711436




9,52711436










asked Nov 24 '18 at 14:38









hypnokathypnokat

345




345








  • 3





    I have a strong feeling that this approach is the wrong(tm) one to achieve what you want without a lot of pain. Have you considered writing a browser plugin/extension instead?

    – Swordfish
    Nov 24 '18 at 15:19











  • I mean, I taught myself only C++ so far, can I write a plugin with that?

    – hypnokat
    Nov 24 '18 at 16:13











  • Google Chrome - Extensions, Mozilla - Extension Technologies; C++ with WinAPI ist just not the right tool for what you want to achieve.

    – Swordfish
    Nov 24 '18 at 16:25













  • Good luck doing anything with 'the' Chrome process ID. There are at least a dozen instances of chrome.exe running on my machine.

    – Paul Sanders
    Nov 24 '18 at 22:11
















  • 3





    I have a strong feeling that this approach is the wrong(tm) one to achieve what you want without a lot of pain. Have you considered writing a browser plugin/extension instead?

    – Swordfish
    Nov 24 '18 at 15:19











  • I mean, I taught myself only C++ so far, can I write a plugin with that?

    – hypnokat
    Nov 24 '18 at 16:13











  • Google Chrome - Extensions, Mozilla - Extension Technologies; C++ with WinAPI ist just not the right tool for what you want to achieve.

    – Swordfish
    Nov 24 '18 at 16:25













  • Good luck doing anything with 'the' Chrome process ID. There are at least a dozen instances of chrome.exe running on my machine.

    – Paul Sanders
    Nov 24 '18 at 22:11










3




3





I have a strong feeling that this approach is the wrong(tm) one to achieve what you want without a lot of pain. Have you considered writing a browser plugin/extension instead?

– Swordfish
Nov 24 '18 at 15:19





I have a strong feeling that this approach is the wrong(tm) one to achieve what you want without a lot of pain. Have you considered writing a browser plugin/extension instead?

– Swordfish
Nov 24 '18 at 15:19













I mean, I taught myself only C++ so far, can I write a plugin with that?

– hypnokat
Nov 24 '18 at 16:13





I mean, I taught myself only C++ so far, can I write a plugin with that?

– hypnokat
Nov 24 '18 at 16:13













Google Chrome - Extensions, Mozilla - Extension Technologies; C++ with WinAPI ist just not the right tool for what you want to achieve.

– Swordfish
Nov 24 '18 at 16:25







Google Chrome - Extensions, Mozilla - Extension Technologies; C++ with WinAPI ist just not the right tool for what you want to achieve.

– Swordfish
Nov 24 '18 at 16:25















Good luck doing anything with 'the' Chrome process ID. There are at least a dozen instances of chrome.exe running on my machine.

– Paul Sanders
Nov 24 '18 at 22:11







Good luck doing anything with 'the' Chrome process ID. There are at least a dozen instances of chrome.exe running on my machine.

– Paul Sanders
Nov 24 '18 at 22:11














1 Answer
1






active

oldest

votes


















1















Now, is there a way to manipulate this code for it to get the process ID automatically by checking whether the user is running firefox.exe or chrome.exe?




#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>

DWORD FindProcessId(const std::wstring& processName);

int main()
{
std::wstring fifi = L"firefox.exe";
std::wstring gogo = L"chrome.exe";
auto fifi_proc_id = FindProcessId(fifi);
auto gogo_proc_id = FindProcessId(gogo);

if(fifi_proc_id && gogo_proc_id) {
// both runnin O.O what now?
}
else if(fifi_proc_id) {
// firefox running ... do stuff
}
else if(gogo_proc_id) {
// chrome running ... do stuff
}
else {
// none of both :(
}
}



And after getting the process ID, how do I make my program understand that it needs to focus on said ID?




I am sorry, but I don't know what you mean by "make my program understand that it needs to focus on said ID".






share|improve this answer
























  • Oh, nevermind that question, I already see it's answer in your code. I forgot that I can use if functions to make my program do stuff when the certain process is running.

    – hypnokat
    Nov 24 '18 at 15:52











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53459249%2fgetting-a-browser-process-id-and-then-using-it-in-the-program-in-c%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1















Now, is there a way to manipulate this code for it to get the process ID automatically by checking whether the user is running firefox.exe or chrome.exe?




#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>

DWORD FindProcessId(const std::wstring& processName);

int main()
{
std::wstring fifi = L"firefox.exe";
std::wstring gogo = L"chrome.exe";
auto fifi_proc_id = FindProcessId(fifi);
auto gogo_proc_id = FindProcessId(gogo);

if(fifi_proc_id && gogo_proc_id) {
// both runnin O.O what now?
}
else if(fifi_proc_id) {
// firefox running ... do stuff
}
else if(gogo_proc_id) {
// chrome running ... do stuff
}
else {
// none of both :(
}
}



And after getting the process ID, how do I make my program understand that it needs to focus on said ID?




I am sorry, but I don't know what you mean by "make my program understand that it needs to focus on said ID".






share|improve this answer
























  • Oh, nevermind that question, I already see it's answer in your code. I forgot that I can use if functions to make my program do stuff when the certain process is running.

    – hypnokat
    Nov 24 '18 at 15:52
















1















Now, is there a way to manipulate this code for it to get the process ID automatically by checking whether the user is running firefox.exe or chrome.exe?




#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>

DWORD FindProcessId(const std::wstring& processName);

int main()
{
std::wstring fifi = L"firefox.exe";
std::wstring gogo = L"chrome.exe";
auto fifi_proc_id = FindProcessId(fifi);
auto gogo_proc_id = FindProcessId(gogo);

if(fifi_proc_id && gogo_proc_id) {
// both runnin O.O what now?
}
else if(fifi_proc_id) {
// firefox running ... do stuff
}
else if(gogo_proc_id) {
// chrome running ... do stuff
}
else {
// none of both :(
}
}



And after getting the process ID, how do I make my program understand that it needs to focus on said ID?




I am sorry, but I don't know what you mean by "make my program understand that it needs to focus on said ID".






share|improve this answer
























  • Oh, nevermind that question, I already see it's answer in your code. I forgot that I can use if functions to make my program do stuff when the certain process is running.

    – hypnokat
    Nov 24 '18 at 15:52














1












1








1








Now, is there a way to manipulate this code for it to get the process ID automatically by checking whether the user is running firefox.exe or chrome.exe?




#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>

DWORD FindProcessId(const std::wstring& processName);

int main()
{
std::wstring fifi = L"firefox.exe";
std::wstring gogo = L"chrome.exe";
auto fifi_proc_id = FindProcessId(fifi);
auto gogo_proc_id = FindProcessId(gogo);

if(fifi_proc_id && gogo_proc_id) {
// both runnin O.O what now?
}
else if(fifi_proc_id) {
// firefox running ... do stuff
}
else if(gogo_proc_id) {
// chrome running ... do stuff
}
else {
// none of both :(
}
}



And after getting the process ID, how do I make my program understand that it needs to focus on said ID?




I am sorry, but I don't know what you mean by "make my program understand that it needs to focus on said ID".






share|improve this answer














Now, is there a way to manipulate this code for it to get the process ID automatically by checking whether the user is running firefox.exe or chrome.exe?




#include <iostream>
#include <string>
#include <windows.h>
#include <tlhelp32.h>

DWORD FindProcessId(const std::wstring& processName);

int main()
{
std::wstring fifi = L"firefox.exe";
std::wstring gogo = L"chrome.exe";
auto fifi_proc_id = FindProcessId(fifi);
auto gogo_proc_id = FindProcessId(gogo);

if(fifi_proc_id && gogo_proc_id) {
// both runnin O.O what now?
}
else if(fifi_proc_id) {
// firefox running ... do stuff
}
else if(gogo_proc_id) {
// chrome running ... do stuff
}
else {
// none of both :(
}
}



And after getting the process ID, how do I make my program understand that it needs to focus on said ID?




I am sorry, but I don't know what you mean by "make my program understand that it needs to focus on said ID".







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 24 '18 at 15:25









SwordfishSwordfish

9,52711436




9,52711436













  • Oh, nevermind that question, I already see it's answer in your code. I forgot that I can use if functions to make my program do stuff when the certain process is running.

    – hypnokat
    Nov 24 '18 at 15:52



















  • Oh, nevermind that question, I already see it's answer in your code. I forgot that I can use if functions to make my program do stuff when the certain process is running.

    – hypnokat
    Nov 24 '18 at 15:52

















Oh, nevermind that question, I already see it's answer in your code. I forgot that I can use if functions to make my program do stuff when the certain process is running.

– hypnokat
Nov 24 '18 at 15:52





Oh, nevermind that question, I already see it's answer in your code. I forgot that I can use if functions to make my program do stuff when the certain process is running.

– hypnokat
Nov 24 '18 at 15:52




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53459249%2fgetting-a-browser-process-id-and-then-using-it-in-the-program-in-c%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Futebolista

Feedback on college project

Albești (Vaslui)