BOOL CheckMessengerService() { if(objSettings.bUnderWindows98){ return TRUE; } CSysService scm; scm.Open(); if(scm.ServiceState(MSG_SERVICE)==SERVICE_RUNNING){ if(AskYesNo(_l("Disable Messenger service","Do you want to use WireNote instead of\nsystem service for receiving net messages")+"?", PROGNAME,&objSettings.bCheckForDefMessenger)!=IDYES){ return FALSE; } scm.Control(MSG_SERVICE,SERVICE_CONTROL_STOP); if(scm.GetServiceInformation(MSG_SERVICE)){ scm.SetStartType(SERVICE_DEMAND_START); scm.SetServiceConfig(); } } return TRUE; }
// ---------------- bool PPCSymbolDB::SaveMap(const std::string& filename, bool WithCodes) const { // Format the name for the codes version std::string mapFile = filename; if (WithCodes) mapFile = mapFile.substr(0, mapFile.find_last_of(".")) + "_code.map"; // Check size const int wxYES_NO = 0x00000002 | 0x00000008; if (functions.size() == 0) { if (!AskYesNo(StringFromFormat( "No symbol names are generated. Do you want to replace '%s' with a blank file?", mapFile.c_str()).c_str(), "Confirm", wxYES_NO)) return false; } // Make a file File::IOFile f(mapFile, "w"); if (!f) return false; // -------------------------------------------------------------------- // Walk through every code row // ------------------------- fprintf(f.GetHandle(), ".text\n"); // Write ".text" at the top XFuncMap::const_iterator itr = functions.begin(); u32 LastAddress = 0x80004000; std::string LastSymbolName; while (itr != functions.end()) { // Save a map file const Symbol &rSymbol = itr->second; if (!WithCodes) { fprintf(f.GetHandle(),"%08x %08x %08x %i %s\n", rSymbol.address, rSymbol.size, rSymbol.address, 0, rSymbol.name.c_str()); ++itr; } // Save a code file else { // Get the current and next address LastAddress = rSymbol.address; LastSymbolName = rSymbol.name; ++itr; /* To make nice straight lines we fill out the name with spaces, we also cut off all names longer than 25 letters */ std::string TempSym; for (u32 i = 0; i < 25; i++) { if (i < LastSymbolName.size()) TempSym += LastSymbolName[i]; else TempSym += " "; } // We currently skip the last block because we don't know how long it goes int space; if (itr != functions.end()) space = itr->second.address - LastAddress; else space = 0; for (int i = 0; i < space; i += 4) { int Address = LastAddress + i; std::string disasm = debugger->Disassemble(Address); fprintf(f.GetHandle(),"%08x %i %20s %s\n", Address, 0, TempSym.c_str(), disasm.c_str()); } // Write a blank line after each block fprintf(f.GetHandle(), "\n"); } } return true; }
void UserInterface::DismountVolumes (VolumeInfoList volumes, bool ignoreOpenFiles, bool interactive) const { BusyScope busy (this); volumes.sort (VolumeInfo::FirstVolumeMountedAfterSecond); wxString message; bool twoPassMode = volumes.size() > 1; bool volumesInUse = false; bool firstPass = true; #ifdef TC_WINDOWS if (Preferences.CloseExplorerWindowsOnDismount) { foreach (shared_ptr <VolumeInfo> volume, volumes) CloseExplorerWindows (volume); } #endif while (!volumes.empty()) { VolumeInfoList volumesLeft; foreach (shared_ptr <VolumeInfo> volume, volumes) { try { BusyScope busy (this); volume = Core->DismountVolume (volume, ignoreOpenFiles); } catch (MountedVolumeInUse&) { if (!firstPass) throw; if (twoPassMode || !interactive) { volumesInUse = true; volumesLeft.push_back (volume); continue; } else { if (AskYesNo (StringFormatter (LangString["UNMOUNT_LOCK_FAILED"], wstring (volume->Path)), true, true)) { BusyScope busy (this); volume = Core->DismountVolume (volume, true); } else throw UserAbort (SRC_POS); } } catch (...) { if (twoPassMode && firstPass) volumesLeft.push_back (volume); else throw; } if (volume->HiddenVolumeProtectionTriggered) ShowWarning (StringFormatter (LangString["DAMAGE_TO_HIDDEN_VOLUME_PREVENTED"], wstring (volume->Path))); if (Preferences.Verbose) { if (!message.IsEmpty()) message += L'\n'; message += StringFormatter (_("Volume \"{0}\" has been dismounted."), wstring (volume->Path)); } } if (twoPassMode && firstPass) { volumes = volumesLeft; if (volumesInUse && interactive) { if (AskYesNo (LangString["UNMOUNTALL_LOCK_FAILED"], true, true)) ignoreOpenFiles = true; else throw UserAbort (SRC_POS); } } else break; firstPass = false; } if (Preferences.Verbose && !message.IsEmpty()) ShowInfo (message); }