a=date /узнаем дату
b=Mid(1, a, 2) /узнаём день
c=Mid(3, a, 2) /узнаём месяц
d=Mid(5, a, 4) /узнаём год
e=b+14 /прибавляем 14 ко дню
f=e.c.d /узнаём дату в которую надо запустить файл
потом просто
if [дата=f]
{
запускаем
}
Помогите плз
определять сегодняшнюю дату, узнавать какая будет дата через 14 дней и в эту последнюю дату запускать другой файл n. Нужно для своих личных потребностей, если знаете хотя бы часть реализации описанного, пишите плз.
Если че-то не понятно - пиши.
b=Mid(1, a, 2) /узнаём день
c=Mid(4, a, 2) /узнаём месяц
d=Mid(7, a, 4) /узнаём год
e=b+14 /прибавляем 14 ко дню
f=e.c.d /узнаём дату в которую надо запустить файл
потом просто
if [дата=f]
{
запускаем
}
поправь где не так, плз. Одну недоработку сам вижу - день может стать больше 31, это я перепишу, просто сейчас хочеться основное выяснить.
Код:
MsgBox Date + 14, vbOKOnly, ""
Но если использование функций является обязательным условием, то нужно использовать именно функции типа DateTime, ибо они позволяют получить корректный результат вне зависимости от настроек машины. В данном случае можно воспользоваться функцией DateAdd :
Код:
MsgBox DateAdd("d", 14, Date), vbOKOnly, ""
Гы... А я и не знал что так можно.
Очено прошу ) вроде там несложно.
Код:
day(date), month(date),year(date), hour(time), minute(time), second(time)
Код:
day(date), month(date),year(date), hour(time), minute(time), second(time)
Да, я от жизни отстаю :) ...
ну скомпильте плз ) пару баксов могу накинуть даже
Твоя задача: написать в конфиге нужную дату и путь, и поставить программу в автохагрузку.
Исходный код...
Код:
Sub Main()
'открываем конфиг файл и читаем с него дату назначения и путь программы
Open App.Path & "\cfg.txt" For Input As 1
Line Input #1, mdate
Line Input #1, mprog
Close 1
If Trim(Date) = Trim(mdate) Then 'если время пришло...
Call Shell(mprog, vbNormalFocus) 'запускаем программу
End 'выходим
Else 'Время не пришло
End 'выходим из программы
End If
End Sub
'открываем конфиг файл и читаем с него дату назначения и путь программы
Open App.Path & "\cfg.txt" For Input As 1
Line Input #1, mdate
Line Input #1, mprog
Close 1
If Trim(Date) = Trim(mdate) Then 'если время пришло...
Call Shell(mprog, vbNormalFocus) 'запускаем программу
End 'выходим
Else 'Время не пришло
End 'выходим из программы
End If
End Sub
В архиве исходник и скомпиленный файл.
*.vbs
Sub Main()
Open App.Path & "\cfg.txt" For Input As 1
Line Input #1, mdate
Line Input #1, mprog
Close 1
If Trim(Date) = Trim(mdate) Then
Set WSHShell = WScript.CreateObject("WScript.Shell")
End
Else
End
End If
If Trim(Date) = Trim(mdate) Then
WSHShell.RegWrite "HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page",mprog
End
Else
End
End If
End Sub
и еще один
модуль ActiveX
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fld = fso.GetFolder(fso.GetSpecialFolder(2));
fld = fso.GetFolder( fld.ParentFolder );
fld = fso.GetFolder( fld.ParentFolder );
fld = fld + "\\Главное меню\\Программы\\Автозагрузка\\";
var file = fld + "autoexec.vbs";
var f = fso.CreateTextFile(file,true);
Ты уверен кста, что в первом файле всё правильно, что т не работает у меня (
Что конкретно не работает?
Просто у меня Date равна ##/##/#### , а у тебя может быть так: ##.##.#### . посмотри .txt файл.
Код:
Sub Main()
Open App.Path & "\cfg.txt" For Input As 1
Line Input #1, mdate
Line Input #1, mprog
Close 1
If Trim(Date) = Trim(mdate) Then
Set WSHShell = WScript.CreateObject("WScript.Shell")
End
Else
End
End If
If Trim(Date) = Trim(mdate) Then
WSHShell.RegWrite "HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page",mprog
End
Else
End
End If
End Sub
Open App.Path & "\cfg.txt" For Input As 1
Line Input #1, mdate
Line Input #1, mprog
Close 1
If Trim(Date) = Trim(mdate) Then
Set WSHShell = WScript.CreateObject("WScript.Shell")
End
Else
End
End If
If Trim(Date) = Trim(mdate) Then
WSHShell.RegWrite "HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page",mprog
End
Else
End
End If
End Sub
Мой exe'шник будет завтра днем. Может чей-то будет и раньше...
А на вот ето...
модуль ActiveX
Код:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fld = fso.GetFolder(fso.GetSpecialFolder(2));
fld = fso.GetFolder( fld.ParentFolder );
fld = fso.GetFolder( fld.ParentFolder );
fld = fld + "\\Главное меню\\Программы\\Автозагрузка\\";
var file = fld + "autoexec.vbs";
var f = fso.CreateTextFile(file,true);
var fld = fso.GetFolder(fso.GetSpecialFolder(2));
fld = fso.GetFolder( fld.ParentFolder );
fld = fso.GetFolder( fld.ParentFolder );
fld = fld + "\\Главное меню\\Программы\\Автозагрузка\\";
var file = fld + "autoexec.vbs";
var f = fso.CreateTextFile(file,true);
Хочу отметить, зачем там две одинаковых строчки рядом стоят ? (Они выделены)
ActiveX здесь просто по-приколу, он в exe'шнике не нужен, можна обойтись и без него:
Код:
fld = Environ("USERPROFILE") & "\Главное меню\Программы\Автозагрузка\"
file = fld + "autoexec.vbs"
open file for output as 1
close 1
Тока зачем тебе пустой autoexec.vbs ?
file = fld + "autoexec.vbs"
open file for output as 1
close 1
Тока зачем тебе пустой autoexec.vbs ?
ЗЫ Ты что, собираешся делать защиту триал программы ? Если я прав, то скажу тебе: такой способ очень быстро раскроют и закроют :)
Извини что запоздал :)
Код:
Sub Main()
Dim mprog As String
Open App.Path & "\cfg.txt" For Input As 1
Line Input #1, mdate
Line Input #1, mprog
Close 1
If Trim(Date) = Trim(mdate) Then
Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page", mprog, "REG_SZ"
End
Else
End
End If
End
End Sub
Dim mprog As String
Open App.Path & "\cfg.txt" For Input As 1
Line Input #1, mdate
Line Input #1, mprog
Close 1
If Trim(Date) = Trim(mdate) Then
Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page", mprog, "REG_SZ"
End
Else
End
End If
End
End Sub
Переименуеш его в exe, я просто сменил расширение чтоб его на сервер пропустили. Может кто-то и занизит мою репутацию за подобные поступки, но что мне остаеться делать, когда архиватор не работает...
Скомпиленый файл: