Kann mir jemand ein Beispiel geben, wie man mit WM_CLOSE eine kleine Anwendung wie Notepad schließt?Wie verwendet man WM_Close in C#?
4
A
Antwort
10
Vorausgesetzt, Sie haben bereits einen Handle zum Senden an.
...Some Class...
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
//I'd double check this constant, just in case
static uint WM_CLOSE = 0x10;
public void CloseWindow(IntPtr hWindow)
{
SendMessage(hWindow, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
}
...Continue Class...
Einen Griff zu bekommen kann schwierig sein. Control-Nachkommen Klassen (WinForms, im Grunde) haben Handle, und Sie können alle Top-Level-Fenster mit EnumWindows (die erweiterte p/invoke erfordert, obwohl nur leicht) auflisten.
0
Angenommen, Sie möchten den Editor schließen. Mit dem folgenden Code wird es tun:
private void CloseNotepad(){
string proc = "NOTEPAD";
Process[] processes = Process.GetProcesses();
var pc = from p in processes
where p.ProcessName.ToUpper().Contains(proc)
select p;
foreach (var item in pc)
{
item.CloseMainWindow();
}
}
Überlegungen:
Wenn der Notizblock etwas nicht gespeicherten Text hat, wird es Popup „Wollen Sie sparen ....?“
item.CloseMainWindow()
mit
item.Kill();
Ersetzen-Dialog oder wenn der Prozess keine UI hat Würfen es Ausnahme folgende
'item.CloseMainWindow()' threw an exception of type
'System.InvalidOperationException' base {System.SystemException}:
{"No process is associated with this object."}
Wenn Sie sofort schließen Prozess erzwingen möchten, dann Wenn Sie PInvoke hinwollen So können Sie den Griff des ausgewählten Elements verwenden.
item.Handle; //this will return IntPtr object containing handle of process.
Verwandte Themen
- 1. Verwenden von WM_Close in C#
- 2. Wie verwendet man eine Struktur in C?
- 3. Wie verwendet man C# Dll in VC++?
- 4. Wie verwendet man eine Klassenfunktion in C++?
- 5. Wie verwendet man den Schalter in C++?
- 6. Wie verwendet man RegularExpression in C# .net?
- 7. Wie man Bitoperationen in C korrekt verwendet
- 8. Wie man strcasecmp in c richtig verwendet
- 9. WM_DESTROY, WM_CLOSE Umgehung IMessageFilter
- 10. Wo sind Windows-Nachrichten wie WM_LBUTTONDOWN, WM_COMMAND und WM_CLOSE in der Win32 C/C++ - API definiert?
- 11. Wie verwendet man CNContactPickerViewController mit Ziel c?
- 12. Wie verwendet man außer Methode in Liste in C#
- 13. Wie verwendet man eine Variable in Regex in C++?
- 14. Wie man Typlisten verwendet
- 15. Verwirrt darüber, wie man JSON in C verwendet
- 16. Wie verwendet man Namespaces in iOS-Ziel-C-Code?
- 17. Wie verwendet man eine C++ DLL in Unity3D?
- 18. Wie verwendet man Web-Teile in asp.net C#?
- 19. Wie verwendet man Tlb-Dateien in einem nativen C++ - Projekt
- 20. Wie verwendet man CMake mit Freopen in C++?
- 21. Wie man den Crystal Report Viewer in C# verwendet .net
- 22. Wie verwendet man den Shape_Predictor von dlib in Objective-C?
- 23. Wie verwendet man eine C# -Auszählung in Javascript
- 24. Einheit. Wie man Color.RGBToHSV() in Unity verwendet C#
- 25. wie man verwendet ENUM in einem anderen C# file
- 26. Wie verwendet man statische Variable (BOOL) in Objective C
- 27. Wie verwendet man ein C++ - Projekt in einer .NET-Anwendung?
- 28. Wie verwendet man * .lib Datei in C# -Anwendung?
- 29. Wie verwendet man getchar Funktion und putchar Funktion in C?
- 30. Wie verwendet man shared_ptr in LuaJIT FFI/C++ - Bindung?
Notwendigkeit, die Frage zu lesen, @karthik will eine andere Anwendung –
@Hamish schließen Ich denke, das Hinzufügen * andere * wie geholfen hätte, * andere kleine Anwendung wie Notepad * – TheVillageIdiot
, wo ich den Namen geben, tun müssen, der Anwendung, um es zu schließen? – Anuya