Chci se zeptat nevíte někdo jak udělat přesvědčivou podobiznu kostky cukru ?
Příspěvky odeslané z IP adresy 85.132.158.–
prave ze XNA se dobre hodi na pohyb, protoze "vidi" jestli je tlacitko stlaceno a dokud je stlaceno tak treba hybe postavou, ale uz se nehodi na psani textu, protoze nema zadny buffer jako klasicky c#.
using System;
using System.Runtime.InteropServices;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
namespace EventInput
{
/// <summary>
/// CREDITS INFINIMINER
/// http://code.google.com/p/infiniminer/
/// </summary>
public class CharacterEventArgs : EventArgs
{
private readonly char character;
private readonly int lParam;
public CharacterEventArgs(char character, int lParam)
{
this.character = character;
this.lParam = lParam;
}
public char Character
{
get { return character; }
}
public int Param
{
get { return lParam; }
}
public int RepeatCount
{
get { return lParam & 0xffff; }
}
public bool ExtendedKey
{
get { return (lParam & (1 << 24)) > 0; }
}
public bool AltPressed
{
get { return (lParam & (1 << 29)) > 0; }
}
public bool PreviousState
{
get { return (lParam & (1 << 30)) > 0; }
}
public bool TransitionState
{
get { return (lParam & (1 << 31)) > 0; }
}
}
public class KeyEventArgs : EventArgs
{
private Keys keyCode;
public KeyEventArgs(Keys keyCode)
{
this.keyCode = keyCode;
}
public Keys KeyCode
{
get { return keyCode; }
}
}
public delegate void CharEnteredHandler(object sender, CharacterEventArgs e);
public delegate void KeyEventHandler(object sender, KeyEventArgs e);
public static class EventInput
{
/// <summary>
/// Event raised when a character has been entered.
/// </summary>
public static event CharEnteredHandler CharEntered;
/// <summary>
/// Event raised when a key has been pressed down. May fire multiple times due to keyboard repeat.
/// </summary>
public static event KeyEventHandler KeyDown;
/// <summary>
/// Event raised when a key has been released.
/// </summary>
public static event KeyEventHandler KeyUp;
delegate IntPtr WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
static bool initialized;
static IntPtr prevWndProc;
static WndProc hookProcDelegate;
static IntPtr hIMC;
//various Win32 constants that we need
const int GWL_WNDPROC = -4;
const int WM_KEYDOWN = 0x100;
const int WM_KEYUP = 0x101;
const int WM_CHAR = 0x102;
const int WM_IME_SETCONTEXT = 0x0281;
const int WM_INPUTLANGCHANGE = 0x51;
const int WM_GETDLGCODE = 0x87;
const int WM_IME_COMPOSITION = 0x10f;
const int DLGC_WANTALLKEYS = 4;
//Win32 functions that we're using
[DllImport("Imm32.dll")]
static extern IntPtr ImmGetContext(IntPtr hWnd);
[DllImport("Imm32.dll")]
static extern IntPtr ImmAssociateContext(IntPtr hWnd, IntPtr hIMC);
[DllImport("user32.dll")]
static extern IntPtr CallWindowProc(IntPtr lpPrevWndFunc, IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
/// <summary>
/// Initialize the TextInput with the given GameWindow.
/// </summary>
/// <param name="window">The XNA window to which text input should be linked.</param>
public static void Initialize(GameWindow window)
{
if (initialized)
throw new InvalidOperationException("TextInput.Initialize can only be called once!");
hookProcDelegate = new WndProc(HookProc);
prevWndProc = (IntPtr)SetWindowLong(window.Handle, GWL_WNDPROC,
(int)Marshal.GetFunctionPointerForDelegate(hookProcDelegate));
hIMC = ImmGetContext(window.Handle);
initialized = true;
}
static IntPtr HookProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam)
{
IntPtr returnCode = CallWindowProc(prevWndProc, hWnd, msg, wParam, lParam);
switch (msg)
{
case WM_GETDLGCODE:
returnCode = (IntPtr)(returnCode.ToInt32() | DLGC_WANTALLKEYS);
break;
case WM_KEYDOWN:
if (KeyDown != null)
KeyDown(null, new KeyEventArgs((Keys)wParam));
break;
case WM_KEYUP:
if (KeyUp != null)
KeyUp(null, new KeyEventArgs((Keys)wParam));
break;
case WM_CHAR:
if (CharEntered != null)
CharEntered(null, new CharacterEventArgs((char)wParam, lParam.ToInt32()));
break;
case WM_IME_SETCONTEXT:
if (wParam.ToInt32() == 1)
ImmAssociateContext(hWnd, hIMC);
break;
case WM_INPUTLANGCHANGE:
ImmAssociateContext(hWnd, hIMC);
returnCode = (IntPtr)1;
break;
}
return returnCode;
}
}
}
tohle je trida toho bufferu
Tak uz mne vazne nenapada jak na ten input buffer, Opravdu bych ocenil kdyby sem nekdo mohl dat odkaz na nejaky funkcni kod i s vysvetlenim jak ten kod pouzit, nebo clanek podle ktereho bych si takovy buffer dokazal udelat i ja jako zacatecnik
Dobrý den,
Potřeboval bych poradit, jakým nejjednodužším a bezpečným způsobem odeslat požadavek z C# pomocí metody POST aby jej příjmul PHP script umístěný na mé webové stránce a na základě odeslaného požadavku vrátil nějaké hodnoty zpět do mého programu.
Jednoduchý příklad:
Ve Visual C# odešlu proměnnou UzivatelJmeno a UzivatelHeslo, můj PHP script příjme tyto hodnoty jako $_POST["uzivatel"] a $_POST["heslo"], Dále tyto hodnoty ověří v DB, pokud budou hodnoty shodné jako v DB, proměnná $uzivatel_id se nastaví na hodnotu 1 a roměnná $uzivatel_email se nastaví na email@neco.cz, pokud ne, hodnoty se nastaví na 0. Následně se odešlou zpět do mého programu a nastaví se jako int IdUzivatele a string EmailUzivatele.
Ocením jakékoli rady. Byl bych rád, kdyby mi to někdo vysvětlil na funkčním příkladu.
Dobrý už mi to částečně jde.
System.Management.ManagementObjectSearcher ms = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject mo in ms.Get())
{
label1.Text = (mo["Name"]).ToString();
label2.Text = (mo["Size"]).ToString();
label2.Text = (mo["InstallDate"]).ToString(); // Zde to hodi Odkaz na objekt není nastaven na instanci objektu.
}
}
Nevim přoc, ale třeba InstallDate,LastErrorCode mi hazi tuto chybu, nevíš čím to je?
Zde je seznam parametrů http://msdn.microsoft.com/en-us/library/aa394132(VS.85).aspx které lze zjisťovat, ale nevim přoc jdou jen některé...