You already know how to crash a process, so I answer regarding hiding the WER dialog.
Way to hide WER dialog since Windows XP:
UINT WINAPI SetErrorMode(_In_ UINT uMode);
SEM_NOGPFAULTERRORBOX 0x0002 The system does not display the Windows Error Reporting dialog.
Note that there are also other reasons for error dialogs and they can be disabled with this function too, check the documentation for more info.
Additionally since Windows 7:
BOOL SetThreadErrorMode(
_In_ DWORD dwNewMode,
_Out_ LPDWORD lpOldMode
);
Some programs and dll-s use these functions to hide errors from the user.