Code tự bất tắt chương trình random time

chào các bạn, mình ko phải là dân lập trình, nhưng đang cần code cái tool nho nhỏ nên vào đây hỏi các bạn, mong các bạn giúp đỡ, code này là code mình kiếm trên mang:
"Code hẹn giờ tắt phần mềm đang chạy
Bạn hãy sử dụng đoạn code này:

@echo off
@ECHO .
@ECHO Chuong trinh se tat sau 10 phut nữa …
@ping 127.0.0.1 -n 600 > NUL
@ECHO .
TASKKILL /F /IM filefox.exe

Trong đó:

@ping 127.0.0.1 -n 600 > NUL: 600 là số giây mà bạn muốn đóng chương trình.
TASKKILL /F /IM filefox.exe: filefox.exe là chương trình đang chạy mà bạn muốn đóng.
Lặp lại thời gian mở và tắt ứng dụng/ phần mềm
Tương tự như vậy, bạn hãy sử dụng đoạn code sau:

@echo off
:TOP
start “Firefox.exe” “C:\Program Files\Mozilla Firefox\firefox.exe”
@ECHO .
@ECHO Chuong trinh se mo va tat sau thoi gian 6 phut …
@ping 127.0.0.1 -n 360 > NUL
@ECHO .
TASKKILL /F /IM firefox.exe
goto TOP"

Các bạn cho mình hỏi là code này viết bằng ngôn ngữ gì?
mình tạm gọi nó là chương trình A, và chương trình cần bật là chương trình B.
mình cần các điều kiện sau:
CT A bật CT B sau 1 time random cho trước, ví dụ như trong khoảng 2, 3 tiếng đồng hồ, thì random là khoảng 2h35 thì bật CT B. Chương trình B sau khi được bật thì chạy trong random time cho trước, ví dụ 1, 2 tiếng, thì random khoảng 1h35 thì bị tắt đi.
kể từ thời điểm B bị tắt đi, nó lại nằm chờ 1 random time để được bật lên lai.
CT B sẽ được bật lên 1 sô lần random trong khoảng cho trước, ví dụ 50 -100 lần, trong một ngày, hết số lần thì tắt, qua ngày khác lại chay.
mình muốn CT A đến 1 thời điểm trong ngày thì tự khởi động lại chính nó luôn.

Như code ở trên thì mình phải tuỳ biến như thế nảo các bạn?
code này lưu thành file .bat là chạy được trên mọi hệ điều hành đúng ko?
các bạn giúp mình nha. Cảm ơn các bạn.

Cái này gọi là batch file (của Windows), một dạng script.

2 Likes

cảm ơn bạn, còn mình muốn code như mình đã giải thích ở trên thì nên tuỳ biến thêm như thế nào bạn?
mình cần CT B được bật tắt một cách ngẫu nhiên.

Có ai giúp mình không? hic

2 Likes

Cảm ơn bạn @sycoi001 nha,
nhưng mình muốn hỏi thêm là thay vì cho thời gian cố định là 20 phút tắt rồi bật lại như trong link bạn post,
thì mình muốn là mình sẽ cho 2 khoảng thời gian, ví dụ như 30 phút, và 1 tiếng, mình muốn chương trình tự chọn 1 thời gian bất kỳ trong 2 khoảng thời gian mà mình cho, để tắt và bật lại chương trình. Vậy thì phải sửa code lại như thế nào ?
Nếu file batch ko làm được thì với code python ở trong link phải sửa lại như thế nào, và python có đóng gói thành file exe được không các bạn? giúp mình với nha, cảm ơn các bạn rất nhiều.

Đọc từ config file thôi. Thực ra nên tìm một tài liệu về batch chứ phần này không cơ bản :smiley: dùng script không giống như viết code. Còn Python thì không phải ngại, đọc file dễ.

1 Like

trong cái link tui gửi có cái script viết bằng python đó, tải python về cài vô, xong tạo file tên.py rồi chép script vô.
import subprocess, time

while True:
    proc=subprocess.Popen("something.exe")
    time.sleep(3*60*60) # chạy file exe 3 tiếng đồng hồ.
    proc.kill()
    time.sleep(30) # tắt 30 giây xong mở lại. 

Giờ ví dụ muốn random giữa 1 tiếng và 30 phút thì viết lại y chang vậy, cho cái thời gian vô list, rồi random choice khoảng thời gian
import subprocess, time, random

while True:
    proc=subprocess.Popen("something.exe")
    time.sleep(random.randint(1750,3600)) # chạy file exe random trong khoảng 30p đến 1h đồng hồ.
    proc.kill()
    time.sleep(30) # tắt 30 giây xong mở lại.

Ngoài ra còn có kiểu viết khác để cố định thời gian, ko cần random giữa 2 khoảng thời gian. Bạn coi ở đây https://docs.python.org/3/library/random.html
để ý hàm choice()

1 Like

Cảm ơn các bạn, để mình test thử, có kết quả sẽ báo mọi người.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?