Jump to content

blue_life

Emekli
  • Posts

    3820
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by blue_life

  1. @kamuran731 Ilgili program BlueXPE.exe nin içindeydi. Parametre ile çalışıyordu. BlueXPE.exe sistemin başlangıç işlemlerini yapan kritik bir dosya ve heralde sadece ilgili parametreler BlueXPE de çalışıyor olabilir. Kodlamasını unuttum... Senin için ilgili kısmı kesip bir exe yapıp uplad ettim. [color="#0000FF"][u][b]http://bluelife.zxq.net/FAttrib.zip[/b][/u][/color] Kısaca indirdiğin exeye dosyayı parametre olarak vereceksin. Yani sağ tuşa eklemek için gereki registry bilgisini eklersin... Örnek parametre; [b]FAttrib.exe "C:\boot.ini"[/b]
  2. @mehmetben ObjCreate ile autoit içinde, internet explorer alt yapısını kullan nesneler oluşturabiliyoruz. Yani autoit ekranında ilgili sitelerdeki forumlara giriş yapmak mümkün. Tabi sistenin verdiği desteğe göre herangi bir arayüz olmadan da bu işler yapılabiliyor. Kısacası bu sitenin verdiği desteğe bağlı. Ben sana sadece objcreate ile bir örnek vereyim. Ben bu tip işler ile fazla ilgili deyilim... [codebox]Opt("GUIResizeMode", 768) Global $BLUE_OIE = ObjCreate("Shell.Explorer.2") Global $BLUE_GUI = GUICreate("BluLife Test", 640, 480, -1, -1, 0x00040000 + 0x00020000 + 0x00010000) $IE_OBJECT = GUICtrlCreateObj($BLUE_OIE, 0, 0, 640, 456) GUICtrlSetResizing(-1, 102) GUISetState(@SW_SHOW) $BLUE_OIE.navigate("http://www.google.com.tr") DllCall("psapi.dll", "int", "EmptyWorkingSet", "long", -1) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case -3 Exit EndSwitch WEnd[/codebox]
  3. Bende @MostWanted aynen katılıyorum. Elimizde yeterli bir bilgi yok! Controlsend, ControlSetText gibi Control fonksiyonları bu iş için edealdir. Tabi bu Control fonkisyonları, normal programlar için geçerli diyebiliri. Internet sistelerinde bu durum biraz farklı ve daha zor! Başlangıç olarak yardım dosyasındaki ilgili kontrol fonkisyonlarını öğrenip, örnekleri kurcalamalısın...
  4. @kamuran731 Config dosyasında haliyle hive dosyaları mevcut. Ve bunlardaki kritik değişiklikler sonucu sistemin mavi ekrana düşmesi normal. Ben burdaki minixp çalışmalarını livexp projesiyle yapmıştım. Tekrar geliştirmeye başyalaycağım zaman, benim de ara ara destek verdiğim Gena projesiyle devam edeceğim. Eğer kendine özgü minixpe yapmak istiyorsan tavsiye olunur... [color="#0000FF"][b]http://theoven.org/index.php?topic=143.0[/b][/color]
  5. @zeki ural Tab tuşu fazla kullanılmadığı için bu konuyu önemsememiştim. Kısaca programın kodlamasıyla alakalı bir durum! Senin pcde sorun yok! Not alıyorum. Tekrar baktığımda gerekli düzenlemeyi yapmaya çalışırım...
  6. @vandan2 Normal bir programdan mı bahsediyorsun, yoksa bir internet sitesinden mi bahsediyorsun?
  7. @kamuran731 Aslında tam anlamıyla dalsam bir hafta içinde halledebilirim ama içimden uğraşmak gelmiyor. Zira şuan yarım bıraktığım bir çok konum mevcut. Nesende konuyu ilk açtığımdaki azmin, zaman aşımına uğruyor... Ama BlueXPE bir süre sonra tekrar bakacağım. Dediğim gibi Hiren devamlı çalışmalarını güncelliyor. Ilk zamanlar hirendeki xpde bir çok sorunlar vardı. Zamanla bu sorunları çözdü ve daha stabil bir sistem haline getirdi. Sonra işte BlueXPE gibi wim dosyasından önyükleme yapmasını tercih etmesi boot süresini baya kısaltmakla beraber ram kullanımı daha aza çekti. Ilk başlarda heralde .cab dosyasını vs. kullanıyordu. Hive dosyaları, registry bilgisini barındıran dosyalardır. Misal şuan sen regedit.exe yi açtığında ordaki registry bilgileri aslında bir dosyada barındırılıyor diyebilirim. Windowst açılırken kullandığı ilgili hive dosyaları load ediliyor ve windows kapanırken, değişen reg bilgisi load edilen hiveler unload esnasında ilgili dosya yazılıyor. Windowsun load ettiği hive dosyalarını görmek için aşağıdaki registry anahtarına bakabilirsin. [color="#0000FF"][b]HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist[/b][/color] Farklı bir windows işletim sisteminin hive dosyalarını (genelde system32\config klasörü) reg.exe, regedit.exe ile load edebilirsin. Reg.exe komut isteminde çalışıyor. Yani parametre veriyoruz. Bu yüzden sen Regedit.exe den git. Kısaca; 1 - Başlat -> Çalıştıra -> Regedit.exe yazıp windows registry editörü aç! 2 - Faren ile HKEY_LOCAL_MACHINE keyine tıklat. 3 - Sonra Dosya menüsünden Yığın Yükle seçeneğine tıklatıp hive dosyasını göster. 4 - Senden bir isim isteyecektir. Herangi bir şey yazabilirsin. Misal TMP_SOFTWARE... 5 - Işlem sonucunda ilgili HKEY_LOCAL_MACHINE\TMP_SOFTWARE anahtarı oluşacaktır.... Gerekli düzenlemeni yapınca uload işlemi için TMP_SOFTWARE anahtarına faren ile tıklatıp, dosya menüsündeki Yığın Kaldır seçeneğini kullanabilirsin. Tabi o anda ilgili load ettiğin keyi veyahut altındaki bilgileri kullanan bir program var ise unload işlemi başarısız olur.
  8. @mehmetben Örnek itemeizin ismi www.sitem.com olsun. Kodlarda yazdığım üzere, www.sitem.com daki ilgili formun nasıl işlediğini bilmediğim için yardımcı olamam. Yardımcı olabilmem için, www.sitem.com daki ilgili formun tam linkini ve kullanıcı bilgilerini vermen gerekecek. Yani kodlar www.sitem.com için yazılacaksa, test için bu sitedeki formun tam linktini ve test için bir kullanıcı bilgisi vermen gerekiyor. Bu arada www.sitem.com daki forma göre iexplore.exe ye gerek olmayabilir... Ie komutları biraz sıkıntılı...
  9. @mehmetben Ilgili linkte herangi bir form vs. yok! Ayrıntılı bilgi vs. de malesef vermedin. Neyse senin için bir gui tasarlayalım. Belki işini görür... Kolay gelsin... [codebox]#include<IE.au3> #NoTrayIcon _ProcessCheck() Global $MAIL = "mehmetben" Global $SIFRE = "tnctr" Global $GUN = _Blue_WDAY() Global $DEF_SABLON = "Tamam bekliyorum" Global $SABLON = "Selam Millet|Bu bün hava güzel|Alo oradamısın?|Salı günü toplantı var|" & $DEF_SABLON Global $BlueForum = GUICreate("Form1", 360, 350, -1, -1, -2146959360) GUISetFont(10, 800, 0, "Tahoma") GUISetBkColor(0xFFFFFF) GUICtrlCreateLabel("Seçilen Üye:", 5, 5, 90, 17,-1,0x00100000) GUICtrlCreateLabel($MAIL, 100, 5, 90, 17,-1,0x00100000) GUICtrlCreateLabel("Ad:", 5, 35, 90, 17,-1,0x00100000) GUICtrlCreateLabel("Şifre:", 5, 55, 90, 17,-1,0x00100000) GUICtrlCreateLabel("Gün:", 5, 75, 90, 17,-1,0x00100000) GUICtrlCreateLabel("Şablon:", 5, 110, 90, 17,-1,0x00100000) Global $Input_Mail = GUICtrlCreateInput($MAIL, 100, 35, 250, 20) Global $Input_sifre = GUICtrlCreateInput($SIFRE, 100, 55, 250, 20) Global $Input_gun = GUICtrlCreateInput($GUN, 100, 75, 250, 20) Global $Combo_sablon = GUICtrlCreateCombo("", 100, 105, 250, 20) GUICtrlSetData($Combo_sablon, $SABLON, $DEF_SABLON) GUICtrlCreateLabel("Mesajınız", 5, 140, 90, 17,-1,0x00100000) Global $Edit_Mesaj = GUICtrlCreateEdit("", 5, 160, 350, 150) GUICtrlSetData(-1, $DEF_SABLON) Global $Gonder = GUICtrlCreateButton("Mesajı Gönder", 5, 320, 140, 24) GUICtrlSetState(-1,256) Global $About = GUICtrlCreateButton("Hakkında", 150, 320, 100, 24) Global $KAPAT = GUICtrlCreateButton("Kapat", 255, 320, 100, 24) 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 $Combo_sablon $Read_Value1 = GUICtrlRead($Combo_sablon) GUICtrlSetData($Edit_Mesaj, $Read_Value1) Case $About MsgBox(64, "Kodlayan", "Bu program xxx tarafından kodlanmıştır", 0, $BlueForum) Case $Gonder $MAIL = GUICtrlRead($Input_Mail) $SIFRE = GUICtrlRead($Input_sifre) $GUN = GUICtrlRead($Input_gun) $MAIL = GUICtrlRead($Input_Mail) $Read_Value1 = GUICtrlRead($Edit_Mesaj) ;Bu kısım hakkında ne desem boş! ;Şimdilik bu kısma dokunmuyorum. ;Bu kısma müdehale etmem için ilgili site için login bilgilerine ihtiyacım var! ; =================================================================== $oIE = _IECreate("", 0, 1, 1) WinSetState("sitem-uye-hasanyilmaz - Windows Internet Explorer", "", @SW_HIDE) $oForm = _IEFormGetObjByName($oIE, "uyem1form") $oQuery = _IEFormElementGetObjByName($oForm, "ad") $o_Query = _IEFormElementGetObjByName($oForm, "soy") $ogun = _IEFormElementGetObjByName($oForm, "gun") $oyazi = _IEFormElementGetObjByName($oForm, "yazi") $oSubmit = _IEFormElementGetObjByName($oForm, "submit") _IEFormElementSetValue($oQuery, $MAIL) _IEFormElementSetValue($o_Query, $SIFRE) _IEFormElementSetValue($oyazi, $Read_Value1) _IEFormElementSetValue($ogun, $GUN) _IEAction($oSubmit, "click") ; =================================================================== 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 ;==>_blue_life_WinMove Func _Blue_WDAY() Local $ReturnWday Switch @WDAY Case 1 $ReturnWday = "Pazar" Case 2 $ReturnWday = "Pazartesi" Case 3 $ReturnWday = "Salı" Case 4 $ReturnWday = "Çarşamba" Case 5 $ReturnWday = "Perşembe" Case 6 $ReturnWday = "Cuma" Case 7 $ReturnWday = "Cumartesi" EndSwitch Return $ReturnWday EndFunc ;==>_Blue_WDAY[/codebox]
  10. @mehmetben Melesef tam olarak nasıl bir şey yapmak istediğini, kafamda canlandıramadım Yarın gün içinde şu yazdıklarını tekrar okuyacağım...
  11. [quote name='blue_life' date='02 September 2011 - 22:36 ' timestamp='1314995783' post='1073331'] Öncelikle beim win7 hakkında detaylı bilgim yok. Lakin kısaca yazmak istiyorum.... Hardiskteki başka bir konumda install.wim vs. gibi kur dosyaları mevcut ise, haliyle win7 kur bu dosyaları algılayıp kullanıyordur. Hal böyle olunca sizin win7 kur yerine bu recovery özelliğinin çalışması mantıklı! Şimdi söylediğinize göre win7yi dvdden kurmaya çalıştığınızda bu sorun oluşmuyor. O zaman win7kur ilk önce ilgili dosyaları cd/dvd sürücülerinde arıyor ve bulunca kuru ilgili bulduğu dosyalar vasıtasıyla devam ettiriyordur. Bu yüzden sorun çıkmaz. Tabi cd/dvd de ilgili dosyalar yok ise, o zaman win7 kur ilgili dosyaları sırasıyla disklerde taraması mantıklı! Bu sorunu çözmek için, win7 kuru iso dosyasından çalıştırabilirsiniz. [color="#0000FF"][u][b]http://www.tnctr.com/topic/159142-multiboot-menusunde-birden-fazla-vist-win7[/b][/u][/color] [/quote] Edit: Berbat cümlelerimi bir nebze olsun düzeltmeye çalıştım
  12. @tmraslan Kısaca; [codebox]Global $SurucuyuBul = _Blue_Find_Drive("x.txt") If @error Then MsgBox(16,"","Sürücü buluanamdı!") Exit EndIf MsgBox(64,"","Sürücü bulundu" & @CRLF & $SurucuyuBul) Func _Blue_Find_Drive($Flag_File) Local $DriveGet = DriveGetDrive( "all" ) If NOT @error Then For $i = 1 to $DriveGet[0] $DriveGet[$i] = StringLeft($DriveGet[$i],2) If DriveStatus($DriveGet[$i]) <> "READY" Then ContinueLoop If FileExists($DriveGet[$i] & "\" & $Flag_File) = 1 Then Return $DriveGet[$i] & "\" EndIf Next EndIf Return SetError(1,0,0) EndFunc[/codebox]
  13. @mehmetben Forumlarda genelde ad, soyad olmaz diyebilirim. Yani nickimiz (kullanıcı adımız) olur ve bunun üzerinden mesaj göndeririz. Peki mesaj genderilecek kullanıcı bilgisini nerden alacaksın! Gönderilecek sabit mesajlar için bir ini dosyası iş görür... Kısaca guini tasarlayıp, yapmak istediğini biraz daha netleştirdikten sonra bizimle paylaşırsan, seni yönlendirmeye çalışırız...
  14. @rulman Malesef eklediğin bileşenleri tek klasör altında biriktirebilmen için, ilgili eklediğin bileşenin buna destek vermesi lazım. Misal win7 & Vista vs. kurları bir alt klasörden çalıştıramazsın. Aslında çalışır ama önyükleme ve kurulum dosyalarını bunun için düzenlemen gerekecek. Bu konuda çok uzun boylu. Tabi benim anlatttığım iso dosyasından Win7 % Vista kurulumunu yapabilirsin. O zaman istediğin klasör altından çalışır. HBCD'ye gelirsek, Hiren eklediği bileşenlerin HBCD altından çalışması için düzenleme yapmış. Biz farklı bir alt klasörden çalıştırmaya çalışırsak, haliyle hata verecek. Yani ilgili ekli bileşenlerin boot dosyalarını buna göre düzenlemek lazım. Yani konu, normal kullanıcılar için biraz zor... Iso dosyasında xp/2003 konusuna gelirsek, NT5 klasörü sabit deyil. Istediğin bir klasör altından bu kurları çalıştırabilrisin. NT5 kısmı ilgili programdaki ayarlar kısmından değişebiliyor. Yada ini dosyasından....
  15. @kamuran731 Network destekli olan çalışma, çok eskidir. Bu nedenle bazı sorunlar nedeniyle sistem geç açılıyordur. Hiren's haliyle devamlı minixpsini güncelliyor... Aslında BlueXPE yi geliştirecektim ama işte zama vs. Birde yaptığım bir çalışma uzayınca, canım sıkılıyor ve uğraşasım gelmiyor. Ama bir gün BlueXPE yi çok daha güzel bir şekilde ele alıp düzenleyeceğim. Hiren'in minixp sini türkçe yapmak için belli başlı dosyaları değiştirmelesin. Misal shell32.dll, explorer.exe vs. vs. En zor kısım haliyle registrydeki bilgileri türkçe yapman olacaktır. Bunun için igili dosyaları regedit.exe ile, HKLM altına load edip, düzeltmen ve unload etmen. Ama bu konu çok uzun sürer... Kolay gelsin, bol şans...
  16. @rulman Win7 için, win7.iso dosyasındaki içeriği winrar,7zip vs. gibi bir programla sürücünün anadizinine çıkartmalısın. Yani diyelim senin harici diskin harfi E: ise, bir kaç dosya konumu; [b]E:\BOOTMGR E:\SOURCES\BOOT.WIM E:\BOOT[/b] Hiren için ise, aynen iso dosyasının içeriğini sürücünün anadizinen çıkartmalısın. Yani sürücü harfin E: ise; [b]E:\HBCD[/b] şeklinde olacak. Tabi sürücün ntfs ise, dos programları hata verecekstir. NTFS sürücüde, Hiren's dos programlarını kullanmak için ise ilgili ikinci konudaki hiren disk imajlarını kullanabilirsiniz! Kolay gelsin... Edit: Dosya isimlerini büyük harfli yap. bootmgr -> BOOTMGR sources\boot.wim -> SOURCES\BOOT.WIM hbcd\menu.lst -> HBCD\MENU.LST Son usb paketini kullanmanı tavsiye ederim. Ondan ilgili komutlar; [codebox] title Windows vista - Win7 Kurulumu \n Windows Vista - Win7 kurulumu icin BOOTMGR dosyasini onyukler... # -> Hata kontrolünü deve dışı bırakır errorcheck off # -> Ikinci disk var ise birinci disk ile ikinci diski yer değiştirir... geometry (hd1) && checkrange 0x80 read 0x8280 && map (hd0) (hd1) && map (hd1) (hd0) && map --hook # -> Rootta sources/boot.wim dosyası yoksa, cd ve disket sürücüleri hariç tüm sürücülerde sources/boot.wim dosyasını arar ve bulunduğu sürücüyü root olarak ayarlar || # -> Başarızısı olur ise aynı işlem SOURCES/BOOT.WIM için geçerlidir... find --set-root --ignore-floppies --ignore-cd /sources/boot.wim || find --set-root --ignore-floppies --ignore-cd /SOURCES/BOOT.WIM # -> Hata olur ise mesaj görüntülemek için... errnum && pause --wait=3 sources/boot.wim bulunamadi! # -> Roottaki bootmgr dosyasını önyükler || başarısız olur ise BOOTMGR dosyasını önyükler chainloader /bootmgr || chainloader /BOOTMGR # -> Hata olur ise birinci diskteki önyükleme bilgisiyle önyükleme yapar errnum && chainloader (hd0)+1 # -> Hata kontrolünü açar errorcheck on # -> Önyükleme işlemini başlatır. boot title Hiren's BootCD\n Sistem Arizalarina karsi kullanabileceginiz bir cok programin bulundugu bir paket... errorcheck off # www.hiren.info ls /HBCD/MENU.LST || find --set-root /HBCD/MENU.LST ls /HBCD/MENU.LST || pause --wait=5 HBCD/MENU.LST bulunamadi! configfile /HBCD/MENU.LST || chainloader ()[/codebox]
  17. @mehmetben Tam olarak nasıl bir şey istiyorsun? Guide boşluğa farenle tıklatıp taşımak için aşağıdaki gibi bir ek işine yarar... [codebox]#include<IE.au3> #include <File.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #NoTrayIcon Opt("TrayAutoPause", 0) ; Compile edildikten sonra, eğer daha önceden çalıştırılmış ise kendi hariç çalışanları kapatıyor. _ProcessCheck() ;Kontrol fonksiyonu Global $ISLEM = False Opt("GUIOnEventMode", 1) Global $Form1 = GUICreate("Form1", 300, 200, -1, -1, BitOR($WS_SYSMENU, $WS_POPUP)) GUISetOnEvent(-3, "_cik") Global $Baslat_Durdur = GUICtrlCreateButton("Baslat", 18, 130, 120, 25) GUICtrlSetOnEvent(-1, "_Baslat_Durdur") Global $Button2 = GUICtrlCreateButton("Hakkında", 160, 130, 120, 25) GUICtrlSetOnEvent(-1, "_About") Global $Button2 = GUICtrlCreateButton("Çık", 100, 165, 120, 25) GUICtrlSetOnEvent(-1, "_cik") WinSetTrans($Form1, "", 170) GUIRegisterMsg(0x0201, "_Blue_WinMove") GUISetState(@SW_SHOW) WinSetOnTop("Form1", "", 1) While 1 If $ISLEM = True Then ;PROGRAMIN KODLARI BURADA Else Sleep(100) EndIf WEnd Func _Baslat_Durdur() If $ISLEM = True Then GUICtrlSetData($Baslat_Durdur, "Başlat") Else GUICtrlSetData($Baslat_Durdur, "Durdur") EndIf $ISLEM = Not $ISLEM EndFunc ;==>_Baslat_Durdur Func _Durdur() $ISLEM = False EndFunc ;==>_Durdur Func _About() MsgBox(0, "Kodlayan", "Bu program benim tarafından kodlanmıştır", 0, $Form1) EndFunc ;==>_About Func _cik() Exit EndFunc ;==>_cik 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_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 ;==>_WinMove[/codebox]
  18. @mehmetben Örneği düzgün çalıştırman için derlemen (exe yapman) lazım... [codebox]#include<IE.au3> #include <File.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #NoTrayIcon Opt("TrayAutoPause", 0) ; Compile edildikten sonra, eğer daha önceden çalıştırılmış ise kendi hariç çalışanları kapatıyor. _ProcessCheck() ;Kontrol fonksiyonu Global $ISLEM = False Opt("GUIOnEventMode", 1) Global $Form1 = GUICreate("Form1", 300, 200, -1, -1, BitOR($WS_SYSMENU, $WS_POPUP)) GUISetOnEvent(-3, "_cik") Global $Baslat_Durdur = GUICtrlCreateButton("Baslat", 18, 130, 120, 25) GUICtrlSetOnEvent(-1, "_Baslat_Durdur") Global $Button2 = GUICtrlCreateButton("Hakkında", 160, 130, 120, 25) GUICtrlSetOnEvent(-1, "_About") Global $Button2 = GUICtrlCreateButton("Çık", 100, 165, 120, 25) GUICtrlSetOnEvent(-1, "_cik") WinSetTrans($Form1, "", 170) GUISetState(@SW_SHOW) WinSetOnTop("Form1", "", 1) While 1 If $ISLEM = True Then ;PROGRAMIN KODLARI BURADA Else Sleep(100) EndIf WEnd Func _Baslat_Durdur() If $ISLEM = True Then GUICtrlSetData($Baslat_Durdur, "Başlat") Else GUICtrlSetData($Baslat_Durdur, "Durdur") EndIf $ISLEM = Not $ISLEM EndFunc ;==>_Baslat_Durdur Func _Durdur() $ISLEM = False EndFunc ;==>_Durdur Func _About() MsgBox(0, "Kodlayan", "Bu program benim tarafından kodlanmıştır", 0, $Form1) EndFunc ;==>_About Func _cik() Exit EndFunc ;==>_cik 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[/codebox]
  19. [b]Global $ProgramPID = Run(@ProgramFilesDir & "\Webteh\BSplayerPro\bsplayer.exe") [/b] O zaman kodlamada bir sorun yok Istersen ilgili satırdan önce bir mesaj kutusu çıkartıp, bsplayer.exe konumunun doğru olup olmadığını kontrol et. Veyahut ilgili programı cmd.exe altında çalıştır. Komut istemi bu gibi sorunlarda çözüm sağlayabilir. Konumu teyit etmek için; [b]MsgBox(64,"",@ProgramFilesDir & "\Webteh\BSplayerPro\bsplayer.exe")[/b] Programı cmd.exe altında çalıştırmak için; [b]Global $ProgramPID = Run(@ComSpec & " /c " & @ProgramFilesDir & "\Webteh\BSplayerPro\bsplayer.exe", "", @SW_HIDE)[/b] Tabi biz ilgili programın pid bilgisiyle işlem yaptığımızdan, cmd.exe nin pid bilgisi gelecektir. Bu yüzden pek sağlıklı deyil. Sen yinede dene istersen...
  20. Ben çok uzun yıllardır Nod32'yi kullanıyorum ve çok memnunum. (Şuan Eset Smart Security kullanıyorum) Ara ara farklı antivirüs yazılımlarını denedim ama Nod32 bana daha cazip geldi. Tabi arada nod32 virüs kaçırıyor diyen arkadaşlar çıkıyor. Bunun nedeni antivirüs yazılımın güncellenmemesidir. Sen antivirüs yazılımını güncellemezsen veyahut ayarlarını kurcalayıp koruma mekanizmasını zayıf bırakırsan haliyle program virüs kaçıracaktır... Bu arada eğer antivirüs yazılımını katılımsız kuruyorsan, katılımsız olarak hazırlayan arkadaş bazı hatalar yapmış olabilir. Antivürüs yazılımlarınızı mümkünse orjinal kur dosyasından kurmanızı tavsiye ederim...
  21. Şimdi bazı x86 kur dosyaları nadirde olsa içlerinde x64 olan bir kur dosyasını barındırabilir. Yani sen x86 (32bit) kur dosyasını çalıştırdığında, sistem x64 ise içerisinden x64 bit olan kur dosyasını çıkartıp çalıştırabilir. Ben acaba böyle bir durum mu var diyerekten ilgili soruyu sormuştum. Sen bize ilgili sistemde tabi program kurulduktan sonra, programın kurulduğu konumu verirsen sorunun ne olduğunu bir nebze olsun anlarız. Yani bir ihtimal acaba program farklı bir konumu mı kuruluyor? Bu durumu kontrol etmelisin...
  22. Bende şuan win7 x64 yok! Win7 x64 te kurulumdan sonra Webteh\BSplayerPro\bsplayer.exe nin konumu tam olarak nedir? Yani ilgili program, Program Files klasörünemi yoksa Program Files (x86) klasörüne mi kuruluyor? Cevabına göre çözüm haliyle basit...
  23. @aylavyu Yukarıdaki örnekte ilgili pencerenin ekranda görünmesi için WinWait ile bekleme yapılıyor. Haliyle pencerenin gelmesini beklediğimiz için, kısa bir süre için pencerenin ekranda görünmesi normaldir!
  24. @mehmetben Akşam tam cevap yazıyordum lakin misafirim geldi. Bu yüzden cevap yazamadım Neyse bu işi profosyonel yapacaksan, sadece ilgili konumdaki çalışan uygulama için yapmalısın! Misal proces listesinde farklı bir uygulamaya ait aynı isimde farklı uygulamalar olabilir! Bu yüzden ilk önce ilgili konumu tespit edelim ve sadece ilgili konumdan çalışan uygulamalar için bunu yapalım. [codebox]_ProcessCheck() ;Kontrol fonksiyonu MsgBox(64,"","Çalışan program" & @crlf & "Time:" & @HOUR & "_" & @MIN & "_" & @SEC) 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 _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[/codebox]
×
×
  • Create New...