
P.S. Когда-то на Delphi это злементарно решалось. Сейчас, наверное, можно на плюсах чего-нибудь своять и запускать из VI при старте приложения...
Код: Выделить всё
const
AppLockingAtomName: PAnsiChar = 'STAND';
var
AppLockingAtom: ATOM;
// Проверка на запуск копии приложения
AppLockingAtom := GlobalFindAtom(AppLockingAtomName);
if AppLockingAtom = 0 then
// Создать Атом-локер
AppLockingAtom := GlobalAddAtom(AppLockingAtomName)
else
// Атом-локер найден. Останов.
begin
Halt(0);
end;
Если у вас это элементарно и хочется извращаться, особенно с учётом этого
То в чём проблема, используйте этот же метод По мне так вариант Borjomy_1 гораздо проще. А ещё можно что-то писать в реестре (так до сих пор кто-то делает?), создать файл в appData и т.п. Это и проще, и перезагружаться не надо в случае ошибок, можно руками открыть "замок".При закрытии приложения атом надо было уничтожить. Если выход был некорректный, то приходилось перезагружать комп.
Configuring the Call Library Function NodeCaution Do not specify the location of a system shared library, such as kernel32.dll, by path. Because LabVIEW automatically includes by-path shared libraries in build specifications, you might distribute a by-path system shared library to another computer inadvertently. Redistributing some shared libraries, such as kernel32.dll, might cause the target computer to crash. Therefore, always specify system shared libraries by name.
Не надо воспринимать это как руководство к действию