uruchamianie programu za pomocą JS

0

Jak zrobić, żeby za pomocą pliku program.HTML i program.JS zrobić uruchamianie programów typu: word, notatnik, firefox.

1

Nie da się.... javascript nie ma dostępu do plików na dysku - powodem tego jest po prostu wymóg zachowania bezpieczeństwa - inaczej każda strona mogłaby uruchomić dowolny program...

0

A z [VScript]?

0

Może napisz co tak naprawdę chcesz osiągnąć... Z przeglądarki/strony przeglądanej z internetu nie uruchomisz nic na dysku.

0

Znalazłem coś takiego, ale nie działa. :( w ogóle to ja robię, gadżeta systemu Vista. A i czy dało by się to zapisać tak, żeby nie pobierał żadnych informacji z rejestru? Jak tak to może mi ktoś to pomóc zmienić.


var oShell = new ActiveXObject("WScript.Shell");
var path = "";
var i = 0;
var skinpath = "";


function OnLoad()
{
	setContentText();
}

function setContentText() 
{
	var cu = "HKCU\\Software\\XXX\\ABC\\";
	var gl = "HKCU\\Software\\XXX\\ABC\\Gadget\\";
	var lm32Bit = "HKLM\\SOFTWARE\\XXX\\ABC\\";
	var lm64Bit = "HKLM\\SOFTWARE\\Wow6432Node\\XXX\\ABC\\";

	try
	{
		path = oShell.RegRead(lm64Bit + "\\AppDir") + "\\myapp.exe";
	}
	catch(err) 
	{
		try
		{
			path = oShell.RegRead(lm32Bit + "\\AppDir") + "\\myapp.exe";
		}
		catch(err)
		{
			path = "C:\\Program Files\\XXX\\ABC\\myapp.exe";
		}
	}
		
	var txt1,txt2
	//Set texts according to language choosen
	try
	{
		txt1 = unescape(oShell.RegRead(gl + "gaaa"));
		txt2 = unescape(oShell.RegRead(gl + "gbbb"));
	}
	catch(err) 
	{
		txt1 = "Files";
		txt2 = "Copy";
	}
	
	tL1.innerText = txt1;
	tL2.innerText = txt2;
}

document.onreadystatechange = function()
{    
    if(document.readyState=="complete")
    {
	mySetting.load();
	setContentText();
    }
}

function resizeGadget()
{
    if(System.Gadget.docked == true)
    {
    }
    else
    {
    }
}

function settingsClosed(event)
{
    if(event.closeAction == event.Action.commit)
    {
	mySetting.load();
	setContentText();
    }
}

var actionID = -1;
function RunSub(idx)
{
	actionID = idx;

	var parmArray = new Array("-datacd -emptyproject", "-autoplay -copy");
	mySetting.load();
	if(actionID == 0)
	{
		System.Shell.execute( path );
	}
	else
	{
		var prg = parmArray[actionID-1];
		System.Shell.execute( path , prg );
	}

0

Ale czemu potrzebujesz uruchomić coś ze strony WWW? Nie powinien być to program desktopowy?

0

Gadżety to przecież strona internetowa. Nie wiem w jaki inny sposób można by było uruchamiać program, myślałem że ten plik JS pomożecie mi go zmodyfikować, tak, żeby nie szukał nic w rejestrze, a uruchamiał za pomocą, podanej ścieżki do pliku myapp.exe.

0

W przypadku tworzenia gadżetów (ale tylko gadżetów) Windows udostępnia odpowiedni obiekt System: http://msdn.microsoft.com/en-us/library/aa965853(v=VS.85).aspx .

0

Ale ja tu nie widzę żadnego przykładu, jak to przerobić. :(

0

Mój problem nie został jeszcze rozwiązany. :/

0

Dobra, a widział ktoś jakiś gadżet systemu windows, który otwiera program *.exe. Jak tak, to bym prosił o jego wstawienie na forum.

0

Tzn. chcesz nam powiedzieć, że nie potrafisz przepisać kawałka kodu z MSDN?

0

Nie. Chcę porównać kilka gadżetów i wyklepać coś sam. :)

0

A, no, miałem rację. Nie potrafisz czytać dokumentacji po angielsku, nie potrafisz korzystać z google. No cóż, powodzenia w każdym razie.

0

Jeśli uda ci się odpalić exe za pomocą JS, to wiedz, że znalazłeś błąd w przeglądarce. Z tego co widziałem w JAVIE da się odpalić exe, ale najpierw pojawi się ostrzeżenie, tak żeby użytkownik mógł w razie co to zablokować.

0

@krwq: tu nie chodzi o normalny JS (bo rzeczywiście, trzeba byłoby znaleźć buga w przeglądarce i napisać odpowiedniego exploita), ale o gadżety Windows Vista/7 - tutaj udostępnione jest specjalne API, które pozwala m.in. na sprawdzenie właściwości systemu i sprzętu czy właśnie uruchomienie programu.

0

Dlaczego mnie nikt nie słucha. Prosiłem, żeby ktoś mi pomógł przerobić ten kod, ale jak widzę nikt nie jest w stanie. Prosiłem, żeby ktoś wrzucił przykładowy gadget, który uruchamia program. (NIE WAŻNE JAKI, MOŻE BYĆ NAWET URUCHAMIANY PASIANS).

Pomoże mi ktoś?

0

Zrobiłem błąd literowy. Nie Pasians tylko Pasjans. To taka gra karciana w systemach Windows. Wytłumaczyłem! :)

0

Dzięki. :D

2

A może tak zmienić nazwę forum? Np. na 4retarded.net?

1 użytkowników online, w tym zalogowanych: 0, gości: 1