public void ActivateApplication()
        {
            var mainFormHandle = IntPtr.Zero;

            foreach (var process in Process.GetProcesses().Where(x => x.ProcessName.Contains("SiteManager")))
            {
                if (process.MainWindowHandle.ToInt32() == 0)
                {
                    continue;
                }
                mainFormHandle = process.MainWindowHandle;
                break;
            }
            if (mainFormHandle.ToInt32() == 0)
            {
                return;
            }
            WinAPIHelper.ShowWindow(mainFormHandle, WindowShowStyle.ShowMaximized);
            WinAPIHelper.MakeTopMost(mainFormHandle); WinAPIHelper.MakeNormal(mainFormHandle);
            uint lpdwProcessId;

            WinAPIHelper.AttachThreadInput(WinAPIHelper.GetCurrentThreadId(), WinAPIHelper.GetWindowThreadProcessId(WinAPIHelper.GetForegroundWindow(), out lpdwProcessId), true);
            WinAPIHelper.SetForegroundWindow(mainFormHandle);
            WinAPIHelper.AttachThreadInput(WinAPIHelper.GetCurrentThreadId(), WinAPIHelper.GetWindowThreadProcessId(WinAPIHelper.GetForegroundWindow(), out lpdwProcessId), false);
        }
        public long GetValue()
        {
            long fileTime = 0L;

            WinAPIHelper.GetSystemTimePreciseAsFileTime(out fileTime);
            return(DateTime.FromFileTime(fileTime).Ticks);
        }
Exemple #3
0
        public long GetValue()
        {
            long counter = 0L;

            WinAPIHelper.QueryPerformanceCounter(out counter);
            return((long)((double)counter * TickFrequency));
        }
 public void CreateMessage(string subject, string attachmentPath)
 {
     try
     {
         var handle      = IntPtr.Zero;
         var processList = Process.GetProcesses();
         foreach (var process in processList.Where(x => x.ProcessName.ToLower().Contains("outlook")).Where(process => process.MainWindowHandle.ToInt32() != 0))
         {
             handle = process.MainWindowHandle;
             break;
         }
         Utilities.ActivateForm(handle, true, false);
         var mi = (MailItem)_outlookObject.CreateItem(OlItemType.olMailItem);
         mi.Attachments.Add(attachmentPath, OlAttachmentType.olByValue, 1, Path.GetFileNameWithoutExtension(attachmentPath));
         mi.Subject = subject;
         mi.Display(false);
         var count = 100000;
         handle = IntPtr.Zero;
         while (handle == IntPtr.Zero && count > 0)
         {
             handle = WinAPIHelper.FindWindow(string.Empty, subject + "- Message (HTML)");
             count--;
             System.Windows.Forms.Application.DoEvents();
         }
         if (handle != IntPtr.Zero)
         {
             Utilities.ActivateForm(handle, true, false);
         }
     }
     catch (Exception e)
     {
         PopupMessageHelper.Instance.ShowWarning(e.Message);
     }
 }
 public static void ReleaseGlobalSemaphore()
 {
     foreach (var p in AppHelper.GetAllProcessesButThis())
     {
         WinAPIHelper.SendStringMessage(p.MainWindowHandle, "ReleaseSemaphore");
     }
     _sem.Close();
 }
 public static void TakeGlobalSemaphore()
 {
     TakeSemaphore();
     foreach (var p in AppHelper.GetAllProcessesButThis())
     {
         WinAPIHelper.SendStringMessage(p.MainWindowHandle, "TakeSemaphore");
     }
 }
Exemple #7
0
        protected override async Task DoAction(CancellationToken cancellationToken)
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                await WinAPIHelper.PressKey(Config.CrouchKey, Config.Press);

                await Task.Delay(Config.Cooldown);
            }
        }
        protected override async Task DoAction(CancellationToken cancellationToken)
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                await WinAPIHelper.PressKey(Config.HookResistanceKey, 50);

                await Task.Delay(50);
            }
        }
Exemple #9
0
 private void OnCaptionMouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button != MouseButtons.Left)
     {
         return;
     }
     WinAPIHelper.ReleaseCapture();
     WinAPIHelper.SendMessage(Handle, WinAPIHelper.WM_NCLBUTTONDOWN, WinAPIHelper.HTCAPTION, IntPtr.Zero);
 }
Exemple #10
0
 public void StopWatching()
 {
     if (_checkProcess.IsBusy)
     {
         _checkProcess.CancelAsync();
     }
     _checkTimer.Stop();
     WinAPIHelper.UnhookWinEvent(_hook);
 }
Exemple #11
0
        static QPCBroker()
        {
            if (!WinAPIHelper.QueryPerformanceFrequency(out QPCBroker.Frequency))
            {
                throw new NotSupportedException();
            }

            TickFrequency = TicksPerSecond / (double)QPCBroker.Frequency;
        }
        private void FormFileDescription_Shown(object sender, EventArgs e)
        {
            WinAPIHelper.ShowWindow(Handle, WindowShowStyle.ShowNormal);
            WinAPIHelper.MakeTopMost(Handle); WinAPIHelper.MakeNormal(Handle);
            uint lpdwProcessId;

            WinAPIHelper.AttachThreadInput(WinAPIHelper.GetCurrentThreadId(), WinAPIHelper.GetWindowThreadProcessId(WinAPIHelper.GetForegroundWindow(), out lpdwProcessId), true);
            WinAPIHelper.SetForegroundWindow(Handle);
            WinAPIHelper.AttachThreadInput(WinAPIHelper.GetCurrentThreadId(), WinAPIHelper.GetWindowThreadProcessId(WinAPIHelper.GetForegroundWindow(), out lpdwProcessId), false);
        }
Exemple #13
0
        /// <summary>
        /// 单个粘贴
        /// </summary>
        /// <param name="clip"></param>
        private void SinglePaste(ClipModel clip)
        {
            //设置剪切板前取消监听
            WinAPIHelper.RemoveClipboardFormatListener(wpfHwnd);

            clipService.SetValueToClipboard(clip);
            //Thread.Sleep(100);
            SendPasteKey();
            //设置剪切板后恢复监听
            WinAPIHelper.AddClipboardFormatListener(wpfHwnd);
        }
Exemple #14
0
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            webView1?.Dispose();

            if (wpfHwnd == IntPtr.Zero)
            {
                WinAPIHelper.RemoveClipboardFormatListener(wpfHwnd);
                HotKeyManager.UnregisterHotKey(wpfHwnd, hotkeyAtom);
                HotKeyManager.GlobalDeleteAtom(hotkeyAtomStr);
            }
        }
Exemple #15
0
        /// <summary>
        /// 添加剪切板监听, 更改窗体属性,不在alt+tab中显示
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Window_SourceInitialized(object sender, EventArgs e)
        {
            HwndSource source = PresentationSource.FromVisual(this) as HwndSource;

            source.AddHook(WndProc);
            wpfHwnd = new WindowInteropHelper(this).Handle;
            WinAPIHelper.AddClipboardFormatListener(wpfHwnd);

            int exStyle = (int)WinAPIHelper.GetWindowLong(wpfHwnd, -20);

            exStyle |= 0x00000080;
            WinAPIHelper.SetWindowLong(wpfHwnd, -20, exStyle);
        }
Exemple #16
0
        public void WriteTextBox()
        {
            string txt = "Hello Hook!";
            //获得窗体句柄
            IntPtr winHwnd = WinAPIHelper.FindWindow("WindowsForms10.Window.8.app.0.378734a", "MyWindow");
            //获得窗体上TextBox句柄
            IntPtr txtHwnd = WinAPIHelper.FindWindowEx(winHwnd, IntPtr.Zero, "WindowsForms10.EDIT.app.0.378734a", "");

            //向TextBox中写入内容
            WinAPIHelper.BringWindowToTop(winHwnd);
            IntPtr result  = WinAPIHelper.SendMessage(txtHwnd, 0x000C, (IntPtr)txt.Length, txt);
            IntPtr result1 = WinAPIHelper.SendMessage(txtHwnd, 0x000C, (IntPtr)0, txt);
        }
        public static void UpdateGlobalSettings()
        {
            foreach (var p in AppHelper.GetAllProcessesButThis())
            {
                WinAPIHelper.SendStringMessage(p.MainWindowHandle, "UpdateSettings");
            }

            if (_sem.Count != Setting.CopyCount)
            {
                ReleaseGlobalSemaphore();
                TakeGlobalSemaphore();
            }
        }
        public void LoadRateCards()
        {
            RateCardFolders.Clear();
            if (!_rootFolder.ExistsLocal())
            {
                return;
            }
            var rateCatdFolders = _rootFolder.GetLocalFolders().ToList();

            rateCatdFolders.Sort((x, y) => WinAPIHelper.StrCmpLogicalW(x.Name, y.Name));
            foreach (var rateCardFolder in rateCatdFolders.Select(rateCardFolder => new RateCardFolder(rateCardFolder)))
            {
                RateCardFolders.Add(rateCardFolder);
            }
        }
Exemple #19
0
 public void Disconnect()
 {
     if (ExcelObject != null)
     {
         foreach (Workbook workbook in ExcelObject.Workbooks)
         {
             workbook.Close();
         }
         uint processId;
         WinAPIHelper.GetWindowThreadProcessId(new IntPtr(ExcelObject.Hwnd), out processId);
         Process.GetProcessById((int)processId).Kill();
     }
     Utilities.ReleaseComObject(ExcelObject);
     GC.Collect();
 }
        private void OnMemoEditEditValueChanging(object sender, ChangingEventArgs e)
        {
            textBox.Text = e.NewValue?.ToString() ?? string.Empty;
            if (!_allowToSave)
            {
                return;
            }
            var linesCount = WinAPIHelper.SendMessage(textBox.Handle, 0x00BA, IntPtr.Zero, IntPtr.Zero);

            if (linesCount <= 2)
            {
                return;
            }
            textBox.Text = e.OldValue?.ToString() ?? string.Empty;
            e.Cancel     = true;
        }
Exemple #21
0
        public static Cursor CreateCursor(Bitmap bmp, Point hotspot)
        {
            if (bmp == null)
            {
                return(Cursors.Default);
            }
            var ptr = bmp.GetHicon();
            var tmp = new IconInfo();

            WinAPIHelper.GetIconInfo(ptr, ref tmp);
            tmp.IsIcon   = false;
            tmp.xHotspot = hotspot.X;
            tmp.yHotspot = hotspot.Y;
            ptr          = WinAPIHelper.CreateIconIndirect(ref tmp);
            return(ptr == IntPtr.Zero ? Cursors.Default : new Cursor(ptr));
        }
Exemple #22
0
 private void OnButtonMouseMove(object sender, MouseEventArgs e)
 {
     if (e.Button != MouseButtons.Left)
     {
         return;
     }
     if (_dragStartRectangle.IsEmpty)
     {
         return;
     }
     if (!_dragStartRectangle.Contains(e.Location))
     {
         WinAPIHelper.ReleaseCapture();
         WinAPIHelper.SendMessage(Handle, WinAPIHelper.WM_NCLBUTTONDOWN, WinAPIHelper.HTCAPTION, IntPtr.Zero);
     }
 }
        private static void TakeSemaphorFailed()
        {
            var procs = AppHelper.GetAllProcessesButThis();
            var count = procs.Length;

            switch (count)
            {
            case 1:
                MessageBox.Show("Application is already launched", "Info");
                WinAPIHelper.ShowWindow(procs[0].MainWindowHandle, ShowWindowCommands.Normal);
                break;

            default:
                MessageBox.Show("Allowable limit of " + count + " copies exhausted", "Info");
                break;
            }
        }
Exemple #24
0
    void FreeResources()
    {
        if (!m_Disposed)
        {
            if (m_Atom != 0)
            {
                WinAPIHelper.GlobalDeleteAtom(m_Atom);
            }

            //Se a classe implementa IDisposable:
            //base.Dispose();

            GC.SuppressFinalize(this);

            m_Disposed = true;
        }
    }
Exemple #25
0
 private void OnTabControlMouseDown(object sender, MouseEventArgs e)
 {
     if (AppManager.Instance.Settings.UserSettings.UseDockedStyle)
     {
         return;
     }
     if (e.Button != MouseButtons.Left)
     {
         return;
     }
     if (e.Clicks > 1)
     {
         return;
     }
     WinAPIHelper.ReleaseCapture();
     WinAPIHelper.SendMessage(Handle, WinAPIHelper.WM_NCLBUTTONDOWN, WinAPIHelper.HTCAPTION, IntPtr.Zero);
 }
Exemple #26
0
        /// <summary>
        /// 批量粘贴,由于循环太快、发送粘贴按键消息太慢,故延时
        /// </summary>
        /// <param name="needPause"></param>
        private void BatchPaste(List <ClipModel> clipList)
        {
            //设置剪切板前取消监听
            WinAPIHelper.RemoveClipboardFormatListener(wpfHwnd);

            for (int i = 0; i < clipList.Count; i++)
            {
                ClipModel clip = clipList[i];
                if (i != clipList.Count - 1 && !clip.ClipValue.Contains("\n"))
                {
                    clip.ClipValue += "\n";
                }
                clipService.SetValueToClipboard(clip);
                SendPasteKey();
                Thread.Sleep(50);
            }
            //设置剪切板后恢复监听
            WinAPIHelper.AddClipboardFormatListener(wpfHwnd);
        }
Exemple #27
0
 protected void Close()
 {
     try
     {
         _powerPointObject.Quit();
         uint lpdwProcessId;
         WinAPIHelper.GetWindowThreadProcessId(WindowHandle, out lpdwProcessId);
         var powerPointProcessId = (int)lpdwProcessId;
         Process.GetProcessById(powerPointProcessId).CloseMainWindow();
     }
     catch { }
     finally
     {
         try
         {
             Process.GetProcessesByName("POWERPNT").ToList().ForEach(p => p.Kill());
         }
         catch { }
     }
 }
Exemple #28
0
        protected override void OnStartup(StartupEventArgs e)
        {
            // Увеличение скорости запуска приложения
            Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.AboveNormal;

            // Если программа уже запущена, не нужно открывать ещё одну
            Process currentProcess = Process.GetCurrentProcess();

            Process[] processes = Process.GetProcessesByName(currentProcess.ProcessName);
            if (processes.Length > 1)
            {
                foreach (var process in processes)
                {
                    if (process.Id != currentProcess.Id)
                    {
                        WinAPIHelper.SetForegroundWindow(process.MainWindowHandle);
                    }
                }
                Environment.Exit(0);
            }
        }
Exemple #29
0
        private bool IsMaximized(Process p)
        {
            IntPtr handle;

            if (_processesAndMaximizedWindows.ContainsKey(p.Id))
            {
                handle = _processesAndMaximizedWindows[p.Id];
            }
            else
            {
                _processesAndMaximizedWindows.Add(p.Id, p.MainWindowHandle);
                handle = p.MainWindowHandle;
            }

            var placement = new WindowPlacement();

            placement.length = Marshal.SizeOf(placement);

            if (WinAPIHelper.GetWindowPlacement(handle, ref placement))
            {
                if (placement.showCmd == 3)                 // WM_MAXIMIZED
                {
                    _processesAndMaximizedWindows[p.Id] = handle;
                    return(true);
                }
            }
            else
            if (_processesAndMaximizedWindows[p.Id] != p.MainWindowHandle)
            {
                _processesAndMaximizedWindows[p.Id] = p.MainWindowHandle;
                return(IsMaximized(p));
            }
            else
            {
                return(false);
            }

            // Error retrieving the Window placement
            return(false);
        }
Exemple #30
0
        private void changePCMModules(string moduleName)
        {
            var moduleList = XMLHelper.LoadPCMFlashModules();

            foreach (var module in moduleList)
            {
                if ("  " + module.Key == moduleName)
                {
                    WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014F /*CB_SHOWDROPDOWN*/, 1, "");
                    WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014E /*CB_SETCURSEL*/, module.Value, "");
                    WinAPIHelper.SendMessage(pcmComboBoxModules, 0x0201 /*WM_LBUTTONDOWN*/, 0, "-1");
                    WinAPIHelper.SendMessage(pcmComboBoxModules, 0x0202 /*WM_LBUTTONUP*/, 0, "-1");
                    WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014F /*CB_SHOWDROPDOWN*/, 0, "0");
                    WinAPIHelper.SendMessage(pcmComboBoxModules, WinAPIHelper.CB_SETCURSEL, module.Value, "");
                    return;
                }
            }
            WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014F /*CB_SHOWDROPDOWN*/, 1, "");
            WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014E /*CB_SETCURSEL*/, 1, "");
            WinAPIHelper.SendMessage(pcmComboBoxModules, 0x0201 /*WM_LBUTTONDOWN*/, 0, "-1");
            WinAPIHelper.SendMessage(pcmComboBoxModules, 0x0202 /*WM_LBUTTONUP*/, 0, "-1");
            WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014F /*CB_SHOWDROPDOWN*/, 0, "0");
            WinAPIHelper.SendMessage(pcmComboBoxModules, WinAPIHelper.CB_SETCURSEL, 1, "");
        }