GetWindowText()
-
Klasse find ich super von dir!!

-
Zum Bleispiel:
void ListProcesses() { void* snapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 processEntry = { sizeof(PROCESSENTRY32) }; if(Process32First(snapshotHandle, &processEntry)) { do { std::cout << processEntry.szExeFile << std::endl; } while(Process32Next(snapshotHandle, &processEntry)); } CloseHandle(snapshotHandle); }Wahahr doch jetzt einefach, nichet?
-
Hallo,
wenn ich bei der Texteingabe die Sprache ändere, dann stellt sich die Sprache nach jeder eingegebenen Zeile automatisch auf Deutsch um.
Wie kann ich diese Umstellung verhindern?
-
ums zu vervollständigen
BOOL EndProcess(LPTSTR lpszTargetProcess) { HANDLE snapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 processEntry; processEntry.dwSize = sizeof(PROCESSENTRY32); if(Process32First(snapshotHandle, &processEntry)) { do { if(strcmpi(processEntry.szExeFile, lpszTargetProcess) == 0) { HANDLE hProcess = OpenProcess(PROCESS_TERMINATE,FALSE,processEntry.th32ProcessID); TerminateProcess(hProcess,NULL); CloseHandle(hProcess); CloseHandle(snapshotHandle); return TRUE; } } while(Process32Next(snapshotHandle, &processEntry)); } CloseHandle(snapshotHandle); return FALSE; }
-
Leute ich versuchs Heute abend hab momentan noch viel zu tun ergenisse bekommt ihr natürlich hier gepostet
echt Klasse von euch!!!Ich hab letzte Woche angefangen mit der WinAPI geschichte es fängt langsam an Spaß zu machen
hab auch schon mit andren Funktionen Experimente durchgeführt echt geil!!!:-)Gibts da ein Buch was Ihr einem Empfehlen könntet??
-
-
wo meinst du den wo ich diese Funktion einsetzen kann??
ich will das ganze ja über einen Button schließen.szExeFile ist das meine gesuchte exe??hast du das etwas von meinen vorherigen Bsp verändert??
-
EndProcess() übergibst du den .exe Namen, der geschlossen werden soll.
-
verstehe jetzt nicht.
soll ich die exe dem lpszTargetProcess übergeben??
-
ich verstehs schneller wenn dus mir nacheinender erklären würdest soll ich die exe als text oder als wert übergeben??
-
Den Namen der exe übergeben, die geschlossen werden soll.
EndProcess("explorer.exe");
Du siehst doch, der Paramenter ist "lpszTargetProcess" und der wird dann mit "szExeFile" verglichen.
if(strcmpi(processEntry.szExeFile, lpszTargetProcess)
...http://msdn.microsoft.com/en-us/library/ms684839(VS.85).aspx
MSDN schrieb:
zExeFile
The name of the executable file for the process.
-
ich habs so nicht in der msdn verstande sorry jetzt wirds sichtbar ich mach für heute pause mein Kopf brummt schon hoffe du kannst mir weiter die deckung geben wenn ich noch Fragen habe.
Danke für heute

-
mkRE schrieb:
wo meinst du den wo ich diese Funktion einsetzen kann??
ich will das ganze ja über einen Button schließen.wo du willst, bzw. wo es für dich den besten nutzen hat.
für mein verständniss wäre dies in der Nachrichtenschleife o. in der Funktion die du ansprichst wenn du auf den button klickst.
void DeinSchliessenButton() { if(EndProcess("DeineSchliessen.exe")) { MessageBox(0,"Process erfolgreich geschloßen",0,0); } else { MessageBox(0,"gesuchter Process wurde nicht gefunden",0,0); } } switch(message) { case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_DEIN_SCHLIESSEN_BUTTON: DeinSchliessenButton(); break; } break; }oder du kannst gleich auf auf die EndProcess Funktion verweisen
case IDC_DEIN_SCHLIESSEN_BUTTON: if(EndProcess("DeineSchliessen.exe")) { MessageBox(0,"Process erfolgreich geschloßen",0,0); } else { MessageBox(0,"gesuchter Process wurde nicht gefunden",0,0); } break;
-
Ich sehe Grad in den Beispielen verwendest du diese strcmpi ich habe gemerkt das mein Cmpiler diese Funktionen wie strcmpi oder _strcmp nicht erkennt.
-
habe dieses Beispiel im netz gefunden bloss es wird nicht ganz Compiliert bekomme diese Fehlermeldung bzw Linker Meldung:
[Linker Fehler] Unresolved external '_stricmp(const char *, const char *)' referenced from C:\PROGRAMME\BORLAND\CBUILDER5\PROJECTS\UWINAPI2.OBJ
ich glaube wenn ich dein Beispiel halbwegs zum laufen bekomme werd ich solch eine ähnliche Meldung zum schluß haben.
Oh man wenn alles nur so einfach währe wie SPS Technik

//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <Psapi.h> #include "UWinApi2.h" #include <string.h> #include <winuser.h> #include <windows.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; void GetPathFromHandle(HWND hWnd, LPTSTR szPathFromHandle); BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lParam); int _stricmp(const char *Buffer,const char *szPfadMitExe); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Timer1->Enabled=true; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { EnumWindows((WNDENUMPROC)EnumProc, NULL); } //--------------------------------------------------------------------------- BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lParam) { // // Jetzt haben wir ein HWND irgendeines Fensters // Also holen wir uns den Pfad zur zugehörigen EXE // char Buffer[MAX_PATH]; char szPfadMitExe[]="c:\Windows\NotePad.exe"; ZeroMemory(Buffer, sizeof(Buffer)); // Buffer leer machen... GetPathFromHandle(hwnd, Buffer); if (_stricmp(Buffer,szPfadMitExe)==NULL) { // _stricmp vergleich 2 strings miteinander // wobei es GROSS- und kleinschreibung // komplett ignoriert! // Oha, es MUSS notepad.exe sein! // Also beenden wir es mal... // SendMessage(hwnd, WM_CLOSE, NULL, NULL); return FALSE; // FALSE = EnumWindows kann aufhören } else return TRUE; // TRUE = weitermachen, Notepad ja noch nicht drangewesen! } void GetPathFromHandle(HWND hWnd, LPTSTR szPathFromHandle) { // // benötigt psapi.lib und psapi.h!!! // läuft nur unter NT-basierenden Windows // Also WinNT, Win2000, WinXP! // DWORD lpdwProcessId; HANDLE hProcessHandle; GetWindowThreadProcessId(hWnd, &lpdwProcessId); hProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, TRUE, lpdwProcessId); GetModuleFileNameEx(hProcessHandle, NULL, szPathFromHandle, MAX_PATH); CloseHandle(hProcessHandle); }