main.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /**
  2. * 叶海辉
  3. * QQ群121376426
  4. * http://blog.yundiantech.com/
  5. */
  6. #include "MainWindow.h"
  7. #include <QApplication>
  8. #include <QTextCodec>
  9. #include <QMessageBox>
  10. #include <QSharedMemory>
  11. #include <QScreen>
  12. #include <QDir>
  13. #include "AppConfig.h"
  14. #undef main
  15. int main(int argc, char *argv[])
  16. {
  17. QApplication a(argc, argv);
  18. QApplication::setQuitOnLastWindowClosed(false);
  19. a.setWindowIcon(QIcon(":/img/logo.png"));
  20. QTextCodec *codec = QTextCodec::codecForName("UTF-8");
  21. QTextCodec::setCodecForLocale(codec);
  22. // QTextCodec::setCodecForCStrings(codec);
  23. // QTextCodec::setCodecForTr(codec);
  24. AppConfig::InitAllDataPath();
  25. QString videodir;
  26. for (int i=1;i<argc;i++)
  27. {
  28. #if 1
  29. QTextCodec *gbk = QTextCodec::codecForName("GB18030");
  30. QString paramStr = gbk->toUnicode(argv[i]);
  31. #else
  32. // QString paramStr = QString::fromLocal8Bit(argv[i]);
  33. #endif
  34. if (paramStr.contains("videodir="))
  35. {
  36. videodir=paramStr.remove("videodir=");
  37. }
  38. }
  39. if (!videodir.isEmpty())
  40. {
  41. AppConfig::MakeDir(videodir);
  42. QDir dir(videodir);
  43. if (dir.exists())
  44. {
  45. AppConfig::gVideoDirPath = videodir;
  46. }
  47. }
  48. QSharedMemory sharedmem(AppConfig::Memory_KEY_NAME);
  49. if (!sharedmem.create(1024))
  50. {
  51. if (sharedmem.attach())
  52. {
  53. sharedmem.lock();
  54. char * to = static_cast<char*>(sharedmem.data());
  55. const char * from = "show out";
  56. ::memcpy(to, from, strlen(from));
  57. sharedmem.unlock();
  58. }
  59. else
  60. {
  61. QMessageBox::information(0, "", QStringLiteral("另一个程序已经在运行了"));
  62. }
  63. return 0;
  64. }
  65. MainWindow w;
  66. w.showFullScreen();
  67. return a.exec();
  68. }