display: block: Вы хотите на баше делать игру? В посте речь шла про яву.
Что бы что-то серьезное сделать с экраном консоли надо работать напрямую с экранным буфером.
Про баш не поручусь, но виндовый cmd такого делать не позволяет.
Собственно и баш и cmd это просто программы которые используют текстовую консоль, любая другая программа может ее использовать по своему.
Нужно использовать API ОС для доступа к экранному буферу (или какие-то библиотеки в качестве посредника, но суть от этого не меняется), на Java это можно сделать.
Для виндовой консоли можете начать отсюда: https://docs.microsoft.com/en-us/windows/console/c...
Finx: В этом случае обычно программу размещают на сетевом диске, доступном пользователям и оттуда запускают.
Еще, как вариант, копировать в системный раздел в корневой каталог с жестко заданным именем.
Системный диск доступен в переменной %SystemDrive%
Когда винда запускает программы из "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" то пользователь еще не зарегистрирован в системе, соответственно еще нет переменных, указывающих на профиль пользователя.
mrusklon: В общем да, только:
/c: - это ключ findstr, а то что после двоеточия - путь к файлу. Берите в кавычки всю строку после двоеточия:
findstr /v /C:"c:\myfolder\nodelete.txt"
но зачем тогда создают id_user в обеих таблицах, всё равно данные в этих полях будут одинаковы (в id_user), а если разные то это уже есть ошибки в приложении.
но зачем тогда создают id_user в обеих таблицах, всё равно данные в этих полях будут одинаковы
Чтоб не включать в запрос таблицу project и сразу выходить на пользователей. Типа немного быстрее, но на деле создает дополнительные возможности для ошибок.
Pavel Denisov: Внешняя причина - она может и комп вырубить, тогда ничего уже не поможет.
А когда бывают случаи дать упасть и поднять, чем исправить - это что-то экзотическое, когда вы являетесь автором программы.
Собственно, я не против поднимальщиков :-) и т.п., как крайней меры. Но если софт рушится часто, то с этим надо что-то делать кардинально, а не поднимать его каждый раз. А тут похоже именно такая ситуация.
Ltonid: Каких библиотек?
Знаю по С/С++ - MFC идет только с платной версией, исходников, по моему никогда не было в комплекте, как сейчас - не знаю. ATL/WTL - всю жизнь предоставлялась в исходника, собственно это по сути набор хидеров. По остальным ЯПам я не в курсе.
Но библиотеки - это далеко не исходники ОС.
Но скорее всего команда выдаст ошибку и ничего не сделает, т.к. не возможно захватить в монопольный доступ системный диск - сама же винда не даст. А если это сделать с какого-нибудь загрузочного носителя, то потом нельзя будет загрузиться с этой винды. Как- то так, имхо. Но я экспериментировать не буду. Делайте, потом с нами поделитесь - интересно.
что есть attributes ? нет такой команды в винде.
Видимо вы имели ввиду diskpart. Ну и попробуйте ее выполнить на системном диске. Если возможность есть, это еще не что ею можно воспользоваться.
Илья: Тогда познакомьтесь еще с функцией DatePart - она выводит нужную часть даты/времени. Еще есть FormatDate ну и вообще нагуглите справочник по VBSу.
Дмитрий Байчапанов: что мешает инструмент для удаленного управления использовать не по назначению?
Не зря многие антивирусы того же radminа по умолчанию блочат.
Максим Гришин: Вы опускаете операцию разыменования в своих рассуждениях про 4 байта.
Из строки по любому будет браться только один байт при разыменовании.
Другое дело, если компилятор не делает не явного преобразования, тогда этот один байт и попадет в стек, а printf прочитает из стека 4 байта, ну а какой адрес получится в printfе предсказать невозможно, т.к. к 0x71 добавится 3 байта мусора из стека.
Если же компилятор делает не явное преобразование, то в стек запишется (char*)0x71.
Но вообще можно просто посмотреть ассемблерный код под дебагером, там все станет ясно.
Максим Гришин:
teststring - сам по себе указывает на первую букву в строке, т.е. на 'q', ее ASCII код - 113.
Соответственно ( *teststring ) - возвращает char, а char - это знаковое одно-байтовое целое (или беззанковое, в зависимости от компилятора), т.е. число 113, потом 113 не явно преобразовывается в char* и передается в printf. Размер указателя, конечно, 32 или 64 бита, но содержимое этих бит - 113, т.е. первый байт строки. По сути одно-байтовое целое расширяется до размера указателя путем добавления слева нулевых байт до необходимой длины.
Что бы что-то серьезное сделать с экраном консоли надо работать напрямую с экранным буфером.
Про баш не поручусь, но виндовый cmd такого делать не позволяет.
Собственно и баш и cmd это просто программы которые используют текстовую консоль, любая другая программа может ее использовать по своему.
Нужно использовать API ОС для доступа к экранному буферу (или какие-то библиотеки в качестве посредника, но суть от этого не меняется), на Java это можно сделать.
Для виндовой консоли можете начать отсюда: https://docs.microsoft.com/en-us/windows/console/c...