Ich bin ein C++ neuling, habe bis her Java oder C# Programmiert.
Mus aber jetzt eine lösung ohne .Net oder Java machen da nicht jeder eine Virtuelle maschiene auf seinem rechner hat.
hir der C# code:
habe schon eine C++ lösung versucht, bekomme aber nur fehler meldungen.
das C# und C++ Program gibt die Prozesse nur an die Console aus. Damit ich es testenkonnte was ausgegeben wird.
Die C++ version sollte es als Datei spiechern. Aber so weit bin ich noch net.
Mus aber jetzt eine lösung ohne .Net oder Java machen da nicht jeder eine Virtuelle maschiene auf seinem rechner hat.
hir der C# code:
Code:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Threading;
namespace Test
{
class Testen
{
static void Main()
{
string pro = "setu prozesse \"";
int i = 1;
Process[] myProcesses = Process.GetProcesses();
foreach (Process myProcess in myProcesses)
{
pro += myProcess.MachineName+":"+myProcess.MainWindowTitle+":"+
myProcess.ProcessName;
if (myProcesses.Length > i)
pro += ";";
i++;
}
pro += "\"";
Console.WriteLine(pro);
}
}
}
habe schon eine C++ lösung versucht, bekomme aber nur fehler meldungen.
Code:
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <psapi.h>
#include "stdafx.h"
#include "stvoyHMScann.h"
#pragma comment(lib, "Psapi.lib")
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// The one and only application object
CWinApp theApp;
using namespace std;
void PrintProcessNameAndID( DWORD processID )
{
TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");
// Get a handle to the process.
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
// Get the process name.
if (NULL != hProcess )
{
HMODULE hMod;
DWORD cbNeeded;
if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod),
&cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName,
sizeof(szProcessName)/sizeof(TCHAR) );
}
}
// Print the process name and identifier.
_tprintf( TEXT("%s (PID: %u)\n"), szProcessName, processID );
CloseHandle( hProcess );
}
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return 2;
// Calculate how many process identifiers were returned.
cProcesses = cbNeeded / sizeof(DWORD);
// Print the name and process identifier for each process.
for ( i = 0; i < cProcesses; i++ )
PrintProcessNameAndID( aProcesses[i] );
}
return nRetCode;
}
das C# und C++ Program gibt die Prozesse nur an die Console aus. Damit ich es testenkonnte was ausgegeben wird.
Die C++ version sollte es als Datei spiechern. Aber so weit bin ich noch net.
Zuletzt bearbeitet: