C# 不带位置传感器的Windows 7桌面

C# 不带位置传感器的Windows 7桌面,c#,.net,location,C#,.net,Location,我正在编写一个Windows7桌面C应用程序,当有位置传感器时,我需要编写代码。我有这个: public string check(string stop) { GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(); watcher.Start(); watcher.StatusChanged += new Eve

我正在编写一个Windows7桌面C应用程序,当有位置传感器时,我需要编写代码。我有这个:

            public string check(string stop)
            {
            GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();
            watcher.Start();

            watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(watcher_StatusChanged);

            return null;

            }

        static void watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
        {
            switch (e.Status)
            {
                case GeoPositionStatus.Initializing:
                    Console.WriteLine("Working on location fix");
                    break;

                case GeoPositionStatus.Ready:
                    Console.WriteLine("Have location");
                    break;

                case GeoPositionStatus.NoData:
                    Console.WriteLine("No data");
                    break;

                case GeoPositionStatus.Disabled:
                    Console.WriteLine("Disabled");
                    break;
            }
            MessageBox.Show("GO");
        }

这真的只是想看看它是否能抓住经纬度,但我没有传感器,我只是想知道,如果笔记本电脑有传感器,这能工作吗?我还买不起一个传感器,所以我想得到代码,继续前进,直到我能得到一个。此外,当用户注销时,我需要停止geocoordinatewatcher,因此,由于我无法在其他函数中停止它,如果我启动另一个函数并停止该函数,将停止所有功能?这些函数从webapge调用,并且我的表单上没有按钮。当用户注销时调用的函数将为stop;。如果有人想建议,我不能使用Geossense。

老问题,但还是这样:

我认为您的答案不是传感器的问题,而是watcher变量的范围问题。启动观察程序,然后注册事件,然后观察程序将失去作用域

GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();

public string check(string stop)
{
   watcher.Start();...

这个代码是正确的!如果没有提供数据,则表示设备中没有GPS传感器。如果设备具有GPS且已关闭,则状态应显示为禁用。此代码将正常工作!在一些windows平板电脑上试用