LoginSignup
0
0

[開発] 共有フォルダにある実行ファイルを実行中にそのファイルを更新する手法

Last updated at Posted at 2023-08-17

1.説明

  • まず、皆で使ってもらうアプリを作ったら拡張子をORG等に変えて共有フォルダに配置。

  • 下のソースをメークして出来たEXEを共有フォルダに配置。ファイル名は不問。

  • 利用者はこのEXEを実行してもらう。
    このEXEは共有フォルダにあるORGに拡張子を変えた実行ファイルをローカルのマイドキュメントにEXEと拡張子を戻してコピー。
    (必ずあるC:\ に書き込みたいが端末によってはC:\の書き込みが不可の場合があるので仕方なくマイドキュメントに出力)

  • その後、そのEXEを起動。
    動いているアプリはローカルにコピーしたファイルを実行しているので共有フォルダにあるファイル(ORG)は何時でも更新可能になる。

ShellExecute ()の /e オプションを付けて起動。
アプリの方で /e オプションを付けて起動しているか確認させる。
(やらなくても可)

2.C++



// (C) inf102 s.h
// 2023.

#include <tchar.h>
#include <iostream>
#include <shlobj.h>

int main() {

	std::wcout << "init app.\r\n";

	// Mydoc PATH
	wchar_t  waFolderPath[MAX_PATH];
	SHGetSpecialFolderPath(NULL, waFolderPath, CSIDL_PERSONAL, 0);
	
	wchar_t EXEFILE[50] = L"\\DAD.EXE";
	wcscat_s(waFolderPath, EXEFILE);
	
	CopyFile ((LPCTSTR)L"\\\\xx.31.1.3\\Users\\nxx\\DAD\\DAD.ORG",waFolderPath, false);
	std::wcout << "exec app.\r\n";
	ShellExecute (NULL, (LPCTSTR)L"open", waFolderPath, (LPCTSTR)L"/e", NULL, SW_SHOWNORMAL);


}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0