Yanıtlar:
Buraya bir göz atın . Test etmedim, ancak istediğiniz çözüme benziyor - biraz da olsa.
Elimden geldiğince biçimlendirilmiş, markdown beğenmez, e.
Windows Vista için sistem kabuğu bilerek Microsoft tarafından inşa edilmiştir ...
- Çeşitli türdeki dosyalar aynı anda seçildiğinde, onları açma seçeneği, bağlam menüsü veya klavyesi aracılığıyla (yani, {Enter} tuşuna basılarak) sistem kabuğuna erişilmez duruma getirilir. Bu, dosyaları işleyen program tarafından değil, dosya uzantılarına tabidir (örneğin, * .doc ve * .docx dosyaları aynı anda seçildiğinde gerçekleşir).
- Aynı türde 15'ten fazla (yani, 16 veya daha fazla) dosya seçildiğinde, aynı olay meydana gelir.
Bu, Microsoft'un üst düzey geliştiricisi Zack Robinson tarafından belgelenmiştir. İşte, hem sorunları çözen hem de çözümü bağlam menüsüne yerleştiren bir çözüm.
Yalnızca bir Visual Basic betiği yaratmayı ve Gönder klasöründe kısayol oluşturmayı gerektirir.
Bu gönderiye ekli betiği oluşturun veya indirin (uzantısını * .vbs olarak yeniden adlandırın) ( kod aşağıda verilmiştir ).
Bir kısayol oluşturun ve kısayolu Gönder klasörünüze yerleştirin. Gönder klasörünüzü bulamıyorsanız, Windows + R tuşlarına basın ve "shell: sendto" komutunu çalıştırın.
Şimdi, bir dosyayı veya dosyaları sağ tıkladığınızda
0_file_execution
, Gönderme listesindeki (örneğin) girişini seçmek seçili tüm dosyaları açar.Komut dosyasını doğrudan çalıştırmak, dosyaları Gönderme listesi öğesinden bağımsız değişkenler olarak geçirmek yerine, her bir dosyanın açılışını ayıran süreyi ayarlamanıza olanak tanır; Bu değeri çok düşük olarak ayarlarsanız, Vista tüm dosyaları açamayabilir.
Kod :
on error resume next
nl=vbcrlf
wait=200
set shell=wscript.createobject("wscript.shell")
set filesystem=createobject("scripting.filesystemobject")
set scriptfile=filesystem.getfile(wscript.scriptfullname)
stamp=scriptfile.datelastmodified
stamparray=split(year(stamp)&"."&month(stamp)&"."&day(stamp)&"."&hour(stamp)&"."&minute(stamp)&"."&second(stamp),".")
version=stamparray(0)
for loopversion=1to ubound(stamparray)
versionlength=len(stamparray(loopversion))
if versionlength<2 then stamparray(loopversion)=string(2-versionlength,"0")&stamparray(loopversion)
version=version&"."&stamparray(loopversion)
next
set contents=filesystem.opentextfile(wscript.scriptfullname,1)
contents=split(contents.readall,nl)
unit=4^5
set files=wscript.arguments
if files.count<1 then
do
wait=inputbox(nl&nl&"Set a period, in milliseconds, to wait while files open:",filesystem.getbasename(scriptfile)&" v"&version&" : "&int(scriptfile.size/unit)&"k"&(scriptfile.size/unit-int(scriptfile.size/unit))*unit&"b : "&ubound(contents)&" lines",wait)
if wait=empty then wscript.quit
if isnumeric(wait) then exit do
loop
set scriptfile=filesystem.createtextfile(wscript.scriptfullname)
for loopcontents=0to ubound(contents)
newline=contents(loopcontents)
if instr(newline,"wait=")>0 and isnumeric(replace(newline,"wait=","")) then newline="wait="&wait
scriptfile.write(newline)
if loopcontents<ubound(contents) then scriptfile.write(nl)
next
else
for each file in files
shell.run """"&file&""""
wscript.sleep wait
next
end if
\t
belki kaynağında olduğu için mutlu değildi ?
Yardım için teşekkürler. Ama bir adım daha aştım. Visual Basic komut dosyasını kullanmadım. Ne zaman dir dir gönderdim ama çalıştırmak istediğim yazılım için kısa yol. Word, Exc, Firefox vb. Gibi. Birden fazla yazılım türü yapamayacağınızı biliyorum, ancak tüm sözcük dosyalarını seçip bu kelimeyi, tüm internet bağlantılarını ve Firefox'a göndererek gönderdiğinizden emin olabilirsiniz.