• 网络蜘蛛-51job招聘信息抓取

    针对51job招聘信息抓取,开启多个进程,与多线程抓取,子进程通知主进程抓取状态。使用MySql数据库

    5
    147
    572KB
    2014-12-05
    0
  • C#系统硬件设备管理(监视,启用,禁用)源代码

    C#系统硬件设备管理(监视,启用,禁用)源代码

    1
    418
    257KB
    2009-12-03
    21
  • C#多线程编程.Net Winform

    C#多线程 编程演练具体内容见内部源码详解

    4
    74
    73KB
    2009-12-03
    10
  • C#29种设计模式实战演练

    01简单工厂模式02策略模式07代理模式08工厂方法模式14观察者模式20迭代器模式21单例模式22桥接模式27解释器模式28访问者模式附录1动物练习

    0
    72
    4.27MB
    2009-12-03
    10
  • 常见算法面试题目有代码详解

    常见算法面试题目有代码详解 链表,图,树,数据元素

    0
    123
    4.34MB
    2009-11-22
    6
  • 显示当前系统时间锁频获得键盘直

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Diagnostics; namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { this.toolStripStatusLabel1.Text = "当前系统时间是:" + System.DateTime.Now.ToLongTimeString(); } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { this.timer1.Stop(); } private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { //建立进程 Process p = new Process(); p.StartInfo.WorkingDirectory = "c:\\windows\\system32"; p.StartInfo.FileName = "rundll32.exe"; //锁屏命令 p.StartInfo.Arguments = "user32.dll,LockWorkStation"; p.Start(); } else if (e.Button == MouseButtons.Right) { ProcessStartInfo psInfo = new ProcessStartInfo("cmd.exe"); psInfo.RedirectStandardInput = true; psInfo.UseShellExecute = false; psInfo.CreateNoWindow = true; psInfo.RedirectStandardOutput = true; Process proc = new Process(); proc.StartInfo = psInfo; proc.Start(); proc.StandardInput.WriteLine("shutdown -r"); } else { this.Close(); } } private void pictureBox1_Click(object sender, EventArgs e) { } private void Form1_KeyPress(object sender, KeyPressEventArgs e) { MessageBox.Show(Convert.ToInt32(e.KeyChar).ToString()); } private void statusStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } } }

    0
    88
    271KB
    2009-03-14
    0
  • C#实现的声音录制回放的小程序

    // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR // PURPOSE. // // This material may not be duplicated in whole or in part, except for // personal use, without the express written consent of the author. // // Email: ianier@hotmail.com // // Copyright (C) 1999-2003 Ianier Munoz. All Rights Reserved. using System; using System.Threading; using System.Runtime.InteropServices; namespace WaveLib { internal class WaveOutHelper { public static void Try(int err) { if (err != WaveNative.MMSYSERR_NOERROR) throw new Exception(err.ToString()); } } public delegate void BufferFillEventHandler(IntPtr data, int size); internal class WaveOutBuffer : IDisposable { public WaveOutBuffer NextBuffer; private AutoResetEvent m_PlayEvent = new AutoResetEvent(false); private IntPtr m_WaveOut; private WaveNative.WaveHdr m_Header; private byte[] m_HeaderData; private GCHandle m_HeaderHandle; private GCHandle m_HeaderDataHandle; private bool m_Playing; internal static void WaveOutProc(IntPtr hdrvr, int uMsg, int dwUser, ref WaveNative.WaveHdr wavhdr, int dwParam2) { if (uMsg == WaveNative.MM_WOM_DONE) { try { GCHandle h = (GCHandle)wavhdr.dwUser; WaveOutBuffer buf = (WaveOutBuffer)h.Target; buf.OnCompleted(); } catch { } } } public WaveOutBuffer(IntPtr waveOutHandle, int size) { m_WaveOut = waveOutHandle; m_HeaderHandle = GCHandle.Alloc(m_Header, GCHandleType.Pinned); m_Header.dwUser = (IntPtr)GCHandle.Alloc(this); m_HeaderData = new byte[size]; m_HeaderDataHandle = GCHandle.Alloc(m_HeaderData, GCHandleType.Pinned); m_Header.lpData = m_HeaderDataHandle.AddrOfPinnedObject(); m_Header.dwBufferLength = size; WaveOutHelper.Try(WaveNative.waveOutPrepareHeader(m_WaveOut, ref m_Header, Marshal.SizeOf(m_Header))); } ~WaveOutBuffer() { Dispose(); } public void Dispose() { if (m_Header.lpData != IntPtr.Zero) { WaveNative.waveOutUnprepareHeader(m_WaveOut, ref m_Header, Marshal.SizeOf(m_Header)); m_HeaderHandle.Free(); m_Header.lpData = IntPtr.Zero; } m_PlayEvent.Close(); if (m_HeaderDataHandle.IsAllocated) m_HeaderDataHandle.Free(); GC.SuppressFinalize(this); } public int Size { get { return m_Header.dwBufferLength; } } public IntPtr Data { get { return m_Header.lpData; } } public bool Play() { lock(this) { m_PlayEvent.Reset(); m_Playing = WaveNative.waveOutWrite(m_WaveOut, ref m_Header, Marshal.SizeOf(m_Header)) == WaveNative.MMSYSERR_NOERROR; return m_Playing; } } public void WaitFor() { if (m_Playing) { m_Playing = m_PlayEvent.WaitOne(); } else { Thread.Sleep(0); } } public void OnCompleted() { m_PlayEvent.Set(); m_Playing = false; } } public class WaveOutPlayer : IDisposable { private IntPtr m_WaveOut; private WaveOutBuffer m_Buffers; // linked list private WaveOutBuffer m_CurrentBuffer; private Thread m_Thread; private BufferFillEventHandler m_FillProc; private bool m_Finished; private byte m_zero; private WaveNative.WaveDelegate m_BufferProc = new WaveNative.WaveDelegate(WaveOutBuffer.WaveOutProc); public static int DeviceCount { get { return WaveNative.waveOutGetNumDevs(); } } public WaveOutPlayer(int device, WaveFormat format, int bufferSize, int bufferCount, BufferFillEventHandler fillProc) { m_zero = format.wBitsPerSample == 8 ? (byte)128 : (byte)0; m_FillProc = fillProc; WaveOutHelper.Try(WaveNative.waveOutOpen(out m_WaveOut, device, format, m_BufferProc, 0, WaveNative.CALLBACK_FUNCTION)); AllocateBuffers(bufferSize, bufferCount); m_Thread = new Thread(new ThreadStart(ThreadProc)); m_Thread.Start(); } ~WaveOutPlayer() { Dispose(); } public void Dispose() { if (m_Thread != null) try { m_Finished = true; if (m_WaveOut != IntPtr.Zero) WaveNative.waveOutReset(m_WaveOut); m_Thread.Join(); m_FillProc = null; FreeBuffers(); if (m_WaveOut != IntPtr.Zero) WaveNative.waveOutClose(m_WaveOut); } finally { m_Thread = null; m_WaveOut = IntPtr.Zero; } GC.SuppressFinalize(this); } private void ThreadProc() { while (!m_Finished) { Advance(); if (m_FillProc != null && !m_Finished) m_FillProc(m_CurrentBuffer.Data, m_CurrentBuffer.Size); else { // zero out buffer byte v = m_zero; byte[] b = new byte[m_CurrentBuffer.Size]; for (int i = 0; i < b.Length; i++) b[i] = v; Marshal.Copy(b, 0, m_CurrentBuffer.Data, b.Length); } m_CurrentBuffer.Play(); } WaitForAllBuffers(); } private void AllocateBuffers(int bufferSize, int bufferCount) { FreeBuffers(); if (bufferCount > 0) { m_Buffers = new WaveOutBuffer(m_WaveOut, bufferSize); WaveOutBuffer Prev = m_Buffers; try { for (int i = 1; i < bufferCount; i++) { WaveOutBuffer Buf = new WaveOutBuffer(m_WaveOut, bufferSize); Prev.NextBuffer = Buf; Prev = Buf; } } finally { Prev.NextBuffer = m_Buffers; } } } private void FreeBuffers() { m_CurrentBuffer = null; if (m_Buffers != null) { WaveOutBuffer First = m_Buffers; m_Buffers = null; WaveOutBuffer Current = First; do { WaveOutBuffer Next = Current.NextBuffer; Current.Dispose(); Current = Next; } while(Current != First); } } private void Advance() { m_CurrentBuffer = m_CurrentBuffer == null ? m_Buffers : m_CurrentBuffer.NextBuffer; m_CurrentBuffer.WaitFor(); } private void WaitForAllBuffers() { WaveOutBuffer Buf = m_Buffers; while (Buf.NextBuffer != m_Buffers) { Buf.WaitFor(); Buf = Buf.NextBuffer; } } } }

    5
    308
    15KB
    2009-03-14
    9
  • 《用C#制作飘动的窗体效果》源代码

    《用C#制作飘动的窗体效果》源代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace FallingGold { public partial class AboutForm : Form { public AboutForm() { InitializeComponent(); } private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { string url = linkLabel1.Text; try { System.Diagnostics.Process.Start(url); } catch (System.ComponentModel.Win32Exception noBrowser) { if (noBrowser.ErrorCode == -2147467259) MessageBox.Show(noBrowser.Message); } catch (System.Exception exc) { MessageBox.Show(exc.Message); } } private void btnOK_Click(object sender, EventArgs e) { Dispose(); } } }

    0
    29
    191KB
    2009-03-14
    5
  • 授人以渔

    1个回答被采纳
  • 知无不言

    回答1个问题,每日最多计数5次
关注 私信
上传资源赚积分or赚钱