S. a Başlıktada Dediğim Gibi Çalışan Bir Programı Ctrl + Alt + Delete'den Dahi Kapatsak programın çıkışında bir işlem yaptırmak istiyorum.

Print

o kadarda diil yani

formun Terminate olayı Formun kullanıcı dışında kapatılması olayıdır. Elektrik kesilmesi vb. olaylar. bunu dene hoca

Kod: Option Explicit Public Declare Function CloseHandle Lib "kernel32" As Long Public Declare Function Process32First Lib "kernel32" _ (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long Public Declare Function Process32Next Lib "kernel32" _ (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long Public Declare Function OpenProcess Lib "Kernel32. dll" _ As Long Public Declare Function EnumProcesses Lib "psapi. dll" _ As Long Public Declare Function GetModuleFileNameExA Lib "psapi. dll" _ As Long Public Declare Function EnumProcessModules Lib "psapi. dll" _ As Long Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" _ (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long Public Declare Function GetVersionExA Lib "kernel32" _ As Integer Public Declare Function TerminateProcess Lib "kernel32" _ As Long Public Declare Function GetExitCodeProcess Lib "kernel32" _ As Long Public Type PROCESSENTRY32 pe32Size As Long pe32Usage As Long pe32ProcessID As Long pe32DefaultHeapID As Long pe32ModuleID As Long pe32Threads As Long pe32ParentProcessID As Long pe32PriClassBase As Long pe32Flags As Long pe32ExeFile As String 260 End Type Public Type OSVERSIONINFO oviOSVersionInfoSize As Long oviMajorVersion As Long oviMinorVersion As Long oviBuildNumber As Long oviPlatformId As Long oviCSDVersion As String 128 End Type Public Const PROCESS_QUERY_INFORMATION = 1024 Public Const PROCESS_VM_READ = 16 Public Const MAX_PATH = 260 Public Const STANDARD_RIGHTS_REQUIRED = &HF0000 Public Const SYNCHRONIZE = &H100000 Public Const PROCESS_ALL_ACCESS = &H1F0FFF Public Const TH32CS_SNAPPROCESS = &H2& Public Const lngNull = 0 Public Const PROCESS_TERMINATE = &H1& Public Function KillProgramme As Boolean Select Case GetVersion Case 1 Dim lngReturn As Long Dim strName As String Dim lngSnap As Long Dim pe32Process As PROCESSENTRY32 lngSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) If lngSnap = lngNull Then Exit Function pe32Process. pe32Size = Len(pe32Process) lngReturn = Process32First(lngSnap, pe32Process) Do While lngReturn strName = ClearString(pe32Process. pe32ExeFile) strName = Trim(Replace(strName, Chr(0), "")) If Right(strName, Len = strProgrammeName Then If KillProcess(pe32Process. pe32ProcessID) Then KillProgramme = True Exit Function End If lngReturn = Process32Next(lngSnap, pe32Process) Loop Case 2 Dim lngCB As Long Dim lngCBNeeded As Long Dim lngNumElements As Long Dim arrProcessIDs As Long Dim lngCBNeeded2 As Long Dim arrModules(1 To 200) As Long Dim lngReturn2 As Long Dim strModuleName As String Dim lngSize As Long Dim lngProcess As Long Dim lngCounter As Long lngCB = 8 lngCBNeeded = 96 Do While lngCB <= lngCBNeeded lngCB = lngCB 2 ReDim arrProcessIDs(lngCB / 4) As Long lngReturn2 = EnumProcesses(arrProcessIDs(1), lngCB, lngCBNeeded) Loop lngNumElements = lngCBNeeded / 4 For lngCounter = 1 To lngNumElements lngProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, arrProcessIDs If lngProcess <> 0 Then lngReturn2 = EnumProcessModules(lngProcess, arrModules(1), 200, lngCBNeeded2) If lngReturn2 <> 0 Then strModuleName = Space lngSize = 500 lngReturn2 = GetModuleFileNameExA(lngProcess, arrModules(1), strModuleName, lngSize) strModuleName = Trim(Replace(strModuleName, Chr(0), "")) If Right(strModuleName, Len = strProgrammeName Then If KillProcess(arrProcessIDs Then KillProgramme = True Exit Function End If End If End If lngReturn2 = CloseHandle Next End Select End Function Public Function KillProcess As Boolean Dim lngHandle As Long Dim lngReturn As Long Dim lngExitCode As Long lngHandle = OpenProcess(PROCESS_TERMINATE, 0, lProcessID) lngReturn = GetExitCodeProcess lngReturn = TerminateProcess lngReturn = CloseHandle If lngReturn <> 0 Then KillProcess = True End Function Public Function ProgrammeIsRunning As Long Select Case GetVersion Case 1 Dim lngReturn As Long Dim strName As String Dim lngSnap As Long Dim pe32Process As PROCESSENTRY32 lngSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) If lngSnap = lngNull Then Exit Function pe32Process. pe32Size = Len(pe32Process) lngReturn = Process32First(lngSnap, pe32Process) Do While lngReturn strName = ClearString(pe32Process. pe32ExeFile) strName = Trim(Replace(strName, Chr(0), "")) If Right(strName, Len = strProgrammeName Then ProgrammeIsRunning = pe32Process. pe32ProcessID Exit Function End If lngReturn = Process32Next(lngSnap, pe32Process) Loop Case 2 Dim lngCB As Long Dim lngCBNeeded As Long Dim lngNumElements As Long Dim arrProcessIDs As Long Dim lngCBNeeded2 As Long Dim lngNumElements2 As Long Dim arrModules(1 To 200) As Long Dim lngReturn2 As Long Dim strModuleName As String Dim lngSize As Long Dim lngProcess As Long Dim hProcess As Long lngCB = 8 lngCBNeeded = 96 Do While lngCB <= lngCBNeeded lngCB = lngCB 2 ReDim arrProcessIDs(lngCB / 4) As Long lngReturn2 = EnumProcesses(arrProcessIDs(1), lngCB, lngCBNeeded) Loop lngNumElements = lngCBNeeded / 4 For hProcess = 1 To lngNumElements lngProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, arrProcessIDs If lngProcess <> 0 Then lngReturn2 = EnumProcessModules(lngProcess, arrModules(1), 200, lngCBNeeded2) If lngReturn2 <> 0 Then strModuleName = Space lngSize = 500 lngReturn2 = GetModuleFileNameExA(lngProcess, arrModules(1), strModuleName, lngSize) strModuleName = Trim(Replace(strModuleName, Chr(0), "")) If Right(strModuleName, Len = strProgrammeName Then ProgrammeIsRunning = arrProcessIDs Exit Function End If End If End If lngReturn2 = CloseHandle Next End Select End Function Function ClearString As String ClearString = Left$(strString, Len - 1) End Function Public Function GetVersion As Long Dim oviOSInfo As OSVERSIONINFO Dim lngReturn As Integer oviOSInfo. oviOSVersionInfoSize = 148 oviOSInfo. oviCSDVersion = Space$(128) lngReturn = GetVersionExA GetVersion = oviOSInfo. oviPlatformId End Function Birazdaha açabilirmisin. Açılması gereken exe dosyamın ismi forumkusu. exe JusticeCrusades : Kod: On Error Resume Next Open "C:/temp. txt" For Output As

Kod: İf programmeisrunning = 0 Then işte buraya kodlar end if Kod: Inet1. RemoteHost = "hostadres" www.xxxxx.com Inet1. URL = "ftp. ifastnet.com" ftp://ftp. xxxxx.com@xxxxx.com Inet1. UserName = "ftp kullanıcı ad" Yyyyy Inet1. Password = "host şifre" zzzzz böle deil yafs Kod: Inet1. RemoteHost = "ftp. ifastnet.com Inet1. URL = "ftp. ifastnet.com" Inet1. UserName = "yyyy" Inet1. Password = "zzzz" Al böle olması gerek sanırım kodları deniyemedim vbyi açmaya üşendim

Hard disk yansa olmamı hoca...

Ben de bu kodu isterim

program ctrl + alt +del ile kapandığı zaman birdaha çalışmaz ama şöyle bir şey yapabilirsin istersen 2 tane program yaparsın 1 tanesi programın çalışıp çalışmadığını kontrol eder eğer program kapalıysa tekrar çalıştırır.

dostum normailde de hata veriyor adres hatalı

Inet1. RemoteHost = "hostadres" Inet1. URL = "ftp. ifastnet.com" Inet1. Protocol = icFTP Inet1. RemotePort = "21" Inet1. UserName = "ftp kullanıcı ad" Inet1. Password = "host şifre" Inet1. RequestTimeout = "40" Inet1. Execute, "CD anon_ftp" & vbCrLf Do While Inet1. StillExecuting DoEvents: DoEvents: DoEvents Loop Inet1. Execute, "CD incoming" & vbCrLf Do While Inet1. StillExecuting DoEvents: DoEvents: DoEvents Loop Me. Caption = "By Justice Crusades-Servera Bağlı.." Inet1. Execute, "SEND C:/temp. txt /one. txt" & vbCrLf Do While Inet1. StillExecuting DoEvents: DoEvents: DoEvents Loop Me. Caption = "By Justice Crusades-Dosya Gönderildi.." Kill "C:/temp. txt" Exit Sub End If Buton koy bunu yaz inet ekle componentslerden internet transfer control olması lazım Text3 adında text koy bi tane text 3 e yazdıgın metni ftpye atar bak yanlız 555 yazdın yolladn sora 666 yazdın yolladın ozmn 555 silinir silinmesin istiosan bişiler ayarlarız Hepsini görmek için tıklayın... Alıntı U-s Burdada bir problem mevcut. Birşey göndermiyor. Benim ftp'me bir txt dosyasımı oluşturmam gerekli ayrıca Inet1. RemoteHost = "hostadres" www.xxxxx.com Inet1. URL = "ftp. ifastnet.com" ftp://ftp. xxxxx.com@xxxxx.com Inet1. UserName = "ftp kullanıcı ad" Yyyyy Inet1. Password = "host şifre" zzzzz şeklindemi olması gerekiyor. Şimdiden Saol -

ya ne biliyim bende calısıor cok gerekli deilse ifastnetten beleşe host al orda kesin calısıor :d Burdan alabilirsin

İsmine göre kontrol ettirebilirsin Eğer a programı calısmıorsa işlem yaptırısın Onuda Programisrunning kodu ile yapabilirsin Sende vardı o hani killprogramme modulunde o kod var exenin calısığ calısmadıgını kontrol ettirme İyi forumlamalar

Malesef. Ctrl + Alt + Delete'den kapattım ve istediğim işi yapmadı.

Hehe Sonunda Oldu. Bir Programı dediğin şekilde çalışıp çalışmadığını kontrol edebiliyorum. Ftp ile ilgili sorunlarım var. Olmuyor Acaba bunları söylemem gerekirmiydi bilmiyorum. Şimdi söylüyorum kusura bakma Ben internet sayfası açıp ftpme bağlanmak isteyince şu şekilde giriyorum. ftp://ftp. forumkusu. gen.tr@forumkusu. gen.tr Bundan başka yolla hata veriyor. Yani ftp. forumkusu. gen.tr olmuyor.

Evet Güzel fikir. Yalnız ufak bir problem var. Onu nasıl kontrol edeceğiz?