Qt로 만든 프로그램의 중복 실행 방지

klara의 이미지

메신저 같은 프로그램들은 중복 실행이 안될뿐만 아니라, 이미 열린 상태에서 한번더 실행하여 현재 열린 프로그램이 활성화됩니다.

제가 만든 프로그램이 메신저처럼 트레이아이콘에 집어넣고 쓰는 프로그램인지라, 중복 실행되면 불편할듯 하여, 중복실행이 안되게 하고 싶은데, 어떻게 해야 할지 모르겠네요...

가능하면 위에서 말한것처럼, 프로그램이 실행중일때 다시 실행하면 현재 실행중인 프로그램을 활성화해주는 쪽으로 하고 싶은데요...

QProcess를 어떻게 구워삶음 될까해서 어시스턴트를 열심히 읽어봤는데 잘 모르겠네요-_-;;

보통 Qt에 대해 검색할때 구글에서 외국 사이트를 검색하는데요...이경우는 '중복 실행 방지'를 어떻게 영어로 써야할지 모르겠어서 검색도 못하고 있습니다; 혹시 이거라도 아시는분 계시면 영어로 알려주시면 감사하겠습니다.

물론 Qt로 짠 프로그램의 중복 실행 방지에 대해 답변 해주시면 더욱 감사하겠습니다.

bootmeta의 이미지


http://doc.trolltech.com/solutions/4/qtsingleapplication/qtsingleapplication.html

이전 버전에서 지원하는지 여부는 잘 모르겠습니다.
관련 technique은 sigleton 디자인 패턴을 참고하면 될 것 같네요.

klara의 이미지

답변감사합니다.
찾아보니, 상용버전에서만 사용할수 있는 클래스인듯 합니다.
좀더 알아봐야겠네요...

whitelazy의 이미지

프로그램 실행하시면서 파일 하나 만들고 다음번에 열때는 그파일 있으면 실행 하지 않으면 될듯합니다.. 종료시에는 지우고..
강제종료시를 대비해서 확장하면 프로세스 아이디를 저장해놨다가 다음에 실행할때 파일이 있어도 저장된 프로세스아이디가 없으면 새로 실행하면??

klara의 이미지

오오...그런 방법도 있겠군요!
전 천상 스레드나 뮤텍스로 어떻게 해야되나 하고만 생각하고 있었는데...
답변 감사합니다.
얼른 해봐야겠네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.