Jump to content

Kısayol Çalıştırma Nasıl Yapılır


Mehmet
 Share

Recommended Posts

oyun güncellemek için klasör içine girip tek tek tıklamak yerine bu kodu yazdım ama bir türlü çalıştıramadım
Run(@ProgramFilesDir & "\Metin2\metin2.exe")
bu kodla çalıştırdığımda sorun yaratıyor bu yüzden lnk yada kısayol artık herne ise çalıştırmak istiyorum.

Benim masaüstünde OYUNLAR klasörünün içinde Metin2 diye kısayol var bunları denedim olmadı
Run('@DeskTopDir & "\OYUNLAR\Metin2.lnk"')
Run(@ComSpec & " /c " & '"C:\Documents and Settings\All Users\OYUNLAR\Metin2.lnk"', "", @SW_MAXIMIZE) Edited by MeHMeTBeN
Link to comment
Share on other sites

Komutlardaki "\" işaretini AutoIt ile karıştırmışsınız!... Malum AMS' de Run(@ProgramFilesDir & "\Metin2\metin2.exe") yerine Run(@ProgramFilesDir & "[color="#ff0000"]\\[/color]Metin2[color="#ff0000"]\\[/color]metin2.exe") kullanmanız gerekiyor. Yani çift "\" olmalı.

Link to comment
Share on other sites

[quote name='radyofon' date='15 September 2011 - 12:01 ' timestamp='1316077291' post='1079811']
Komutlardaki "\" işaretini AutoIt ile karıştırmışsınız!... Malum AMS' de Run(@ProgramFilesDir & "\Metin2\metin2.exe") yerine Run(@ProgramFilesDir & "[color="#ff0000"]\\[/color]Metin2[color="#ff0000"]\\[/color]metin2.exe") kullanmanız gerekiyor. Yani çift "\" olmalı.
[/quote]

Zaten autoit kodu bu.

Link to comment
Share on other sites

@blue_life
[img]http://www.tnctr.com/uploads/imgs/pre_1316110878__metin2.jpg[/img]
birde bunların hangisini kullanmalıyım
;ShellExecute(@DesktopDir & "\OYUNLAR\Metin2")
;ShellExecute('@DeskTopDir & "\OYUNLAR\Metin2.lnk"')
;ShellExecute(@ComSpec & " /c " & '"C:\Documents and Settings\All Users\OYUNLAR\Metin2.lnk"', "", @SW_MAXIMIZE)

Link to comment
Share on other sites

@MeHMeTBeN

Eklediğin resim nedeniyle sayfaya giriş yapıldığında, ftp kullanıcı bilgileri isteniyor!
Bu konuda daha dikkatli olmalısın!

Soruna gelirsek, sistemin nedir? Run komutu ile ilgili uygulamayı çalıştırdığında nasıl bir sorun yaşıyorsun.
Sonuçta *.lnk yi yürüttüğümüzde de bağlı bulunduğu dosya çalıştırılacaktır...

Eğer vista & win7 kullanıyorsan autoit script dosyanı yönetici olarak çalıştırıp denemelisin.
Script dosyanın başıana #RequireAdmin satırını ekle!
[b]
#RequireAdmin
Run(@ProgramFilesDir & "\Metin2\metin2.exe")[/b]

Link to comment
Share on other sites

@MeHMeTBeN

Konuda verilen örneklerde bir sorun yok.
Normalde çalışması gerekiyor. Zaten kısyoldan ilgili programı çalıştırmakta iyi deyil!
Tavsiyem ilgili kısayolun bağlı olduğu programı direk çalıştırmaya çalış.
Tabi dosya konumunun doğru olup olmadığını bu sefer mesaj kutusyla kontrol edelim.

[codebox]Global $Program = @ProgramFilesDir & "\Metin2\metin2.exe"
MsgBox(64,"",$Program)

If FileExists($Program) = 0 Then
MsgBox(16,"",$Program & " bulunamadı!")
Else
Run(@ProgramFilesDir & "\Metin2\metin2.exe")
EndIf[/codebox]

Veyahut Run yerine ShellExecute ile tekrar dene!
[codebox]Global $Program = @ProgramFilesDir & "\Metin2\metin2.exe"
MsgBox(64,"",$Program)

ShellExecute(@ProgramFilesDir & "\Metin2\metin2.exe")[/codebox]

Edited by blue_life
Link to comment
Share on other sites

evet abi biliyorum bir sorun yok verdiğiniz kodda. çok saolun herhangi bir programı çalıştırdığımda aynı kodla gayet normal çalışıyor oyun için bu tam tersi demek istediğim buna başka bir çözüm bulabilirmiyiz.
Program Filesdeki metin2.exe'yi çalıştırdığımda duyuru diye bir pencere açılıyor kabul et butonuna tıkladığımda masa üstüne bir dünya dosya atıyor ama masa üstündeki kısayoluna tıkladığımda yada program files'e gidip manuel tıkladığımda aynı pencere gelmiyor normal çalışıyor yani. autoit ile yaparken bu pencere geliyor sanırım bu hile yapmamak için yapılan bir yama.
[spoiler][img]http://www.tnctr.com/uploads/imgs/pre_1316179297__mtn2duyuru.jpg[/img][/spoiler]
duyurunun içinde yazanlarda ekde verdim italyanca yazılmış

Edited by MeHMeTBeN
Link to comment
Share on other sites

@MeHMeTBeN

Ilgili metin2.exe programını yazan arkadaş, programına bir kontrol eklemiştir...
Ne olabilir dersen, metin2.exe çalışınca hangi programın altında çalıştığına bakar. Eğer bu altında çalıştığı program explorer.exe deyilse haliyle ilgili pencereyi çıkartabilir. Yada farklı bir işlem yaptırabilir.

Şöyle bir test yap :)
Ilgili autoit kodunu derle ve oluşan exenin adını explorer.exe yap ve çalıştır bakalim işleyecek mi?
Yada ilgili program küçükse upload et ve konuya ekle. Uygun vakitte senin için, çalıştırmayı bende deneyeyim...
Bakalım yapabilecek miyim :)

Link to comment
Share on other sites

ilgili program derken metin2yimi kast ettin eğer öyleyse metin2 yüksek boyutta ama bununla ilgili kodlarımı diyorsan vereyim.
[codebox]
#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#include<IE.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
#NoTrayIcon
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

_ProcessCheck()
Global $BlueForum = GUICreate("metin2", 262, 552, -1, -1, -2146959360)
Global $metin2 = GUICtrlCreateButton("Metin2", 95, 40, 75, 25)
Global $knyt = GUICtrlCreateButton("Knight Online", 95, 75, 75, 25)
Global $rakion = GUICtrlCreateButton("Rakion", 95, 111, 75, 25)
Global $rappelz = GUICtrlCreateButton("Rappelz", 95, 146, 75, 25)
Global $warock = GUICtrlCreateButton("War Rock", 95, 182, 75, 25)
Global $wolfteam = GUICtrlCreateButton("WolfTeam", 95, 217, 75, 25)
Global $allods = GUICtrlCreateButton("Allods Online", 95, 253, 75, 25)
Global $combat = GUICtrlCreateButton("Combat Arms", 95, 288, 75, 25)
Global $karahan = GUICtrlCreateButton("KaraHan", 95, 324, 75, 25)
Global $silkroad = GUICtrlCreateButton("Silkroad", 95, 359, 75, 25)
Global $metin2check = GUICtrlCreateCheckbox("Metin2", 174, 40, 73, 25)
Global $knightcheck = GUICtrlCreateCheckbox("Knight Online", 176, 72, 81, 25)
Global $rakioncheck = GUICtrlCreateCheckbox("Rakion", 176, 111, 73, 25)
Global $rappelzcheck = GUICtrlCreateCheckbox("Rappelz", 176, 144, 73, 25)
Global $warockcheck = GUICtrlCreateCheckbox("War Rock", 176, 184, 73, 25)
Global $wolfteamcheck = GUICtrlCreateCheckbox("WolfTeam", 176, 216, 73, 25)
Global $allodscheck = GUICtrlCreateCheckbox("Allods Online", 176, 256, 81, 25)
Global $combatcheck = GUICtrlCreateCheckbox("Combat Arms", 176, 288, 81, 25)
Global $karahancheck = GUICtrlCreateCheckbox("KaraHan", 176, 328, 73, 25)
Global $silkroadcheck = GUICtrlCreateCheckbox("Silkroad", 176, 360, 73, 25)
Global $sec = GUICtrlCreateButton("Tümünü Sec", 13, 149, 75, 33)
Global $secme = GUICtrlCreateButton("Secme", 13, 195, 75, 33)
Global $calistir = GUICtrlCreateButton("Calistir", 13, 241, 75, 33)
Global $site = GUICtrlCreateLabel("www.tnctr.com", 70, 440, 97, 17)
Global $mny = GUICtrlCreateLabel("MeHMeT", 94, 464, 53, 17)
Global $KAPAT = GUICtrlCreateButton("Kapat", 95, 489, 75, 25)
GUIRegisterMsg(0x0201, "_blue_life_WinMove")
WinSetTrans($BlueForum, "", 170)
WinSetOnTop($BlueForum, "", 1)
GUISetState(@SW_SHOW)

Local $Read_Value1, $Read_Value2
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $KAPAT, -3
Exit
Case $sec
GUICtrlSetState($metin2check,$GUI_CHECKED)
GUICtrlSetState($knightcheck,$GUI_CHECKED)

GUICtrlSetState($metin2check,$GUI_CHECKED)
GUICtrlSetState($knightcheck,$GUI_CHECKED)
GUICtrlSetState($rakioncheck,$GUI_CHECKED)
GUICtrlSetState($rappelzcheck,$GUI_CHECKED)
GUICtrlSetState($warockcheck,$GUI_CHECKED)
GUICtrlSetState($wolfteamcheck,$GUI_CHECKED)
GUICtrlSetState($allodscheck,$GUI_CHECKED)
GUICtrlSetState($combatcheck,$GUI_CHECKED)
GUICtrlSetState($karahancheck,$GUI_CHECKED)
GUICtrlSetState($silkroadcheck,$GUI_CHECKED)


case $calistir
$iMsgBoxAnswer = MsgBox(36,"Ne Yapmak Istiyorsun?","Seçili Oyunlar Güncellensinmi.?")
Select
Case $iMsgBoxAnswer = 6;Yes
If GUICtrlRead($metin2check)=1 then ShellExecute(@ProgramFilesDir & "\Metin2\metin2.exe","",@ProgramFilesDir & "\Metin2")
If GUICtrlRead($knightcheck)=1 then ShellExecute(@ProgramFilesDir & "\GamersFirst\Knight Online\Launcher.exe","",@ProgramFilesDir & "\GamersFirst")
If GUICtrlRead($rakioncheck)=1 then ShellExecute(@ProgramFilesDir & "\Metin2\metin2.exe","",@ProgramFilesDir & "\Metin2")
If GUICtrlRead($rappelzcheck)=1 then ShellExecute(@ProgramFilesDir & "\GamersFirst\Knight Online\Launcher.exe","",@ProgramFilesDir & "\GamersFirst")
If GUICtrlRead($warockcheck)=1 then ShellExecute(@ProgramFilesDir & "\Metin2\metin2.exe","",@ProgramFilesDir & "\Metin2")
If GUICtrlRead($wolfteamcheck)=1 then ShellExecute(@ProgramFilesDir & "\GamersFirst\Knight Online\Launcher.exe","",@ProgramFilesDir & "\GamersFirst")
If GUICtrlRead($allodscheck)=1 then ShellExecute(@ProgramFilesDir & "\Metin2\metin2.exe","",@ProgramFilesDir & "\Metin2")
If GUICtrlRead($combatcheck)=1 then ShellExecute(@ProgramFilesDir & "\GamersFirst\Knight Online\Launcher.exe","",@ProgramFilesDir & "\GamersFirst")
If GUICtrlRead($karahancheck)=1 then ShellExecute(@ProgramFilesDir & "\Metin2\metin2.exe","",@ProgramFilesDir & "\Metin2")
If GUICtrlRead($silkroadcheck)=1 then ShellExecute(@ProgramFilesDir & "\GamersFirst\Knight Online\Launcher.exe","",@ProgramFilesDir & "\GamersFirst")

Case $iMsgBoxAnswer = 7;No

EndSelect
Case $secme
GUICtrlSetState($metin2check,$GUI_UNCHECKED)
GUICtrlSetState($knightcheck,$GUI_UNCHECKED)
GUICtrlSetState($rakioncheck,$GUI_UNCHECKED)
GUICtrlSetState($rappelzcheck,$GUI_UNCHECKED)
GUICtrlSetState($warockcheck,$GUI_UNCHECKED)
GUICtrlSetState($wolfteamcheck,$GUI_UNCHECKED)
GUICtrlSetState($allodscheck,$GUI_UNCHECKED)
GUICtrlSetState($combatcheck,$GUI_UNCHECKED)
GUICtrlSetState($karahancheck,$GUI_UNCHECKED)
GUICtrlSetState($silkroadcheck,$GUI_UNCHECKED)
Case $metin2
ShellExecute(@ProgramFilesDir & "\Metin2\metin2.exe","",@ProgramFilesDir & "\Metin2")
Case $knyt
ShellExecute(@ProgramFilesDir & "\GamersFirst\Knight Online\Launcher.exe","",@ProgramFilesDir & "\GamersFirst")


Case $site
$oIE = _IECreate("http://www.tnctr.com", 0, 1, 1)
WinSetState ( "TNCTR - Turkish Network Community - Windows Internet Explorer", "", @SW_MAXIMIZE )



EndSwitch
WEnd

Func _ProcessGetLocation($iPID); Programın çalıştığı dizin
Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID)
If $aProc[0] = 0 Then Return SetError(1, 0, '')
Local $vStruct = DllStructCreate('int[1024]')
DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc[0], 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0)
Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameEx', 'hwnd', $aProc[0], 'int', DllStructGetData($vStruct, 1), 'str', '', 'int', 2048)
If StringLen($aReturn[3]) = 0 Then Return SetError(2, 0, '')
Return $aReturn[3]
EndFunc ;==>_ProcessGetLocation

Func _ProcessCheck()
Local $Plist
If @Compiled Then
$Plist = ProcessList(@ScriptName)
For $i = 1 To $Plist[0][0]
If $Plist[$i][1] = @AutoItPID Then ContinueLoop ;Çalıştırdığımız programın pid bilgisi listen alınana uyuyorsa atlıyoruz.
If FileGetLongName(_ProcessGetLocation($Plist[$i][1])) = FileGetLongName(@AutoItExe) Then ;Dosya konumları bir birine uyuyorsa, uygulamayı kapatıyoruz
ProcessClose($Plist[$i][1])

EndIf
Next
EndIf
EndFunc ;==>_ProcessCheck

Func _blue_life_WinMove($hwnd)
If BitAND(WinGetState($hwnd), 32) Then Return "GUI_RUNDEFMSG"
DllCall("user32.dll", "long", "SendMessage", "hwnd", $hwnd, "int", 0x0112, "int", 0xF009, "int", 0)
EndFunc
[/codebox]

Edited by MeHMeTBeN
Link to comment
Share on other sites

Arkdaşlar sorun, programın çalışma diziniyle alakalıymış. Bazı programlar çalışma dizinindeki bir takım dosyaları kullanabiliyor.
Biz direk farklı konumdan çalıştırdığımız için @MeHMeTBeN hata alıyormuş.
Kısaca sorunun çözümü;

[b]Run(@ProgramFilesDir & "\Metin2\metin2.exe",@ProgramFilesDir & "\Metin2")[/b]
Veyahut;
[b]ShellExecute(@ProgramFilesDir & "\Metin2\metin2.exe","",@ProgramFilesDir & "\Metin2")[/b]

Link to comment
Share on other sites

@blue_life evet teşekkür ederiz metin2 için sorun çözüldü ama aynı kodu başka bir oyun için yazdığımızda ise hata veriyor
Bu oyun c dizininde olduğundan [b]@HomeDrive[/b] kullanıyorum
[b]Run(@HomeDrive & "\MAYN Games\KaraHan\Launcher.exe")[/b]
veya
[b]ShellExecute(@HomeDrive & "\MAYN Games\KaraHan\Launcher.exe","",@HomeDrive & "\MAYN Games")[/b]
yada
[b]Run(@HomeDrive & "\MAYN Games\KaraHan\Launcher.exe",@HomeDrive & "\MAYN Games")[/b]
Masaüstünde çalıştırdığımda hata alıyorum Kendi klasöründe çalıştırdığımda sorunsuz çalışıyor masa üstünde çalışabilmesi için ne yapabilirim

Link to comment
Share on other sites

Çözüldü üstad saol dediğin gibi çalışma dizini eksik birde 10 tane oyun içerisinde 1 tanesi sadece Run komutuyla çalışıyor başına ShellExecute yazdınmı çalışmıyor yani sonuç şöyle
ShellExecute(@ProgramFilesDir & "\Metin2\metin2.exe","",@ProgramFilesDir & "\Metin2")
ShellExecute(@ProgramFilesDir & "\GamersFirst\Knight Online\Launcher.exe","",@ProgramFilesDir & "\GamersFirst\Knight Online")
ShellExecute(@ProgramFilesDir & "\Softnyx\RakionTS\NyxLauncher.exe","",@ProgramFilesDir & "\Softnyx\RakionTS")
ShellExecute(@ProgramFilesDir & "\gPotato.eu\Rappelz\Launcher.exe","",@ProgramFilesDir & "\gPotato.eu\Rappelz")
ShellExecute(@ProgramFilesDir & "\GamersFirst\War Rock\WRLauncher.exe","",@ProgramFilesDir & "\GamersFirst\War Rock")
ShellExecute(@ProgramFilesDir & "\SoftnyxGame\WolfTeamTS\NyxLauncher.exe","",@ProgramFilesDir & "\SoftnyxGame\WolfTeamTS")
ShellExecute(@ProgramFilesDir & "\Mail.ru Games\Allods Online TR\bin\Launcher.exe","",@ProgramFilesDir & "\Mail.ru Games\Allods Online TR")
ShellExecute(@HomeDrive & "\Nexon\Combat Arms EU\CombatArms.exe","",@HomeDrive & "\Nexon\Combat Arms EU")
[b]Run(@HomeDrive & "\MAYN Games\KaraHan\Launcher.exe",@HomeDrive & "\MAYN Games\KaraHan")[/b]
ShellExecute(@ProgramFilesDir & "\Silkroad\Silkroad.exe","",@ProgramFilesDir & "\Silkroad")

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...