Nejčastěji odpovídající uživatel
[C#] SendKeys.Send hlásí chybu "Přístup byl odepřen"

Dotaz
-
Zdravím, dělám program pro jednu hru. Jeho účelem je, aby mě přihlásil do hry. Použil jsem proto metodu SendKeys. Nejprve jsem to zkoušel u notepadu, u toho to bylo bezproblému. Ovšem když jsem to zkusil na hru, vypsalo mi to chybovou hlášku "Přístup byl odepřen." Mám operační systém Windows 7 a jsem Správce. I když program spustím jako správce, nic se nezmění. Přiložím zde kód:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Diagnostics; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public int i = 0; public void Posli() { try { if (i == 5) { SendKeys.Send("Jmeno"); SendKeys.Send("{TAB}"); } if (i == 7) { SendKeys.Send("heslo"); SendKeys.Send("{Enter}"); }
Mám udělaný časovač, abych stihl maximalizovat aplikaci. pokud máte nějaké řešení, nápady, rady, všechno ocením . Díky
} catch (Exception e) { MessageBox.Show(e.Message); } } [DllImport("user32.dll")] static extern bool SetForegroundWindow(IntPtr hWnd); private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true; Process[] MojeProcesy = Process.GetProcessesByName("TClient"); SetForegroundWindow(MojeProcesy[0].MainWindowHandle); } private void button2_Click(object sender, EventArgs e) { timer1.Enabled = false; } private void timer1_Tick(object sender, EventArgs e) { timer1.Interval = 1000; button2.Text = i.ToString(); i++; Posli(); } } }- Změněný typ Petr Handa čtvrtek 20. května 2010 20:16 Potřebuju nutně
Odpovědi
-
Já bych začal tím, že bych si vypnul UAC a zkusil to. Pokud se nepletu, na W7 a Vistách běží procesy s vyššímy právy tak, že neumožňují vzájemné posílání SendKeys. Asi je jasné proč.
- Označen jako odpověď JastebMicrosoft contingent staff, Moderator úterý 8. června 2010 8:37
-
UAC je "Řízení uživatelských účtů" a je to taková ta věc, co po Vás chce povolení přepnutí do administrátorského účtu...
Nastavuje se v Místních zásadách zabezpečení. Ale mám obavu, že to povolení poslat znaky procesu s vyšší prioritou se Vám na W7 a Vistách nepovede.
- Označen jako odpověď JastebMicrosoft contingent staff, Moderator úterý 8. června 2010 8:37
Všechny reakce
-
Já bych začal tím, že bych si vypnul UAC a zkusil to. Pokud se nepletu, na W7 a Vistách běží procesy s vyššímy právy tak, že neumožňují vzájemné posílání SendKeys. Asi je jasné proč.
- Označen jako odpověď JastebMicrosoft contingent staff, Moderator úterý 8. června 2010 8:37
-
-
UAC je "Řízení uživatelských účtů" a je to taková ta věc, co po Vás chce povolení přepnutí do administrátorského účtu...
Nastavuje se v Místních zásadách zabezpečení. Ale mám obavu, že to povolení poslat znaky procesu s vyšší prioritou se Vám na W7 a Vistách nepovede.
- Označen jako odpověď JastebMicrosoft contingent staff, Moderator úterý 8. června 2010 8:37