Jump to content

Windows/Issues: Difference between revisions

From KDE Community Wiki
Jstaniek (talk | contribs)
No edit summary
Jstaniek (talk | contribs)
No edit summary
Line 2: Line 2:
* [[/kdewin-installer|kdewin-installer]]
* [[/kdewin-installer|kdewin-installer]]
* [[/MSVC|Using MSVC compiler and editor]]
* [[/MSVC|Using MSVC compiler and editor]]


__TOC__
__TOC__

Revision as of 11:02, 16 April 2008


File Locking - WerFault.exe

WerFault.exe is a process handling Windows Problem Reporting feature. Sometimes it may drive you crazy because it can lock your files, while you (or a KDE app) want to rename or remove. For me this was the case with files of KMail's MailDir storage.

If you're developer, you'll most obviously encounter many crashes with your developed applications. On any crash, annoying popup appears and says "This program has stopped responding" they it says something about Windows will try to find a solution and fix it. Of course this is a joke, so it is good to disable Windows Problem Reporting. On Vista: open the Control Panel, open the Problem Reports & Solutions applet, wnder the Advanced option you can disable problem reporting. For XP or Windows 2003, read here.

Killing KDE Processes

While it is easy to close applications as these ahve windows and have close buttons, there are (quite frequent) cases when you have to kill invisible "system" kde processes. The two most important reasons are:

  • you want to (re)compile a library or application but you would not be able to install it because Windows locks write access to the binaries that are running
  • you need to restart dbus-daemon process in order to disconnect connections made by KUniqueApplication's; this is because of Windows-specific problem with not terminating them after the application stops working and/or gets killed itself

You can use taskkill command, which has quite complicated arguments. So you can define a kdekill command. Paste the following lines to a file like {KDEDIR}/bin/kdekill.bat:

@echo off taskkill /T /fi "imagename eq dbus-daemon*" taskkill /T /fi "imagename eq kde*" taskkill /T /fi "imagename eq klauncher*" taskkill /T /fi "imagename eq kded*" taskkill /T /fi "imagename eq kioslave*" taskkill /T /fi "imagename eq knotify*" taskkill /fi "imagename eq kded*" taskkill /T /F /fi "imagename eq kded*"

Then you can just type kdekill, to get result like:

SUCCESS: Sent termination signal to process with PID 832, child of PID 2372.
SUCCESS: Sent termination signal to process with PID 2692, child of PID 2580.
SUCCESS: Sent termination signal to process with PID 2684, child of PID 480.
SUCCESS: Sent termination signal to process with PID 480, child of PID 2580.
SUCCESS: Sent termination signal to process with PID 2692, child of PID 2580.

Feel free to extend it for your specific needs.

Note 1: that klauncher sometimes refuses to terminate...

Note 2: we hope to address the above issues with KUniqueApplication and dbus-daemon in a cleaner and more automated way...

Ideas