プログラムがその日の最初の起動を開始する方法は?[閉まっている]


-3

ログインしたときにプログラムを開始する方法はありますが、最初のセッションでのみです。同じ日にシャットダウンして再起動すると、そのプログラムは自動的に起動しません。WindowsとLinuxの両方で質問しています。

唯一の方法はスクリプトを書くことだと思いますが、書かない方法を探しています。


どのオペレーティングシステム。Linuxでこれを行う方法は、Windowsで行う方法とはまったく異なります。Windowsでシャットダウンする場合、以前にコンピューターに既にログインしていたかどうかを知る方法はありません。
ラムハウンド

Netrunnerを使用します。それはKubuntuに基づいています。Linuxではスクリプトを書くことができると思いますが、Windowsではもっと難しいです。スクリプトを書く必要のない方法を探しています。
オーカー

スクリプトの外では、これはWindowsでは不可能です。
ラムハウンド

1
スクリプトを実行するのが簡単かどうか(私見は簡単)が最も便利な方法です。そのプログラムを1日に1回だけ実行する場合は、Windowsでウイルス対策が実行できるため、常に実行され、実行可能ファイルへのアクセスをチェックするプログラムが必要になると想像してください。それは膨大なリソースの浪費です。ログイン時の自動実行のみを確認する場合は、2〜3行のコードを含むスクリプトで問題を解決できます。Linuxでグラフィカル環境を追加してください、それは重要です。その日の最初のログインと最後のブートからのその日の最初のログインには違いがあることに注意してください...
Hastur

回答:


2

このプログラムを自分で変更できない限り、唯一の方法はスクリプトを作成することです。幸いなことにそれは簡単です(Windowsでは、Linuxでも同様の方法で同じことができると思います)。

:: Get date and remove / character
set d=%date:/=%
if exist "%TEMP%\%d%" goto :EOF
echo _ > "%TEMP%\%d%"
start program

編集

現在、私はTEMPフォルダーに〜30,000個のファイルを持っています。使用しすぎないシステムでは、1年間で365個の1バイトファイルについてあまり心配する必要はありません。確かに、これらのファイルはまだ完全なブロック(4kB?)を必要とし、ディスクスペースが不足している可能性があります。そのため、単一のファイルのみを使用する2番目のスクリプトを示します。

set today=%temp%\today
if exist "%today%" (
    find "%date%" "%today%"
    if errorlevel 0 goto :EOF
)

echo %date% > "%today%"
start program

1
1年実行した後、ユーザーは365個の一時ファイルを使用しているとコメントしていました。しかし、私は最初にそれを試しました。(あなたはしませんでしたか?)echoコマンドThe system cannot find the path specified.  は、これが%date%「Wed 04/22/2015」のように見え、Windowsが/sのようなパス名でsを扱うためだと思い\ます。ファイル名に/sを含めることはできません。
スコット

私は実際に試してみましたが、2015年2月4日を与えるオランダのシステムで。%date:/ =%
Berend

私はあなたが持っている365の一時ファイルについて考え、それを回避する方法も考えました(%temp%\ subfolderにファイルを置き、「今日のファイル」を確認した後、ファイルからすべてを削除します)、それは気を散らすだけです元の質問から
ベレンド

@Scottだから、今使ってもいいですか?
オーカー

TEMPフォルダーに何百もの小さなファイル(名前にスペースが含まれる)を詰め込む問題はまだありますが、動作するはずです。
スコット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.